Pārlūkot izejas kodu

用户管理添加站点绑定

jichaobo 3 gadi atpakaļ
vecāks
revīzija
25a1d3a039

+ 31 - 1
fiveep-controller/src/main/java/com/bizmatics/controller/web/system/SysUserController.java

@@ -2,7 +2,9 @@ package com.bizmatics.controller.web.system;
 
 import com.bizmatics.common.core.bean.ApiResult;
 import com.bizmatics.common.core.exception.BusinessErrorCode;
+import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.StringUtils;
+import com.bizmatics.model.UserSite;
 import com.bizmatics.model.constants.UserConstants;
 import com.bizmatics.model.page.TableDataInfo;
 import com.bizmatics.model.system.SysRole;
@@ -13,6 +15,8 @@ import com.bizmatics.service.system.ISysUserService;
 import com.bizmatics.service.util.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -76,6 +80,7 @@ public class SysUserController extends BaseController
      * 新增用户
      */
     @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @Transactional
     @PostMapping
     public ApiResult<Void> add(@Validated @RequestBody SysUser user)
     {
@@ -95,13 +100,25 @@ public class SysUserController extends BaseController
         }
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
-        return toAjax(userService.insertUser(user));
+        int row = userService.insertUser(user);
+        int userId = user.getUserId().intValue();
+        try{
+            for (int i=0;i<user.getSiteId().length;i++){
+                int siteId = user.getSiteId()[i];
+                userService.insertUserSite(userId,siteId);
+            }
+        }catch (Exception e){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            throw  new BusinessException("用户点位关联表插入失败");
+        }
+        return toAjax(row);
     }
 
     /**
      * 修改用户
      */
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Transactional
     @PutMapping
     public ApiResult<Void> edit(@Validated @RequestBody SysUser user)
     {
@@ -117,6 +134,17 @@ public class SysUserController extends BaseController
             return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setUpdateBy(SecurityUtils.getUsername());
+        try{
+            userService.deleteUserByIds(user.getUserId());
+            int userId = user.getUserId().intValue();
+            for (int i=0;i<user.getSiteId().length;i++){
+                int siteId = user.getSiteId()[i];
+                userService.insertUserSite(userId,siteId);
+            }
+        }catch (Exception e){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            throw  new BusinessException("用户点位关联表插入失败");
+        }
         return toAjax(userService.updateUser(user));
     }
 
@@ -165,7 +193,9 @@ public class SysUserController extends BaseController
         Map<String,Object> ajax = new HashMap<>();
         SysUser user = userService.selectUserById(userId);
         List<SysRole> roles = roleService.selectRolesByUserId(userId);
+        List<UserSite> userSiteList = userService.selectUserSiteById(userId);
         ajax.put("user", user);
+        ajax.put("userSite", userSiteList);
         ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         return ApiResult.success(ajax);
     }

+ 13 - 0
fiveep-model/src/main/java/com/bizmatics/model/system/SysUser.java

@@ -79,6 +79,9 @@ public class SysUser extends BaseEntity
     /** 角色ID */
     private Long roleId;
 
+    /** 站点组组 */
+    private int[] siteId;
+
     public SysUser()
     {
 
@@ -297,6 +300,16 @@ public class SysUser extends BaseEntity
         this.roleId = roleId;
     }
 
