Commit 69fb6e8e by giaogiao

商家权限:查询某商家用户权限列表

parent 6589acc0
package com.jumeirah.api.merchant.controller; package com.jumeirah.api.merchant.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jumeirah.api.merchant.entity.param.MerchantUserAddParam; import com.jumeirah.api.merchant.entity.param.MerchantUserAddParam;
import com.jumeirah.api.merchant.entity.param.MerchantUserUpdateParam; import com.jumeirah.api.merchant.entity.param.MerchantUserUpdateParam;
import com.jumeirah.common.entity.MerchantUser; import com.jumeirah.common.entity.MerchantUser;
import com.jumeirah.common.service.MerchantUserService; import com.jumeirah.common.service.MerchantUserService;
import com.jumeirah.common.vo.MerchantUserQueryVo; import com.jumeirah.common.vo.MerchantUserQueryVo;
import io.geekidea.springbootplus.config.properties.SpringBootPlusProperties;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController; import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.geekidea.springbootplus.framework.core.validator.groups.Add; import io.geekidea.springbootplus.framework.core.validator.groups.Add;
...@@ -13,9 +15,12 @@ import io.geekidea.springbootplus.framework.log.annotation.Module; ...@@ -13,9 +15,12 @@ import io.geekidea.springbootplus.framework.log.annotation.Module;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog; import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType; import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken; import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import io.geekidea.springbootplus.framework.shiro.util.SaltUtil;
import io.geekidea.springbootplus.framework.util.PasswordUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -44,6 +49,8 @@ public class MerchantUserManagerController extends BaseController { ...@@ -44,6 +49,8 @@ public class MerchantUserManagerController extends BaseController {
@Autowired @Autowired
private MerchantUserService merchantUserService; private MerchantUserService merchantUserService;
@Autowired
private SpringBootPlusProperties springBootPlusProperties;
/** /**
* 添加商家用户 * 添加商家用户
...@@ -57,6 +64,22 @@ public class MerchantUserManagerController extends BaseController { ...@@ -57,6 +64,22 @@ public class MerchantUserManagerController extends BaseController {
MerchantUser merchantUser = new MerchantUser(); MerchantUser merchantUser = new MerchantUser();
BeanUtils.copyProperties(merchantUserAddParam, merchantUser); BeanUtils.copyProperties(merchantUserAddParam, merchantUser);
merchantUser.setMcId(jwtToken.getMcId()); merchantUser.setMcId(jwtToken.getMcId());
// 生成盐值
String salt = null;
String password = merchantUserAddParam.getPassword();
// 如果密码为空,则设置默认密码
if (StringUtils.isBlank(password)) {
salt = springBootPlusProperties.getLoginInitSalt();
password = springBootPlusProperties.getLoginInitPassword();
} else {
salt = SaltUtil.generateSalt();
}
// 密码加密
merchantUser.setSalt(salt);
merchantUser.setPassword(PasswordUtil.encrypt(password, salt));
merchantUser.setIsAdmin(0);
boolean flag = merchantUserService.saveMerchantUser(merchantUser); boolean flag = merchantUserService.saveMerchantUser(merchantUser);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
...@@ -70,9 +93,26 @@ public class MerchantUserManagerController extends BaseController { ...@@ -70,9 +93,26 @@ public class MerchantUserManagerController extends BaseController {
public ApiResult<Boolean> updateMerchantUser(@Validated(Update.class) @RequestBody MerchantUserUpdateParam merchantUserUpdateParam) throws Exception { public ApiResult<Boolean> updateMerchantUser(@Validated(Update.class) @RequestBody MerchantUserUpdateParam merchantUserUpdateParam) throws Exception {
JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal(); JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal();
MerchantUser sysUser = new MerchantUser().setUsername(merchantUserUpdateParam.getUsername());
MerchantUser one = merchantUserService.getOne(new QueryWrapper<MerchantUser>(sysUser));
MerchantUser merchantUser = new MerchantUser(); MerchantUser merchantUser = new MerchantUser();
BeanUtils.copyProperties(merchantUserUpdateParam, merchantUser); BeanUtils.copyProperties(merchantUserUpdateParam, merchantUser);
merchantUser.setMcId(jwtToken.getMcId());
merchantUser.setId(one.getId());
// 生成盐值
String salt = null;
String password = merchantUserUpdateParam.getPassword();
// 如果密码为空,则设置默认密码
if (StringUtils.isBlank(password)) {
salt = springBootPlusProperties.getLoginInitSalt();
password = springBootPlusProperties.getLoginInitPassword();
} else {
salt = SaltUtil.generateSalt();
}
// 密码加密
merchantUser.setSalt(salt);
merchantUser.setPassword(PasswordUtil.encrypt(password, salt));
boolean flag = merchantUserService.updateMerchantUser(merchantUser); boolean flag = merchantUserService.updateMerchantUser(merchantUser);
return ApiResult.result(flag); return ApiResult.result(flag);
} }
......
package com.jumeirah.api.merchant.controller; package com.jumeirah.api.merchant.controller;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo; import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import com.jumeirah.common.service.MerchantUserPermissionService; import com.jumeirah.common.service.MerchantUserPermissionService;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
...@@ -12,9 +13,12 @@ import lombok.extern.slf4j.Slf4j; ...@@ -12,9 +13,12 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 商家用户权限关系 控制器 * 商家用户权限关系 控制器
* *
...@@ -30,18 +34,41 @@ public class MerchantUserPermissionController extends BaseController { ...@@ -30,18 +34,41 @@ public class MerchantUserPermissionController extends BaseController {
@Autowired @Autowired
private MerchantUserPermissionService merchantUserPermissionService; private MerchantUserPermissionService merchantUserPermissionService;
/** /**
*查询商家用户权限详情 * 查询商家用户权限详情
*/ */
@GetMapping("/info/{id}") @PostMapping("/update/{id}")
@OperationLog(name = "商家用户权限关系详情", type = OperationLogType.INFO) @OperationLog(name = "修改商家用户权限", type = OperationLogType.INFO)
@ApiOperation(value = "商家用户权限关系详情") @ApiOperation(value = "修改商家用户权限")
public ApiResult<MerchantUserPermissionQueryVo> getMerchantUserPermission(@PathVariable("id") Long id) throws Exception { public ApiResult<MerchantUserPermissionQueryVo> update(@PathVariable("id") Long id) throws Exception {
MerchantUserPermissionQueryVo merchantUserPermissionQueryVo = merchantUserPermissionService.getMerchantUserPermissionById(id); MerchantUserPermissionQueryVo merchantUserPermissionQueryVo = merchantUserPermissionService.getMerchantUserPermissionById(id);
return ApiResult.ok(merchantUserPermissionQueryVo); return ApiResult.ok(merchantUserPermissionQueryVo);
} }
/**
* 查询某商家用户权限列表
*/
@GetMapping("/get/{userId}")
@OperationLog(name = "查询某商家用户权限列表", type = OperationLogType.INFO)
@ApiOperation(value = "查询某商家用户权限列表")
public ApiResult<List<MerchantUserPermissionDetailVo>> get(@PathVariable("userId") Long userId) throws Exception {
List<MerchantUserPermissionDetailVo> merchantUserPermissionByUserId = merchantUserPermissionService.getMerchantUserPermissionByUserId(userId);
return ApiResult.ok(merchantUserPermissionByUserId);
}
//
// /**
// *查询商家用户权限详情
// */
// @GetMapping("/info/{id}")
// @OperationLog(name = "商家用户权限关系详情", type = OperationLogType.INFO)
// @ApiOperation(value = "商家用户权限关系详情")
// public ApiResult<MerchantUserPermissionQueryVo> getMerchantUserPermission(@PathVariable("id") Long id) throws Exception {
// MerchantUserPermissionQueryVo merchantUserPermissionQueryVo = merchantUserPermissionService.getMerchantUserPermissionById(id);
// return ApiResult.ok(merchantUserPermissionQueryVo);
// }
// /** // /**
// * 添加商家用户权限关系 // * 添加商家用户权限关系
// */ // */
......
...@@ -46,8 +46,8 @@ public class MerchantUserPermission extends BaseEntity { ...@@ -46,8 +46,8 @@ public class MerchantUserPermission extends BaseEntity {
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remark; private String remark;
@ApiModelProperty("职位名称") // @ApiModelProperty("职位名称")
private String positionName; // private String positionName;
@ApiModelProperty("版本") @ApiModelProperty("版本")
@Version @Version
......
...@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.entity.MerchantUserPermission; import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionPageParam; import com.jumeirah.common.param.MerchantUserPermissionPageParam;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo; import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
...@@ -29,6 +31,8 @@ public interface MerchantUserPermissionMapper extends BaseMapper<MerchantUserPer ...@@ -29,6 +31,8 @@ public interface MerchantUserPermissionMapper extends BaseMapper<MerchantUserPer
*/ */
Set<String> getPermissionCodesByUserId(@Param("userId") Long userId); Set<String> getPermissionCodesByUserId(@Param("userId") Long userId);
List<MerchantUserPermissionDetailVo> getMerchantUserPermissionByUserId(Long userId);
/** /**
* 根据ID获取查询对象 * 根据ID获取查询对象
* *
......
package com.jumeirah.common.param; package com.jumeirah.common.param;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
/** /**
* <pre> * <pre>
......
package com.jumeirah.common.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <pre>
* 商家用户权限关系 查询结果对象
* </pre>
*
* @author giao
* @date 2020-10-19
*/
@Data
@Accessors(chain = true)
@ApiModel(value = "MerchantUserPermissionDetailVo对象")
public class MerchantUserPermissionDetailVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("权限id")
private Long permissionId;
@ApiModelProperty("权限code")
private String permissionCode;
@ApiModelProperty("权限中文名")
private String permissionName;
@ApiModelProperty("0:没有该权限,1:有该权限")
private Integer isHasPermission;
}
\ No newline at end of file
...@@ -37,9 +37,6 @@ public class MerchantUserPermissionQueryVo implements Serializable { ...@@ -37,9 +37,6 @@ public class MerchantUserPermissionQueryVo implements Serializable {
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remark; private String remark;
@ApiModelProperty("职位名称")
private String positionName;
@ApiModelProperty("版本") @ApiModelProperty("版本")
private Integer version; private Integer version;
......
package com.jumeirah.common.service; package com.jumeirah.common.service;
import com.jumeirah.common.entity.MerchantUserPermission; import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionPageParam; import com.jumeirah.common.param.MerchantUserPermissionPageParam;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo; import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import io.geekidea.springbootplus.framework.common.service.BaseService; import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.Paging;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
...@@ -62,6 +64,16 @@ public interface MerchantUserPermissionService extends BaseService<MerchantUserP ...@@ -62,6 +64,16 @@ public interface MerchantUserPermissionService extends BaseService<MerchantUserP
MerchantUserPermissionQueryVo getMerchantUserPermissionById(Long id) throws Exception; MerchantUserPermissionQueryVo getMerchantUserPermissionById(Long id) throws Exception;
/** /**
* 根据user获取查询对象
*
* @param userId
* @return
* @throws Exception
*/
List<MerchantUserPermissionDetailVo> getMerchantUserPermissionByUserId(Long userId) throws Exception;
/**
* 获取分页对象 * 获取分页对象
* *
* @param merchantUserPermissionPageParam * @param merchantUserPermissionPageParam
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.entity.MerchantUserPermission; import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.mapper.MerchantUserPermissionMapper; import com.jumeirah.common.mapper.MerchantUserPermissionMapper;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionPageParam; import com.jumeirah.common.param.MerchantUserPermissionPageParam;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo; import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import com.jumeirah.common.service.MerchantUserPermissionService; import com.jumeirah.common.service.MerchantUserPermissionService;
...@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
...@@ -60,6 +62,11 @@ public class MerchantUserPermissionServiceImpl extends BaseServiceImpl<MerchantU ...@@ -60,6 +62,11 @@ public class MerchantUserPermissionServiceImpl extends BaseServiceImpl<MerchantU
} }
@Override @Override
public List<MerchantUserPermissionDetailVo> getMerchantUserPermissionByUserId(Long userId) throws Exception {
return merchantUserPermissionMapper.getMerchantUserPermissionByUserId(userId);
}
@Override
public Paging<MerchantUserPermissionQueryVo> getMerchantUserPermissionPageList(MerchantUserPermissionPageParam merchantUserPermissionPageParam) throws Exception { public Paging<MerchantUserPermissionQueryVo> getMerchantUserPermissionPageList(MerchantUserPermissionPageParam merchantUserPermissionPageParam) throws Exception {
Page<MerchantUserPermissionQueryVo> page = new PageInfo<>(merchantUserPermissionPageParam, OrderItem.desc(getLambdaColumn(MerchantUserPermission::getCreateTime))); Page<MerchantUserPermissionQueryVo> page = new PageInfo<>(merchantUserPermissionPageParam, OrderItem.desc(getLambdaColumn(MerchantUserPermission::getCreateTime)));
IPage<MerchantUserPermissionQueryVo> iPage = merchantUserPermissionMapper.getMerchantUserPermissionPageList(page, merchantUserPermissionPageParam); IPage<MerchantUserPermissionQueryVo> iPage = merchantUserPermissionMapper.getMerchantUserPermissionPageList(page, merchantUserPermissionPageParam);
......
package com.jumeirah.common.service.impl; package com.jumeirah.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
...@@ -7,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -7,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.convert.UserConvert; import com.jumeirah.common.convert.UserConvert;
import com.jumeirah.common.entity.MerchantPermission; import com.jumeirah.common.entity.MerchantPermission;
import com.jumeirah.common.entity.MerchantUser; import com.jumeirah.common.entity.MerchantUser;
import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.enums.StateEnum; import com.jumeirah.common.enums.StateEnum;
import com.jumeirah.common.mapper.MerchantUserMapper; import com.jumeirah.common.mapper.MerchantUserMapper;
import com.jumeirah.common.param.MerchantLoginParam; import com.jumeirah.common.param.MerchantLoginParam;
...@@ -149,6 +149,22 @@ public class MerchantUserServiceImpl extends BaseServiceImpl<MerchantUserMapper, ...@@ -149,6 +149,22 @@ public class MerchantUserServiceImpl extends BaseServiceImpl<MerchantUserMapper,
permissionCodes.add(merchantPermission.getCode()); permissionCodes.add(merchantPermission.getCode());
} }
loginSysUserVo.setPermissionCodes(permissionCodes); loginSysUserVo.setPermissionCodes(permissionCodes);
// 查询全部权限
List<MerchantPermission> list = merchantPermissionService.list();
// 删除该用户所有权限
merchantUserPermissionService.remove(new QueryWrapper<MerchantUserPermission>()
.lambda().eq(MerchantUserPermission::getUserId, merchantUser.getId()));
// 给管理管设置全部权限
for (MerchantPermission merchantPermission : list) {
MerchantUserPermission merchantUserPermission = new MerchantUserPermission();
merchantUserPermission.setUserId(merchantUser.getId());
merchantUserPermission.setPermissionId(merchantPermission.getId());
merchantUserPermission.setState(0);
merchantUserPermissionService.save(merchantUserPermission);
}
} else { } else {
Set<String> permissionCodes = merchantUserPermissionService.getPermissionCodesByUserId(merchantUser.getId()); Set<String> permissionCodes = merchantUserPermissionService.getPermissionCodesByUserId(merchantUser.getId());
loginSysUserVo.setPermissionCodes(permissionCodes); loginSysUserVo.setPermissionCodes(permissionCodes);
......
...@@ -3,13 +3,11 @@ ...@@ -3,13 +3,11 @@
<mapper namespace="com.jumeirah.common.mapper.MerchantUserPermissionMapper"> <mapper namespace="com.jumeirah.common.mapper.MerchantUserPermissionMapper">
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, user_id, permission_id, state, remark, version, create_time, update_time
id, user_id, permission_id, state, remark, position_name, version, create_time, update_time
</sql> </sql>
<select id="getPermissionCodesByUserId" resultType="java.lang.String"> <select id="getPermissionCodesByUserId" resultType="java.lang.String">
SELECT SELECT
mp.CODE mp.CODE
FROM FROM
...@@ -17,6 +15,26 @@ ...@@ -17,6 +15,26 @@
INNER JOIN merchant_permission mp ON mp.id = mup.permission_id INNER JOIN merchant_permission mp ON mp.id = mup.permission_id
WHERE WHERE
mup.user_id = #{userId} mup.user_id = #{userId}
</select>
<select id="getMerchantUserPermissionByUserId"
resultType="com.jumeirah.common.param.MerchantUserPermissionDetailVo">
SELECT
mp.id AS permissionId,
mp.name as permissionName,
mp.code as permissionCode,
CASE
WHEN ISNULL( mup.id ) THEN
0 ELSE 1
END AS isHasPermission
FROM
merchant_permission mp
LEFT JOIN ( SELECT mup.id, mup.permission_id FROM merchant_user_permission mup WHERE mup.user_id = #{userId} ) AS mup ON mup.permission_id = mp.id
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment