From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 27 May 2022 19:48:02 +0800
Subject: [PATCH] Merge branch 'developer' into hive2.0

---
 zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java |  156 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 138 insertions(+), 18 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
index 2f035da..f0dcbb0 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
@@ -1,16 +1,29 @@
 package com.matrix.system.app.action;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.DateUtil;
 import com.matrix.core.tools.WebUtil;
 import com.matrix.system.app.dto.BeauticianDto;
+import com.matrix.system.app.dto.ModifyUserDto;
+import com.matrix.system.app.dto.PwdModifyDto;
+import com.matrix.system.app.dto.UsersQueryDto;
 import com.matrix.system.app.mapper.SysUsersMapper;
+import com.matrix.system.app.mapper.SysWorkBeatuistaffMapper;
 import com.matrix.system.app.vo.BeauticianVo;
 import com.matrix.system.app.vo.UserAchieveVo;
+import com.matrix.system.app.vo.UserInfoDetailVo;
 import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.init.LocalCache;
+import com.matrix.system.common.interceptor.ApiUserLoginInterceptor;
+import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.common.service.SysUsersService;
-import com.matrix.system.hive.bean.SysBeauticianState;
+import com.matrix.system.common.tools.DataAuthUtil;
+import com.matrix.system.common.tools.PasswordUtil;
+import com.matrix.system.hive.action.BaseController;
+import com.matrix.system.hive.bean.SysWorkBeatuistaff;
 import com.matrix.system.hive.service.AchieveNewService;
 import com.matrix.system.hive.service.SysWorkBeatuistaffService;
 import com.matrix.system.hive.service.SysWorktimeService;
