Преглед изворни кода

个人资料:修改密码,编辑用户信息,添加路段,编辑路段,删除路段,批量添加编辑路段,删除子账户,停用、启用子账户

zhj пре 2 година
родитељ
комит
d8e7eafe68

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

@@ -116,6 +116,15 @@ public enum InterfaceResultEnum {
     PATROL_TASK_SPOT_DISTANCE_ERROR("0309","距离太远,打卡失败","The distance is so far that the punch card fails","Слишком далеко, чтобы пробить пропуск"),
     LACK_WORK_ID_ERROR("0310","维修人员id不能为空","The maintenance personnel id cannot be empty","Техподдержка не должна быть пуста"),
     LACK_COM_TIME_ERROR("0311","目标完成时间不能为空","The target completion time cannot be empty","Время достижения цели не должно быть пустым"),
+    PWD_LENGTH_ERROR("0312","密码长度不能少于8位","The password contains a maximum of 8 characters","Длина пароля не может быть меньше 8 бит"),
+    PWD_COMBINE_ERROR("0313","密码中必须包含数字和字母","The password must contain both numbers and letters","В пароле должны быть цифры и буквы"),
+    SURE_PASSWORD_ERROR("0314","确认密码与新密码不一致","Verify that the password is inconsistent with the new password","Подтвердите, что код не совпадает с новым"),
+    PASSWORD_ERROR("0315","密码不正确","The password is error","Неправильный пароль"),
+    LACK_NEED_PARAM("0316","不能为空","Can not be empty","Не пустой"),
+    PHONE_UNIQUE_ERROR("0317","电话号码不能重复","The phone number cannot be repeated","Номер не может быть повторен"),
+    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","Неадекватный доступ, неоперабельный"),
     ;
     private String code;
     private String msgCn;

+ 159 - 1
src/main/java/com/welampiot/controller/UserController.java

@@ -18,13 +18,13 @@ import com.welampiot.vo.UserVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 @RestController
 @CrossOrigin
@@ -227,4 +227,162 @@ public class UserController {
         userVO.setList(list);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,userVO);
     }