+    public int[] getSiteId()
+    {
+        return siteId;
+    }
+
+    public void setSiteId(int[] siteId)
+    {
+        this.siteId = siteId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

+ 338 - 0
fiveep-model/src/main/java/com/bizmatics/model/system/SysUserOne.java

@@ -0,0 +1,338 @@
+package com.bizmatics.model.system;
+
+import com.bizmatics.model.base.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 用户对象 sys_user
+ * 
+ * @author yq
+ */
+public class SysUserOne extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 用户ID */
+    private Long userId;
+
+    /** 部门ID */
+    private Long deptId;
+
+    /** 用户账号 */
+    private String userName;
+
+    /** 用户昵称 */
+    private String nickName;
+
+    /** 用户邮箱 */
+    private String email;
+
+    /** 手机号码 */
+    private String phonenumber;
+
+    /** 用户性别 */
+    private String sex;
+
+    /** 用户头像 */
+    private String avatar;
+
+    /** 密码 */
+    private String password;
+
+    /** 盐加密 */
+    private String salt;
+
+    /** 帐号状态(0正常 1停用) */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 最后登录IP */
+    private String loginIp;
+
+    /** 最后登录时间 */
+    private Date loginDate;
+
+    /** 部门对象 */
+    private SysDept dept;
+
+    /** 角色对象 */
+    private List<SysRole> roles;
+
+    /** 角色组 */
+    private Long[] roleIds;
+
+    /** 岗位组 */
+    private Long[] postIds;
+
+    /** 角色ID */
+    private Long roleId;
+
+    /** 站点组组 */
+    private int[] siteId;
+
+    public SysUserOne()
+    {
+
+    }
+
+    public SysUserOne(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.userId);
+    }
+
+    public static boolean isAdmin(Long userId)
+    {
+        return userId != null && 1L == userId;
+    }
+
+    public Long getDeptId()
+    {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId)
+    {
+        this.deptId = deptId;
+    }
+
+    @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
+    public String getNickName()
+    {
+        return nickName;
+    }
+
+    public void setNickName(String nickName)
+    {
+        this.nickName = nickName;
+    }
+
+    @NotBlank(message = "用户账号不能为空")
+    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
+    public String getPhonenumber()
+    {
+        return phonenumber;
+    }
+
+    public void setPhonenumber(String phonenumber)
+    {
+        this.phonenumber = phonenumber;
+    }
+
+    public String getSex()
+    {
+        return sex;
+    }
+
+    public void setSex(String sex)
+    {
+        this.sex = sex;
+    }
+
+    public String getAvatar()
+    {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar)
+    {
+        this.avatar = avatar;
+    }
+
+    @JsonIgnore
+    @JsonProperty
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getSalt()
+    {
+        return salt;
+    }
+
+    public void setSalt(String salt)
+    {
+        this.salt = salt;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getLoginIp()
+    {
+        return loginIp;
+    }
+
+    public void setLoginIp(String loginIp)
+    {
+        this.loginIp = loginIp;
+    }
+
+    public Date getLoginDate()
+    {
+        return loginDate;
+    }
+
+    public void setLoginDate(Date loginDate)
+    {
+        this.loginDate = loginDate;
+    }
+
+    public SysDept getDept()
+    {
+        return dept;
+    }
+
+    public void setDept(SysDept dept)
+    {
+        this.dept = dept;
+    }
+
+    public List<SysRole> getRoles()
+    {
+        return roles;
+    }
+
+    public void setRoles(List<SysRole> roles)
+    {
+        this.roles = roles;
+    }
+
+    public Long[] getRoleIds()
+    {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds)
+    {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getPostIds()
+    {
+        return postIds;
+    }
+
+    public void setPostIds(Long[] postIds)
+    {
+        this.postIds = postIds;
+    }
+
+    public Long getRoleId()
+    {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId)
+    {
+        this.roleId = roleId;
+    }
+
+    public int[] getSiteId()
+    {
+        return siteId;
+    }
+
+    public void setSiteId(int[] siteId)
+    {
+        this.siteId = siteId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+            .append("userId", getUserId())
+            .append("deptId", getDeptId())
+            .append("userName", getUserName())
+            .append("nickName", getNickName())
+            .append("email", getEmail())
+            .append("phonenumber", getPhonenumber())
+            .append("sex", getSex())
+            .append("avatar", getAvatar())
+            .append("password", getPassword())
+            .append("salt", getSalt())
+            .append("status", getStatus())
+            .append("delFlag", getDelFlag())
+            .append("loginIp", getLoginIp())
+            .append("loginDate", getLoginDate())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .append("remark", getRemark())
+            .append("dept", getDept())
+            .toString();
+    }
+}

+ 28 - 0
fiveep-model/src/main/java/com/bizmatics/model/system/UserSite.java

@@ -0,0 +1,28 @@
+package com.bizmatics.model.system;
+
+import com.bizmatics.model.base.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+public class UserSite extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * Web端用户站点关联表ID
+     */
+    private Integer id;
+
+    /**
+     * 用户ID
+     */
+    private Integer userId;
+
+    /**
+     * 站点ID
+     */
+    private Integer siteId;
+
+}

