|  |  |  | 
|---|
|  |  |  | package com.ruoyi.system.controller; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson2.JSON; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
|---|
|  |  |  | import com.ruoyi.account.api.feignClient.AppUserClient; | 
|---|
|  |  |  | import com.ruoyi.account.api.feignClient.AppUserShopClient; | 
|---|
|  |  |  | import com.ruoyi.account.api.model.AppUser; | 
|---|
|  |  |  | import com.ruoyi.account.api.model.AppUserShop; | 
|---|
|  |  |  | import com.ruoyi.common.core.domain.R; | 
|---|
|  |  |  | import com.ruoyi.common.core.utils.StringUtils; | 
|---|
|  |  |  | import com.ruoyi.common.core.web.controller.BaseController; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.ruoyi.common.log.annotation.Log; | 
|---|
|  |  |  | import com.ruoyi.common.log.enums.BusinessType; | 
|---|
|  |  |  | import com.ruoyi.common.security.annotation.InnerAuth; | 
|---|
|  |  |  | import com.ruoyi.common.security.service.TokenService; | 
|---|
|  |  |  | import com.ruoyi.common.security.utils.MD5Generator; | 
|---|
|  |  |  | import com.ruoyi.common.security.utils.SecurityUtils; | 
|---|
|  |  |  | import com.ruoyi.system.api.domain.SysDept; | 
|---|
|  |  |  | import com.ruoyi.system.api.domain.SysRole; | 
|---|
|  |  |  | 
|---|
|  |  |  | import io.seata.spring.annotation.GlobalTransactional; | 
|---|
|  |  |  | import io.swagger.annotations.Api; | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.commons.lang3.ArrayUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.validation.annotation.Validated; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import java.time.LocalDateTime; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @RestController | 
|---|
|  |  |  | @RequestMapping("/user") | 
|---|
|  |  |  | @Api(tags = "用户信息") | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class SysUserController extends BaseController { | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ISysUserService userService; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserShopService userShopService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private TokenService tokenService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ISysMenuService menuService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private AppUserClient appUserClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private AppUserShopClient appUserShopClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * 获取用户列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @GetMapping("/list") | 
|---|
|  |  |  | @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult list(GetSysUserList getSysUserList) { | 
|---|
|  |  |  | PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize()); | 
|---|
|  |  |  | PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList); | 
|---|
|  |  |  | 
|---|
|  |  |  | * 获取用户选择列表 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/getChangeUserList") | 
|---|
|  |  |  | @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表"}) | 
|---|
|  |  |  | @ApiOperation(value = "获取用户选择列表", tags = {"管理后台-获取用户选择列表", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult<PageInfo<SysUser>> getChangeUserList(@RequestBody ChangeUserQuery query) { | 
|---|
|  |  |  | return AjaxResult.success(userService.getChangeUserList(query)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Log(title = "用户管理", businessType = BusinessType.INSERT) | 
|---|
|  |  |  | @PostMapping("/add") | 
|---|
|  |  |  | @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult add(@RequestBody SysUser user) { | 
|---|
|  |  |  | user.setUserName(user.getPhonenumber()); | 
|---|
|  |  |  | Long userid = tokenService.getLoginUser().getUserid(); | 
|---|
|  |  |  | SysUser sysUser1 = userService.getById(userid); | 
|---|
|  |  |  | if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ | 
|---|
|  |  |  | user.setNickName(user.getPhonenumber()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { | 
|---|
|  |  |  | return error("手机号已开通账号"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (StringUtils.isNotEmpty(user.getNickName()) && !userService.checkNickNameUnique(user)) { | 
|---|
|  |  |  | return error("登录账号重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | user.setCreateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword("a123456")); | 
|---|
|  |  |  | user.setRoleType(1); | 
|---|
|  |  |  | userService.insertUser(user); | 
|---|
|  |  |  | SysUserRole sysUserRole = new SysUserRole(); | 
|---|
|  |  |  | sysUserRole.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | sysUserRole.setUserId(user.getUserId()); | 
|---|
|  |  |  | userRoleService.insertSysUserRole(sysUserRole); | 
|---|
|  |  |  | //门店员工添加数据,需要判断账号是否存在,共用同一个账号 | 
|---|
|  |  |  | if(2 == sysUser1.getRoleType()){ | 
|---|
|  |  |  | AppUser appUser = appUserClient.getAppUserByPhone1(user.getPhonenumber()).getData(); | 
|---|
|  |  |  | if(null == appUser){ | 
|---|
|  |  |  | return error("请先注册小程序账号"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SysUser one2 = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, user.getPhonenumber()) | 
|---|
|  |  |  | .eq(SysUser::getDelFlag, "0").eq(SysUser::getStatus, "0").eq(SysUser::getObjectId, sysUser1.getObjectId()) | 
|---|
|  |  |  | .eq(SysUser::getRoleType, 2)); | 
|---|
|  |  |  | if(null != one2){ | 
|---|
|  |  |  | return error("登录账号重复"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SysUser one = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUserName, user.getPhonenumber()) | 
|---|
|  |  |  | .eq(SysUser::getDelFlag, "0").eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2)); | 
|---|
|  |  |  | if(null == one){ | 
|---|
|  |  |  | user.setCreateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | user.setRoleType(sysUser1.getRoleType()); | 
|---|
|  |  |  | user.setObjectId(sysUser1.getObjectId()); | 
|---|
|  |  |  | if(null != appUser){ | 
|---|
|  |  |  | user.setAppUserId(appUser.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userService.insertUser(user); | 
|---|
|  |  |  | one = user; | 
|---|
|  |  |  | SysUserRole sysUserRole = new SysUserRole(); | 
|---|
|  |  |  | sysUserRole.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | sysUserRole.setUserId(user.getUserId()); | 
|---|
|  |  |  | userRoleService.insertSysUserRole(sysUserRole); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //添加小程序店员关系数据 | 
|---|
|  |  |  | if(null != appUser){ | 
|---|
|  |  |  | List<AppUserShop> data = appUserShopClient.getAppUserShop(appUser.getId()).getData(); | 
|---|
|  |  |  | Optional<AppUserShop> first = data.stream().filter(s -> s.getShopId().equals(sysUser1.getObjectId())).findFirst(); | 
|---|
|  |  |  | if(!first.isPresent()){ | 
|---|
|  |  |  | AppUserShop appUserShop = new AppUserShop(); | 
|---|
|  |  |  | appUserShop.setAppUserId(appUser.getId()); | 
|---|
|  |  |  | appUserShop.setShopId(sysUser1.getObjectId()); | 
|---|
|  |  |  | appUserShop.setRoleType(2); | 
|---|
|  |  |  | appUserShopClient.saveAppUserShop(appUserShop); | 
|---|
|  |  |  | appUser.setUserType(2); | 
|---|
|  |  |  | appUserClient.editAppUserById(appUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //添加门店员工关系数据 | 
|---|
|  |  |  | UserShop one1 = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, one.getUserId()).eq(UserShop::getShopId, sysUser1.getObjectId())); | 
|---|
|  |  |  | if(null == one1){ | 
|---|
|  |  |  | UserShop userShop = new UserShop(); | 
|---|
|  |  |  | userShop.setUserId(one.getUserId()); | 
|---|
|  |  |  | userShop.setShopId(sysUser1.getObjectId()); | 
|---|
|  |  |  | userShop.setRoleType(2); | 
|---|
|  |  |  | userShop.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | userShop.setDeptId(user.getDeptId()); | 
|---|
|  |  |  | userShop.setNickName(user.getNickName()); | 
|---|
|  |  |  | userShop.setCreateTime(LocalDateTime.now()); | 
|---|
|  |  |  | userShopService.save(userShop); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | user.setCreateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | user.setRoleType(sysUser1.getRoleType()); | 
|---|
|  |  |  | userService.insertUser(user); | 
|---|
|  |  |  | SysUserRole sysUserRole = new SysUserRole(); | 
|---|
|  |  |  | sysUserRole.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | sysUserRole.setUserId(user.getUserId()); | 
|---|
|  |  |  | userRoleService.insertSysUserRole(sysUserRole); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据用户编号获取详细信息 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | @GetMapping("/getInfo/{userId}") | 
|---|
|  |  |  | public AjaxResult getInfo(@PathVariable Long userId) { | 
|---|
|  |  |  | userService.checkUserDataScope(userId); | 
|---|
|  |  |  | 
|---|
|  |  |  | ajax.put("posts", postService.selectPostAll()); | 
|---|
|  |  |  | if (StringUtils.isNotNull(userId)) { | 
|---|
|  |  |  | SysUser sysUser = userService.selectUserById(userId); | 
|---|
|  |  |  | if(sysUser.getRoleType() == 2){ | 
|---|
|  |  |  | Long userid = tokenService.getLoginUser().getUserid(); | 
|---|
|  |  |  | SysUser sysUser1 = userService.selectUserById(userid); | 
|---|
|  |  |  | UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, sysUser.getUserId()).eq(UserShop::getShopId, sysUser1.getObjectId())); | 
|---|
|  |  |  | sysUser.setDeptId(one.getDeptId()); | 
|---|
|  |  |  | sysUser.setNickName(one.getNickName()); | 
|---|
|  |  |  | SysDept sysDept = deptService.selectDeptById(one.getDeptId()); | 
|---|
|  |  |  | sysUser.setDept(sysDept); | 
|---|
|  |  |  | sysUser.setRoleId(one.getRoleId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ajax.put("data", sysUser); | 
|---|
|  |  |  | ajax.put("postIds", postService.selectPostListByUserId(userId)); | 
|---|
|  |  |  | ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Log(title = "用户管理", businessType = BusinessType.UPDATE) | 
|---|
|  |  |  | @PutMapping("/update") | 
|---|
|  |  |  | @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult edit(@Validated @RequestBody SysUser user) { | 
|---|
|  |  |  | user.setUserName(user.getPhonenumber()); | 
|---|
|  |  |  | if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ | 
|---|
|  |  |  | 
|---|
|  |  |  | user.setUpdateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | if (user.getPassword() != null && !"".equals(user.getPassword())) { | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | user.setPassWordUpdate(new Date()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (user.getPhonenumber() != null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | user.setUpdateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | user.setUpdateTime(new Date()); | 
|---|
|  |  |  | userService.updateUser(user); | 
|---|
|  |  |  | user = userService.getById(user.getUserId()); | 
|---|
|  |  |  | //添加门店员工关系数据 | 
|---|
|  |  |  | if(2 == user.getRoleType()){ | 
|---|
|  |  |  | UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, user.getObjectId())); | 
|---|
|  |  |  | one.setUserId(user.getUserId()); | 
|---|
|  |  |  | one.setShopId(user.getObjectId()); | 
|---|
|  |  |  | one.setRoleType(one.getRoleType()); | 
|---|
|  |  |  | one.setRoleId(user.getRoleId()); | 
|---|
|  |  |  | one.setDeptId(user.getDeptId()); | 
|---|
|  |  |  | one.setNickName(user.getNickName()); | 
|---|
|  |  |  | userShopService.updateById(one); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Log(title = "用户管理", businessType = BusinessType.DELETE) | 
|---|
|  |  |  | @DeleteMapping("/{userIds}") | 
|---|
|  |  |  | @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult remove(@PathVariable Long[] userIds) { | 
|---|
|  |  |  | if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { | 
|---|
|  |  |  | return error("当前用户不能删除"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return toAjax(userService.deleteUserByIds(userIds)); | 
|---|
|  |  |  | userService.deleteUserByIds(userIds); | 
|---|
|  |  |  | return AjaxResult.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/shopUserStart") | 
|---|
|  |  |  | @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult shopUserStart(@RequestBody ShopUserStart shopUserStart) { | 
|---|
|  |  |  | if (shopUserStart.getUserId() == null) { | 
|---|
|  |  |  | return AjaxResult.error("userId不能为空"); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 角色集合 | 
|---|
|  |  |  | Set<String> roles = permissionService.getRolePermission(sysUser); | 
|---|
|  |  |  | // 权限集合 | 
|---|
|  |  |  | // 权限集合getRolePermission | 
|---|
|  |  |  | Set<String> permissions = permissionService.getMenuPermission(sysUser); | 
|---|
|  |  |  | LoginUser sysUserVo = new LoginUser(); | 
|---|
|  |  |  | sysUserVo.setSysUser(sysUser); | 
|---|
|  |  |  | sysUserVo.setRoles(roles); | 
|---|
|  |  |  | sysUserVo.setPermissions(permissions); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok(sysUserVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 门店登录使用 | 
|---|
|  |  |  | * @param username | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @InnerAuth | 
|---|
|  |  |  | @GetMapping("/infoShop/{username}") | 
|---|
|  |  |  | public R<LoginUser> infoShop(@PathVariable("username") String username) { | 
|---|
|  |  |  | SysUser sysUser = userService.selectUserShopByUserName(username); | 
|---|
|  |  |  | if (StringUtils.isNull(sysUser)) { | 
|---|
|  |  |  | return R.fail("用户名或密码错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 角色集合 | 
|---|
|  |  |  | Set<String> roles = permissionService.getRolePermission(sysUser); | 
|---|
|  |  |  | // 权限集合getRolePermission | 
|---|
|  |  |  | Set<String> permissions = permissionService.getMenuPermission(sysUser); | 
|---|
|  |  |  | LoginUser sysUserVo = new LoginUser(); | 
|---|
|  |  |  | sysUserVo.setSysUser(sysUser); | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Log(title = "用户管理", businessType = BusinessType.UPDATE) | 
|---|
|  |  |  | @PutMapping("/resetPwd") | 
|---|
|  |  |  | @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理"}) | 
|---|
|  |  |  | @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理", "门店后台-部门管理"}) | 
|---|
|  |  |  | public AjaxResult resetPwd(@RequestBody SysUser user) { | 
|---|
|  |  |  | userService.checkUserAllowed(user); | 
|---|
|  |  |  | userService.checkUserDataScope(user.getUserId()); | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword("a123456")); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword(MD5Generator.generateMD5("a123456"))); | 
|---|
|  |  |  | user.setUpdateBy(SecurityUtils.getUsername()); | 
|---|
|  |  |  | return toAjax(userService.resetPwd(user)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | public R<SysUser> queryUserByUserName(@RequestBody String userName){ | 
|---|
|  |  |  | SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) | 
|---|
|  |  |  | .eq(SysUser::getUserName, userName) | 
|---|
|  |  |  | .eq(SysUser::getDelFlag, "0") | 
|---|
|  |  |  | .eq(SysUser::getStatus, 0) | 
|---|
|  |  |  | .last("LIMIT 1")); | 
|---|
|  |  |  | return R.ok(user); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/saveShopUser") | 
|---|
|  |  |  | public R saveShopUser(@RequestBody SysUser user){ | 
|---|
|  |  |  | Integer shopId = user.getObjectId(); | 
|---|
|  |  |  | public R<Long> saveShopUser(@RequestBody SysUser user){ | 
|---|
|  |  |  | SysUser one = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, user.getPhonenumber()).eq(SysUser::getDelFlag, "0") | 
|---|
|  |  |  | .eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2).eq(SysUser::getAppUserId, user.getAppUserId())); | 
|---|
|  |  |  | .eq(SysUser::getStatus, "0").eq(SysUser::getRoleType, 2)); | 
|---|
|  |  |  | if(null == one){ | 
|---|
|  |  |  | user.setObjectId(null); | 
|---|
|  |  |  | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | 
|---|
|  |  |  | userService.save(user); | 
|---|
|  |  |  | //添加用户角色数据 | 
|---|
|  |  |  | 
|---|
|  |  |  | userRole.setUserId(user.getUserId()); | 
|---|
|  |  |  | userRole.setRoleId(2L); | 
|---|
|  |  |  | userRoleService.save(userRole); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | user = one; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //添加门店关系数据 | 
|---|
|  |  |  | UserShop userShop = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, shopId).eq(UserShop::getUserId, user.getAppUserId())); | 
|---|
|  |  |  | if(null == userShop){ | 
|---|
|  |  |  | userShop = new UserShop(); | 
|---|
|  |  |  | userShop.setUserId(user.getUserId().intValue()); | 
|---|
|  |  |  | userShop.setShopId(user.getObjectId()); | 
|---|
|  |  |  | userShopService.save(userShop); | 
|---|
|  |  |  | return R.ok(user.getUserId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 删除门店管理员账号 | 
|---|
|  |  |  | * @param objectId | 
|---|
|  |  |  | * @param roleType | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/user/delShopUser") | 
|---|
|  |  |  | public R delShopUser(@RequestParam("objectId") Integer objectId, @RequestParam("roleType") Integer roleType){ | 
|---|
|  |  |  | List<UserShop> list2 = userShopService.list(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, objectId)); | 
|---|
|  |  |  | for (UserShop userShop : list2) { | 
|---|
|  |  |  | List<UserShop> list1 = userShopService.list(new LambdaUpdateWrapper<UserShop>().eq(UserShop::getUserId, userShop.getUserId())); | 
|---|
|  |  |  | if(list1.size() == 1 && list1.get(0).getShopId().equals(objectId)){ | 
|---|
|  |  |  | //删除管理员账号 | 
|---|
|  |  |  | userService.deleteUserById(userShop.getUserId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | //修改管理后台账号关联的门店数据 | 
|---|
|  |  |  | SysUser sysUser = userService.getById(userShop.getUserId()); | 
|---|
|  |  |  | if(sysUser.getObjectId().equals(objectId)){ | 
|---|
|  |  |  | Optional<UserShop> first = list1.stream().filter(s -> !s.getShopId().equals(objectId)).findFirst(); | 
|---|
|  |  |  | if(first.isPresent()){ | 
|---|
|  |  |  | sysUser.setObjectId(first.get().getShopId()); | 
|---|
|  |  |  | userService.updateById(sysUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userShopService.removeById(userShop.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PutMapping("/switchShop/{shopId}") | 
|---|
|  |  |  | @ApiOperation(value = "切换门店", tags = {"门店后台-首页"}) | 
|---|
|  |  |  | public R<Set<String>> switchShop(@PathVariable("shopId") Integer shopId){ | 
|---|
|  |  |  | Long userid = tokenService.getLoginUser().getUserid(); | 
|---|
|  |  |  | UserShop one = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, userid).eq(UserShop::getShopId, shopId)); | 
|---|
|  |  |  | if(null == one){ | 
|---|
|  |  |  | return R.fail("切换失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | SysUser sysUser = userService.getById(userid); | 
|---|
|  |  |  | sysUser.setObjectId(shopId); | 
|---|
|  |  |  | userService.updateById(sysUser); | 
|---|
|  |  |  | //查询用户权限列表 | 
|---|
|  |  |  | Long roleId = one.getRoleId(); | 
|---|
|  |  |  | Set<String> rolePerms = menuService.selectMenuPermsByRoleId(roleId); | 
|---|
|  |  |  | return R.ok(rolePerms); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 通过账号和账号权限查询用户 | 
|---|
|  |  |  | * @param userName | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping("/queryUserByUserNameAndRoleType") | 
|---|
|  |  |  | public R<SysUser>  queryUserByUserNameAndRoleType(@RequestParam("userName") String userName, @RequestParam("roleType") Integer roleType){ | 
|---|
|  |  |  | SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) | 
|---|
|  |  |  | .eq(SysUser::getUserName, userName) | 
|---|
|  |  |  | .eq(SysUser::getDelFlag, "0") | 
|---|
|  |  |  | .eq(SysUser::getStatus, 0) | 
|---|
|  |  |  | .eq(SysUser::getRoleType, roleType) | 
|---|
|  |  |  | .last("LIMIT 1")); | 
|---|
|  |  |  | return R.ok(user); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PostMapping("/delSysUserById") | 
|---|
|  |  |  | public R delSysUserById(@RequestParam("userId") Long userId){ | 
|---|
|  |  |  | userService.deleteUserById(userId); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|