Sfoglia il codice sorgente

添加后线人员关联区域配置

hxl13994548489 2 anni fa
parent
commit
f0e3dfbd1d

+ 95 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkAreaController.java

@@ -0,0 +1,95 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaIdsVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaVo;
+import com.ydtech.modules.admin.service.SysUserLinkAreaService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 11:09
+ *  @Description:  后线人员区域配置
+ */
+@Api(tags = "后线人员关联区域")
+@RequestMapping("/sysUserLinkArea")
+@RestController
+public class SysUserLinkAreaController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkAreaService sysUserLinkAreaService;
+
+    @PostMapping("queryPage")
+    @ApiOperation(value = "后线人员关联区域分页")
+    public HttpResult<BasePageResult<SysUserLinkAreaDto>> queryPage(@RequestBody SysUserLinkAreaVo sysUserLinkAreaVo) {
+
+        try{
+            BasePageResult<SysUserLinkAreaDto> result = sysUserLinkAreaService.queryPage(sysUserLinkAreaVo);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("后线人员关联区域添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkAreaAddVo sysUserLinkAreaAddVo) {
+        if(sysUserLinkAreaAddVo.getUserId()==null || "".equals(sysUserLinkAreaAddVo.getUserId())) {
+            return HttpResult.error("后线人员id不能为空");
+        }
+        if(sysUserLinkAreaAddVo.getAreaCodes()==null || sysUserLinkAreaAddVo.getAreaCodes().size()==0) {
+            return HttpResult.error("区域code集合不能为空");
+        }
+        try{
+            sysUserLinkAreaService.addOrUpdate(sysUserLinkAreaAddVo,getUser());
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("后线人员关联区域删除")
+    public HttpResult<Object> delete(@RequestBody SysUserLinkAreaIdsVo idsVo) {
+        if(idsVo.getIds()==null || idsVo.getIds().size()==0){
+            return HttpResult.error("后线人员关联ids不能为空");
+        }
+        try{
+            sysUserLinkAreaService.deleteByIds(idsVo.getIds());
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+    @GetMapping("/findAreaListByUserId/{userId}")
+    @ApiOperation(value = "后线人员关联区域列表(编辑使用)")
+    @ApiImplicitParam(name = "userId", value = "后线人员id", required = true)
+    public HttpResult<Object> findAreaListByUserId(@PathVariable("userId") String userId) {
+        if(userId==null || "".equals(userId)) {
+            return HttpResult.error("后线人员id不能为空");
+        }
+        try{
+           // SysUserLinkAreaListDto sysUserLinkAreaListDto= sysUserLinkAreaService.findAreaListByUserId(userId);
+            List<SysAreaVo> sysAreaVos = sysUserLinkAreaService.findAreaTreeByUserId(userId);
+            return HttpResult.ok(sysAreaVos);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+
+    }
+}

+ 47 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkAreaMapper.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkArea;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 14:47
+ *  @Description: 用户关联区域表Dao
+ */
+@Mapper
+public interface SysUserLinkAreaMapper extends BaseMapper<SysUserLinkArea> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 16:08
+     *  @Description: 分页
+     */
+    Page<SysUserLinkAreaDto> queryPage(@Param("page") Page<SysUserLinkAreaDto> page, @Param("vo") SysUserLinkAreaVo sysUserLinkAreaVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:08
+     *  @Description: 通过用户id删除旧数据
+     */
+    void deleteByUserId(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 16:08
+     *  @Description:创建后线人员绑定的协议回显
+     */
+    List<SysArea> findAreaListByUserId(@Param("userId") String userId);
+
+
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/SysArea.java

@@ -53,6 +53,12 @@ public class SysArea implements Serializable {
     @TableField(value = "valid_status")
     private Integer validStatus;
 
+    /***
+     * 省市县全名称
+     */
+    @TableField(exist = false)
+    private String allName;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 

+ 28 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkAreaDto.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 11:21
+ *  @Description:  后线人员关联区域对象返回前台对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaDto extends PageRequest {
+
+    @ApiModelProperty("后线人员关联区域id")
+    private Long id;
+
+    @ApiModelProperty("后线人员用户")
+    private SysUser sysUser;
+
+    @ApiModelProperty("区域信息")
+    private SysArea sysArea;
+}

+ 34 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkAreaListDto.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 11:21
+ *  @Description:  后线人员关联区域对象返回前台对象
+ */
+@Data
+@ApiModel
+@NoArgsConstructor
+public class SysUserLinkAreaListDto {
+
+    @ApiModelProperty("后线人员用户")
+    private SysUser user;
+
+    @ApiModelProperty("区域集合信息")
+    private List<SysArea> areaList=new ArrayList<SysArea>();
+
+    public SysUserLinkAreaListDto(SysUser user, List<SysArea> areaList) {
+        this.user = user;
+        this.areaList = areaList;
+    }
+}

+ 83 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkArea.java

@@ -0,0 +1,83 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:32
+ *  @Description: 后线人员关联协议表
+ */
+@TableName(value = "sys_user_link_area")
+@Data
+@NoArgsConstructor
+public class SysUserLinkArea implements Serializable {
+    /***
+     * 主键自增
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /***
+     * 后线用户ID
+     */
+    @TableField(value = "user_id")
+    private  String userId;
+    /***
+     * 区域编码
+     */
+    @TableField(value = "area_code")
+    private String areaCode;
+    /***
+     * 创建人
+     */
+    @TableField(value = "create_id")
+    private String createId;
+    /***
+     * 创建人名称
+     */
+    @TableField(value = "create_name")
+    private String createName;
+    /***
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time")
+    private Date createTime;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "update_id")
+    private String updateId;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "update_name")
+    private String updateName;
+    /***
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+
+    public SysUserLinkArea(String userId, String areaCode, String createId, String createName, Date createTime, String updateId, String updateName, Date updateTime) {
+        this.userId = userId;
+        this.areaCode = areaCode;
+        this.createId = createId;
+        this.createName = createName;
+        this.createTime = createTime;
+        this.updateId = updateId;
+        this.updateName = updateName;
+        this.updateTime = updateTime;
+    }
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysAreaVo.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.List;
+import java.util.Map;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
@@ -18,4 +19,23 @@ public class SysAreaVo extends SysArea {
         super(sysArea);
     }
 
+    /***
+     * 添加回显状态
+     */
+    private Boolean flag;
+
+
+    public void setFlagByTree(SysAreaVo sysArea, Map<String,SysArea> map) {
+        sysArea.setFlag(false);
+        if (map.get(sysArea.getAreaCode())!=null) {
+            sysArea.setFlag(true);
+            return;
+        }
+        if(sysArea.getChild()==null || sysArea.getChild().size()==0){
+            return;
+        }
+        for (SysAreaVo child : sysArea.getChild()) {
+            setFlagByTree(child, map);
+        }
+    }
 }

+ 31 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaAddVo.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 15:08
+ *  @Description: 后线人员关联区域数据
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaAddVo {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("后线用户ID")
+    private String userId;
+
+    /***
+     * 区域code集合
+     */
+    @ApiModelProperty("区域code集合")
+    private List<String> areaCodes = new ArrayList<String>();
+}

+ 24 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaIdsVo.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:55
+ *  @Description: 关联区域ids
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaIdsVo implements Serializable {
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("关联区域ids")
+    private List<Long> ids;
+}

+ 35 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaVo.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.ydtech.core.page.BasePageVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:55
+ *  @Description: 前台分页查询对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaVo extends BasePageVO {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("后线用户ID")
+    private String userId;
+
+    /***
+     * 后线用户名称
+     */
+    @ApiModelProperty("后线用户名称")
+    private String userName;
+
+    /***
+     * 区域编码
+     */
+    @ApiModelProperty("区域编码")
+    private String areaCode;
+}

+ 57 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkAreaService.java

@@ -0,0 +1,57 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+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.order.entity.BasePageResult;
+
+import java.util.List;
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 15:55
+ *  @Description: 后线人员关联区域的数据
+ */
+public interface SysUserLinkAreaService extends IService<SysUserLinkArea> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:11
+     *  @Description: 分页
+     */
+    BasePageResult<SysUserLinkAreaDto> queryPage(SysUserLinkAreaVo sysUserLinkAreaVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:12
+     *  @Description: 修改
+     */
+    void addOrUpdate(SysUserLinkAreaAddVo sysUserLinkAreaAddVo, SysUser user);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:23
+     *  @Description: 更具id删除数据
+     */
+    void deleteByIds(List<Long> ids);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:27
+     *  @Description: 查询后线人员关联的协议列表
+     */
+    SysUserLinkAreaListDto findAreaListByUserId(String userId);
+     /**
+      *  @version
+      *  @author: hxl
+      *  @Date: 2024/4/26 17:21
+      *  @Description:  后线人员绑定的区域的树回显
+      */
+    List<SysAreaVo> findAreaTreeByUserId(String userId);
+}

+ 142 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkAreaServiceImpl.java

@@ -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;
+    }
+}

+ 71 - 0
src/main/resources/mapper/modules/admin/SysUserLinkAreaMapper.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkAreaMapper">
+    <sql id="Base_Column_List">
+            link.id as id,
+            user.id as "sysUser.id",
+            user.name as "sysUser.name",
+            t2.id AS "sysUser.deptId",
+            t2.`name` AS "sysUser.deptName",
+            area.id as  "area.id",
+            area.area_code as  "area.areaCode",
+            area.area_cname AS "area.areaCname",
+	        CONCAT(IFNULL(ppArea.area_cname,"") , IFNULL(pArea.area_cname,""),IFNULL(area.area_cname,"")) as "area.allName"
+    </sql>
+
+    <select id="queryPage"  resultType="com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto">
+        SELECT
+          <include refid="Base_Column_List"/>
+        FROM
+        sys_user_link_area link
+        LEFT JOIN sys_user USER ON link.user_id = USER.id
+        LEFT JOIN sys_dept t2 ON USER.dept_id = t2.id
+        LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+        LEFT JOIN sys_area area ON link.area_code = area.area_code
+        LEFT JOIN sys_area pArea ON pArea.area_code = area.upper_code
+        LEFT JOIN sys_area ppArea ON ppArea.area_code = pArea.upper_code
+        <where>
+            <if test="vo.userId != null and vo.userId != ''">
+                and  link.user_id =  #{vo.userId}
+            </if>
+            <if test="vo.userName != null and vo.userName != ''">
+                and  USER.name  like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test="vo.areaCode != null and vo.areaCode != ''">
+                and   EXISTS (
+                    SELECT
+                    area_code
+                    FROM
+                    ( SELECT * FROM sys_area area WHERE upper_code = #{vo.areaCode} OR area_code = #{vo.areaCode} ) areaAll
+                    WHERE
+                    areaAll.area_code = link.area_code
+                )
+            </if>
+        </where>
+        order by area.area_code
+    </select>
+
+    <delete id="deleteByUserId">
+       delete  from     sys_user_link_area
+       where   user_id=#{userId}
+    </delete>
+
+    <select id="findAreaListByUserId"  resultType="com.ydtech.modules.admin.model.SysArea">
+        SELECT
+            area.id as id,
+            area.area_code as  areaCode,
+            area.area_cname as  areaCname,
+            area.upper_code as upperCode
+        FROM
+        sys_user_link_area link
+        LEFT JOIN sys_area area ON link.area_code = area.area_code
+        <where>
+            <if test="userId != null and userId != ''">
+                and  link.user_id =  #{userId}
+            </if>
+        </where>
+        order by area.area_code
+    </select>
+</mapper>