+ 257 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/SingleLoopReportVo.java

@@ -0,0 +1,257 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SingleLoopReportVo implements Serializable {
+
+    /**
+     * 伍继电力test_183消费组模拟量数据表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 功率因素
+     */
+    private Double cos;
+
+    /**
+     * 频率(平均)
+     */
+    private Double avgF;
+
+    /**
+     * 频率(最大)
+     */
+    private Double maxF;
+
+    /**
+     * 频率(最小)
+     */
+    private Double minF;
+
+    /**
+     * A相电流(平均)
+     */
+    private Double avgIa;
+
+    /**
+     * B相电流(平均)
+     */
+    private Double avgIb;
+
+    /**
+     * C相电流(平均)
+     */
+    private Double avgIc;
+
+
+    /**
+     * A相电压(平均)
+     */
+    private Double avgUa;
+
+    /**
+     * B相电压(平均)
+     */
+    private Double avgUb;
+
+    /**
+     * C相电压(平均)
+     */
+    private Double avgUc;
+
+    /**
+     * A相电压(最大)
+     */
+    private Double maxUa;
+
+    /**
+     * B相电压(最大)
+     */
+    private Double maxUb;
+
+    /**
+     * C相电压(最大)
+     */
+    private Double maxUc;
+
+    /**
+     * A相电压(最小)
+     */
+    private Double minUa;
+
+    /**
+     * B相电压(最小)
+     */
+    private Double minUb;
+
+    /**
+     * C相电压(最小)
+     */
+    private Double minUc;
+
+    /**
+     * 电压等级
+     */
+    private String voltageLevel;
+
+    /**
+     * 额定电流(A)
+     */
+    private Double ratedCurrent;
+
+
+    /**
+     * 电流不平衡(平均)
+     */
+    private Double avgElBalun;
+    /**
+     * 电压不平衡(平均)
+     */
+    private Double avgVtBalun;
+
+    /**
+     * 电流不平衡(最大)
+     */
+    private Double maxElBalun;
+    /**
+     * 电压不平衡(最大)
+     */
+    private Double maxVtBalun;
+
+    /**
+     * 电流不平衡(最小)
+     */
+    private Double minElBalun;
+    /**
+     * 电压不平衡(最小)
+     */
+    private Double minVtBalun;
+
+    /**
+     * A相电压比例
+     */
+    private String proportionUa;
+
+    /**
+     * A相电压合格率
+     */
+    private Double qrUa;
+
+    /**
+     * B相电压比例
+     */
+    private String proportionUb;
+
+    /**
+     * B相电压合格率
+     */
+    private Double qrUb;
+
+    /**
+     * C相电压比例
+     */
+    private String proportionUc;
+
+    /**
+     * C相电压合格率
+     */
+    private Double qrUc;
+
+    /**
+     * 频率比例
+     */
+    private String proportionF;
+
+    /**
+     * 频率合格率
+     */
+    private Double qrF;
+
+    /**
+     * 电流不平衡度比例
+     */
+    private String proportionElBalun;
+
+    /**
+     * 电流不平衡度合格率
+     */
+    private Double qrElBalun;
+
+    /**
+     * 电压不平衡度比例
+     */
+    private String proportionVtBalun;
+
+    /**
+     * 电压不平衡度合格率
+     */
+    private Double qrVtBalun;
+
+
+    /**
+     * 标称电压上限
+     */
+    private Double voltageLevelToplimit;
+
+    /**
+     * 标称电压下限
+     */
+    private Double voltageLevelLowerLimit;
+
+    /**
+     * 标称频率
+     */
+    private Double mhz;
+
+    /**
+     * 频率上限
+     */
+    private Double fToplimit;
+
+    /**
+     * 频率下限
+     */
+    private Double fLowerLimit;
+
+    /**
+     * 考核限值
+     */
+    private Double appraise;
+    /**
+     * 不平衡度上限
+     */
+    private Double balanceToplimit;
+    /**
+     * 不平衡度下限
+     */
+    private Double balanceLowerLimit;
+}

