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

Commit 92823cd2 authored by Tice's avatar Tice

update

parent 5b731dcf
package com.liquidnet.service.merchant.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@ApiModel(value = "MerchantAuthorizationPerformanceVo", description = "演出纬度权限聚合")
@Data
public class MerchantAuthorizationPerformanceVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -225012446820470899L;
@ApiModelProperty(value = "演出ID")
private String performanceId;
@ApiModelProperty(value = "权利人")
private String uid;
@ApiModelProperty(value = "权利人演出所有角色")
private List<String> uidRoles;
@ApiModelProperty(value = "权利人演出所有权限")
private List<String> permissionIds;
private static final MerchantAuthorizationPerformanceVo obj = new MerchantAuthorizationPerformanceVo();
public static MerchantAuthorizationPerformanceVo getNew() {
try {
return (MerchantAuthorizationPerformanceVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new MerchantAuthorizationPerformanceVo();
}
}
......@@ -10,16 +10,20 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.merchant.constant.MerchantAuthorizationConst;
import com.liquidnet.service.merchant.dto.param.MerchantAuthorizationPermissionParam;
import com.liquidnet.service.merchant.dto.param.MerchantAuthorizationRecordParam;
import com.liquidnet.service.merchant.dto.vo.MerchantAuthorizationPerformanceVo;
import com.liquidnet.service.merchant.dto.vo.MerchantAuthorizationPermissionsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantAuthorizationRecordsVo;
import com.liquidnet.service.merchant.service.IMerchantAuthorizationRecordsService;
import com.liquidnet.service.merchant.service.MerchantMongoService;
import com.liquidnet.service.merchant.util.QueueUtil;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
......@@ -38,6 +42,9 @@ public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthori
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoConverter mongoConverter;
@Autowired
QueueUtil queueUtils;
......@@ -46,6 +53,11 @@ public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthori
LocalDateTime now = LocalDateTime.now();
// 目前仅授权 验票 统计
if (cuid.equals(parameter.getUid())) {
// 无授权权限
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13301");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantAuthorizationPermissionParam checkPermissionParam = null;
MerchantAuthorizationPermissionParam salesPermissionParam = null;
for (MerchantAuthorizationPermissionParam permissionParam: parameter.getPermissions()) {
......@@ -121,6 +133,9 @@ public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthori
mongoTemplate.insert(checkerAuthorizationRecordsVo, MerchantAuthorizationRecordsVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 聚合角色及权限
this.syncAuthorizationPerformanceVo(parameter.getPerformanceId(), checkerAuthorizationRecordsVo.getUid());
// sql
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> authorizationRecordsInsertObjs = CollectionUtil.linkedListObjectArr();
......@@ -175,6 +190,9 @@ public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthori
mongoTemplate.remove(Query.query(Criteria.where("authorizationRecordId").is(authorizationRecordId)), MerchantAuthorizationRecordsVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 聚合角色及权限
this.syncAuthorizationPerformanceVo(authorizationRecordsVo.getPerformanceId(), authorizationRecordsVo.getUid());
// sql
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> authorizationRecordsUpdateObjs = CollectionUtil.linkedListObjectArr();
......@@ -200,15 +218,17 @@ public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthori
private MerchantAuthorizationConst.PerformanceRole getMaxPerformanceRole(String uid, String performanceId) {
List<MerchantAuthorizationRecordsVo> authorizationRecordsVos = merchantMongoService.getAuthorizationRecordsVosByUid(uid, performanceId);
if (!CollectionUtil.isEmpty(authorizationRecordsVos)) {
MerchantAuthorizationPerformanceVo authorizationPerformanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performanceId").is(performanceId).and("uid").is(uid)), MerchantAuthorizationPerformanceVo.class, MerchantAuthorizationPerformanceVo.class.getSimpleName());
if (null == authorizationPerformanceVo) {
return null;
}
if (!CollectionUtil.isEmpty(authorizationPerformanceVo.getUidRoles())) {
return null;
}
MerchantAuthorizationConst.PerformanceRole maxRole = MerchantAuthorizationConst.PerformanceRole.valueOf(authorizationRecordsVos.get(0).getUidRole());
for (MerchantAuthorizationRecordsVo authorizationRecordsVo : authorizationRecordsVos) {
MerchantAuthorizationConst.PerformanceRole role = MerchantAuthorizationConst.PerformanceRole.valueOf(authorizationRecordsVo.getUidRole());
MerchantAuthorizationConst.PerformanceRole maxRole = MerchantAuthorizationConst.PerformanceRole.valueOf(authorizationPerformanceVo.getUidRoles().get(0));
for (String uidRole : authorizationPerformanceVo.getUidRoles()) {
MerchantAuthorizationConst.PerformanceRole role = MerchantAuthorizationConst.PerformanceRole.valueOf(uidRole);
if (role.getLevel() > maxRole.getLevel()) {
maxRole = role;
}
......@@ -216,4 +236,34 @@ public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthori
return maxRole;
}
private void syncAuthorizationPerformanceVo(String performanceId, String uid) {
List<MerchantAuthorizationRecordsVo> authorizationRecordsVos = merchantMongoService.getAuthorizationRecordsVosByUid(uid, performanceId);
List<String> uidRoles = new ArrayList<>();
List<String> permissionIds = new ArrayList<>();
for (MerchantAuthorizationRecordsVo authorizationRecordsVo: authorizationRecordsVos) {
if (!uidRoles.contains(authorizationRecordsVo.getUidRole())) {
uidRoles.add(authorizationRecordsVo.getUidRole());
}
for (MerchantAuthorizationPermissionsVo authorizationPermissionsVo: authorizationRecordsVo.getPermissionsVos()) {
if (!permissionIds.contains(authorizationPermissionsVo.getPermissionId())) {
permissionIds.add(authorizationPermissionsVo.getPermissionId());
}
}
}
// 聚合角色及权限
MerchantAuthorizationPerformanceVo vo = MerchantAuthorizationPerformanceVo.getNew();
vo.setUid(uid);
vo.setPerformanceId(performanceId);
vo.setUidRoles(uidRoles);
vo.setPermissionIds(permissionIds);
Query query = Query.query(Criteria.where("performanceId").is(performanceId).and("uid").is(uid));
Document document = (Document)mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
mongoTemplate.upsert(query, update, MerchantAuthorizationPerformanceVo.class, MerchantAuthorizationPerformanceVo.class.getSimpleName());
}
}
......@@ -136,6 +136,10 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService {
this.checkFieldAccount(cuid, fieldId);
// 场地默认验票员,是否已经添加
if (cuid.equals(uid)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13103");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
List<MerchantFieldCheckersVo> fieldCheckersVos = merchantRdmService.getFieldCheckersVosByFieldId(fieldId);
if (!CollectionUtils.isEmpty(fieldCheckersVos)) {
for (MerchantFieldCheckersVo vo : fieldCheckersVos) {
......
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