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

Commit 6676ce6e authored by Tice's avatar Tice

Merge branch 'dev_merchant_tice' into dev_merchant

parents 8d53861f 11887ae1
...@@ -4,14 +4,12 @@ public class MerchantPermissionConst { ...@@ -4,14 +4,12 @@ public class MerchantPermissionConst {
// 某演出通过审核后,分配演出权限,场地方审核演出为'待审核的演出'与'演出'不同 // 某演出通过审核后,分配演出权限,场地方审核演出为'待审核的演出'与'演出'不同
public enum PerformancePermission { public enum PerformancePermission {
READ("1", "查看"), READ("1", "查看详情"),
EDIT("2", "编辑"), EDIT("2", "编辑提交"),
SUBMIT("3", "提交"), ONOFF("3", "上下线"),
ONLINE("4", "上线"), SALES("4", "销售统计"),
OFFLINE("5", "下线"), CHECK("5", "验票"),
SALES("6", "销售"), ACCREDIT("6", "授权");
CHECK("7", "验票"),
ACCREDIT("8", "授权");
private final String id; private final String id;
private final String name; private final String name;
......
...@@ -2,11 +2,16 @@ package com.liquidnet.service.merchant.dto.vo; ...@@ -2,11 +2,16 @@ package com.liquidnet.service.merchant.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationPermissions;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
public class MerchantAuthorizationPermissionsVo implements java.io.Serializable { @ApiModel(value = "MerchantAuthorizationPermissionsVo", description = "授权记录关联")
@Data
public class MerchantAuthorizationPermissionsVo implements java.io.Serializable, Cloneable {
private static final long serialVersionUID = -771282476240311975L; private static final long serialVersionUID = -771282476240311975L;
@ApiModelProperty(value = "authorization_permission_id") @ApiModelProperty(value = "authorization_permission_id")
...@@ -29,4 +34,31 @@ public class MerchantAuthorizationPermissionsVo implements java.io.Serializable ...@@ -29,4 +34,31 @@ public class MerchantAuthorizationPermissionsVo implements java.io.Serializable
private LocalDateTime createdAt; private LocalDateTime createdAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final MerchantAuthorizationPermissionsVo obj = new MerchantAuthorizationPermissionsVo();
public static MerchantAuthorizationPermissionsVo getNew() {
try {
return (MerchantAuthorizationPermissionsVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new MerchantAuthorizationPermissionsVo();
}
public MerchantAuthorizationPermissionsVo copy(MerchantAuthorizationPermissions source) {
if (null == source) return this;
this.setAuthorizationPermissionId(source.getAuthorizationPermissionId());
this.setAuthorizationRecordId(source.getAuthorizationRecordId());
this.setPermissionId(source.getPermissionId());
this.setStartTime(source.getStartTime());
this.setEndTime(source.getEndTime());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
} }
...@@ -2,11 +2,17 @@ package com.liquidnet.service.merchant.dto.vo; ...@@ -2,11 +2,17 @@ package com.liquidnet.service.merchant.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationRecords;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
public class MerchantAuthorizationRecordsVo implements java.io.Serializable{ @ApiModel(value = "MerchantAuthorizationRecordsVo", description = "授权记录")
@Data
public class MerchantAuthorizationRecordsVo implements java.io.Serializable, Cloneable{
private static final long serialVersionUID = 5851793907387626205L; private static final long serialVersionUID = 5851793907387626205L;
@ApiModelProperty(value = "authorization_record_id") @ApiModelProperty(value = "authorization_record_id")
...@@ -33,10 +39,44 @@ public class MerchantAuthorizationRecordsVo implements java.io.Serializable{ ...@@ -33,10 +39,44 @@ public class MerchantAuthorizationRecordsVo implements java.io.Serializable{
@ApiModelProperty(value = "授权人") @ApiModelProperty(value = "授权人")
private String cuid; private String cuid;
@ApiModelProperty(value = "授权的权限")
private List<MerchantAuthorizationPermissionsVo> permissionsVos;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime deletedAt; private LocalDateTime deletedAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt; private LocalDateTime createdAt;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt; private LocalDateTime updatedAt;
private static final MerchantAuthorizationRecordsVo obj = new MerchantAuthorizationRecordsVo();
public static MerchantAuthorizationRecordsVo getNew() {
try {
return (MerchantAuthorizationRecordsVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new MerchantAuthorizationRecordsVo();
}
public MerchantAuthorizationRecordsVo copy(MerchantAuthorizationRecords source) {
if (null == source) return this;
this.setAuthorizationRecordId(source.getAuthorizationRecordId());
this.setPerformanceId(source.getPerformanceId());
this.setUidRole(source.getUidRole());
this.setUid(source.getUid());
this.setMobile(source.getMobile());
this.setName(source.getName());
this.setCuid(source.getCuidRole());
this.setCuid(source.getCuid());
this.setDeletedAt(source.getDeletedAt());
this.setCreatedAt(source.getCreatedAt());
this.setUpdatedAt(source.getUpdatedAt());
return this;
}
} }
package com.liquidnet.service.merchant.service; package com.liquidnet.service.merchant.service;
public interface IMerchantAuthorizationRecordsService { public interface IMerchantAuthorizationRecordsService {
void checkerAdd(String cuid, String performanceId, String uid, boolean statistics); void performanceCheckerAdd(String cuid, String performanceId, String uid, boolean statistics);
void checkerDel(String cuid, String performanceId, String uid); void performanceCheckerDel(String cuid, String performanceId, String uid);
void checkers(String cuid, String performanceId); void performanceCheckers(String cuid, String performanceId);
} }
...@@ -9,8 +9,12 @@ import com.liquidnet.client.admin.common.core.page.TableDataInfo; ...@@ -9,8 +9,12 @@ import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BusinessType; import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils; import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldAppliesAdminService; import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldAppliesAdminService;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldsAdminService;
import com.liquidnet.service.merchant.dto.param.admin.MerchantFieldApplyListParam; import com.liquidnet.service.merchant.dto.param.admin.MerchantFieldApplyListParam;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.entity.MerchantFieldApplies; import com.liquidnet.service.merchant.entity.MerchantFieldApplies;
import com.liquidnet.service.merchant.entity.MerchantFields;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
...@@ -27,6 +31,9 @@ public class MerchantFieldAppliesController extends BaseController { ...@@ -27,6 +31,9 @@ public class MerchantFieldAppliesController extends BaseController {
private final String prefix = "zhengzai/kylin/field"; private final String prefix = "zhengzai/kylin/field";
@Autowired
IMerchantFieldsAdminService merchantFieldsAdminService;
@Autowired @Autowired
IMerchantFieldAppliesAdminService merchantFieldAppliesAdminService; IMerchantFieldAppliesAdminService merchantFieldAppliesAdminService;
...@@ -65,9 +72,22 @@ public class MerchantFieldAppliesController extends BaseController { ...@@ -65,9 +72,22 @@ public class MerchantFieldAppliesController extends BaseController {
LambdaQueryWrapper<MerchantFieldApplies> fieldAppliesLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantFieldApplies.class); LambdaQueryWrapper<MerchantFieldApplies> fieldAppliesLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantFieldApplies.class);
fieldAppliesLambdaQueryWrapper.eq(MerchantFieldApplies::getFieldApplyId, fieldApplyId); fieldAppliesLambdaQueryWrapper.eq(MerchantFieldApplies::getFieldApplyId, fieldApplyId);
MerchantFieldApplies fieldApplies = merchantFieldAppliesAdminService.getOne(fieldAppliesLambdaQueryWrapper); MerchantFieldApplies fieldApplies = merchantFieldAppliesAdminService.getOne(fieldAppliesLambdaQueryWrapper);
mmap.put("fieldApplyInfo", fieldApplies);
return prefix + "/details"; MerchantFieldAppliesVo fieldAppliesVo = MerchantFieldAppliesVo.getNew();
fieldAppliesVo.copy(fieldApplies);
if (fieldAppliesVo.getApplyType().equals("claim")) {
LambdaQueryWrapper<MerchantFields> fieldsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantFields.class);
fieldsLambdaQueryWrapper.eq(MerchantFields::getFieldId, fieldAppliesVo.getFieldId());
MerchantFields fields = merchantFieldsAdminService.getOne(fieldsLambdaQueryWrapper);
MerchantFieldsVo fieldsVo = MerchantFieldsVo.getNew();
fieldsVo.copy(fields);
fieldAppliesVo.setFieldVo(fieldsVo);
}
mmap.put("fieldApplyInfo", fieldAppliesVo);
return prefix + "/applyDetail";
} }
@ApiOperation(value = "审核通过") @ApiOperation(value = "审核通过")
......
...@@ -10,6 +10,7 @@ import com.liquidnet.client.admin.common.enums.BusinessType; ...@@ -10,6 +10,7 @@ import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils; import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantSponsorAppliesAdminService; import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantSponsorAppliesAdminService;
import com.liquidnet.service.merchant.dto.param.admin.MerchantSponsorApplyListParam; import com.liquidnet.service.merchant.dto.param.admin.MerchantSponsorApplyListParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.entity.MerchantSponsorApplies; import com.liquidnet.service.merchant.entity.MerchantSponsorApplies;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -61,9 +62,13 @@ public class MerchantSponsorAppliesController extends BaseController { ...@@ -61,9 +62,13 @@ public class MerchantSponsorAppliesController extends BaseController {
LambdaQueryWrapper<MerchantSponsorApplies> sponsorAppliesLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantSponsorApplies.class); LambdaQueryWrapper<MerchantSponsorApplies> sponsorAppliesLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantSponsorApplies.class);
sponsorAppliesLambdaQueryWrapper.eq(MerchantSponsorApplies::getSponsorApplyId, sponsorApplyId); sponsorAppliesLambdaQueryWrapper.eq(MerchantSponsorApplies::getSponsorApplyId, sponsorApplyId);
MerchantSponsorApplies sponsorApplies = merchantSponsorAppliesAdminService.getOne(sponsorAppliesLambdaQueryWrapper); MerchantSponsorApplies sponsorApplies = merchantSponsorAppliesAdminService.getOne(sponsorAppliesLambdaQueryWrapper);
mmap.put("sponsorApplyInfo", sponsorApplies);
return prefix + "/details"; MerchantSponsorAppliesVo sponsorAppliesVo = MerchantSponsorAppliesVo.getNew();
sponsorAppliesVo.copy(sponsorApplies);
mmap.put("sponsorApplyInfo", sponsorAppliesVo);
return prefix + "/applyDetail";
} }
@ApiOperation(value = "审核通过") @ApiOperation(value = "审核通过")
......
...@@ -12,16 +12,17 @@ import com.liquidnet.common.exception.LiquidnetServiceException; ...@@ -12,16 +12,17 @@ import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.merchant.constant.MerchantPermissionConst; import com.liquidnet.service.merchant.constant.MerchantPermissionConst;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo; import com.liquidnet.service.merchant.dto.vo.*;
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.MerchantAuthorizationPermissions;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationRecords; import com.liquidnet.service.merchant.entity.MerchantAuthorizationRecords;
import com.liquidnet.service.merchant.mapper.MerchantAuthorizationRecordsMapper; import com.liquidnet.service.merchant.mapper.MerchantAuthorizationRecordsMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -44,18 +45,22 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -44,18 +45,22 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
IMerchantAuthorizationPermissionsAdminService authorizationPermissionsAdminService; IMerchantAuthorizationPermissionsAdminService authorizationPermissionsAdminService;
@Override @Override
@Transactional
public void authorizationInit(String performanceId, String cuid, String fieldId, String sponsorId) { public void authorizationInit(String performanceId, String cuid, String fieldId, String sponsorId) {
// 创建者 // 创建者
this.performanceCreator(performanceId, cuid);
// 场地方 // 场地方
MerchantFieldsVo fieldsVo = merchantRedisUtil.getFieldsVoByFieldId(fieldId); this.performanceFielder(performanceId, cuid, fieldId);
// 主办方
MerchantSponsorsVo sponsorsVo = merchantRedisUtil.getSponsorsVoBySponsorId(sponsorId);
// 主办方
this.performanceSponsor(performanceId, cuid, sponsorId);
} }
private void performanceCreator(String performanceId, String cuid, String uid) { // 创建者
private boolean performanceCreator(String performanceId, String cuid) {
LocalDateTime now = LocalDateTime.now();
// 查询已有权限 // 查询已有权限
LambdaQueryWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantAuthorizationRecords.class); LambdaQueryWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantAuthorizationRecords.class);
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getPerformanceId, performanceId); authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getPerformanceId, performanceId);
...@@ -63,11 +68,79 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -63,11 +68,79 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getDeletedAt, null); authorizationRecordsLambdaQueryWrapper.eq(MerchantAuthorizationRecords::getDeletedAt, null);
MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper); MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper);
// 是否已存在权限
if (null != authorizationRecords) { if (null != authorizationRecords) {
if (!authorizationRecords.getUid().equals(cuid)) {
// 前后 创建方一致 不处理
return true;
}
// 前后 创建方不一致的情况不存在
throw new LiquidnetServiceException();
}
// 添加权限
ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>();
ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
// 授权记录
// todo 用户信息
MerchantAuthorizationRecords creatorAuthorizationRecords = new MerchantAuthorizationRecords();
creatorAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
creatorAuthorizationRecords.setPerformanceId(performanceId);
creatorAuthorizationRecords.setUidRole("creator");
creatorAuthorizationRecords.setUid(cuid);
creatorAuthorizationRecords.setMobile("");
creatorAuthorizationRecords.setName("");
creatorAuthorizationRecords.setCuid(cuid);
creatorAuthorizationRecords.setCuidRole("creator");
creatorAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(creatorAuthorizationRecords);
// 授权权限
ArrayList<MerchantAuthorizationPermissionsVo> creatorAuthorizationPermissionsVos = new ArrayList<>();
String[] fielderPermissionIds = {
MerchantPermissionConst.PerformancePermission.READ.getId(),
MerchantPermissionConst.PerformancePermission.EDIT.getId(),
MerchantPermissionConst.PerformancePermission.ONOFF.getId(),
MerchantPermissionConst.PerformancePermission.CHECK.getId(),
MerchantPermissionConst.PerformancePermission.SALES.getId(),
MerchantPermissionConst.PerformancePermission.ACCREDIT.getId()
};
for (String permissionId : fielderPermissionIds) {
// entity
MerchantAuthorizationPermissions creatorAuthorizationPermissions = new MerchantAuthorizationPermissions();
creatorAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId());
creatorAuthorizationPermissions.setAuthorizationRecordId(creatorAuthorizationRecords.getAuthorizationRecordId());
creatorAuthorizationPermissions.setPermissionId(permissionId);
creatorAuthorizationPermissions.setStartTime(now);
creatorAuthorizationPermissions.setEndTime(now.plusYears(99));
creatorAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(creatorAuthorizationPermissions);
// vo
MerchantAuthorizationPermissionsVo authorizationPermissionsVo = MerchantAuthorizationPermissionsVo.getNew();
authorizationPermissionsVo.copy(creatorAuthorizationPermissions);
creatorAuthorizationPermissionsVos.add(authorizationPermissionsVo);
} }
// mysql
boolean success = saveBatch(authorizationRecordsArrayList);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
success = authorizationPermissionsAdminService.saveBatch(authorizationPermissionsArrayList);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// mongo
MerchantAuthorizationRecordsVo authorizationRecordsVo = MerchantAuthorizationRecordsVo.getNew();
authorizationRecordsVo.copy(creatorAuthorizationRecords);
authorizationRecordsVo.setPermissionsVos(creatorAuthorizationPermissionsVos);
mongoTemplate.insert(authorizationRecordsVo, MerchantAuthorizationRecordsVo.class.getSimpleName());
return true;
} }
// 授权场地方 // 授权场地方
...@@ -86,8 +159,6 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -86,8 +159,6 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
// 是否已存在权限 // 是否已存在权限
if (null != authorizationRecords) { if (null != authorizationRecords) {
// 已存在权限
if (authorizationRecords.getUid().equals(fieldsVo.getUid())) { if (authorizationRecords.getUid().equals(fieldsVo.getUid())) {
// 前后 场地方一致 不处理 // 前后 场地方一致 不处理
return true; return true;
...@@ -97,6 +168,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -97,6 +168,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
authorizationRecords.setUpdatedAt(now); authorizationRecords.setUpdatedAt(now);
authorizationRecords.setDeletedAt(now); authorizationRecords.setDeletedAt(now);
// mysql
LambdaUpdateWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantAuthorizationRecords.class); LambdaUpdateWrapper<MerchantAuthorizationRecords> authorizationRecordsLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantAuthorizationRecords.class);
authorizationRecordsLambdaUpdateWrapper authorizationRecordsLambdaUpdateWrapper
.eq(MerchantAuthorizationRecords::getPerformanceId, performanceId) .eq(MerchantAuthorizationRecords::getPerformanceId, performanceId)
...@@ -114,6 +186,15 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -114,6 +186,15 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
// todo error // todo error
throw new LiquidnetServiceException(); throw new LiquidnetServiceException();
} }
// mongo
Criteria criteria = Criteria.where("performanceId").is(performanceId).and("deletedAt").is(null);
criteria.orOperator(
Criteria.where("authorizationRecordId").is(authorizationRecords.getAuthorizationRecordId()),
Criteria.where("cuid").is(authorizationRecords.getUid()).and("cuidRole").is("fielder")
);
Query query = Query.query(criteria);
mongoTemplate.remove(query, MerchantAuthorizationRecordsVo.class, MerchantAuthorizationRecordsVo.class.getSimpleName());
} }
// 是否添加权限 // 是否添加权限
...@@ -121,7 +202,9 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -121,7 +202,9 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>(); ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>();
ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>(); ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
// 授权记录 ArrayList<MerchantAuthorizationRecordsVo> authorizationRecordsVoArrayList = new ArrayList<>();
// 授权记录 entity
// todo 用户信息 // todo 用户信息
MerchantAuthorizationRecords fielderAuthorizationRecords = new MerchantAuthorizationRecords(); MerchantAuthorizationRecords fielderAuthorizationRecords = new MerchantAuthorizationRecords();
fielderAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId()); fielderAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
...@@ -134,7 +217,8 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -134,7 +217,8 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
fielderAuthorizationRecords.setCuidRole("creator"); fielderAuthorizationRecords.setCuidRole("creator");
fielderAuthorizationRecords.setCreatedAt(now); fielderAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(fielderAuthorizationRecords); authorizationRecordsArrayList.add(fielderAuthorizationRecords);
// 授权权限 // 授权权限 entity vo
ArrayList<MerchantAuthorizationPermissionsVo> fielderAuthorizationPermissionsVos = new ArrayList<>();
String[] fielderPermissionIds = { String[] fielderPermissionIds = {
MerchantPermissionConst.PerformancePermission.READ.getId(), MerchantPermissionConst.PerformancePermission.READ.getId(),
MerchantPermissionConst.PerformancePermission.CHECK.getId(), MerchantPermissionConst.PerformancePermission.CHECK.getId(),
...@@ -149,18 +233,27 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -149,18 +233,27 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
fielderAuthorizationPermissions.setEndTime(now.plusYears(99)); fielderAuthorizationPermissions.setEndTime(now.plusYears(99));
fielderAuthorizationPermissions.setCreatedAt(now); fielderAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(fielderAuthorizationPermissions); authorizationPermissionsArrayList.add(fielderAuthorizationPermissions);
MerchantAuthorizationPermissionsVo fielderAuthorizationPermissionsVo = MerchantAuthorizationPermissionsVo.getNew();
fielderAuthorizationPermissionsVo.copy(fielderAuthorizationPermissions);
fielderAuthorizationPermissionsVos.add(fielderAuthorizationPermissionsVo);
} }
// 授权记录 vo
MerchantAuthorizationRecordsVo fielderAuthorizationRecordsVo = MerchantAuthorizationRecordsVo.getNew();
fielderAuthorizationRecordsVo.copy(fielderAuthorizationRecords);
fielderAuthorizationRecordsVo.setPermissionsVos(fielderAuthorizationPermissionsVos);
authorizationRecordsVoArrayList.add(fielderAuthorizationRecordsVo);
// 查询默认验票员 // 查询默认验票员
List<MerchantFieldCheckersVo> fieldCheckersVos = merchantRedisUtil.getFieldCheckersVosByFieldId(fieldId); List<MerchantFieldCheckersVo> fieldCheckersVos = merchantRedisUtil.getFieldCheckersVosByFieldId(fieldId);
if (!CollectionUtil.isEmpty(fieldCheckersVos)) { if (!CollectionUtil.isEmpty(fieldCheckersVos)) {
// 授权权限 // 验票员 授权权限
String[] checkerPermissionIds = { String[] checkerPermissionIds = {
MerchantPermissionConst.PerformancePermission.CHECK.getId() MerchantPermissionConst.PerformancePermission.CHECK.getId()
}; };
for (MerchantFieldCheckersVo fieldCheckersVo: fieldCheckersVos) { for (MerchantFieldCheckersVo fieldCheckersVo: fieldCheckersVos) {
// 授权记录 // 验票员 授权记录 entity
MerchantAuthorizationRecords checkerAuthorizationRecords = new MerchantAuthorizationRecords(); MerchantAuthorizationRecords checkerAuthorizationRecords = new MerchantAuthorizationRecords();
checkerAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId()); checkerAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
checkerAuthorizationRecords.setPerformanceId(performanceId); checkerAuthorizationRecords.setPerformanceId(performanceId);
...@@ -173,7 +266,8 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -173,7 +266,8 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
checkerAuthorizationRecords.setCreatedAt(now); checkerAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(checkerAuthorizationRecords); authorizationRecordsArrayList.add(checkerAuthorizationRecords);
// 授权权限 // 验票员 授权权限 entity vo
ArrayList<MerchantAuthorizationPermissionsVo> checkerAuthorizationPermissionsVos = new ArrayList<>();
for (String permissionId : checkerPermissionIds) { for (String permissionId : checkerPermissionIds) {
MerchantAuthorizationPermissions checkerAuthorizationPermissions = new MerchantAuthorizationPermissions(); MerchantAuthorizationPermissions checkerAuthorizationPermissions = new MerchantAuthorizationPermissions();
checkerAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId()); checkerAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId());
...@@ -183,19 +277,41 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -183,19 +277,41 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
checkerAuthorizationPermissions.setEndTime(now.plusYears(99)); checkerAuthorizationPermissions.setEndTime(now.plusYears(99));
checkerAuthorizationPermissions.setCreatedAt(now); checkerAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(checkerAuthorizationPermissions); authorizationPermissionsArrayList.add(checkerAuthorizationPermissions);
MerchantAuthorizationPermissionsVo checkerAuthorizationPermissionsVo = MerchantAuthorizationPermissionsVo.getNew();
checkerAuthorizationPermissionsVo.copy(checkerAuthorizationPermissions);
checkerAuthorizationPermissionsVos.add(checkerAuthorizationPermissionsVo);
}
// 验票员 授权记录 vo
MerchantAuthorizationRecordsVo checkerAuthorizationRecordsVo = MerchantAuthorizationRecordsVo.getNew();
checkerAuthorizationRecordsVo.copy(checkerAuthorizationRecords);
checkerAuthorizationRecordsVo.setPermissionsVos(checkerAuthorizationPermissionsVos);
authorizationRecordsVoArrayList.add(checkerAuthorizationRecordsVo);
} }
} }
saveBatch(authorizationRecordsArrayList); // mysql
authorizationPermissionsAdminService.saveBatch(authorizationPermissionsArrayList); boolean success = saveBatch(authorizationRecordsArrayList);
if (!success) {
// todo error
throw new LiquidnetServiceException();
} }
success = authorizationPermissionsAdminService.saveBatch(authorizationPermissionsArrayList);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// mongo
mongoTemplate.insert(authorizationRecordsVoArrayList, MerchantAuthorizationRecordsVo.class.getSimpleName());
} }
return true; return true;
} }
// 授权主办方 // 授权主办方
private void performanceSponsor(String performanceId, String cuid, String sponsorId) { private boolean performanceSponsor(String performanceId, String cuid, String sponsorId) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 查询已有权限 // 查询已有权限
...@@ -208,6 +324,107 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -208,6 +324,107 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
// 查询主办方 // 查询主办方
MerchantSponsorsVo sponsorsVo = merchantRedisUtil.getSponsorsVoBySponsorId(sponsorId); MerchantSponsorsVo sponsorsVo = merchantRedisUtil.getSponsorsVoBySponsorId(sponsorId);
// 是否已存在权限
if (null != authorizationRecords) {
if (authorizationRecords.getUid().equals(sponsorsVo.getUid())) {
// 前后 主办方一致 不处理
return true;
}
// 前后 主办方不一致 删除旧权限 及 我的授权
authorizationRecords.setUpdatedAt(now);
authorizationRecords.setDeletedAt(now);
// mysql
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, "sponsor"))
);
authorizationRecordsLambdaUpdateWrapper.set(MerchantAuthorizationRecords::getUpdatedAt, authorizationRecords.getUpdatedAt());
authorizationRecordsLambdaUpdateWrapper.set(MerchantAuthorizationRecords::getDeletedAt, authorizationRecords.getDeletedAt());
boolean success = update(authorizationRecordsLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// mongo
Criteria criteria = Criteria.where("performanceId").is(performanceId).and("deletedAt").is(null);
criteria.orOperator(
Criteria.where("authorizationRecordId").is(authorizationRecords.getAuthorizationRecordId()),
Criteria.where("cuid").is(authorizationRecords.getUid()).and("cuidRole").is("sponsor")
);
Query query = Query.query(criteria);
mongoTemplate.remove(query, MerchantAuthorizationRecordsVo.class, MerchantAuthorizationRecordsVo.class.getSimpleName());
}
// 是否添加权限
if (!sponsorsVo.getUid().isEmpty()) {
ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>();
ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
// 授权记录 entity
// todo 用户信息
MerchantAuthorizationRecords sponsorAuthorizationRecords = new MerchantAuthorizationRecords();
sponsorAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
sponsorAuthorizationRecords.setPerformanceId(performanceId);
sponsorAuthorizationRecords.setUidRole("sponsor");
sponsorAuthorizationRecords.setUid(sponsorsVo.getUid());
sponsorAuthorizationRecords.setMobile("");
sponsorAuthorizationRecords.setName("");
sponsorAuthorizationRecords.setCuid(cuid);
sponsorAuthorizationRecords.setCuidRole("creator");
sponsorAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(sponsorAuthorizationRecords);
// 授权权限 entity vo
ArrayList<MerchantAuthorizationPermissionsVo> sponsorAuthorizationPermissionsVos = new ArrayList<>();
String[] fielderPermissionIds = {
MerchantPermissionConst.PerformancePermission.READ.getId(),
MerchantPermissionConst.PerformancePermission.CHECK.getId(),
MerchantPermissionConst.PerformancePermission.SALES.getId(),
MerchantPermissionConst.PerformancePermission.ACCREDIT.getId()
};
for (String permissionId : fielderPermissionIds) {
MerchantAuthorizationPermissions sponsorAuthorizationPermissions = new MerchantAuthorizationPermissions();
sponsorAuthorizationPermissions.setAuthorizationPermissionId(IDGenerator.nextSnowId());
sponsorAuthorizationPermissions.setAuthorizationRecordId(sponsorAuthorizationRecords.getAuthorizationRecordId());
sponsorAuthorizationPermissions.setPermissionId(permissionId);
sponsorAuthorizationPermissions.setStartTime(now);
sponsorAuthorizationPermissions.setEndTime(now.plusYears(99));
sponsorAuthorizationPermissions.setCreatedAt(now);
authorizationPermissionsArrayList.add(sponsorAuthorizationPermissions);
MerchantAuthorizationPermissionsVo sponsorAuthorizationPermissionsVo = MerchantAuthorizationPermissionsVo.getNew();
sponsorAuthorizationPermissionsVo.copy(sponsorAuthorizationPermissions);
sponsorAuthorizationPermissionsVos.add(sponsorAuthorizationPermissionsVo);
}
// 授权记录 vo
MerchantAuthorizationRecordsVo sponsorAuthorizationRecordsVo = MerchantAuthorizationRecordsVo.getNew();
sponsorAuthorizationRecordsVo.copy(sponsorAuthorizationRecords);
sponsorAuthorizationRecordsVo.setPermissionsVos(sponsorAuthorizationPermissionsVos);
// mysql
boolean success = saveBatch(authorizationRecordsArrayList);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
success = authorizationPermissionsAdminService.saveBatch(authorizationPermissionsArrayList);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// mongo
mongoTemplate.insert(sponsorAuthorizationRecordsVo, MerchantAuthorizationRecordsVo.class.getSimpleName());
}
return true;
} }
} }
...@@ -4,17 +4,17 @@ import com.liquidnet.service.merchant.service.IMerchantAuthorizationRecordsServi ...@@ -4,17 +4,17 @@ import com.liquidnet.service.merchant.service.IMerchantAuthorizationRecordsServi
public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthorizationRecordsService { public class MerchantAuthorizationRecordsServiceImpl implements IMerchantAuthorizationRecordsService {
@Override @Override
public void checkerAdd(String cuid, String performanceId, String uid, boolean statistics) { public void performanceCheckerAdd(String cuid, String performanceId, String uid, boolean statistics) {
} }
@Override @Override
public void checkerDel(String cuid, String performanceId, String uid) { public void performanceCheckerDel(String cuid, String performanceId, String uid) {
} }
@Override @Override
public void checkers(String cuid, String performanceId) { public void performanceCheckers(String cuid, String performanceId) {
} }
} }
...@@ -86,7 +86,7 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService { ...@@ -86,7 +86,7 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService {
// 若认领,查询验证场地 // 若认领,查询验证场地
MerchantFieldsVo fieldsVo = null; MerchantFieldsVo fieldsVo = null;
if (!parameter.getFieldId().isEmpty()) { if (null != parameter.getFieldId() && !parameter.getFieldId().isEmpty()) {
fieldsVo = merchantRdmService.getFieldsVoByFieldId(parameter.getFieldId()); fieldsVo = merchantRdmService.getFieldsVoByFieldId(parameter.getFieldId());
if (null == fieldsVo) { if (null == fieldsVo) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13101"); ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13101");
......
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