+ 11 - 2
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/UserSiteMapper.java

@@ -1,12 +1,15 @@
 package com.bizmatics.persistence.mapper;
 
-import com.bizmatics.model.UserSite;
 import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.model.UserSite;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * <p>
- *  Mapper 接口
+ * Mapper 接口
  * </p>
  *
  * @author ya
@@ -14,5 +17,11 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface UserSiteMapper extends CrudMapper<UserSite> {
+    public int insertUserSite(@Param("id") Integer id,
+                              @Param("userId") int userId,
+                              @Param("siteId") int siteId);
+
+    public List<UserSite> selectUserSiteById(Long userId);
 
+    public int deleteUserSiteById(Long userId);
 }

+ 25 - 0
fiveep-persistence/src/main/resources/mapper/mysql/UserSiteMapper.xml

@@ -9,4 +9,29 @@
         <result column="site_id" property="siteId" />
     </resultMap>
 
+    <insert id="insertUserSite" parameterType="com.bizmatics.model.UserSite">
+        insert into user_site(
+        <if test="id != null and id != 0">id,</if>
+        <if test="userId != null and userId != 0">user_id,</if>
+        <if test="siteId != null and siteId != 0">site_id</if>
+        )values(
+        <if test="id != null and id != ''">#{id}</if>
+        <if test="userId != null and userId != ''">#{userId},</if>
+        <if test="siteId != null and siteId != ''">#{siteId}</if>
+        )
+    </insert>
+
+    <sql id="selectUserSiteVo">
+        select *
+        from user_site
+    </sql>
+
+    <select id="selectUserSiteById" parameterType="Long" resultMap="BaseResultMap">
+        <include refid="selectUserSiteVo"/>
+        where user_id = #{userId}
+    </select>
+
+    <delete id="deleteUserSiteById" parameterType="Long">
+        DELETE FROM user_site WHERE user_id = #{userId}
+    </delete>
 </mapper>

+ 35 - 28
fiveep-service/src/main/java/com/bizmatics/service/system/ISysUserService.java

@@ -1,19 +1,19 @@
 package com.bizmatics.service.system;
 
+import com.bizmatics.model.UserSite;
 import com.bizmatics.model.system.SysUser;
 
 import java.util.List;
 
 /**
  * 用户 业务层
- * 
+ *
  * @author yq
  */
