Преглед на файлове

Merge remote-tracking branch 'origin/developerB' into developer

huangzhiguo преди 2 години
родител
ревизия
1f90f7bc76

+ 52 - 8
src/main/java/com/caimei/modules/shiro/controller/MallUserController.java

@@ -6,11 +6,14 @@ import com.caimei.modules.shiro.entity.CmMallAdminUser;
 import com.caimei.modules.shiro.service.MallUserService;
 import com.caimei.utils.JsonModel;
 import com.caimei.utils.ResponseJson;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * Description
@@ -20,6 +23,7 @@ import javax.annotation.Resource;
  */
 @RestController
 @RequestMapping("/other/user")
+@Slf4j
 public class MallUserController {
 
     @Autowired private MallUserService mallUserService;
@@ -28,14 +32,14 @@ public class MallUserController {
 
     /**
      * 后台用户列表
-     * @param page
      * @param cmMallAdminUser
      * @return
      */
     @GetMapping(value = "/getMallUserInfo")
-    public ResponseJson<Page<CmMallAdminUser>> getMallUserInfo(Page page, CmMallAdminUser cmMallAdminUser) {
-        Page<CmMallAdminUser> mallUserInfo = mallUserService.getMallUserInfo(page, cmMallAdminUser);
-        return ResponseJson.success(mallUserInfo);
+    public ResponseJson<Page<CmMallAdminUser>> getMallUserInfo(CmMallAdminUser cmMallAdminUser,
+                                                               @RequestParam(value = "pageNum" , defaultValue = "1") Integer pageNum,
+                                                               @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) {
+        return mallUserService.getMallUserInfo(cmMallAdminUser,pageNum, pageSize);
     }
 
     /**
@@ -55,6 +59,7 @@ public class MallUserController {
         mallUserService.updateUser(status, id);
         return ResponseJson.success();
     }
+
     /**
      * 用户信息回显
      * @param id
@@ -73,21 +78,60 @@ public class MallUserController {
      * @return
      */
     @PostMapping(value = "/saveUser")
-    public ResponseJson saveUser(CmMallAdminUser cmMallAdminUser) {
+    public ResponseJson saveUser(@RequestBody CmMallAdminUser cmMallAdminUser) {
         if (StringUtils.isEmpty(cmMallAdminUser.getPassword())) {
             return ResponseJson.error(-1,"密码不能为空",null);
         }
         if (StringUtils.isEmpty(cmMallAdminUser.getOldPassword())) {
             return ResponseJson.error(-1,"请确认密码",null);
         }
+        String regex = "^[A-Za-z0-9]{8,16}$";
+        Pattern pattern = Pattern.compile(regex);
+        Matcher matcher = pattern.matcher(cmMallAdminUser.getPassword());
+        if (!matcher.matches()) {
+            return ResponseJson.error(-1,"密码格式不正确",null);
+        }
         if (!cmMallAdminUser.getPassword().equals(cmMallAdminUser.getOldPassword())) {
             return ResponseJson.error(-1,"两次密码不一致",null);
         }
-        Integer repeat = mallUserDao.getRepeat(cmMallAdminUser.getAccount(), null);
-        if (null != repeat) {
-            return ResponseJson.error(-1,"用户名已存在,请勿重复添加",null);
+        if (null == cmMallAdminUser.getId()) {
+            Integer repeat = mallUserDao.getRepeat(cmMallAdminUser.getAccount(), null);
+            if (null != repeat) {
+                return ResponseJson.error(-1, "用户名已存在,请勿重复添加", null);
+            }
         }
         mallUserService.saveUser(cmMallAdminUser);
         return ResponseJson.success();
     }
+
+    /**
+     * 重置密码
+     * @param password
+     * @param oldPassword
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @GetMapping(value = "/repeatPassword")
+    public ResponseJson repeatPassword(String password, String oldPassword, Integer id){
+        if (StringUtils.isEmpty(password)) {
+            return ResponseJson.error(-1,"密码不能为空",null);
+        }
+        if (StringUtils.isEmpty(oldPassword)) {
+            return ResponseJson.error(-1,"确认密码不能为空",null);
+        }
+        String regex = "^[a-zA-Z0-9]{8,16}$";
+        Pattern pattern = Pattern.compile(regex);
+        Matcher matcher = pattern.matcher(password);
+        if (matcher.matches()) {
+            return ResponseJson.error(-1,"密码格式不正确",null);
+        }
+        if (!StringUtils.equals(password,oldPassword)) {
+            return ResponseJson.error(-1,"两次密码不相同",null);
+        }
+        if (null == id) {
+            return ResponseJson.error(-1,"用户Id不能为空",null);
+        }
+        return mallUserService.repeatPassword(password, id);
+    }
 }

+ 4 - 0
src/main/java/com/caimei/modules/shiro/controller/ShiroController.java

@@ -30,6 +30,10 @@ public class ShiroController {
         JsonModel jsonModel = JsonModel.newInstance();
         //用户信息
         CmMallAdminUser user = shiroService.findByUsername(adminUser.getAccount());
+        // 账号不存在、账号已下线
+        if (user == null || 2 == user.getStatus()) {
+            return jsonModel.error("账号不存在或账号已下线");
+        }
         //账号不存在、密码错误
         if (user == null || !user.getPassword().equals(MD5Util.md5(adminUser.getPassword() + user.getSalt()))) {
             return jsonModel.error("账号或密码有误");

+ 16 - 0
src/main/java/com/caimei/modules/shiro/entity/CmMallAdminUser.java

@@ -32,10 +32,18 @@ public class CmMallAdminUser {
      * 添加时间
      */
     private Date addTime;
+    /**
+     * 添加时间回显
+     */
+    private String newAddTime;
     /**
      * 更新时间
      */
     private Date updateTime;
+    /**
+     * 更新时间回显
+     */
+    private String newUpdateTime;
     private Set<Role> roles;
     /**
      * 确认密码
@@ -53,4 +61,12 @@ public class CmMallAdminUser {
      * 状态 1 已上线 2 已下线
      */
     private Integer status;
+    /**
+     * 开始时间
+     */
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    private String endTime;
 }

+ 10 - 3
src/main/java/com/caimei/modules/shiro/service/MallUserService.java

@@ -16,14 +16,14 @@ public interface MallUserService {
      * @param cmMallAdminUser
      * @return
      */
-    Page<CmMallAdminUser> getMallUserInfo(Page page, CmMallAdminUser cmMallAdminUser);
+    ResponseJson<Page<CmMallAdminUser>> getMallUserInfo(CmMallAdminUser cmMallAdminUser, Integer pageNum, Integer pageSize);
 
     /**
      * 修改用户上下线状态
      * @param status
      * @param id
      */
-    void updateUser(Integer status,  Integer id);
+    ResponseJson updateUser(Integer status,  Integer id);
     /**
      * 获取用户信息
      * @param id
@@ -35,5 +35,12 @@ public interface MallUserService {
      * 保存用户信息
      * @param cmMallAdminUser
      */
-    void saveUser(CmMallAdminUser cmMallAdminUser);
+    ResponseJson saveUser(CmMallAdminUser cmMallAdminUser);
+
+    /**
+     * 重置密码
+     * @param password
+     * @param id
+     */
+    ResponseJson repeatPassword(String password, Integer id);
 }

+ 36 - 6
src/main/java/com/caimei/modules/shiro/service/impl/MallUserServiceImpl.java

@@ -5,10 +5,13 @@ import com.caimei.modules.shiro.dao.MallUserDao;
 import com.caimei.modules.shiro.entity.CmMallAdminUser;
 import com.caimei.modules.shiro.service.MallUserService;
 import com.caimei.utils.MD5Util;
+import com.caimei.utils.ResponseJson;
 import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
@@ -31,10 +34,16 @@ public class MallUserServiceImpl implements MallUserService {
      * @return
      */
     @Override
-    public Page<CmMallAdminUser> getMallUserInfo(Page page, CmMallAdminUser cmMallAdminUser) {
-        PageHelper.startPage(page.getIndex(),page.getPageSize());
+    public ResponseJson<Page<CmMallAdminUser>> getMallUserInfo(CmMallAdminUser cmMallAdminUser, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum,pageSize);
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<CmMallAdminUser> mallUser = mallUserDao.getMallUserInfo(cmMallAdminUser);
-        return new Page<>(mallUser);
+        mallUser.forEach(u -> {
+            u.setNewAddTime(dateFormat.format(u.getAddTime()));
+            u.setNewUpdateTime(dateFormat.format(u.getUpdateTime()));
+        });
+        Page<CmMallAdminUser> page = new Page<>(mallUser);
+        return ResponseJson.success(page);
     }
 
     /**
@@ -43,8 +52,9 @@ public class MallUserServiceImpl implements MallUserService {
      * @param id
      */
     @Override
-    public void updateUser(Integer status,  Integer id) {
+    public ResponseJson updateUser(Integer status,  Integer id) {
         mallUserDao.updateUser(status, id);
+        return ResponseJson.success();
     }
 
     /**
@@ -67,7 +77,7 @@ public class MallUserServiceImpl implements MallUserService {
      * @param cmMallAdminUser
      */
     @Override
-    public void saveUser(CmMallAdminUser cmMallAdminUser) {
+    public ResponseJson saveUser(CmMallAdminUser cmMallAdminUser) {
 
         // 密码添加  随机盐
         UUID uuid = UUID.randomUUID();
@@ -88,7 +98,27 @@ public class MallUserServiceImpl implements MallUserService {
             // 修改组织后台用户信息
             mallUserDao.updateMallUser(cmMallAdminUser);
         }
+        return ResponseJson.success();
     }
 
-
+    /**
+     * 重置密码
+     * @throws Exception
+     */
+    @Override
+    public ResponseJson repeatPassword(String password, Integer id){
+        CmMallAdminUser cmMallUser = new CmMallAdminUser();
+        // 密码添加  随机盐
+        UUID uuid = UUID.randomUUID();
+        String[] split = uuid.toString().split("-");
+        String newPassword = password + split[0];
+        String s = MD5Util.md5(newPassword);
+        cmMallUser.setId(id);
+        cmMallUser.setPassword(s);
+        cmMallUser.setSalt(split[0]);
+        cmMallUser.setUpdateTime(new Date());
+        // 修改组织后台用户信息
+        mallUserDao.updateMallUser(cmMallUser);
+        return ResponseJson.success();
+    }
 }

+ 6 - 3
src/main/resources/mapper/MallUserMapper.xml

@@ -10,11 +10,12 @@
         status,
         account,
         accountName,
+        personnelType,
         addTime,
         updateTime
         FROM cm_mall_admin_user
         <where>
-            organizeID = #{organizeId} and delFlag = 0 and personnelType = 0
+            organizeID = #{organizeId} and delFlag = 0 and personnelType != 1
             <if test="account != null and account != ''">
                 and account like concat('%',#{account},'%')
             </if>
@@ -31,6 +32,7 @@
                 and addTime <![CDATA[ <= ]]> #{endTime}
             </if>
         </where>
+        order by addTime desc
     </select>
     <select id="getMallUserById" resultType="com.caimei.modules.shiro.entity.CmMallAdminUser">
         SELECT
@@ -39,6 +41,7 @@
             account,
             accountName,
             password,
+            status,
             salt,
             addTime,
             updateTime
@@ -47,7 +50,7 @@
     </select>
     <update id="updateUser">
         update cm_mall_admin_user
-        set status = #{validFlag}
+        set status = #{status}
         where id = #{id}
     </update>
     <select id="getRepeat" resultType="java.lang.Integer">
@@ -82,7 +85,7 @@
             <if test="personnelType != null and personnelType != ''">
                 personnelType = #{personnelType},
             </if>
-            <if test="updateTime != null and updateTime != ''">
+            <if test="updateTime != null">
                 updateTime = #{updateTime},
             </if>
             <if test="salt != null and salt != ''">

+ 3 - 1
src/main/resources/mapper/UserMapper.xml

@@ -10,6 +10,7 @@
                accountName,
                password,
                salt,
+               status,
                organizeID as organizeId,
                addTime,
                updateTime,
@@ -26,6 +27,7 @@
                password,
                salt,
                organizeID as organizeId,
+               personnelType,
                addTime,
                updateTime,
                delFlag
@@ -89,4 +91,4 @@
         WHERE
         id = #{id}
     </update>
-</mapper>
+</mapper>