瀏覽代碼

字典管理:字典列表、添加编辑字典、设置字典状态;
权限信息:添加用户、修改用户账户权限、修改用户区域权限、单位下拉列表、添加单位

zhj 2 年之前
父節點
當前提交
4bf57e74ef

+ 3 - 0
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -125,6 +125,9 @@ public enum InterfaceResultEnum {
     EMAIL_UNIQUE_ERROR("0318","邮箱不能重复","The email cannot be repeated","Почтовые ящики не повторяются"),
     SECTION_UNIQUE_ERROR("0319","路段名不能重复","The name of section cannot be repeated","Названия участков дороги нельзя повторять"),
     PERMISSION_DENIED("0320","权限不足,无法操作","Unable to operate due to insufficient permissions","Неадекватный доступ, неоперабельный"),
+    USERNAME_UNIQUE_ERROR("0321","用户名不能重复","The username cannot be repeated","Имя пользователя не может быть повторено"),
+    PHONE_FORMAT_ERROR("0322","请输入正确的手机号码","Please enter the correct mobile number","Пожалуйста, введите правильный номер телефона"),
+    EMAIL_FORMAT_ERROR("0323","邮箱格式错误","Mailbox format error","Ошибка в формате почтового ящика"),
     ;
     private String code;
     private String msgCn;

+ 290 - 33
src/main/java/com/welampiot/controller/UserController.java

@@ -3,18 +3,11 @@ package com.welampiot.controller;
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.common.ResultEnum;
-import com.welampiot.dto.GlobalLocationDTO;
-import com.welampiot.dto.SectionDTO;
-import com.welampiot.dto.UserDTO;
-import com.welampiot.service.GlobalLocationService;
-import com.welampiot.service.SectionService;
-import com.welampiot.service.UserService;
+import com.welampiot.dto.*;
+import com.welampiot.service.*;
 import com.welampiot.utils.MD5Utils;
 import com.welampiot.utils.ToolUtils;
-import com.welampiot.vo.GlobalLocationVO;
-import com.welampiot.vo.ListResponseVO;
-import com.welampiot.vo.LoginVO;
-import com.welampiot.vo.UserVO;
+import com.welampiot.vo.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -41,6 +35,10 @@ public class UserController {
     private GlobalLocationService globalLocationService;
     @Autowired
     private SectionService sectionService;
+    @Autowired
+    private DicInfoService dicInfoService;
+    @Autowired
+    private CompanyService companyService;
 
     /**
      * 登录demo做测试,后续删除
@@ -246,7 +244,7 @@ public class UserController {
         if (md5Pwd.equals(password)) { // 如果相同允许修改
             if (newPwd.length() < 8) // 密码长度不小于8位
                 return toolUtils.response(InterfaceResultEnum.PWD_LENGTH_ERROR,version);
-            if (!ToolUtils.checkPassword(newPwd)) // 密码必须包含字母和数字
+            if (!ToolUtils.checkDataFormat(newPwd,0)) // 密码必须包含字母和数字
                 return toolUtils.response(InterfaceResultEnum.PWD_COMBINE_ERROR,version);
             if (!surePwd.equals(newPwd)) // 确认密码与新密码不一致
                 return toolUtils.response(InterfaceResultEnum.SURE_PASSWORD_ERROR,version);
@@ -286,8 +284,8 @@ public class UserController {
     }
 
     /**
-     * 编辑用户信息
-     * @param request 要编辑的用户信息
+     * 添加编辑用户信息
+     * @param request 要添加编辑的用户信息
      * @return 更新用户信息
      */
     @RequestMapping(value = "save", method = RequestMethod.POST)
@@ -299,32 +297,94 @@ public class UserController {
         Integer department = (Integer) toolUtils.getRequestContent(request,"department",1);
         String avatar = (String) toolUtils.getRequestContent(request,"avatar",2);
         String name = (String) toolUtils.getRequestContent(request,"name",2);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
         String address = (String) toolUtils.getRequestContent(request,"address",2);
         String phone = (String) toolUtils.getRequestContent(request,"phone",2);
         String email = (String) toolUtils.getRequestContent(request,"email",2);
         String remark = (String) toolUtils.getRequestContent(request,"remark",2);
-        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
         if (companyId == 0 || department == 0 || name.length() == 0 || phone.length() == 0 || email.length() == 0)
             return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
-        UserDTO userDTO = new UserDTO();
-        userDTO.setId(id);
-        userDTO.setPhone(phone);
-        if (userService.findUserData(userDTO) > 0)
-            return toolUtils.response(InterfaceResultEnum.PHONE_UNIQUE_ERROR,version);
-        userDTO = new UserDTO();
-        userDTO.setId(id);
-        userDTO.setEmail(email);
-        if (userService.findUserData(userDTO) > 0)
-            return toolUtils.response(InterfaceResultEnum.EMAIL_UNIQUE_ERROR,version);
-        userDTO.setCompanyId(companyId);
-        userDTO.setSex(sex);
-        userDTO.setDepartment(department);
-        userDTO.setAvatar(avatar);
-        userDTO.setName(name);
-        userDTO.setPhone(phone);
-        userDTO.setRemark(remark);
-        userDTO.setAddress(address);
-        userService.updateUserData(userDTO);
+
+        if (id == 0) { // 添加
+            String userName = (String) toolUtils.getRequestContent(request,"userName",2);
+            String password = (String) toolUtils.getRequestContent(request,"password",2);
+            String zones = (String) toolUtils.getRequestContent(request,"zones",2);
+            String privilege = (String) toolUtils.getRequestContent(request,"privilege",2);
+            Integer type = (Integer) toolUtils.getRequestContent(request,"type",1);
+            if (userName.length() == 0 || password.length() == 0)
+                return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+            if (password.length() < 8) // 密码长度不小于8位
+                return toolUtils.response(InterfaceResultEnum.PWD_LENGTH_ERROR,version);
+            if (!ToolUtils.checkDataFormat(password,0)) // 密码必须包含字母和数字
+                return toolUtils.response(InterfaceResultEnum.PWD_COMBINE_ERROR,version);
+            if (!ToolUtils.checkDataFormat(phone,1)) // 检查手机格式
+                return toolUtils.response(InterfaceResultEnum.PHONE_FORMAT_ERROR,version);
+            if (!ToolUtils.checkDataFormat(email,2)) // 检查邮箱格式
+                return toolUtils.response(InterfaceResultEnum.EMAIL_FORMAT_ERROR,version);
+            UserDTO userDTO = new UserDTO();
+            userDTO.setPhone(phone);
+            if (userService.findUserData(userDTO) > 0)
+                return toolUtils.response(InterfaceResultEnum.PHONE_UNIQUE_ERROR,version);
+            userDTO = new UserDTO();
+            userDTO.setEmail(email);
+            if (userService.findUserData(userDTO) > 0)
+                return toolUtils.response(InterfaceResultEnum.EMAIL_UNIQUE_ERROR,version);
+            userDTO = new UserDTO();
+            userDTO.setUsername(userName);
+            if (userService.findUserData(userDTO) > 0)
+                return toolUtils.response(InterfaceResultEnum.USERNAME_UNIQUE_ERROR,version);
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String format = simpleDateFormat.format(l);
+            UserDTO dto = userService.queryUserIdByUsername(username);
+            if (dto == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+            String encoderMD5 = MD5Utils.encoderMD5(password);
+            String companyName = companyService.getCompanyNameById(companyId);
+            userDTO.setCompany(companyName);
+            userDTO.setParentId(dto.getId());
+            userDTO.setRole(dto.getRole() + 1);
+            userDTO.setRegTime(format);
+            userDTO.setPassword(encoderMD5);
+            userDTO.setCompanyId(companyId);
+            userDTO.setSex(sex);
+            userDTO.setDepartment(department);
+            userDTO.setAvatar(avatar);
+            userDTO.setName(name);
+            userDTO.setPhone(phone);
+            userDTO.setRemark(remark);
+            userDTO.setAddress(address);
+            userDTO.setZoneList(zones);
+            userDTO.setPrivilegeList(privilege);
+            if (type == 0) {
+                userService.addUserData(userDTO);
+            }
+        } else { // 编辑
+            UserDTO userDTO = new UserDTO();
+            userDTO.setId(id);
+            userDTO.setPhone(phone);
+            if (!ToolUtils.checkDataFormat(phone,1)) // 检查手机格式
+                return toolUtils.response(InterfaceResultEnum.PHONE_FORMAT_ERROR,version);
+            if (!ToolUtils.checkDataFormat(email,2)) // 检查邮箱格式
+                return toolUtils.response(InterfaceResultEnum.EMAIL_FORMAT_ERROR,version);
+            if (userService.findUserData(userDTO) > 0)
+                return toolUtils.response(InterfaceResultEnum.PHONE_UNIQUE_ERROR,version);
+            userDTO = new UserDTO();
+            userDTO.setId(id);
+            userDTO.setEmail(email);
+            if (userService.findUserData(userDTO) > 0)
+                return toolUtils.response(InterfaceResultEnum.EMAIL_UNIQUE_ERROR,version);
+            String companyName = companyService.getCompanyNameById(companyId);
+            userDTO.setCompany(companyName);
+            userDTO.setCompanyId(companyId);
+            userDTO.setSex(sex);
+            userDTO.setDepartment(department);
+            userDTO.setAvatar(avatar);
+            userDTO.setName(name);
+            userDTO.setPhone(phone);
+            userDTO.setRemark(remark);
+            userDTO.setAddress(address);
+            userService.updateUserData(userDTO);
+        }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
 
@@ -385,4 +445,201 @@ public class UserController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 字典列表
+     * @param request 类型搜索,分页
+     * @return 字典列表
+     */
+    @RequestMapping(value = "/dicList", method = RequestMethod.POST)
+    public BaseResult<?> dicList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String name = (String) toolUtils.getRequestContent(request,"name",2);
+        String type = (String) toolUtils.getRequestContent(request,"type",2);
+        Integer status = (Integer) toolUtils.getRequestContent(request,"status",1);
+        int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
+        int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
+        DicInfoVO dicInfoVO = new DicInfoVO();
+        dicInfoVO.setType(type);
+        dicInfoVO.setStatus(status);
+        dicInfoVO.setPage(count * (page - 1));
+        dicInfoVO.setCount(count);
+        dicInfoVO.setName(name);
+        List<DicInfoDTO> dicInfoList = dicInfoService.getDicInfoList(dicInfoVO);
+        DicInfoVO vo = new DicInfoVO();
+        vo.setTotal(dicInfoService.getDicInfoTotal());
+        vo.setList(dicInfoList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
+    }
+
+    /**
+     * 添加编辑字典
+     * @param request 添加编辑字典的相关信息
+     * @return 更新字典数据
+     */
+    @RequestMapping(value = "/saveDic", method = RequestMethod.POST)
+    public BaseResult<?> saveDic(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        String name = (String) toolUtils.getRequestContent(request,"name",2);
+        String type = (String) toolUtils.getRequestContent(request,"type",2);
+        String remark = (String) toolUtils.getRequestContent(request,"remark",2);
+        String value = (String) toolUtils.getRequestContent(request,"value",2);
+        if (name.length() == 0 || type.length() == 0 || remark.length() == 0 || value.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+        DicInfoDTO dicInfoDTO = new DicInfoDTO();
+        dicInfoDTO.setName(name);
+        dicInfoDTO.setType(type);
+        dicInfoDTO.setRemark(remark);
+        dicInfoDTO.setValue(value);
+        if (id == 0) { // 添加
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String format = simpleDateFormat.format(l);
+            dicInfoDTO.setCreateTime(format);
+            dicInfoService.addDicInfoData(dicInfoDTO);
+        } else { // 编辑
+            dicInfoDTO.setId(id);
+            dicInfoService.updateDicInfoData(dicInfoDTO);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 设置字典状态
+     * @param request 字典id,字典状态
+     * @return 更新字典状态
+     */
+    @RequestMapping(value = "/setDicStatus", method = RequestMethod.POST)
+    public BaseResult<?> setDicStatus(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer status = (Integer) toolUtils.getRequestContent(request,"status",1);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        if (username.length() == 0 || id == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        UserDTO userDTO = userService.queryUserIdByUsername(username);
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        if (userDTO.getRole() == 1) { // 只有超管可以修改
+            DicInfoDTO dicInfoDTO = new DicInfoDTO();
+            dicInfoDTO.setId(id);
+            dicInfoDTO.setStatus(status);
+            dicInfoService.updateDicStatus(dicInfoDTO);
+        } else {
+            return toolUtils.response(InterfaceResultEnum.PERMISSION_DENIED,version);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 修改用户账户权限
+     * @param request 子账号id
+     * @return 修改用户权限
+     */
+    @RequestMapping(value = "/changeAuth", method = RequestMethod.POST)
+    public BaseResult<?> changeAuth(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        String authIds = (String) toolUtils.getRequestContent(request,"authIds",2);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        if (username.length() == 0 || id == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        UserDTO userDTO = userService.queryUserIdByUsername(username);
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        Integer parentId = userService.getParentIdById(id);
+        if (userDTO.getRole() == 1 || Objects.equals(userDTO.getId(),parentId)) {
+            UserDTO dto = new UserDTO();
+            dto.setId(id);
+            dto.setPrivilegeList(authIds);
+            userService.updateUserAuth(dto);
+        } else {
+            return toolUtils.response(InterfaceResultEnum.PERMISSION_DENIED,version);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 修改用户区域权限
+     * @param request 子账号id
+     * @return 修改用户权限
+     */
+    @RequestMapping(value = "/changeArea", method = RequestMethod.POST)
+    public BaseResult<?> changeArea(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        String areaIds = (String) toolUtils.getRequestContent(request,"areaIds",2);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        if (username.length() == 0 || id == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        UserDTO userDTO = userService.queryUserIdByUsername(username);
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        Integer parentId = userService.getParentIdById(id);
+        if (userDTO.getRole() == 1 || Objects.equals(userDTO.getId(),parentId)) {
+            UserDTO dto = new UserDTO();
+            dto.setId(id);
+            dto.setZoneList(areaIds);
+            userService.updateUserArea(dto);
+        } else {
+            return toolUtils.response(InterfaceResultEnum.PERMISSION_DENIED,version);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 单位下拉列表
+     * @param request 用户名
+     * @return 单位下拉列表
+     */
+    @RequestMapping(value = "/companyList", method = RequestMethod.POST)
+    public BaseResult<?> companyList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String company = (String) toolUtils.getRequestContent(request,"company",2);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        if (username.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        UserDTO userDTO = userService.queryUserIdByUsername(username);
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        List<CompanyDTO> companyList;
+        CompanyVO companyVO = new CompanyVO();
+        companyVO.setUserid(userDTO.getId());
+        companyVO.setCompany(company);
+        if (userDTO.getRole() == 1) {
+            companyList = companyService.getAllCompanyList(companyVO);
+        } else {
+            companyList = companyService.getCompanyList(companyVO);
+        }
+        CompanyVO vo = new CompanyVO();
+        vo.setList(companyList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
+    }
+
+    /**
+     * 添加单位
+     * @param request 单位名
+     * @return 更新单位数据
+     */
+    @RequestMapping(value = "/saveCompany", method = RequestMethod.POST)
+    public BaseResult<?> saveCompany(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String company = (String) toolUtils.getRequestContent(request,"company",2);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        if (username.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        if (company.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+        UserDTO userDTO = userService.queryUserIdByUsername(username);
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        long l = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(l);
+        CompanyDTO companyDTO = new CompanyDTO();
+        companyDTO.setUserid(userDTO.getId());
+        companyDTO.setCreateTime(format);
+        companyDTO.setName(company);
+        companyService.addCompanyData(companyDTO);
+        Integer id = companyDTO.getId();
+        CompanyVO companyVO = new CompanyVO();
+        companyVO.setId(id);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,companyVO);
+    }
 }

+ 26 - 0
src/main/java/com/welampiot/dao/CompanyDao.java

@@ -0,0 +1,26 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.CompanyDTO;
+import com.welampiot.vo.CompanyVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ClassName: CompanyDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 16:03
+ * @Version: v1.0
+ */
+public interface CompanyDao {
+    String getCompanyNameById(@Param("id") Integer id);
+
+    List<CompanyDTO> getCompanyList(CompanyVO vo);
+
+    List<CompanyDTO> getAllCompanyList(CompanyVO vo);
+
+    void addCompanyData(CompanyDTO dto);
+}

+ 27 - 0
src/main/java/com/welampiot/dao/DicInfoDao.java

@@ -0,0 +1,27 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.DicInfoDTO;
+import com.welampiot.vo.DicInfoVO;
+
+import java.util.List;
+
+/**
+ * ClassName: DicInfoDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 9:48
+ * @Version: v1.0
+ */
+public interface DicInfoDao {
+    List<DicInfoDTO> getDicInfoList(DicInfoVO vo);
+
+    Integer getDicInfoTotal();
+
+    void addDicInfoData(DicInfoDTO dto);
+
+    void updateDicInfoData(DicInfoDTO dto);
+
+    void updateDicStatus(DicInfoDTO dto);
+}

+ 3 - 0
src/main/java/com/welampiot/dao/UserDao.java

@@ -32,4 +32,7 @@ public interface UserDao {
     void deleteUserData(@Param("id") Integer id);
     Integer getParentIdById(@Param("id") Integer id);
     void updateUserStatus(UserDTO dto);
+    void addUserData(UserDTO dto);
+    void updateUserAuth(UserDTO dto);
+    void updateUserArea(UserDTO dto);
 }

+ 25 - 0
src/main/java/com/welampiot/dto/CompanyDTO.java

@@ -0,0 +1,25 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: CompanyDTO
+ * Package: com.welampiot.dto
+ * Description: 单位管理
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 15:59
+ * @Version: v1.0
+ */
+@Data
+public class CompanyDTO implements Serializable {
+    private Integer id;
+
+    private String name; // 单位名称
+
+    private String createTime;
+
+    private Integer userid;
+}

+ 33 - 0
src/main/java/com/welampiot/dto/DicInfoDTO.java

@@ -0,0 +1,33 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: DicInfoDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 9:31
+ * @Version: v1.0
+ */
+@Data
+public class DicInfoDTO implements Serializable {
+    private Integer id;
+
+    private String name; // 字典名称
+
+    private String type; // 字典类型
+
+    private Integer status; // 字典状态
+
+    private String remark; // 备注
+
+    private String createTime; // 创建时间
+
+    private String value;
+
+    private static final long SerialVersionUID = 1L;
+}

+ 2 - 0
src/main/java/com/welampiot/dto/UserDTO.java

@@ -31,9 +31,11 @@ public class UserDTO implements UserDetails, Serializable {
     private String phone;
     private Integer companyId;
     private String email;
+    private String regTime;
     private Integer sex;
     private String remark;
     private Integer department;
+    private Integer parentId;
     private String roleStr;
     private Integer page;
     private Integer count;

+ 25 - 0
src/main/java/com/welampiot/service/CompanyService.java

@@ -0,0 +1,25 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.CompanyDTO;
+import com.welampiot.vo.CompanyVO;
+
+import java.util.List;
+
+/**
+ * ClassName: CompanyService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 16:04
+ * @Version: v1.0
+ */
+public interface CompanyService {
+    String getCompanyNameById(Integer id);
+
+    List<CompanyDTO> getCompanyList(CompanyVO vo);
+
+    List<CompanyDTO> getAllCompanyList(CompanyVO vo);
+
+    void addCompanyData(CompanyDTO dto);
+}

+ 27 - 0
src/main/java/com/welampiot/service/DicInfoService.java

@@ -0,0 +1,27 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.DicInfoDTO;
+import com.welampiot.vo.DicInfoVO;
+
+import java.util.List;
+
+/**
+ * ClassName: DicInfoService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 9:49
+ * @Version: v1.0
+ */
+public interface DicInfoService {
+    List<DicInfoDTO> getDicInfoList(DicInfoVO vo);
+
+    Integer getDicInfoTotal();
+
+    void addDicInfoData(DicInfoDTO dto);
+
+    void updateDicInfoData(DicInfoDTO dto);
+
+    void updateDicStatus(DicInfoDTO dto);
+}

+ 3 - 0
src/main/java/com/welampiot/service/UserService.java

@@ -31,4 +31,7 @@ public interface UserService {
     void deleteUserData(Integer id);
     Integer getParentIdById(Integer id);
     void updateUserStatus(UserDTO dto);
+    void addUserData(UserDTO dto);
+    void updateUserAuth(UserDTO dto);
+    void updateUserArea(UserDTO dto);
 }

+ 45 - 0
src/main/java/com/welampiot/service/impl/CompanyServiceImpl.java

@@ -0,0 +1,45 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.CompanyDao;
+import com.welampiot.dto.CompanyDTO;
+import com.welampiot.service.CompanyService;
+import com.welampiot.vo.CompanyVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: CompanyServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 16:05
+ * @Version: v1.0
+ */
+@Service
+public class CompanyServiceImpl implements CompanyService {
+    @Autowired
+    private CompanyDao companyDao;
+
+    @Override
+    public String getCompanyNameById(Integer id) {
+        return companyDao.getCompanyNameById(id);
+    }
+
+    @Override
+    public List<CompanyDTO> getCompanyList(CompanyVO vo) {
+        return companyDao.getCompanyList(vo);
+    }
+
+    @Override
+    public List<CompanyDTO> getAllCompanyList(CompanyVO vo) {
+        return companyDao.getAllCompanyList(vo);
+    }
+
+    @Override
+    public void addCompanyData(CompanyDTO dto) {
+        companyDao.addCompanyData(dto);
+    }
+}

+ 50 - 0
src/main/java/com/welampiot/service/impl/DicInfoServiceImpl.java

@@ -0,0 +1,50 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.DicInfoDao;
+import com.welampiot.dto.DicInfoDTO;
+import com.welampiot.service.DicInfoService;
+import com.welampiot.vo.DicInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: DicInfoServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 9:50
+ * @Version: v1.0
+ */
+@Service
+public class DicInfoServiceImpl implements DicInfoService {
+    @Autowired
+    private DicInfoDao dicInfoDao;
+
+    @Override
+    public List<DicInfoDTO> getDicInfoList(DicInfoVO vo) {
+        return dicInfoDao.getDicInfoList(vo);
+    }
+
+    @Override
+    public Integer getDicInfoTotal() {
+        return dicInfoDao.getDicInfoTotal();
+    }
+
+    @Override
+    public void addDicInfoData(DicInfoDTO dto) {
+        dicInfoDao.addDicInfoData(dto);
+    }
+
+    @Override
+    public void updateDicInfoData(DicInfoDTO dto) {
+        dicInfoDao.updateDicInfoData(dto);
+    }
+
+    @Override
+    public void updateDicStatus(DicInfoDTO dto) {
+        dicInfoDao.updateDicStatus(dto);
+    }
+}

+ 15 - 0
src/main/java/com/welampiot/service/impl/UserServiceImpl.java

@@ -139,4 +139,19 @@ public class UserServiceImpl implements UserService {
     public void updateUserStatus(UserDTO dto) {
         userDao.updateUserStatus(dto);
     }
+
+    @Override
+    public void addUserData(UserDTO dto) {
+        userDao.addUserData(dto);
+    }
+
+    @Override
+    public void updateUserAuth(UserDTO dto) {
+        userDao.updateUserAuth(dto);
+    }
+
+    @Override
+    public void updateUserArea(UserDTO dto) {
+        userDao.updateUserAuth(dto);
+    }
 }

+ 13 - 5
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -51,6 +51,8 @@ public class ToolUtils {
     private MqttHandler mqttHandler;
 
     private static final String PATTERN = "^(?=.*[0-9])(?=.*[a-zA-Z]).{8,20}$";
+    private static final String PATTERN_PHONE = "^1[3-9]\\d{9}$";
+    private static final String PATTERN_EMAIL = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";
 
     /**
      * 获取用户所有路段 id
@@ -492,7 +494,7 @@ public class ToolUtils {
 
     /**
      * 通过控制器型号名称获取型号id
-     * @param id
+     * @param name
      * @return
      */
     public Integer getLampControlIdByName(String name){
@@ -540,13 +542,19 @@ public class ToolUtils {
     }
 
     /**
-     * 检查密码组合是否包含字母和数字
-     * @param pwd 密码
+     * 检查密码、手机号码、邮箱格式是否正确
+     * @param dataFormat 0:密码,1:手机,2:邮箱
      * @return true、false
      */
-    public static Boolean checkPassword(String pwd) {
+    public static Boolean checkDataFormat(String dataFormat, Integer type) {
         boolean isFlag;
-        isFlag = Pattern.matches(PATTERN, pwd);
+        if (type == 2) { // 邮箱
+            isFlag = Pattern.matches(PATTERN_EMAIL, dataFormat);
+        } else if (type == 1) { // 手机
+            isFlag = Pattern.matches(PATTERN_PHONE, dataFormat);
+        } else { // 密码
+            isFlag = Pattern.matches(PATTERN, dataFormat);
+        }
         return isFlag;
     }
 }

+ 27 - 0
src/main/java/com/welampiot/vo/CompanyVO.java

@@ -0,0 +1,27 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.CompanyDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: CompanyVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 17:48
+ * @Version: v1.0
+ */
+@Data
+public class CompanyVO implements Serializable {
+    private String company;
+
+    private Integer userid;
+
+    private Integer id;
+
+    private List<CompanyDTO> list;
+}

+ 33 - 0
src/main/java/com/welampiot/vo/DicInfoVO.java

@@ -0,0 +1,33 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.DicInfoDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: DicInfoVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/7 - 9:46
+ * @Version: v1.0
+ */
+@Data
+public class DicInfoVO implements Serializable {
+    private Integer page;
+
+    private Integer count;
+
+    private String name;
+
+    private String type;
+
+    private Integer status;
+
+    private Integer total;
+
+    private List<DicInfoDTO> list;
+}

+ 33 - 0
src/main/resources/mapper/CompanyMapper.xml

@@ -0,0 +1,33 @@
+<?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.welampiot.dao.CompanyDao">
+
+    <select id="getCompanyNameById" resultType="String">
+        select c.name
+        from company c
+        where c.id = #{id}
+    </select>
+
+    <select id="getCompanyList" resultType="CompanyDTO">
+        select c.name,c.id
+        from company c
+        where c.user_id = #{userid}
+        <if test="company != null and company != ''">
+            and c.name like '%${company}%'
+        </if>
+    </select>
+
+    <select id="getAllCompanyList" resultType="CompanyDTO">
+        select c.name,c.id
+        from company c
+        <if test="company != null and company != ''">
+            where c.name like '%${company}%'
+        </if>
+    </select>
+
+    <insert id="addCompanyData" parameterType="CompanyDTO" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO company(`name`, createtime, user_id)
+        VALUES (#{name},#{createTime},#{userid})
+    </insert>
+
+</mapper>

+ 55 - 0
src/main/resources/mapper/DicInfoMapper.xml

@@ -0,0 +1,55 @@
+<?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.welampiot.dao.DicInfoDao">
+
+    <select id="getDicInfoList" resultType="DicInfoDTO">
+        select d.name,d.id,d.type,d.value,d.status,d.remark,d.create_time
+        from dic_info d
+        where 1=1
+        <if test="name != null and name != ''">
+            and d.name like '%${name}%'
+        </if>
+        <if test="type != null and type != ''">
+            and d.type like '%${type}%'
+        </if>
+        <choose>
+            <when test="status == 1">
+                and d.status = 1
+            </when>
+            <when test="status == 0">
+                and d.status = 0
+            </when>
+        </choose>
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getDicInfoTotal" resultType="Integer">
+        select count(d.id)
+        from dic_info d
+    </select>
+
+    <insert id="addDicInfoData" parameterType="DicInfoDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into dic_info(`name`,type,remark,`value`,create_time)
+        values (#{name},#{type},#{remark},#{value},#{createTime})
+    </insert>
+
+    <update id="updateDicInfoData" parameterType="DicInfoDTO">
+        update dic_info d
+        set
+            d.value = #{value},
+            d.name = #{name},
+            d.remark = #{remark},
+            d.type = #{type}
+        where d.id = #{id}
+    </update>
+
+    <update id="updateDicStatus" parameterType="DicInfoDTO">
+        update dic_info d
+        set
+            d.status = #{status}
+        where d.id = #{id}
+    </update>
+
+</mapper>

+ 45 - 0
src/main/resources/mapper/UserMapper.xml

@@ -246,6 +246,7 @@
             </if>
             u.name = #{name},
             u.company_id = #{companyId},
+            u.company = #{company},
             u.mobile = #{phone},
             u.address = #{address},
             u.email = #{email},
@@ -259,6 +260,33 @@
         where u.id = #{id}
     </update>
 
+    <insert id="addUserData" parameterType="UserDTO" keyProperty="id" useGeneratedKeys="true">
+        insert into user(username, `password`, company, address, email, mobile,
+                         parent_id, `role`, privilege_list, reg_time, zone_list,
+                         `name`, department
+                         <if test="avatar != null and avatar != ''">
+                            ,avatar
+                         </if>
+                         <if test="sex != null">
+                            ,sex
+                         </if>
+                         <if test="remark != null and remark != ''">
+                            ,remark
+                         </if> ,company_id)
+        VALUES (#{username},#{password},#{company},#{address},#{email},#{phone},
+                #{paretnId},#{role},#{privilegeList},#{regTime},#{zoneList},#{name},
+                #{department}
+                <if test="avatar != null and avatar != ''">
+                    ,#{avatar}
+                </if>
+                <if test="sex != null">
+                    ,#{sex}
+                </if>
+                <if test="remark != null and remark != ''">
+                    ,#{remark}
+                </if>,#{companyId})
+    </insert>
+
     <select id="findUserData" resultType="Integer">
         select
             count(*)
@@ -273,6 +301,9 @@
         <if test="email != null and email != ''">
             and u.email = #{email}
         </if>
+        <if test="username != null and username != ''">
+            and u.username = #{username}
+        </if>
     </select>
 
     <delete id="deleteUserData">
@@ -293,5 +324,19 @@
             u.status = #{status}
         where u.id = #{id}
     </update>
+
+    <update id="updateUserAuth" parameterType="UserDTO">
+        update user u
+        set
+            u.privilege_list = #{privilegeList}
+        where u.id = #{id}
+    </update>
+
+    <update id="updateUserArea" parameterType="UserDTO">
+        update user u
+        set
+            u.zone_list = #{zoneList}
+        where u.id = #{id}
+    </update>
     
 </mapper>