-public interface ISysUserService
-{
+public interface ISysUserService {
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -21,7 +21,7 @@ public interface ISysUserService
 
     /**
      * 根据条件分页查询已分配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -29,7 +29,7 @@ public interface ISysUserService
 
     /**
      * 根据条件分页查询未分配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -37,7 +37,7 @@ public interface ISysUserService
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
@@ -45,15 +45,18 @@ public interface ISysUserService
 
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
     public SysUser selectUserById(Long userId);
 
+
+    public List<UserSite> selectUserSiteById(Long userId);
+
     /**
      * 根据用户ID查询用户所属角色组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
@@ -61,7 +64,7 @@ public interface ISysUserService
 
     /**
      * 根据用户ID查询用户所属岗位组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
@@ -69,7 +72,7 @@ public interface ISysUserService
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */
@@ -93,22 +96,24 @@ public interface ISysUserService
 
     /**
      * 校验用户是否允许操作
-     * 
+     *
      * @param user 用户信息
      */
     public void checkUserAllowed(SysUser user);
 
     /**
      * 新增用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     public int insertUser(SysUser user);
 
+    public void insertUserSite(int userId, int siteId);
+
     /**
      * 注册用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -116,7 +121,7 @@ public interface ISysUserService
 
     /**
      * 修改用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -124,15 +129,15 @@ public interface ISysUserService
 
     /**
      * 用户授权角色
-     * 
-     * @param userId 用户ID
+     *
+     * @param userId  用户ID
      * @param roleIds 角色组
      */
     public void insertUserAuth(Long userId, Long[] roleIds);
 
     /**
      * 修改用户状态
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -140,7 +145,7 @@ public interface ISysUserService
 
     /**
      * 修改用户基本信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -148,16 +153,16 @@ public interface ISysUserService
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userName 用户名
-     * @param avatar 头像地址
+     * @param avatar   头像地址
      * @return 结果
      */
     public boolean updateUserAvatar(String userName, String avatar);
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
@@ -165,7 +170,7 @@ public interface ISysUserService
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
@@ -174,7 +179,7 @@ public interface ISysUserService
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
@@ -182,18 +187,20 @@ public interface ISysUserService
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
     public int deleteUserByIds(Long[] userIds);
 
+    public int deleteUserByIds(Long userId);
+
     /**
      * 导入用户数据
-     * 
-     * @param userList 用户数据列表
+     *
+     * @param userList        用户数据列表
      * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
-     * @param operName 操作用户
+     * @param operName        操作用户
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);

+ 125 - 142
fiveep-service/src/main/java/com/bizmatics/service/system/impl/SysUserServiceImpl.java

@@ -2,8 +2,10 @@ package com.bizmatics.service.system.impl;
 
 import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.StringUtils;
+import com.bizmatics.model.UserSite;
 import com.bizmatics.model.constants.UserConstants;
 import com.bizmatics.model.system.*;
+import com.bizmatics.persistence.mapper.UserSiteMapper;
 import com.bizmatics.persistence.mapper.system.*;
 import com.bizmatics.service.aop.DataScope;
 import com.bizmatics.service.system.ISysConfigService;
@@ -21,12 +23,11 @@ import java.util.Objects;
 
 /**
  * 用户 业务层处理
- * 
+ *
  * @author yq
  */
 @Service
-public class SysUserServiceImpl implements ISysUserService
-{
+public class SysUserServiceImpl implements ISysUserService {
     private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
 
     @Autowired
@@ -47,86 +48,92 @@ public class SysUserServiceImpl implements ISysUserService
     @Autowired
     private ISysConfigService configService;
 
+    @Autowired
+    private UserSiteMapper userSiteMapper;
     /**
      * 根据条件分页查询用户列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectUserList(SysUser user)
-    {
+    public List<SysUser> selectUserList(SysUser user) {
         return userMapper.selectUserList(user);
     }
 
     /**
      * 根据条件分页查询已分配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectAllocatedList(SysUser user)
-    {
+    public List<SysUser> selectAllocatedList(SysUser user) {
         return userMapper.selectAllocatedList(user);
     }
 
     /**
      * 根据条件分页查询未分配用户角色列表
-     * 
+     *
      * @param user 用户信息
      * @return 用户信息集合信息
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectUnallocatedList(SysUser user)
-    {
+    public List<SysUser> selectUnallocatedList(SysUser user) {
         return userMapper.selectUnallocatedList(user);
     }
 
     /**
      * 通过用户名查询用户
-     * 
+     *
      * @param userName 用户名
      * @return 用户对象信息
      */
     @Override
-    public SysUser selectUserByUserName(String userName)
-    {
+    public SysUser selectUserByUserName(String userName) {
         return userMapper.selectUserByUserName(userName);
     }
 
     /**
      * 通过用户ID查询用户
-     * 
+     *
      * @param userId 用户ID
      * @return 用户对象信息
      */
     @Override
-    public SysUser selectUserById(Long userId)
-    {
+    public SysUser selectUserById(Long userId) {
         return userMapper.selectUserById(userId);
     }
 
+    /**
+     * 通过用户ID查询用户站点关联表
+     *
+     * @param userId 用户ID
+     * @return 用户对象信息
+     */
+    @Override
+    public List<UserSite> selectUserSiteById(Long userId) {
+        List<UserSite> userSiteList = userSiteMapper.selectUserSiteById(userId);
+        return userSiteList;
+    }
+
     /**
      * 查询用户所属角色组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
     @Override
-    public String selectUserRoleGroup(String userName)
-    {
+    public String selectUserRoleGroup(String userName) {
         List<SysRole> list = roleMapper.selectRolesByUserName(userName);
         StringBuffer idsStr = new StringBuffer();
-        for (SysRole role : list)
-        {
+        for (SysRole role : list) {
             idsStr.append(role.getRoleName()).append(",");
         }
-        if (StringUtils.isNotBlank(idsStr.toString()))
-        {
+        if (StringUtils.isNotBlank(idsStr.toString())) {
             return idsStr.substring(0, idsStr.length() - 1);
         }
         return idsStr.toString();
@@ -134,21 +141,18 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 查询用户所属岗位组
-     * 
+     *
      * @param userName 用户名
      * @return 结果
      */
     @Override
-    public String selectUserPostGroup(String userName)
-    {
+    public String selectUserPostGroup(String userName) {
         List<SysPost> list = postMapper.selectPostsByUserName(userName);
         StringBuffer idsStr = new StringBuffer();
-        for (SysPost post : list)
-        {
+        for (SysPost post : list) {
             idsStr.append(post.getPostName()).append(",");
         }
-        if (StringUtils.isNotEmpty(idsStr.toString()))
-        {
+        if (StringUtils.isNotEmpty(idsStr.toString())) {
             return idsStr.substring(0, idsStr.length() - 1);
         }
         return idsStr.toString();
@@ -156,16 +160,14 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 校验用户名称是否唯一
-     * 
+     *
      * @param userName 用户名称
      * @return 结果
      */
     @Override
-    public String checkUserNameUnique(String userName)
-    {
+    public String checkUserNameUnique(String userName) {
         int count = userMapper.checkUserNameUnique(userName);
-        if (count > 0)
-        {
+        if (count > 0) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -178,12 +180,10 @@ public class SysUserServiceImpl implements ISysUserService
      * @return
      */
     @Override
-    public String checkPhoneUnique(SysUser user)
-    {
+    public String checkPhoneUnique(SysUser user) {
         Long userId = Objects.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
-        if (Objects.nonNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
+        if (Objects.nonNull(info) && info.getUserId().longValue() != userId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -196,12 +196,10 @@ public class SysUserServiceImpl implements ISysUserService
      * @return
      */
     @Override
-    public String checkEmailUnique(SysUser user)
-    {
+    public String checkEmailUnique(SysUser user) {
         Long userId = Objects.isNull(user.getUserId()) ? -1L : user.getUserId();
         SysUser info = userMapper.checkEmailUnique(user.getEmail());
-        if (Objects.nonNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
+        if (Objects.nonNull(info) && info.getUserId().longValue() != userId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -209,28 +207,25 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 校验用户是否允许操作
-     * 
+     *
      * @param user 用户信息
      */
     @Override
-    public void checkUserAllowed(SysUser user)
-    {
-        if (Objects.nonNull(user.getUserId()) && user.isAdmin())
-        {
+    public void checkUserAllowed(SysUser user) {
+        if (Objects.nonNull(user.getUserId()) && user.isAdmin()) {
             throw new BusinessException("不允许操作超级管理员用户");
         }
     }
 
     /**
      * 新增保存用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
     @Transactional
-    public int insertUser(SysUser user)
-    {
+    public int insertUser(SysUser user) {
         // 新增用户信息
         int rows = userMapper.insertUser(user);
         // 新增用户岗位关联
@@ -240,28 +235,39 @@ public class SysUserServiceImpl implements ISysUserService
         return rows;
     }
 
+    /**
+     * 用户点位关联表
+     *
+     * @param userId 用户ID
+     * @param siteId 站点ID
+     */
+    @Override
+    @Transactional
+    public void insertUserSite(int userId, int siteId) {
+        // 新增用户站点
+        userSiteMapper.insertUserSite(null, userId, siteId);
+    }
+
     /**
      * 注册用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public boolean registerUser(SysUser user)
-    {
+    public boolean registerUser(SysUser user) {
         return userMapper.insertUser(user) > 0;
     }
 
     /**
      * 修改保存用户信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
     @Transactional
-    public int updateUser(SysUser user)
-    {
+    public int updateUser(SysUser user) {
         Long userId = user.getUserId();
         // 删除用户与角色关联
         userRoleMapper.deleteUserRoleByUserId(userId);
@@ -276,101 +282,91 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 用户授权角色
-     * 
-     * @param userId 用户ID
+     *
+     * @param userId  用户ID
      * @param roleIds 角色组
      */
     @Override
     @Transactional
-    public void insertUserAuth(Long userId, Long[] roleIds)
-    {
+    public void insertUserAuth(Long userId, Long[] roleIds) {
         userRoleMapper.deleteUserRoleByUserId(userId);
         insertUserRole(userId, roleIds);
     }
 
     /**
      * 修改用户状态
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public int updateUserStatus(SysUser user)
-    {
+    public int updateUserStatus(SysUser user) {
         return userMapper.updateUser(user);
     }
 
     /**
      * 修改用户基本信息
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public int updateUserProfile(SysUser user)
-    {
+    public int updateUserProfile(SysUser user) {
         return userMapper.updateUser(user);
     }
 
     /**
      * 修改用户头像
-     * 
+     *
      * @param userName 用户名
-     * @param avatar 头像地址
+     * @param avatar   头像地址
      * @return 结果
      */
     @Override
-    public boolean updateUserAvatar(String userName, String avatar)
-    {
+    public boolean updateUserAvatar(String userName, String avatar) {
         return userMapper.updateUserAvatar(userName, avatar) > 0;
     }
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param user 用户信息
      * @return 结果
      */
     @Override
-    public int resetPwd(SysUser user)
-    {
+    public int resetPwd(SysUser user) {
         return userMapper.updateUser(user);
     }
 
     /**
      * 重置用户密码
-     * 
+     *
      * @param userName 用户名
      * @param password 密码
      * @return 结果
      */
     @Override
-    public int resetUserPwd(String userName, String password)
-    {
+    public int resetUserPwd(String userName, String password) {
         return userMapper.resetUserPwd(userName, password);
     }
 
     /**
      * 新增用户角色信息
-     * 
+     *
      * @param user 用户对象
      */
-    public void insertUserRole(SysUser user)
-    {
+    public void insertUserRole(SysUser user) {
         Long[] roles = user.getRoleIds();
-        if (Objects.nonNull(roles))
-        {
+        if (Objects.nonNull(roles)) {
             // 新增用户与角色管理
             List<SysUserRole> list = new ArrayList<SysUserRole>();
-            for (Long roleId : roles)
-            {
+            for (Long roleId : roles) {
                 SysUserRole ur = new SysUserRole();
                 ur.setUserId(user.getUserId());
                 ur.setRoleId(roleId);
                 list.add(ur);
             }
-            if (list.size() > 0)
-            {
+            if (list.size() > 0) {
                 userRoleMapper.batchUserRole(list);
             }
         }
@@ -378,25 +374,21 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 新增用户岗位信息
-     * 
+     *
      * @param user 用户对象
      */
-    public void insertUserPost(SysUser user)
-    {
+    public void insertUserPost(SysUser user) {
         Long[] posts = user.getPostIds();
-        if (Objects.nonNull(posts))
-        {
+        if (Objects.nonNull(posts)) {
             // 新增用户与岗位管理
             List<SysUserPost> list = new ArrayList<SysUserPost>();
-            for (Long postId : posts)
-            {
+            for (Long postId : posts) {
                 SysUserPost up = new SysUserPost();
                 up.setUserId(user.getUserId());
                 up.setPostId(postId);
                 list.add(up);
             }
-            if (list.size() > 0)
-            {
+            if (list.size() > 0) {
                 userPostMapper.batchUserPost(list);
             }
         }
@@ -404,25 +396,21 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 新增用户角色信息
-     * 
-     * @param userId 用户ID
+     *
+     * @param userId  用户ID
      * @param roleIds 角色组
      */
-    public void insertUserRole(Long userId, Long[] roleIds)
-    {
-        if (Objects.nonNull(roleIds))
-        {
+    public void insertUserRole(Long userId, Long[] roleIds) {
+        if (Objects.nonNull(roleIds)) {
             // 新增用户与角色管理
             List<SysUserRole> list = new ArrayList<SysUserRole>();
-            for (Long roleId : roleIds)
-            {
+            for (Long roleId : roleIds) {
                 SysUserRole ur = new SysUserRole();
                 ur.setUserId(userId);
                 ur.setRoleId(roleId);
                 list.add(ur);
             }
-            if (list.size() > 0)
-            {
+            if (list.size() > 0) {
                 userRoleMapper.batchUserRole(list);
             }
         }
@@ -430,14 +418,13 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 通过用户ID删除用户
-     * 
+     *
      * @param userId 用户ID
      * @return 结果
      */
     @Override
     @Transactional
-    public int deleteUserById(Long userId)
-    {
+    public int deleteUserById(Long userId) {
         // 删除用户与角色关联
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 删除用户与岗位表
@@ -447,16 +434,14 @@ public class SysUserServiceImpl implements ISysUserService
 
     /**
      * 批量删除用户信息
-     * 
+     *
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
     @Override
     @Transactional
-    public int deleteUserByIds(Long[] userIds)
-    {
-        for (Long userId : userIds)
-        {
+    public int deleteUserByIds(Long[] userIds) {
+        for (Long userId : userIds) {
             checkUserAllowed(new SysUser(userId));
         }
         // 删除用户与角色关联
@@ -466,19 +451,29 @@ public class SysUserServiceImpl implements ISysUserService
         return userMapper.deleteUserByIds(userIds);
     }
 
+    /**
+     * 批量删除用户站点关联表数据
+     *
+     * @param userId 需要删除的用户ID
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int deleteUserByIds(Long userId) {
+        return userSiteMapper.deleteUserSiteById(userId);
+    }
+
     /**
      * 导入用户数据
-     * 
-     * @param userList 用户数据列表
+     *
+     * @param userList        用户数据列表
      * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
-     * @param operName 操作用户
+     * @param operName        操作用户
      * @return 结果
      */
     @Override
-    public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
-    {
-        if (Objects.isNull(userList) || userList.size() == 0)
-        {
+    public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) {
+        if (Objects.isNull(userList) || userList.size() == 0) {
             throw new BusinessException("导入用户数据不能为空!");
         }
         int successNum = 0;
@@ -486,48 +481,36 @@ public class SysUserServiceImpl implements ISysUserService
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
         String password = configService.selectConfigByKey("sys.user.initPassword");
-        for (SysUser user : userList)
-        {
-            try
-            {
+        for (SysUser user : userList) {
+            try {
                 // 验证是否存在这个用户
                 SysUser u = userMapper.selectUserByUserName(user.getUserName());
-                if (Objects.isNull(u))
-                {
+                if (Objects.isNull(u)) {
                     user.setPassword(SecurityUtils.encryptPassword(password));
                     user.setCreateBy(operName);
                     this.insertUser(user);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
-                }
-                else if (isUpdateSupport)
-                {
+                } else if (isUpdateSupport) {
                     user.setUpdateBy(operName);
                     this.updateUser(user);
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
-                }
-                else
-                {
+                } else {
                     failureNum++;
                     failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
                 }
-            }
-            catch (Exception e)
-            {
+            } catch (Exception e) {
                 failureNum++;
                 String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
                 failureMsg.append(msg + e.getMessage());
                 log.error(msg, e);
             }
         }
-        if (failureNum > 0)
-        {
+        if (failureNum > 0) {
             failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
             throw new BusinessException(failureMsg.toString());
-        }
-        else
-        {
+        } else {
             successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
         }
         return successMsg.toString();