Commit 69fb6e8e by giaogiao

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

parent 6589acc0
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.MerchantUserUpdateParam;
import com.jumeirah.common.entity.MerchantUser;
import com.jumeirah.common.service.MerchantUserService;
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.controller.BaseController;
import io.geekidea.springbootplus.framework.core.validator.groups.Add;
......@@ -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.enums.OperationLogType;
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.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -44,6 +49,8 @@ public class MerchantUserManagerController extends BaseController {
@Autowired
private MerchantUserService merchantUserService;
@Autowired
private SpringBootPlusProperties springBootPlusProperties;
/**
* 添加商家用户
......@@ -57,6 +64,22 @@ public class MerchantUserManagerController extends BaseController {
MerchantUser merchantUser = new MerchantUser();
BeanUtils.copyProperties(merchantUserAddParam, merchantUser);
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);
return ApiResult.result(flag);
}
......@@ -70,9 +93,26 @@ public class MerchantUserManagerController extends BaseController {
public ApiResult<Boolean> updateMerchantUser(@Validated(Update.class) @RequestBody MerchantUserUpdateParam merchantUserUpdateParam) throws Exception {
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();
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);
return ApiResult.result(flag);
}
......
package com.jumeirah.api.merchant.controller;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import com.jumeirah.common.service.MerchantUserPermissionService;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
......@@ -12,9 +13,12 @@ import lombok.extern.slf4j.Slf4j;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 商家用户权限关系 控制器
*
......@@ -30,18 +34,41 @@ public class MerchantUserPermissionController extends BaseController {
@Autowired
private MerchantUserPermissionService merchantUserPermissionService;
/**
*查询商家用户权限详情
* 查询商家用户权限详情
*/
@GetMapping("/info/{id}")
@OperationLog(name = "商家用户权限关系详情", type = OperationLogType.INFO)
@ApiOperation(value = "商家用户权限关系详情")
public ApiResult<MerchantUserPermissionQueryVo> getMerchantUserPermission(@PathVariable("id") Long id) throws Exception {
@PostMapping("/update/{id}")
@OperationLog(name = "修改商家用户权限", type = OperationLogType.INFO)
@ApiOperation(value = "修改商家用户权限")
public ApiResult<MerchantUserPermissionQueryVo> update(@PathVariable("id") Long id) throws Exception {
MerchantUserPermissionQueryVo merchantUserPermissionQueryVo = merchantUserPermissionService.getMerchantUserPermissionById(id);
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 {
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("职位名称")
private String positionName;
// @ApiModelProperty("职位名称")
// private String positionName;
@ApiModelProperty("版本")
@Version
......
......@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionPageParam;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.io.Serializable;
import java.util.List;
import java.util.Set;
/**
......@@ -29,6 +31,8 @@ public interface MerchantUserPermissionMapper extends BaseMapper<MerchantUserPer
*/
Set<String> getPermissionCodesByUserId(@Param("userId") Long userId);
List<MerchantUserPermissionDetailVo> getMerchantUserPermissionByUserId(Long userId);
/**
* 根据ID获取查询对象
*
......
package com.jumeirah.common.param;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
/**
* <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 {
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("职位名称")
private String positionName;
@ApiModelProperty("版本")
private Integer version;
......
package com.jumeirah.common.service;
import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionPageParam;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import java.util.List;
import java.util.Set;
/**
......@@ -62,6 +64,16 @@ public interface MerchantUserPermissionService extends BaseService<MerchantUserP
MerchantUserPermissionQueryVo getMerchantUserPermissionById(Long id) throws Exception;
/**
* 根据user获取查询对象
*
* @param userId
* @return
* @throws Exception
*/
List<MerchantUserPermissionDetailVo> getMerchantUserPermissionByUserId(Long userId) throws Exception;
/**
* 获取分页对象
*
* @param merchantUserPermissionPageParam
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.mapper.MerchantUserPermissionMapper;
import com.jumeirah.common.param.MerchantUserPermissionDetailVo;
import com.jumeirah.common.param.MerchantUserPermissionPageParam;
import com.jumeirah.common.param.MerchantUserPermissionQueryVo;
import com.jumeirah.common.service.MerchantUserPermissionService;
......@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set;
/**
......@@ -60,6 +62,11 @@ public class MerchantUserPermissionServiceImpl extends BaseServiceImpl<MerchantU
}
@Override
public List<MerchantUserPermissionDetailVo> getMerchantUserPermissionByUserId(Long userId) throws Exception {
return merchantUserPermissionMapper.getMerchantUserPermissionByUserId(userId);
}
@Override
public Paging<MerchantUserPermissionQueryVo> getMerchantUserPermissionPageList(MerchantUserPermissionPageParam merchantUserPermissionPageParam) throws Exception {
Page<MerchantUserPermissionQueryVo> page = new PageInfo<>(merchantUserPermissionPageParam, OrderItem.desc(getLambdaColumn(MerchantUserPermission::getCreateTime)));
IPage<MerchantUserPermissionQueryVo> iPage = merchantUserPermissionMapper.getMerchantUserPermissionPageList(page, merchantUserPermissionPageParam);
......
package com.jumeirah.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
......@@ -7,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jumeirah.common.convert.UserConvert;
import com.jumeirah.common.entity.MerchantPermission;
import com.jumeirah.common.entity.MerchantUser;
import com.jumeirah.common.entity.MerchantUserPermission;
import com.jumeirah.common.enums.StateEnum;
import com.jumeirah.common.mapper.MerchantUserMapper;
import com.jumeirah.common.param.MerchantLoginParam;
......@@ -149,6 +149,22 @@ public class MerchantUserServiceImpl extends BaseServiceImpl<MerchantUserMapper,
permissionCodes.add(merchantPermission.getCode());
}
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 {
Set<String> permissionCodes = merchantUserPermissionService.getPermissionCodesByUserId(merchantUser.getId());
loginSysUserVo.setPermissionCodes(permissionCodes);
......
......@@ -3,13 +3,11 @@
<mapper namespace="com.jumeirah.common.mapper.MerchantUserPermissionMapper">
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, user_id, permission_id, state, remark, position_name, version, create_time, update_time
id, user_id, permission_id, state, remark, version, create_time, update_time
</sql>
<select id="getPermissionCodesByUserId" resultType="java.lang.String">
SELECT
mp.CODE
FROM
......@@ -17,6 +15,26 @@
INNER JOIN merchant_permission mp ON mp.id = mup.permission_id
WHERE
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>
......
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