package com.stylefeng.guns.modular.system.controller; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.util.MD5Util; import com.stylefeng.guns.modular.system.model.RoleVo; import com.stylefeng.guns.modular.system.model.UserDto; import com.stylefeng.guns.modular.system.model.UserVo; import com.stylefeng.guns.modular.system.service.IRoleService; import com.stylefeng.guns.modular.system.utils.tips.ErrorTip; import com.stylefeng.guns.modular.system.utils.tips.SuccessTip; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; import com.stylefeng.guns.modular.system.model.User; import com.stylefeng.guns.modular.system.service.IUserService; import java.util.Date; import java.util.List; /** * 控制器 * * @author fengshuonan * @Date 2023-01-06 14:22:05 */ @Controller @Api(tags = "销售") @RequestMapping("/api/user") public class UserController extends BaseController { @Autowired private IUserService userService; @Autowired private IRoleService roleService; /** * 获取列表 */ @ApiOperation(value = "获取销售列表",notes="获取销售列表") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "pageNumber", value = "pageNumber", required = true, dataType = "int",paramType = "query"), @ApiImplicitParam(name = "pageSize", value = "pageSize", required = true, dataType = "int",paramType = "query"), @ApiImplicitParam(name = "account", value = "account", required = false, dataType = "String"), @ApiImplicitParam(name = "name", value = "name", required = false, dataType = "String"), @ApiImplicitParam(name = "roleName", value = "roleName", required = false, dataType = "String"), @ApiImplicitParam(name = "departmentName", value = "departmentName", required = false, dataType = "String"), }) @GetMapping(value = "/list") @ResponseBody public Object list(String account,String name ,String roleName,String departmentName,int pageNumber,int pageSize) { Page userVoPage = new Page<>(pageNumber, pageSize); List list = userService.getList(userVoPage,account,name,roleName,departmentName); userVoPage.setRecords(list); return new SuccessTip(userVoPage); } @ApiOperation(value = "设置提成",notes="设置提成") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "userId", value = "销售id", required = true, dataType = "int"), @ApiImplicitParam(name = "commission", value = "提成", required = true, dataType = "Double"), }) @PostMapping(value = "/setCommission") @ResponseBody public Object setCommission(int userId,Double commission) { try { User user = userService.selectById(userId); user.setCommission(commission); userService.updateById(user); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); return ERROR; } } @ApiOperation(value = "根据销售id获取所在部门角色",notes="根据销售id获取所在部门角色") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "userId", value = "销售id", required = true, dataType = "int"), }) @PostMapping(value = "/getDept") @ResponseBody public Object getDept(int userId) { try { User user = userService.selectById(userId); Integer deptid = user.getDeptid(); List roles = roleService.getDept(deptid); for (RoleVo role : roles) { if(user.getRoleid().equals(role.getId().toString())){ role.setIsRole(2); }else { role.setIsRole(1); } } return roles; }catch (Exception e){ e.printStackTrace(); return ERROR; } } @ApiOperation(value = "设置销售角色",notes="设置销售角色") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "userId", value = "销售id", required = true, dataType = "int"), @ApiImplicitParam(name = "roleId", value = "角色id", required = true, dataType = "int"), }) @PostMapping(value = "/setRoleFromId") @ResponseBody public Object setRoleFromId(int userId,Integer roleId) { try { User user = userService.selectById(userId); user.setRoleid(roleId.toString()); return userService.updateById(user); }catch (Exception e){ e.printStackTrace(); return ERROR; } } /** * 新增 */ @ApiOperation(value = "添加销售",notes="添加销售") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/add") @ResponseBody public Object add(UserDto user) { String encrypt = MD5Util.encrypt(user.getPassword()); user.setPassword(encrypt); User user1 = new User(); BeanUtils.copyProperties(user,user1); user1.setStatus(1); user1.setCreatetime(new Date()); userService.insert(user1); return SUCCESS_TIP; } /** * 删除 */ @ApiOperation(value = "删除销售",notes="删除销售") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "userId", value = "销售id", required = true, dataType = "int"), }) @DeleteMapping(value = "/delete") @ResponseBody public Object delete( Integer userId) { User user = userService.selectById(userId); if(user.getStatus()!=2){ return new ErrorTip(500, "只能删除被冻结状态的账号!"); } user.setStatus(3); userService.updateById(user); return SUCCESS_TIP; } @ApiOperation(value = "冻结/解冻用户",notes="冻结/解冻用户") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "userId", value = "销售id", required = true, dataType = "int"), @ApiImplicitParam(name = "type", value = "2冻结 1解冻", required = true, dataType = "int"), }) @PostMapping(value = "/freezeUser") @ResponseBody public Object freezeUser( Integer userId,Integer type) { User user = userService.selectById(userId); user.setStatus(type); userService.updateById(user); return SUCCESS_TIP; } /** * 修改 */ @ApiOperation(value = "修改销售",notes="修改销售") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) @PostMapping(value = "/update") @ResponseBody public Object update(UserDto user) { if(user.getPassword()!=null && user.getPassword()!=""){ user.setPassword(MD5Util.encrypt(user.getPassword())); } User user1 = new User(); BeanUtils.copyProperties(user,user1); userService.updateById(user1); return SUCCESS_TIP; } /** * 详情 */ @RequestMapping(value = "/detail/{userId}") @ResponseBody public Object detail(@PathVariable("userId") Integer userId) { return userService.selectById(userId); } }