|
|
@@ -0,0 +1,142 @@
|
|
|
+package com.ydtech.modules.admin.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
|
|
|
+import com.ydtech.modules.admin.dao.SysUserMapper;
|
|
|
+import com.ydtech.modules.admin.model.SysArea;
|
|
|
+import com.ydtech.modules.admin.model.SysUser;
|
|
|
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
|
|
|
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaListDto;
|
|
|
+import com.ydtech.modules.admin.model.po.SysUserLinkArea;
|
|
|
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
|
|
|
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaAddVo;
|
|
|
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaVo;
|
|
|
+import com.ydtech.modules.admin.service.SysAreaService;
|
|
|
+import com.ydtech.modules.admin.service.SysUserLinkAreaService;
|
|
|
+import com.ydtech.modules.order.entity.BasePageResult;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/26 14:52
|
|
|
+ * @Description: 用户关联协议表
|
|
|
+ */
|
|
|
+@Service
|
|
|
+public class SysUserLinkAreaServiceImpl extends ServiceImpl<SysUserLinkAreaMapper, SysUserLinkArea> implements SysUserLinkAreaService {
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserLinkAreaMapper sysUserLinkAreaMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserMapper sysUserMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysAreaService sysAreaService;
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/26 15:13
|
|
|
+ * @Description: 分页
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public BasePageResult<SysUserLinkAreaDto> queryPage(SysUserLinkAreaVo sysUserLinkAreaVo) {
|
|
|
+ Page<SysUserLinkAreaDto> page = new Page<>(sysUserLinkAreaVo.getPageNum(),
|
|
|
+ sysUserLinkAreaVo.getPageSize());
|
|
|
+ Page<SysUserLinkAreaDto> sysUserLinkAreaDtoBasePageResult = sysUserLinkAreaMapper.queryPage(page, sysUserLinkAreaVo);
|
|
|
+ return new BasePageResult<>(sysUserLinkAreaVo.getPageNum(), page.getSize(), sysUserLinkAreaDtoBasePageResult.getTotal(), page.getPages(),
|
|
|
+ sysUserLinkAreaDtoBasePageResult.getRecords());
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/26 15:13
|
|
|
+ * @Description: 添加修改
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void addOrUpdate(SysUserLinkAreaAddVo sysUserLinkAreaAddVo, SysUser user) {
|
|
|
+ String userId = sysUserLinkAreaAddVo.getUserId();
|
|
|
+ List<String> areaCodes = sysUserLinkAreaAddVo.getAreaCodes();
|
|
|
+ //删除数据重新添加
|
|
|
+ sysUserLinkAreaMapper.deleteByUserId(userId);
|
|
|
+ List<SysUserLinkArea> addList=new ArrayList<SysUserLinkArea>();
|
|
|
+ //重新添加
|
|
|
+ if(areaCodes!=null && areaCodes.size()>0){
|
|
|
+ for (String areaCode : areaCodes) {
|
|
|
+ SysUserLinkArea add=new SysUserLinkArea(userId,areaCode,user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date());
|
|
|
+ addList.add(add);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.saveBatch(addList);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/26 17:53
|
|
|
+ * @Description: 通过id删除数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void deleteByIds(List<Long> ids) {
|
|
|
+ sysUserLinkAreaMapper.deleteBatchIds(ids);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/26 15:22
|
|
|
+ * @Description: 通过用户查询关联的区域ids回显使用
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public SysUserLinkAreaListDto findAreaListByUserId(String userId) {
|
|
|
+ //查询用户绑定的区域
|
|
|
+ List<SysArea> list = sysUserLinkAreaMapper.findAreaListByUserId(userId);
|
|
|
+ SysUser sysUser = sysUserMapper.selectById(userId);
|
|
|
+ SysUserLinkAreaListDto SysUserLinkAreaListDto =new SysUserLinkAreaListDto(sysUser,list);
|
|
|
+ return SysUserLinkAreaListDto;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @version
|
|
|
+ * @author: hxl
|
|
|
+ * @Date: 2024/4/26 15:23
|
|
|
+ * @Description: 通过用户查询关联的区域树回显使用
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<SysAreaVo> findAreaTreeByUserId(String userId) {
|
|
|
+ //查询所有的区域树
|
|
|
+ List<SysAreaVo> sysAreaVos = sysAreaService.querySysArea();
|
|
|
+ Map<String,SysArea> map=new HashMap<String,SysArea>();
|
|
|
+ //查询用户绑定的区域
|
|
|
+ List<SysArea> list = sysUserLinkAreaMapper.findAreaListByUserId(userId);
|
|
|
+ if(list!=null && list.size()>0){
|
|
|
+ for (SysArea sysArea : list) {
|
|
|
+ map.put(sysArea.getAreaCode(),sysArea);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //递归赋值
|
|
|
+ if(sysAreaVos!=null && sysAreaVos.size()>0){
|
|
|
+ for (SysAreaVo sysAreaVo : sysAreaVos) {
|
|
|
+ sysAreaVo= setFlagByTree(sysAreaVo,map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysAreaVos;
|
|
|
+ }
|
|
|
+
|
|
|
+ public SysAreaVo setFlagByTree(SysAreaVo sysArea, Map<String,SysArea> map) {
|
|
|
+ sysArea.setFlag(false);
|
|
|
+ if (map.get(sysArea.getAreaCode())!=null) {
|
|
|
+ sysArea.setFlag(true);
|
|
|
+ }
|
|
|
+ if(sysArea.getChild()==null || sysArea.getChild().size()==0){
|
|
|
+ }
|
|
|
+ for (SysAreaVo child : sysArea.getChild()) {
|
|
|
+ setFlagByTree(child, map);
|
|
|
+ }
|
|
|
+ return sysArea;
|
|
|
+ }
|
|
|
+}
|