jyy
2021-01-26 2c25c956ee0dc781500c70c7479c36f8b58f3445
zq-erp/src/main/java/com/matrix/system/app/action/ApiUsersAction.java
@@ -1,17 +1,40 @@
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.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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;
/**
 * @author wzy
@@ -20,13 +43,25 @@
@Api(value = "ApiUsersAction", tags = "用户中心接口类")
@RestController
@RequestMapping(value = "/api/user")
public class ApiUsersAction {
public class ApiUsersAction extends BaseController {
    @Autowired
    private AchieveNewService achieveNewService;
    @Autowired
    private SysWorktimeService sysWorkTimeService;
    @ApiOperation(value = "获取用户业绩接口 type 1-今日 2-昨天 3-本月 4-上月")
    @Autowired
    private SysUsersService sysUsersService;
    @Autowired
    private SysWorkBeatuistaffService sysWorkBeatuistaffService;
    @Autowired
    private RedisClient redisClient;
    @ApiOperation(value = "个人中心--获取用户业绩接口 type 1-今日 2-昨天 3-本月 4-上月")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = UserAchieveVo.class)
    })
@@ -38,5 +73,111 @@
        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() {
        SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        String token = redisClient.getCachedValue(sysUsers.getSuId().toString());
        redisClient.removeObject(token);
        redisClient.removeObject(sysUsers.getSuId().toString());
        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("修改失败");
    }
}