记得上下班打卡 | git大法好,push需谨慎

Commit 6eed776a authored by Tice's avatar Tice

授权

parent d88c76f1
package com.liquidnet.service.merchant.constant;
public class MerchantPermissionConst {
// 某演出通过审核后,分配演出权限,场地方审核演出为'待审核的演出'与'演出'不同
public enum PerformancePermission {
READ("1", "查看"),
EDIT("2", "编辑"),
SUBMIT("3", "提交"),
ONLINE("4", "上线"),
OFFLINE("5", "下线"),
SALES("6", "销售"),
CHECK("7", "验票"),
ACCREDIT("8", "授权");
private final String id;
private final String name;
PerformancePermission(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
}
package com.liquidnet.service.merchant.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
public class MerchantAuthorizationPermissionsVo implements java.io.Serializable {
private static final long serialVersionUID = -771282476240311975L;
@ApiModelProperty(value = "authorization_permission_id")
private String authorizationPermissionId;
@ApiModelProperty(value = "authorization_record_id")
private String authorizationRecordId;
@ApiModelProperty(value = "permission_id")
private String permissionId;
@ApiModelProperty(value = "授权开始时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime startTime;
@ApiModelProperty(value = "授权结束时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime endTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
}
package com.liquidnet.service.merchant.dto.vo;
public class MerchantAuthorizationRecordsVo {
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
public class MerchantAuthorizationRecordsVo implements java.io.Serializable{
private static final long serialVersionUID = 5851793907387626205L;
@ApiModelProperty(value = "authorization_record_id")
private String authorizationRecordId;
@ApiModelProperty(value = "演出ID")
private String performanceId;
@ApiModelProperty(value = "权利人演出角色 creator|sponsor|fielder|checker")
private String uidRole;
@ApiModelProperty(value = "权利人")
private String uid;
@ApiModelProperty(value = "手机号")
private String mobile;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "授权人演出角色 creator|sponsor|fielder")
private String cuidRole;
@ApiModelProperty(value = "授权人")
private String cuid;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime deletedAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
}
package com.liquidnet.service.merchant.dto.vo;
public class MerchantPermissionVo {
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
public class MerchantPermissionVo implements java.io.Serializable{
private static final long serialVersionUID = -1693974333583118507L;
@ApiModelProperty(value = "permission_id", example = "查询、编辑、提审、上线、下线、统计、验票、授权")
private String permissionId;
@ApiModelProperty(value = "名称")
private String name;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
}
package com.liquidnet.service.merchant.service;
public interface IMerchantAuthorizationRecordsService {
void authorizationInit(String performanceId, String cuid, String fieldId, String sponsorId);
void checkerAdd(String cuid, String performanceId, String uid, boolean statistics);
void checkerDel(String cuid, String performanceId, String uid);
......
......@@ -63,8 +63,6 @@ public class MerchantSponsorAppliesController extends BaseController {
MerchantSponsorApplies sponsorApplies = merchantSponsorAppliesAdminService.getOne(sponsorAppliesLambdaQueryWrapper);
mmap.put("sponsorApplyInfo", sponsorApplies);
String authId = ShiroUtils.getUserId().toString();
String authName = ShiroUtils.getLoginName();
return prefix + "/details";
}
......
package com.liquidnet.client.admin.zhengzai.merchant.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationPermissions;
public interface IMerchantAuthorizationPermissionsAdminService extends IService<MerchantAuthorizationPermissions> {
}
package com.liquidnet.client.admin.zhengzai.merchant.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationRecords;
public interface IMerchantAuthorizationRecordsAdminService extends IService<MerchantAuthorizationRecords> {
void authorizationInit(String performanceId, String cuid, String fieldId, String sponsorId);
}
package com.liquidnet.client.admin.zhengzai.merchant.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantAuthorizationPermissionsAdminService;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationPermissions;
import com.liquidnet.service.merchant.mapper.MerchantAuthorizationPermissionsMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class MerchantAuthorizationPermissionsAdminServiceImpl extends ServiceImpl<MerchantAuthorizationPermissionsMapper, MerchantAuthorizationPermissions> implements IMerchantAuthorizationPermissionsAdminService {
}
package com.liquidnet.client.admin.zhengzai.merchant.service.impl;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantAuthorizationPermissionsAdminService;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantAuthorizationRecordsAdminService;
import com.liquidnet.client.admin.zhengzai.merchant.utils.MerchantMongoUtil;
import com.liquidnet.client.admin.zhengzai.merchant.utils.MerchantRedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.merchant.constant.MerchantPermissionConst;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationPermissions;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationRecords;
import com.liquidnet.service.merchant.mapper.MerchantAuthorizationRecordsMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<MerchantAuthorizationRecordsMapper, MerchantAuthorizationRecords> implements IMerchantAuthorizationRecordsAdminService {
@Autowired
MerchantRedisUtil merchantRedisUtil;
@Autowired
MerchantMongoUtil merchantMongoUtil;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
IMerchantAuthorizationPermissionsAdminService authorizationPermissionsAdminService;
@Override
public void authorizationInit(String performanceId, String cuid, String fieldId, String sponsorId) {
// 创建者
// 场地方
MerchantFieldsVo fieldsVo = merchantRedisUtil.getFieldsVoByFieldId(fieldId);
// 主办方
MerchantSponsorsVo sponsorsVo = merchantRedisUtil.getSponsorsVoBySponsorId(sponsorId);
}
private void performanceCreator(String performanceId, String cuid, String uid) {
// 查询已有权限
LambdaQueryWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantAuthorizationRecords.class);
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getPerformanceId, performanceId);
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getUidRole, "creator");
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getDeletedAt, null);
MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper);
if (null != authorizationRecords) {
}
}
// 授权场地方
private boolean performanceFielder(String performanceId, String cuid, String fieldId) {
LocalDateTime now = LocalDateTime.now();
// 查询已有权限
LambdaQueryWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantAuthorizationRecords.class);
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getPerformanceId, performanceId);
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getUidRole, "fielder");
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getDeletedAt, null);
MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper);
// 查询场地方
MerchantFieldsVo fieldsVo = merchantRedisUtil.getFieldsVoByFieldId(fieldId);
// 是否已存在权限
if (null != authorizationRecords) {
// 已存在权限
if (authorizationRecords.getUid().equals(fieldsVo.getUid())) {
// 前后 场地方一致 不处理
return true;
}
// 前后 场地方不一致 删除旧权限 及 我的授权
authorizationRecords.setUpdatedAt(now);
authorizationRecords.setDeletedAt(now);
LambdaUpdateWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantAuthorizationRecords.class);
authorizationRecordsLambdaUpdateWrapper
.eq(MerchantAuthorizationRecords::getPerformanceId, performanceId)
.eq(MerchantAuthorizationRecords::getDeletedAt, null);
authorizationRecordsLambdaUpdateWrapper.and(wrapper -> wrapper
.eq(MerchantAuthorizationRecords::getAuthorizationRecordId, authorizationRecords.getAuthorizationRecordId())
.or(wrapper1 -> wrapper1
.eq(MerchantAuthorizationRecords::getCuid, authorizationRecords.getUid())
.eq(MerchantAuthorizationRecords::getCuidRole, "fielder"))
);
authorizationRecordsLambdaUpdateWrapper.set(MerchantAuthorizationRecords::getUpdatedAt, authorizationRecords.getUpdatedAt());
authorizationRecordsLambdaUpdateWrapper.set(MerchantAuthorizationRecords::getDeletedAt, authorizationRecords.getDeletedAt());
boolean success = update(authorizationRecordsLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
}
// 是否添加权限
if (1 == fieldsVo.getClaimStatus()) {
ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>();
ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
// 授权记录
// todo 用户信息
MerchantAuthorizationRecords fielderAuthorizationRecords = new MerchantAuthorizationRecords();
fielderAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
fielderAuthorizationRecords.setPerformanceId(performanceId);
fielderAuthorizationRecords.setUidRole("fielder");
fielderAuthorizationRecords.setUid(fieldsVo.getUid());
fielderAuthorizationRecords.setMobile("");
fielderAuthorizationRecords.setName("");
fielderAuthorizationRecords.setCuid(cuid);
fielderAuthorizationRecords.setCuidRole("creator");
fielderAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(fielderAuthorizationRecords);
// 授权权限
String[] fielderPermissionIds = {
MerchantPermissionConst.PerformancePermission.READ.getId(),
MerchantPermissionConst.PerformancePermission.CHECK.getId(),
MerchantPermissionConst.PerformancePermission.ACCREDIT.getId()
};
for (String permissionId : fielderPermissionIds) {
MerchantAuthorizationPermissions fielderAuthorizationPermissions = new MerchantAuthorizationPermissions();
fielderAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId());
fielderAuthorizationPermissions.setAuthorizationRecordId(fielderAuthorizationRecords.getAuthorizationRecordId());
fielderAuthorizationPermissions.setPermissionId(permissionId);
fielderAuthorizationPermissions.setStartTime(now);
fielderAuthorizationPermissions.setEndTime(now.plusYears(99));
fielderAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(fielderAuthorizationPermissions);
}
// 查询默认验票员
List<MerchantFieldCheckersVo> fieldCheckersVos = merchantRedisUtil.getFieldCheckersVosByFieldId(fieldId);
if (!CollectionUtil.isEmpty(fieldCheckersVos)) {
// 授权权限
String[] checkerPermissionIds = {
MerchantPermissionConst.PerformancePermission.CHECK.getId()
};
for (MerchantFieldCheckersVo fieldCheckersVo: fieldCheckersVos) {
// 授权记录
MerchantAuthorizationRecords checkerAuthorizationRecords = new MerchantAuthorizationRecords();
checkerAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
checkerAuthorizationRecords.setPerformanceId(performanceId);
checkerAuthorizationRecords.setUidRole("checker");
checkerAuthorizationRecords.setUid(fieldCheckersVo.getUid());
checkerAuthorizationRecords.setMobile(fieldCheckersVo.getMobile());
checkerAuthorizationRecords.setName(fieldCheckersVo.getName());
checkerAuthorizationRecords.setCuid(fieldsVo.getUid());
checkerAuthorizationRecords.setCuidRole("fielder");
checkerAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(checkerAuthorizationRecords);
// 授权权限
for (String permissionId : checkerPermissionIds) {
MerchantAuthorizationPermissions checkerAuthorizationPermissions = new MerchantAuthorizationPermissions();
checkerAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId());
checkerAuthorizationPermissions.setAuthorizationRecordId(checkerAuthorizationRecords.getAuthorizationRecordId());
checkerAuthorizationPermissions.setPermissionId(permissionId);
checkerAuthorizationPermissions.setStartTime(now);
checkerAuthorizationPermissions.setEndTime(now.plusYears(99));
checkerAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(checkerAuthorizationPermissions);
}
}
saveBatch(authorizationRecordsArrayList);
authorizationPermissionsAdminService.saveBatch(authorizationPermissionsArrayList);
}
}
return true;
}
// 授权主办方
private void performanceSponsor(String performanceId, String cuid, String sponsorId) {
LocalDateTime now = LocalDateTime.now();
}
}
......@@ -39,6 +39,16 @@ public class MerchantAuthorizationPermissions implements Serializable {
*/
private String permissionId;
/**
* 授权开始时间
*/
private LocalDateTime startTime;
/**
* 授权结束时间
*/
private LocalDateTime endTime;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
......
......@@ -64,16 +64,6 @@ public class MerchantAuthorizationRecords implements Serializable {
*/
private String cuid;
/**
* 授权开始时间
*/
private LocalDateTime startTime;
/**
* 授权结束时间
*/
private LocalDateTime endTime;
private LocalDateTime deletedAt;
private LocalDateTime createdAt;
......
......@@ -207,8 +207,6 @@ create table merchant_authorization_records
name varchar(255) default '' not null comment '姓名',
cuid_role varchar(255) default '' not null comment '授权人演出角色[creator|sponsor|fielder]',
cuid varchar(64) not null comment '授权人',
start_time datetime null comment '授权开始时间',
end_time datetime null comment '授权结束时间',
deleted_at timestamp null,
created_at timestamp null,
updated_at timestamp null
......@@ -244,6 +242,8 @@ create table merchant_authorization_permissions
authorization_permission_id varchar(64) not null comment 'authorization_permission_id',
authorization_record_id varchar(64) not null comment 'authorization_record_id',
permission_id varchar(64) not null comment 'permission_id',
start_time datetime null comment '授权开始时间',
end_time datetime null comment '授权结束时间',
created_at timestamp null,
updated_at timestamp null
) engine=InnoDB default charset=utf8mb4 collate=utf8mb4_unicode_ci comment '演出授权关联权限表';
......
package com.liquidnet.service.merchant.service.impl;
import com.liquidnet.service.merchant.service.IMerchantAuthorizationRecordsService;
public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthorizationRecordsService {
@Override
public void checkerAdd(String cuid, String performanceId, String uid, boolean statistics) {
}
@Override
public void checkerDel(String cuid, String performanceId, String uid) {
}
@Override
public void checkers(String cuid, String performanceId) {
}
}
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