| package com.matrix.system.app.action; | 
|   | 
| import com.matrix.component.redis.RedisClient; | 
| 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.*; | 
| import com.matrix.system.app.mapper.SysBeauticianStateMapper; | 
| 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.interceptor.ApiUserLoginInterceptor; | 
| import com.matrix.system.common.service.SysUsersService; | 
| 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.SysBeauticianState; | 
| 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; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| 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 javax.servlet.http.HttpServletRequest; | 
| import java.io.UnsupportedEncodingException; | 
| import java.security.NoSuchAlgorithmException; | 
| import java.util.ArrayList; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @date 2020-12-21 | 
|  **/ | 
| @Api(value = "ApiUsersAction", tags = "用户中心接口类") | 
| @RestController | 
| @RequestMapping(value = "/api/user") | 
| public class ApiUsersAction extends BaseController { | 
|   | 
|     @Autowired | 
|     private AchieveNewService achieveNewService; | 
|   | 
|     @Autowired | 
|     private SysWorktimeService sysWorkTimeService; | 
|   | 
|     @Autowired | 
|     private SysUsersService sysUsersService; | 
|   | 
|     @Autowired | 
|     private SysWorkBeatuistaffService sysWorkBeatuistaffService; | 
|   | 
|     @Autowired | 
|     private RedisClient redisClient; | 
|     @Value("${login_private_key}") | 
|     private  String privateKey; | 
|   | 
|     @ApiOperation(value = "个人中心--获取用户业绩接口 type 1-今日 2-昨天 3-本月 4-上月") | 
|     @ApiResponses({ | 
|             @ApiResponse(code = 200, message = "ok", response = UserAchieveVo.class) | 
|     }) | 
|     @GetMapping(value = "/findUserAchieve/{type}") | 
|     public AjaxResult findUserAchieve(@PathVariable("type") Integer type) { | 
|         UserAchieveVo achieveVo = achieveNewService.findUserAchieveByTime(type); | 
|         AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功"); | 
|         ajaxResult.putInMap("achieve", achieveVo); | 
|         return ajaxResult; | 
|     } | 
|   | 
|     @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()); | 
| // | 
| //        // 根据时间获取一段排班码 | 
| //        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); | 
| //        } | 
|   | 
|         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|         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); | 
|         redisClient.removeObject(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("老密码错误"); | 
|         } | 
|   | 
|         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("修改失败"); | 
|     } | 
|   | 
| } |