|
@@ -8,6 +8,8 @@ import com.caimei.model.po.SysMenu;
|
|
|
import com.caimei.model.po.SysRole;
|
|
|
import com.caimei.model.po.SysUser;
|
|
|
import com.caimei.model.vo.VipInfoVo;
|
|
|
+import com.caimei.service.sys.SysMenuService;
|
|
|
+import com.caimei.service.sys.SysRoleService;
|
|
|
import com.caimei.service.sys.SysUserService;
|
|
|
import com.caimei.utils.CommonUtil;
|
|
|
import com.caimei.utils.Md5Util;
|
|
@@ -20,7 +22,10 @@ import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
/**
|
|
|
* Description
|
|
@@ -40,13 +45,19 @@ public class SysUserServiceImpl implements SysUserService {
|
|
|
@Resource
|
|
|
private RedisService redisService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private SysMenuService sysMenuService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysRoleService sysRoleService;
|
|
|
+
|
|
|
/**
|
|
|
* 获取用户信息
|
|
|
*/
|
|
|
@Override
|
|
|
public ResponseJson<SysUser> getInfoByUsername(String username) {
|
|
|
if (StringUtils.hasLength(username)) {
|
|
|
- SysUser sysUser = systemMapper.findByUsername(username);
|
|
|
+ SysUser sysUser = systemMapper.findByUsername(username, null);
|
|
|
if (null != sysUser) {
|
|
|
List<Integer> roleIds = setUserRoleInfo(sysUser);
|
|
|
List<SysMenu> menus = null;
|
|
@@ -75,16 +86,6 @@ public class SysUserServiceImpl implements SysUserService {
|
|
|
}
|
|
|
SysUser sysUser = systemMapper.findByUserId(id);
|
|
|
if (null != sysUser) {
|
|
|
- VipInfoVo vipInfo = vipMapper.getVipInfo(id);
|
|
|
- if (null != vipInfo && vipInfo.getEndDayLeft() <= 0) {
|
|
|
- if (vipInfo.getFreeDayLeft() <= 0) {
|
|
|
- // 会员到期且已过试用期
|
|
|
- // 删除用户角色关联
|
|
|
- systemMapper.deleteUserRoleRelation(id);
|
|
|
- // 赋予基础供应商角色
|
|
|
- saveRoleRelation(id, "1");
|
|
|
- }
|
|
|
- }
|
|
|
List<Integer> roleIds = setUserRoleInfo(sysUser);
|
|
|
List<SysMenu> menus = null;
|
|
|
if (!CollectionUtils.isEmpty(roleIds)) {
|
|
@@ -102,10 +103,47 @@ public class SysUserServiceImpl implements SysUserService {
|
|
|
private List<Integer> setUserRoleInfo(SysUser sysUser) {
|
|
|
List<Integer> roleIds = new ArrayList<>();
|
|
|
if (null != sysUser) {
|
|
|
+ // 角色名称
|
|
|
List<String> roleNames = new ArrayList<>();
|
|
|
+ // 角色描述
|
|
|
StringBuilder roleDesc = new StringBuilder();
|
|
|
+ // 用户id
|
|
|
+ Integer userId = sysUser.getId();
|
|
|
+ // parentId
|
|
|
+ Integer parentId = sysUser.getParentId();
|
|
|
+ if (2 == sysUser.getUserIdentity() || 3 == sysUser.getUserIdentity()) {
|
|
|
+ // 供应商用户id
|
|
|
+ Integer authUserId = 2 == sysUser.getUserIdentity() ? userId : parentId;
|
|
|
+ // 根据用户Id获取用户角色列表
|
|
|
+ List<SysRole> roleList = systemMapper.getRoleListByUserId(authUserId);
|
|
|
+ // 获取关联的会员角色数量
|
|
|
+ long vipRoleCount = roleList.stream().filter(role -> (1 == role.getId() || 2 == role.getId())).count();
|
|
|
+ // 查询供应商会员信息
|
|
|
+ VipInfoVo vipInfo = vipMapper.getVipInfo(authUserId);
|
|
|
+ if (null != vipInfo && vipInfo.getEndDayLeft() <= 0 && vipInfo.getFreeDayLeft() <= 0 && vipRoleCount > 0) {
|
|
|
+ // 会员到期且已过试用期并且关联了会员角色,删除供应商用户角色关联
|
|
|
+ systemMapper.deleteUserRoleRelation(authUserId);
|
|
|
+ // 赋予基础供应商角色
|
|
|
+ saveRoleRelation(authUserId, "1");
|
|
|
+ List<SysRole> shopRoleList = systemMapper.getShopRoleList(authUserId);
|
|
|
+ // 移除子用户角色中的会员菜单
|
|
|
+ shopRoleList.forEach(shopRole -> {
|
|
|
+ Integer shopRoleId = shopRole.getId();
|
|
|
+ // 获取角色下基础菜单列表
|
|
|
+ List<SysMenu> baseMenuList = systemMapper.getBaseMenuList(shopRoleId);
|
|
|
+ Set<Integer> baseMenuIdSet = new HashSet<>();
|
|
|
+ Set<Integer> basePermissionIdSet = new HashSet<>();
|
|
|
+ // 获取基础菜单所有id
|
|
|
+ baseMenuList.forEach(baseMenu -> sysMenuService.getAllBaseMenuIds(baseMenu, baseMenuIdSet, basePermissionIdSet));
|
|
|
+ AtomicReference<String> menuIds = new AtomicReference<>("");
|
|
|
+ baseMenuIdSet.forEach(baseMenuId -> menuIds.updateAndGet(v -> v + baseMenuId + ","));
|
|
|
+ // 保存角色与基础菜单的关联
|
|
|
+ sysRoleService.saveRoleMenuRelation(shopRoleId,menuIds.get());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
// 根据用户Id获取用户角色列表
|
|
|
- List<SysRole> roleList = systemMapper.getRoleListByUserId(sysUser.getId());
|
|
|
+ List<SysRole> roleList = systemMapper.getRoleListByUserId(userId);
|
|
|
if (!CollectionUtils.isEmpty(roleList)) {
|
|
|
for (SysRole role : roleList) {
|
|
|
if (null != role) {
|
|
@@ -135,14 +173,15 @@ public class SysUserServiceImpl implements SysUserService {
|
|
|
/**
|
|
|
* 获取用户列表
|
|
|
*
|
|
|
+ * @param authUserId
|
|
|
* @param username 用户名
|
|
|
* @param pageNum 页码
|
|
|
* @param pageSize 每页大小
|
|
|
*/
|
|
|
@Override
|
|
|
- public ResponseJson<PageInfo<SysUser>> getUserList(String username, String linkMan, int pageNum, int pageSize) {
|
|
|
+ public ResponseJson<PageInfo<SysUser>> getUserList(Integer authUserId, String username, String linkMan, int pageNum, int pageSize) {
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
- List<SysUser> userList = systemMapper.getUserList(username, linkMan);
|
|
|
+ List<SysUser> userList = systemMapper.getUserList(authUserId, username, linkMan);
|
|
|
for (SysUser sysUser : userList) {
|
|
|
List<Integer> roleIdList = setUserRoleInfo(sysUser);
|
|
|
String roleIds = CommonUtil.idListToString(roleIdList, ",");
|
|
@@ -229,21 +268,21 @@ public class SysUserServiceImpl implements SysUserService {
|
|
|
|
|
|
@Transactional(rollbackFor=Exception.class)
|
|
|
@Override
|
|
|
- public ResponseJson<Void> addAdmin(SysUser sysUser) {
|
|
|
+ public ResponseJson<Void> createUser(SysUser sysUser) {
|
|
|
if (StringUtils.hasLength(sysUser.getUsername()) && StringUtils.hasLength(sysUser.getPassword())) {
|
|
|
// 查询是否存在当前用户名的用户
|
|
|
- SysUser dbUser = systemMapper.findByUsername(sysUser.getUsername());
|
|
|
+ SysUser dbUser = systemMapper.findByUsername(sysUser.getUsername(), sysUser.getUserIdentity());
|
|
|
if (null == dbUser) {
|
|
|
// 密码加密
|
|
|
String encodePassword = Md5Util.md5(sysUser.getPassword());
|
|
|
sysUser.setPassword(encodePassword);
|
|
|
// 新增用户
|
|
|
- systemMapper.insertAdminUser(sysUser);
|
|
|
+ systemMapper.insertUser(sysUser);
|
|
|
// 角色Ids,用","隔开
|
|
|
String roleIds = sysUser.getRoleIds();
|
|
|
// 保存用户角色关系
|
|
|
saveRoleRelation(sysUser.getId(), roleIds);
|
|
|
- return ResponseJson.success("添加管理员成功", null);
|
|
|
+ return ResponseJson.success("添加用户成功", null);
|
|
|
} else {
|
|
|
return ResponseJson.error("用户名已存在", null);
|
|
|
}
|
|
@@ -268,7 +307,13 @@ public class SysUserServiceImpl implements SysUserService {
|
|
|
}
|
|
|
return ResponseJson.success();
|
|
|
}
|
|
|
-/*
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseJson<Void> updateUserStatus(Integer id, Integer status) {
|
|
|
+ systemMapper.updateUserStatus(id, status);
|
|
|
+ return ResponseJson.success("更改状态成功", null);
|
|
|
+ }
|
|
|
+ /*
|
|
|
*//**
|
|
|
* 用户修改资料
|
|
|
*//*
|