@@ -19,11 +32,13 @@
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
-import java.util.ArrayList;
+import javax.servlet.http.HttpServletRequest;
+import java.io.UnsupportedEncodingException;
+import java.security.NoSuchAlgorithmException;
 import java.util.List;
 
 /**
@@ -33,15 +48,22 @@
 @Api(value = "ApiUsersAction", tags = "用户中心接口类")
 @RestController
 @RequestMapping(value = "/api/user")
-public class ApiUsersAction {
+public class ApiUsersAction extends BaseController {
 
     @Autowired
     private AchieveNewService achieveNewService;
-    @Resource
+
+    @Autowired
     private SysWorktimeService sysWorkTimeService;
-    @Resource
+
+    @Autowired
     private SysUsersService sysUsersService;
 
+    @Autowired
+    private SysWorkBeatuistaffService sysWorkBeatuistaffService;
+
+    @Value("${login_private_key}")
+    private  String privateKey;
 
     @ApiOperation(value = "个人中心--获取用户业绩接口 type 1-今日 2-昨天 3-本月 4-上月")
     @ApiResponses({
@@ -55,27 +77,125 @@
         return ajaxResult;
     }
 
-    @ApiOperation(value = "获取美疗师列表")
+    @ApiOperation(value = "获取美疗师列表 - 开始时间结束时间")
     @ApiResponses(
             @ApiResponse(code = 200, message = "Ok", response = BeauticianVo.class)
     )
     @PostMapping(value = "/findBeauticianList")
     public AjaxResult findBeauticianList(@RequestBody @Validated BeauticianDto beauticianDto) {
-        SysBeauticianState sysBeauticianState = new SysBeauticianState();
-        sysBeauticianState.setBeginTime(beauticianDto.getStartTime());
-        sysBeauticianState.setEndTime(beauticianDto.getEndTime());
+//        SysBeauticianState sysBeauticianState = new SysBeauticianState();
+//        sysBeauticianState.setBeginTime(beauticianDto.getStartTime());
+//        sysBeauticianState.setEndTime(beauticianDto.getEndTime());
+//
+//        // 根据时间获取一段排班码
+//        String panBanCodes = DateUtil.dateToString(sysBeauticianState.getBeginTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD);
+//        // 获取登陆的用户
+//        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+//        List<SysUsers> staffs=new ArrayList<>();
+//        if(sysWorkTimeService.isInWorkTime(user.getShopId(),sysBeauticianState.getBeginTime(),sysBeauticianState.getEndTime())){
+//            staffs= sysUsersService.findByCodeBeaStateShop(user.getShopId(),
+//                    sysBeauticianState, panBanCodes);
+//        }
 
-        // 根据时间获取一段排班码
-        String panBanCodes = DateUtil.dateToString(sysBeauticianState.getBeginTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD);
-        // 获取登陆的用户
         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
-        List<SysUsers> staffs=new ArrayList<>();
-        if(sysWorkTimeService.isInWorkTime(user.getShopId(),sysBeauticianState.getBeginTime(),sysBeauticianState.getEndTime())){
-            staffs= sysUsersService.findByCodeBeaStateShop(user.getShopId(),
-                    sysBeauticianState, panBanCodes);
+        String panBanCodes = DateUtil.dateToString(beauticianDto.getStartTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD);
+        List<SysWorkBeatuistaff> workBeauty = sysWorkBeatuistaffService.findByDateStr(panBanCodes, user.getShopId());
+        return new AjaxResult(AjaxResult.STATUS_SUCCESS, SysWorkBeatuistaffMapper.INSTANCE.workBeautysToBeautyVos(workBeauty), 0);
+    }
+
+    @ApiOperation(value = "退出登陆", notes = "退出登陆")
+    @GetMapping(value = "/loginOut")
+    public AjaxResult loginOut(HttpServletRequest request) {
+        String token=ApiUserLoginInterceptor.resolveToken(request,privateKey);
+        LocalCache.remove(token);
+        return AjaxResult.buildSuccessInstance("退出成功");
+    }
+
+    @ApiOperation(value = "小程序退出登陆", notes = "小程序退出登陆")
+    @GetMapping(value = "/xcxloginOut/{code}")
+    public AjaxResult xcxloginOut(HttpServletRequest request, @PathVariable("code") String code) {
+        SysUsers hasBind = sysUsersService.findByOpenId(code, HostInterceptor.getCompanyId());
+        if (hasBind != null) {
+            if(StrUtil.isNotBlank(hasBind.getOpenIds())) {
+                List<String> openIds = StrUtil.split(hasBind.getOpenIds(), ',');
+                openIds.remove(code);
+
+                sysUsersService.modifyUserOpenId(CollUtil.join(openIds, ","), hasBind.getSuId());
+            }
+        }
+        String token=ApiUserLoginInterceptor.resolveToken(request,privateKey);
+        LocalCache.remove(token);
+        return AjaxResult.buildSuccessInstance("退出成功");
+    }
+
+    @ApiOperation(value = "员工列表", notes = "员工列表")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = BeauticianVo.class)
+    })
+    @PostMapping(value = "/findAllUsers")
+    public AjaxResult findAllUsers(@RequestBody UsersQueryDto usersQueryDto) {
+        SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+
+        SysUsers query = new SysUsers();
+        if (DataAuthUtil.hasAllShopAuth()) {
+            query.setCompanyId(sysUsers.getCompanyId());
+        } else {
+            query.setCompanyId(sysUsers.getCompanyId());
+            query.setShopId(sysUsers.getShopId());
+        }
+        query.setSuUserType("employee");
+        query.setSuName(usersQueryDto.getQueryKey());
+        List<SysUsers> list = sysUsersService.findByModel(query);
+        List<BeauticianVo> dataList = SysUsersMapper.INSTANCE.usersListToBeautyList(list);
+        return AjaxResult.buildSuccessInstance(dataList);
+    }
+
+    @ApiOperation(value = "修改密码", notes = "修改密码")
+    @PostMapping(value = "/modifyPwd")
+    public AjaxResult modifyPwd(@RequestBody @Validated PwdModifyDto pwdModifyDto) throws UnsupportedEncodingException, NoSuchAlgorithmException {
+        SysUsers me = getMe();
+        SysUsers user = sysUsersService.findById(me.getSuId());
+
+        SysUsers pwdUser = new SysUsers();
+        pwdUser.setSuPassword(pwdModifyDto.getOldPwd());
+        pwdUser.setSuRegisterTime(user.getSuRegisterTime());
+        String pwd = PasswordUtil.getEncrypUserPwd(pwdUser);
+        if (!pwd.equals(user.getSuPassword())) {
+            return AjaxResult.buildFailInstance("老密码错误");
         }
 
-        return new AjaxResult(AjaxResult.STATUS_SUCCESS, SysUsersMapper.INSTANCE.usersListToBeautyList(staffs), 0);
+        int i = sysUsersService.updateUserPassword(user.getSuId(), pwd);
+        if (i > 0) {
+            return AjaxResult.buildSuccessInstance("修改成功");
+        }
+        return AjaxResult.buildFailInstance("修改失败");
+
+    }
+
+    @ApiOperation(value = "获取当前登陆用户信息", notes = "获取当前登陆用户信息")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = UserInfoDetailVo.class)
+    })
+    @GetMapping(value = "/findUserInfo")
+    public AjaxResult findUserInfo() {
+        SysUsers user = sysUsersService.findById(getMe().getSuId());
+
+        UserInfoDetailVo userInfoDetailVo = SysUsersMapper.INSTANCE.usersToDetailInfoVo(user);
+        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+        ajaxResult.putInMap("detail", userInfoDetailVo);
+        return ajaxResult;
+    }
+
+    @ApiOperation(value = "编辑当前用户信息", notes = "编辑当前用户信息")
+    @PostMapping(value = "/modifyUserInfo")
+    public AjaxResult modifyUserInfo(@RequestBody @Validated ModifyUserDto modifyUserDto) {
+        SysUsers user = SysUsersMapper.INSTANCE.modifyUserDtoToUsers(modifyUserDto);
+        user.setSuId(getMe().getSuId());
+        int i = sysUsersService.modifyByModel(user);
+        if (i > 0) {
+            return AjaxResult.buildSuccessInstance("修改成功");
+        }
+        return AjaxResult.buildFailInstance("修改失败");
     }
 
 }

--
Gitblit v1.9.1