+
+    /**
+     * 修改密码
+     * @param request 用户名
+     * @return 更新用户密码
+     */
+    @RequestMapping(value = "changePassword", method = RequestMethod.POST)
+    public BaseResult<?> changePassword(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        String oldPwd = (String) toolUtils.getRequestContent(request,"oldPwd",2);
+        String surePwd = (String) toolUtils.getRequestContent(request,"surePwd",2);
+        String newPwd = (String) toolUtils.getRequestContent(request,"newPwd",2);
+        if (username.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String password = userService.getPasswordByUsername(username);
+        String md5Pwd = MD5Utils.encoderMD5(oldPwd);
+        if (md5Pwd.equals(password)) { // 如果相同允许修改
+            if (newPwd.length() < 8) // 密码长度不小于8位
+                return toolUtils.response(InterfaceResultEnum.PWD_LENGTH_ERROR,version);
+            if (!ToolUtils.checkPassword(newPwd)) // 密码必须包含字母和数字
+                return toolUtils.response(InterfaceResultEnum.PWD_COMBINE_ERROR,version);
+            if (!surePwd.equals(newPwd)) // 确认密码与新密码不一致
+                return toolUtils.response(InterfaceResultEnum.SURE_PASSWORD_ERROR,version);
+            String encoderMD5 = MD5Utils.encoderMD5(newPwd);
+            UserDTO userDTO = new UserDTO();
+            userDTO.setPassword(encoderMD5);
+            userDTO.setUsername(username);
+            userService.updatePassword(userDTO);
+            return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+        } else { // 密码不正确
+            return toolUtils.response(InterfaceResultEnum.PASSWORD_ERROR,version);
+        }
+    }
+
+    /**
+     * 查看区域
+     * @param request 上级区域id
+     * @return 五级区域下拉
+     */
+    @RequestMapping(value = "areaList", method = RequestMethod.POST)
+    public BaseResult<?> areaList(HttpServletRequest request) {
+        int version = (int) toolUtils.getRequestContent(request,"version",1);
+        int pid = (int) toolUtils.getRequestContent(request,"pid",1);
+        List<GlobalLocationDTO> list = new ArrayList<>();
+        if (pid == 0) {
+            GlobalLocationDTO dto = new GlobalLocationDTO();
+            dto.setPid(0);
+            dto.setLevel(1);
+            dto.setVersion(version);
+            List<GlobalLocationDTO> countryList = globalLocationService.getLocationListByDTO(dto);
+        } else {
+            GlobalLocationDTO locationDTO = globalLocationService.getAreaById(pid, version);
+        }
+        GlobalLocationVO globalLocationVO = new GlobalLocationVO();
+        globalLocationVO.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,globalLocationVO);
+    }
+
+    /**
+     * 编辑用户信息
+     * @param request 要编辑的用户信息
+     * @return 更新用户信息
+     */
+    @RequestMapping(value = "save", method = RequestMethod.POST)
+    public BaseResult<?> save(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer companyId = (Integer) toolUtils.getRequestContent(request,"companyId",1);
+        Integer sex = (Integer) toolUtils.getRequestContent(request,"sex",1);
+        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 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);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 删除子账户
+     * @param request 用户id
+     * @return 删除数据
+     */
+    @RequestMapping(value = "del", method = RequestMethod.POST)
+    public BaseResult<?> del(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        Integer userid = (Integer) toolUtils.getRequestContent(request,"userid",1);
+        if (userid == 0 || 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);
+        if (userDTO.getRole() == 1) { // 超管可以为所欲为
+            userService.deleteUserData(userid);
+        } else { // 其他人得提升一下钞能力
+            Integer parentId = userService.getParentIdById(userid);
+            if (Objects.equals(userDTO.getId(),parentId)) {
+                userService.deleteUserData(userid);
+            } else {
+                return toolUtils.response(InterfaceResultEnum.PERMISSION_DENIED,version);
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 停用、启用子账户
+     * @param request 用户id
+     * @return 更新状态
+     */
+    @RequestMapping(value = "changeStatus", method = RequestMethod.POST)
+    public BaseResult<?> changeStatus(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer status = (Integer) toolUtils.getRequestContent(request,"status",1);
+        if (id == 0 || 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);
+        UserDTO dto = new UserDTO();
+        dto.setId(id);
+        dto.setStatus(status);
+        if (userDTO.getRole() == 1) { // 超管可以为所欲为
+            userService.updateUserStatus(dto);
+        } else { // 其他人得提升一下钞能力
+            Integer parentId = userService.getParentIdById(id);
+            if (Objects.equals(userDTO.getId(),parentId)) {
+                userService.updateUserStatus(dto);
+            } else {
+                return toolUtils.response(InterfaceResultEnum.PERMISSION_DENIED,version);
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 148 - 0
src/main/java/com/welampiot/controller/ZoneController.java

@@ -0,0 +1,148 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.SectionDTO;
+import com.welampiot.service.GlobalLocationService;
+import com.welampiot.service.SectionService;
+import com.welampiot.utils.ToolUtils;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
+
+/**
+ * ClassName: ZoneController
+ * Package: com.welampiot.controller
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/7/6 - 15:49
+ * @Version: v1.0
+ */
+@RestController
+@CrossOrigin
+@RequestMapping("/zone")
+public class ZoneController {
+    @Autowired
+    private SectionService sectionService;
+
+    @Autowired
+    private ToolUtils toolUtils;
+
+    @Autowired
+    private GlobalLocationService globalLocationService;
+
+    /**
+     * 添加路段
+     * @param request 路段名
+     * @return 添加数据
+     */
+    @RequestMapping(value = "add", method = RequestMethod.POST)
+    public BaseResult<?> add(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer pid = (Integer) toolUtils.getRequestContent(request,"pid",1);
+        String name = (String) toolUtils.getRequestContent(request,"name",2);
+        if (pid == 0 || name.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+        SectionDTO sectionDTO = new SectionDTO();
+        sectionDTO.setPid(pid);
+        sectionDTO.setName(name);
+        if (sectionService.checkNameRepeated(sectionDTO) > 0)
+            return toolUtils.response(InterfaceResultEnum.SECTION_UNIQUE_ERROR,version);
+        long l = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(l);
+        sectionDTO.setCreateTime(format);
+        Integer timezone = globalLocationService.getAreaTimezoneById(pid);
+        sectionDTO.setTimezone(timezone);
+        sectionService.addSectionData(sectionDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 编辑路段
+     * @param request 路段名
+     * @return 更新数据
+     */
+    @RequestMapping(value = "update", method = RequestMethod.POST)
+    public BaseResult<?> update(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);
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        if (name.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+        Integer pid = sectionService.getSectionPidById(id);
+        SectionDTO sectionDTO = new SectionDTO();
+        sectionDTO.setId(id);
+        sectionDTO.setPid(pid);
+        sectionDTO.setName(name);
+        if (sectionService.checkNameRepeated(sectionDTO) > 0)
+            return toolUtils.response(InterfaceResultEnum.SECTION_UNIQUE_ERROR,version);
+        sectionService.updateSectionData(sectionDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 删除路段
+     * @param request 路段id
+     * @return 删除数据
+     */
+    @RequestMapping(value = "del", method = RequestMethod.POST)
+    public BaseResult<?> del(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        sectionService.deleteSectionDataById(id);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 批量添加编辑路段
+     * @param request 路段上级id
+     * @return 更新路段数据
+     */
+    @RequestMapping(value = "saveArea", method = RequestMethod.POST)
+    public BaseResult<?> saveArea(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer pid = (Integer) toolUtils.getRequestContent(request,"pid",1);
+        String sectionData = (String) toolUtils.getRequestContent(request,"sectionData",2);
+        if (pid == 0 || sectionData.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        JSONArray jsonArray = new JSONArray(sectionData);
+        for (int i = 0; i < jsonArray.length(); i ++) {
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            String id = jsonObject.getString("id");
+            String name = jsonObject.getString("name");
+            if (name.length() == 0)
+                return toolUtils.response(InterfaceResultEnum.LACK_NEED_PARAM,version);
+            SectionDTO sectionDTO = new SectionDTO();
+            sectionDTO.setPid(pid);
+            sectionDTO.setName(name);
+            if (id.length() == 0) { // 添加
+                if (sectionService.checkNameRepeated(sectionDTO) > 0)
+                    return toolUtils.response(InterfaceResultEnum.SECTION_UNIQUE_ERROR,version);
+                long l = System.currentTimeMillis();
+                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String format = simpleDateFormat.format(l);
+                sectionDTO.setCreateTime(format);
+                Integer timezone = globalLocationService.getAreaTimezoneById(pid);
+                sectionDTO.setTimezone(timezone);
+                sectionService.addSectionData(sectionDTO);
+            } else { // 编辑
+                sectionDTO.setId(Integer.valueOf(id));
+                if (sectionService.checkNameRepeated(sectionDTO) > 0)
+                    return toolUtils.response(InterfaceResultEnum.SECTION_UNIQUE_ERROR,version);
+                sectionService.updateSectionData(sectionDTO);
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+}

+ 8 - 0
src/main/java/com/welampiot/dao/GlobalLocationDao.java

@@ -26,4 +26,12 @@ public interface GlobalLocationDao {
     GlobalLocationDTO getOneById(@Param("id") Integer id);
 
     GlobalLocationDTO getAreaById(@Param("id") Integer id, @Param("version") Integer version);
+
+    List<GlobalLocationDTO> getLocationListByPid(@Param("pid") Integer pid, @Param("version") Integer version);
+
+    List<GlobalLocationDTO> getLocationListByDTO(GlobalLocationDTO dto);
+
+    List<Integer> getPidList(@Param("level") Integer level);
+
+    Integer getAreaTimezoneById(@Param("id") Integer id);
 }

+ 5 - 0
src/main/java/com/welampiot/dao/SectionDao.java

@@ -13,4 +13,9 @@ public interface SectionDao {
     SectionDTO getOneById(@Param("id") Integer id);
     List<SectionDTO> getPidBySectionList(SectionDTO dto);
     List<SectionDTO> getSectionListByDTO(SectionDTO dto);
+    void addSectionData(SectionDTO dto);
+    Integer checkNameRepeated(SectionDTO dto);
+    Integer getSectionPidById(@Param("id") Integer id);
+    void updateSectionData(SectionDTO dto);
+    void deleteSectionDataById(@Param("id") Integer id);
 }

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

@@ -25,4 +25,11 @@ public interface UserDao {
     UserDTO queryUserIdByUsername(@Param("username") String username);
     List<UserDTO> getAllUserListByUserDTO(UserDTO dto);
     String getNameByUserid(@Param("id") Integer id);
+    String getPasswordByUsername(@Param("username") String username);
+    void updatePassword(UserDTO dto);
+    Integer findUserData(UserDTO dto);
+    void updateUserData(UserDTO dto);
+    void deleteUserData(@Param("id") Integer id);
+    Integer getParentIdById(@Param("id") Integer id);
+    void updateUserStatus(UserDTO dto);
 }

+ 5 - 0
src/main/java/com/welampiot/dto/GlobalLocationDTO.java

@@ -52,8 +52,13 @@ public class GlobalLocationDTO implements Serializable {
     private String name1;
     private String name2;
     private String name3;
+    private Integer version;
+    private List<Integer> pidList;
 
     private List<SectionDTO> sectionList;
+    private List<GlobalLocationDTO> provinceList;
+    private List<GlobalLocationDTO> cityList;
+    private List<GlobalLocationDTO> areaList;
 
     private static final long serialVersionUID = 1L;
 }

+ 2 - 3
src/main/java/com/welampiot/dto/SectionDTO.java

@@ -3,7 +3,6 @@ package com.welampiot.dto;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -45,7 +44,7 @@ public class SectionDTO implements Serializable {
     private Integer illuminanceCount;
 
     /** 创建时间 **/
-    private Date createTime;
+    private String createTime;
 
     /** 时区 **/
     private Integer timezone;
@@ -63,7 +62,7 @@ public class SectionDTO implements Serializable {
     private String sunset;
 
     /** 日出日落更新时间 **/
-    private Date sunUpdateTime;
+    private String sunUpdateTime;
 
     private List<Integer> sectionList;
 

+ 4 - 0
src/main/java/com/welampiot/service/GlobalLocationService.java

@@ -26,4 +26,8 @@ public interface GlobalLocationService {
     List<GlobalLocationDTO> getUserAreaNav(GlobalLocationVO globalLocationVO);
     GlobalLocationDTO getOneById(@Param("id") Integer id);
     GlobalLocationDTO getAreaById(Integer id, Integer version);
+    List<GlobalLocationDTO> getLocationListByPid(Integer pid, Integer version);
+    List<GlobalLocationDTO> getLocationListByDTO(GlobalLocationDTO dto);
+    List<Integer> getPidList(Integer level);
+    Integer getAreaTimezoneById(Integer id);
 }

+ 5 - 0
src/main/java/com/welampiot/service/SectionService.java

@@ -14,4 +14,9 @@ public interface SectionService {
     SectionDTO getOneById(@Param("id") Integer id);
     List<SectionDTO> getPidBySectionList(SectionDTO dto);
     List<SectionDTO> getSectionListByDTO(SectionDTO dto);
+    void addSectionData(SectionDTO dto);
+    Integer checkNameRepeated(SectionDTO dto);
+    Integer getSectionPidById(Integer id);
+    void updateSectionData(SectionDTO dto);
+    void deleteSectionDataById(Integer id);
 }

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

@@ -24,4 +24,11 @@ public interface UserService {
     UserDTO queryUserIdByUsername(String username);
     List<UserDTO> getAllUserListByUserDTO(UserDTO dto);
     String getNameByUserid(Integer id);
+    String getPasswordByUsername(String username);
+    void updatePassword(UserDTO dto);
+    Integer findUserData(UserDTO dto);
+    void updateUserData(UserDTO dto);
+    void deleteUserData(Integer id);
+    Integer getParentIdById(Integer id);
+    void updateUserStatus(UserDTO dto);
 }

+ 20 - 0
src/main/java/com/welampiot/service/impl/GlobalLocationServiceImpl.java

@@ -164,4 +164,24 @@ public class GlobalLocationServiceImpl implements GlobalLocationService {
     public GlobalLocationDTO getAreaById(Integer id, Integer version) {
         return globalLocationDao.getAreaById(id,version);
     }
+
+    @Override
+    public List<GlobalLocationDTO> getLocationListByPid(Integer pid, Integer version) {
+        return globalLocationDao.getLocationListByPid(pid,version);
+    }
+
+    @Override
+    public List<GlobalLocationDTO> getLocationListByDTO(GlobalLocationDTO dto) {
+        return globalLocationDao.getLocationListByDTO(dto);
+    }
+
+    @Override
+    public List<Integer> getPidList(Integer level) {
+        return globalLocationDao.getPidList(level);
+    }
+
+    @Override
+    public Integer getAreaTimezoneById(Integer id) {
+        return globalLocationDao.getAreaTimezoneById(id);
+    }
 }

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

@@ -38,4 +38,29 @@ public class SectionServiceImpl implements SectionService {
     public List<SectionDTO> getSectionListByDTO(SectionDTO dto) {
         return sectionDao.getSectionListByDTO(dto);
     }
+
+    @Override
+    public void addSectionData(SectionDTO dto) {
+        sectionDao.addSectionData(dto);
+    }
+
+    @Override
+    public Integer checkNameRepeated(SectionDTO dto) {
+        return sectionDao.checkNameRepeated(dto);
+    }
+
+    @Override
+    public Integer getSectionPidById(Integer id) {
+        return sectionDao.getSectionPidById(id);
+    }
+
+    @Override
+    public void updateSectionData(SectionDTO dto) {
+        sectionDao.updateSectionData(dto);
+    }
+
+    @Override
+    public void deleteSectionDataById(Integer id) {
+        sectionDao.deleteSectionDataById(id);
+    }
 }

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

@@ -104,4 +104,39 @@ public class UserServiceImpl implements UserService {
     public String getNameByUserid(Integer id) {
         return userDao.getNameByUserid(id);
     }
+
+    @Override
+    public String getPasswordByUsername(String username) {
+        return userDao.getPasswordByUsername(username);
+    }
+
+    @Override
+    public void updatePassword(UserDTO dto) {
+        userDao.updatePassword(dto);
+    }
+
+    @Override
+    public Integer findUserData(UserDTO dto) {
+        return userDao.findUserData(dto);
+    }
+
+    @Override
+    public void updateUserData(UserDTO dto) {
+        userDao.updateUserData(dto);
+    }
+
+    @Override
+    public void deleteUserData(Integer id) {
+        userDao.deleteUserData(id);
+    }
+
+    @Override
+    public Integer getParentIdById(Integer id) {
+        return userDao.getParentIdById(id);
+    }
+
+    @Override
+    public void updateUserStatus(UserDTO dto) {
+        userDao.updateUserStatus(dto);
+    }
 }

+ 14 - 0
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -33,6 +33,7 @@ import java.net.URL;
 import java.net.URLConnection;
 import java.text.DecimalFormat;
 import java.util.*;
+import java.util.regex.Pattern;
 import java.util.zip.CRC32;
 
 @Component
@@ -49,6 +50,8 @@ public class ToolUtils {
     @Autowired
     private MqttHandler mqttHandler;
 
+    private static final String PATTERN = "^(?=.*[0-9])(?=.*[a-zA-Z]).{8,20}$";
+
     /**
      * 获取用户所有路段 id
      * @param request
@@ -535,4 +538,15 @@ public class ToolUtils {
         GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
         return geoCurve.getEllipsoidalDistance();
     }
+
+    /**
+     * 检查密码组合是否包含字母和数字
+     * @param pwd 密码
+     * @return true、false
+     */
+    public static Boolean checkPassword(String pwd) {
+        boolean isFlag;
+        isFlag = Pattern.matches(PATTERN, pwd);
+        return isFlag;
+    }
 }

+ 47 - 0
src/main/resources/mapper/GlobalLocationMapper.xml

@@ -109,4 +109,51 @@
         from global_location g
         where g.id = #{id}
     </select>
+    
+    <select id="getLocationListByPid" parameterType="GlobalLocationDTO">
+        select g.id
+                <choose>
+                    <when test="version == 0">
+                        ,g.chinese_name as `name`
+                    </when>
+                    <when test="version == 1">
+                        ,g.english_name as `name`
+                    </when>
+                    <otherwise>
+                        ,g.ru_name as `name`
+                    </otherwise>
+                </choose>
+        from global_location g
+        where g.pid = #{pid}
+    </select>
+
+    <select id="getLocationListByDTO" resultType="GlobalLocationDTO">
+        select g.id
+        <choose>
+            <when test="version == 0">
+                ,g.chinese_name as `name`
+            </when>
+            <when test="version == 1">
+                ,g.english_name as `name`
+            </when>
+            <otherwise>
+                ,g.ru_name as `name`
+            </otherwise>
+        </choose>
+        from global_location g
+        where g.level = #{level} and g.pid = #{pid}
+    </select>
+
+    <select id="getPidList" resultType="java.util.List">
+        select g.id
+        from global_location g
+        where g.level = #{level}
+    </select>
+
+    <select id="getAreaTimezoneById" resultType="Integer">
+        select g.timezone
+        from global_location g
+        where g.id = #{id}
+    </select>
+    
 </mapper>

+ 34 - 0
src/main/resources/mapper/SectionMapper.xml

@@ -51,4 +51,38 @@
             </foreach>
         </if>
     </select>
+
+    <insert id="addSectionData" parameterType="SectionDTO" keyProperty="id" useGeneratedKeys="true">
+        insert into section(pid,`name`,createtime,timezone)
+        values (#{pid},#{name},#{createTime},#{timezone})
+    </insert>
+
+    <select id="checkNameRepeated" resultType="Integer">
+        select
+            count(*)
+        from section s
+        where s.pid = #{pid} and s.name = #{name}
+        <if test="id != null and id != 0">
+            and s.id != #{id}
+        </if>
+    </select>
+
+    <update id="updateSectionData" parameterType="SectionDTO">
+        update section s
+        set
+            s.name = #{name}
+        where s.id = #{id}
+    </update>
+
+    <select id="getSectionPidById" resultType="Integer">
+        select s.pid
+        from section s
+        where s.id = #{id}
+    </select>
+
+    <delete id="deleteSectionDataById">
+        delete
+        from section
+        where id = #{id};
+    </delete>
 </mapper>

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

@@ -224,5 +224,74 @@
         from user u
         where u.id = #{id}
     </select>
+
+    <select id="getPasswordByUsername" resultType="String">
+        select u.password
+        from user u
+        where u.username = #{username}
+    </select>
+
+    <update id="updatePassword" parameterType="UserDTO">
+        update user u
+        set
+            u.password = #{password}
+        where u.username = #{username}
+    </update>
+
+    <update id="updateUserData" parameterType="UserDTO">
+        update user u
+        set
+            <if test="avatar != null and avatar != ''">
+                u.avatar = #{avatar},
+            </if>
+            u.name = #{name},
+            u.company_id = #{companyId},
+            u.mobile = #{phone},
+            u.address = #{address},
+            u.email = #{email},
+            <if test="sex != null">
+                u.sex = #{sex},
+            </if>
+            <if test="remark != null and remark != ''">
+                u.remark = #{remark},
+            </if>
+            u.department = #{department}
+        where u.id = #{id}
+    </update>
+
+    <select id="findUserData" resultType="Integer">
+        select
+            count(*)
+        from user u
+        where 1=1
+        <if test="id != null and id != 0">
+            and u.id != #{id}
+        </if>
+        <if test="phone != null and phone != ''">
+            and u.mobile = #{phone}
+        </if>
+        <if test="email != null and email != ''">
+            and u.email = #{email}
+        </if>
+    </select>
+
+    <delete id="deleteUserData">
+        delete
+        from user
+        where id = #{id};
+    </delete>
+
+    <select id="getParentIdById" resultType="Integer">
+        select u.parent_id
+        from user u
+        where u.id = #{id}
+    </select>
+
+    <update id="updateUserStatus" parameterType="UserDTO">
+        update user u
+        set
+            u.status = #{status}
+        where u.id = #{id}
+    </update>
     
 </mapper>