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

Commit 195dd9ad authored by Tice's avatar Tice

update

parent 23dedf23
package com.liquidnet.service.merchant.service;
import com.liquidnet.service.merchant.dto.param.MerchantFieldApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo;
public interface IMerchantFieldAppliesService {
String apply(String uid, MerchantFieldApplyParam parameter);
void applyDel(String uid, String fieldApplyId);
MerchantFieldAppliesVo applyInfo(String uid, String fieldApplyId);
}
...@@ -12,13 +12,6 @@ public interface IMerchantFieldsService { ...@@ -12,13 +12,6 @@ public interface IMerchantFieldsService {
PagedResult<MerchantFieldsVo> search(String name, int page, int size); PagedResult<MerchantFieldsVo> search(String name, int page, int size);
String apply(String uid, MerchantFieldApplyParam parameter);
void applyDel(String uid, String fieldApplyId);
MerchantFieldAppliesVo applyInfo(String uid, String fieldApplyId);
void editIsCheck(String uid, String fieldId, int isCheck); void editIsCheck(String uid, String fieldId, int isCheck);
......
package com.liquidnet.service.merchant.service;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
public interface IMerchantSponsorAppliesService {
String apply(String uid, MerchantSponsorApplyParam parameter);
void applyDel(String uid, String sponsorApplyId);
MerchantSponsorAppliesVo applyInfo(String uid, String sponsorApplyId);
}
...@@ -7,10 +7,4 @@ import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo; ...@@ -7,10 +7,4 @@ import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
public interface IMerchantSponsorsService { public interface IMerchantSponsorsService {
PagedResult<MerchantSponsorsVo> search(String name, int page, int size); PagedResult<MerchantSponsorsVo> search(String name, int page, int size);
String apply(String uid, MerchantSponsorApplyParam parameter);
void applyDel(String uid, String sponsorApplyId);
MerchantSponsorAppliesVo applyInfo(String uid, String sponsorApplyId);
} }
package com.liquidnet.client.admin.zhengzai.merchant.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.merchant.entity.MerchantFieldCheckers;
public interface IMerchantFieldCheckersAdminService extends IService<MerchantFieldCheckers> {
}
...@@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.*;
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.MerchantMongoUtil;
import com.liquidnet.client.admin.zhengzai.merchant.utils.MerchantRedisUtil; import com.liquidnet.client.admin.zhengzai.merchant.utils.MerchantRedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException; import com.liquidnet.common.exception.LiquidnetServiceException;
...@@ -13,8 +12,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil; ...@@ -13,8 +12,7 @@ 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.*; import com.liquidnet.service.merchant.dto.vo.*;
import com.liquidnet.service.merchant.entity.MerchantAuthorizationPermissions; import com.liquidnet.service.merchant.entity.*;
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;
...@@ -41,6 +39,15 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -41,6 +39,15 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired
IMerchantFieldsAdminService fieldsAdminService;
@Autowired
IMerchantFieldCheckersAdminService fieldCheckersAdminService;
@Autowired
IMerchantSponsorsAdminService sponsorsAdminService;
@Autowired @Autowired
IMerchantAuthorizationPermissionsAdminService authorizationPermissionsAdminService; IMerchantAuthorizationPermissionsAdminService authorizationPermissionsAdminService;
...@@ -51,10 +58,10 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -51,10 +58,10 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
this.performanceCreator(performanceId, cuid); this.performanceCreator(performanceId, cuid);
// 场地方 // 场地方
this.performanceFielder(performanceId, cuid, fieldId); this.performanceFielder(performanceId, fieldId);
// 主办方 // 主办方
this.performanceSponsor(performanceId, cuid, sponsorId); this.performanceSponsor(performanceId, sponsorId);
} }
// 创建者 // 创建者
...@@ -69,6 +76,9 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -69,6 +76,9 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper); MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper);
// 是否已存在权限 // 是否已存在权限
if (null == cuid) {
throw new LiquidnetServiceException();
}
if (null != authorizationRecords) { if (null != authorizationRecords) {
if (!authorizationRecords.getUid().equals(cuid)) { if (!authorizationRecords.getUid().equals(cuid)) {
// 前后 创建方一致 不处理 // 前后 创建方一致 不处理
...@@ -91,8 +101,8 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -91,8 +101,8 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
creatorAuthorizationRecords.setUid(cuid); creatorAuthorizationRecords.setUid(cuid);
creatorAuthorizationRecords.setMobile(""); creatorAuthorizationRecords.setMobile("");
creatorAuthorizationRecords.setName(""); creatorAuthorizationRecords.setName("");
creatorAuthorizationRecords.setCuid(cuid); creatorAuthorizationRecords.setCuid("");
creatorAuthorizationRecords.setCuidRole("creator"); creatorAuthorizationRecords.setCuidRole("");
creatorAuthorizationRecords.setCreatedAt(now); creatorAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(creatorAuthorizationRecords); authorizationRecordsArrayList.add(creatorAuthorizationRecords);
...@@ -144,7 +154,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -144,7 +154,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
} }
// 授权场地方 // 授权场地方
private boolean performanceFielder(String performanceId, String cuid, String fieldId) { private boolean performanceFielder(String performanceId, String fieldId) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 查询已有权限 // 查询已有权限
...@@ -155,11 +165,13 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -155,11 +165,13 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper); MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper);
// 查询场地方 // 查询场地方
MerchantFieldsVo fieldsVo = merchantRedisUtil.getFieldsVoByFieldId(fieldId); LambdaQueryWrapper<MerchantFields> fieldsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantFields.class);
fieldsLambdaQueryWrapper.eq(MerchantFields::getFieldId, fieldId);
MerchantFields fields = fieldsAdminService.getOne(fieldsLambdaQueryWrapper);
// 是否已存在权限 // 是否已存在权限
if (null != authorizationRecords) { if (null != authorizationRecords) {
if (authorizationRecords.getUid().equals(fieldsVo.getUid())) { if (null != fields && authorizationRecords.getUid().equals(fields.getUid())) {
// 前后 场地方一致 不处理 // 前后 场地方一致 不处理
return true; return true;
} }
...@@ -168,7 +180,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -168,7 +180,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
authorizationRecords.setUpdatedAt(now); authorizationRecords.setUpdatedAt(now);
authorizationRecords.setDeletedAt(now); authorizationRecords.setDeletedAt(now);
// mysql // 删除旧权限 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)
...@@ -187,7 +199,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -187,7 +199,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
throw new LiquidnetServiceException(); throw new LiquidnetServiceException();
} }
// mongo // 删除旧权限 mongo
Criteria criteria = Criteria.where("performanceId").is(performanceId).and("deletedAt").is(null); Criteria criteria = Criteria.where("performanceId").is(performanceId).and("deletedAt").is(null);
criteria.orOperator( criteria.orOperator(
Criteria.where("authorizationRecordId").is(authorizationRecords.getAuthorizationRecordId()), Criteria.where("authorizationRecordId").is(authorizationRecords.getAuthorizationRecordId()),
...@@ -198,7 +210,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -198,7 +210,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
} }
// 是否添加权限 // 是否添加权限
if (1 == fieldsVo.getClaimStatus()) { if (null != fields && 1 == fields.getClaimStatus()) {
ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>(); ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>();
ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>(); ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
...@@ -210,11 +222,11 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -210,11 +222,11 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
fielderAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId()); fielderAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
fielderAuthorizationRecords.setPerformanceId(performanceId); fielderAuthorizationRecords.setPerformanceId(performanceId);
fielderAuthorizationRecords.setUidRole("fielder"); fielderAuthorizationRecords.setUidRole("fielder");
fielderAuthorizationRecords.setUid(fieldsVo.getUid()); fielderAuthorizationRecords.setUid(fields.getUid());
fielderAuthorizationRecords.setMobile(""); fielderAuthorizationRecords.setMobile("");
fielderAuthorizationRecords.setName(""); fielderAuthorizationRecords.setName("");
fielderAuthorizationRecords.setCuid(cuid); fielderAuthorizationRecords.setCuid("");
fielderAuthorizationRecords.setCuidRole("creator"); fielderAuthorizationRecords.setCuidRole("");
fielderAuthorizationRecords.setCreatedAt(now); fielderAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(fielderAuthorizationRecords); authorizationRecordsArrayList.add(fielderAuthorizationRecords);
// 授权权限 entity vo // 授权权限 entity vo
...@@ -245,22 +257,25 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -245,22 +257,25 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
authorizationRecordsVoArrayList.add(fielderAuthorizationRecordsVo); authorizationRecordsVoArrayList.add(fielderAuthorizationRecordsVo);
// 查询默认验票员 // 查询默认验票员
List<MerchantFieldCheckersVo> fieldCheckersVos = merchantRedisUtil.getFieldCheckersVosByFieldId(fieldId); LambdaQueryWrapper<MerchantFieldCheckers> fieldCheckersLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantFieldCheckers.class);
if (!CollectionUtil.isEmpty(fieldCheckersVos)) { fieldCheckersLambdaQueryWrapper.eq(MerchantFieldCheckers::getFieldId, fieldId);
fieldCheckersLambdaQueryWrapper.eq(MerchantFieldCheckers::getDeletedAt, null);
List<MerchantFieldCheckers> fieldCheckersList = fieldCheckersAdminService.list(fieldCheckersLambdaQueryWrapper);
if (!CollectionUtil.isEmpty(fieldCheckersList)) {
// 验票员 授权权限 // 验票员 授权权限
String[] checkerPermissionIds = { String[] checkerPermissionIds = {
MerchantPermissionConst.PerformancePermission.CHECK.getId() MerchantPermissionConst.PerformancePermission.CHECK.getId()
}; };
for (MerchantFieldCheckersVo fieldCheckersVo: fieldCheckersVos) { for (MerchantFieldCheckers fieldCheckers: fieldCheckersList) {
// 验票员 授权记录 entity // 验票员 授权记录 entity
MerchantAuthorizationRecords checkerAuthorizationRecords = new MerchantAuthorizationRecords(); MerchantAuthorizationRecords checkerAuthorizationRecords = new MerchantAuthorizationRecords();
checkerAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId()); checkerAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
checkerAuthorizationRecords.setPerformanceId(performanceId); checkerAuthorizationRecords.setPerformanceId(performanceId);
checkerAuthorizationRecords.setUidRole("checker"); checkerAuthorizationRecords.setUidRole("checker");
checkerAuthorizationRecords.setUid(fieldCheckersVo.getUid()); checkerAuthorizationRecords.setUid(fieldCheckers.getUid());
checkerAuthorizationRecords.setMobile(fieldCheckersVo.getMobile()); checkerAuthorizationRecords.setMobile(fieldCheckers.getMobile());
checkerAuthorizationRecords.setName(fieldCheckersVo.getName()); checkerAuthorizationRecords.setName(fieldCheckers.getName());
checkerAuthorizationRecords.setCuid(fieldsVo.getUid()); checkerAuthorizationRecords.setCuid(fields.getUid());
checkerAuthorizationRecords.setCuidRole("fielder"); checkerAuthorizationRecords.setCuidRole("fielder");
checkerAuthorizationRecords.setCreatedAt(now); checkerAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(checkerAuthorizationRecords); authorizationRecordsArrayList.add(checkerAuthorizationRecords);
...@@ -310,7 +325,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -310,7 +325,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
} }
// 授权主办方 // 授权主办方
private boolean performanceSponsor(String performanceId, String cuid, String sponsorId) { private boolean performanceSponsor(String performanceId, String sponsorId) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 查询已有权限 // 查询已有权限
...@@ -321,11 +336,13 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -321,11 +336,13 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper); MerchantAuthorizationRecords authorizationRecords = getOne(authorizationRecordsLambdaQueryWrapper);
// 查询主办方 // 查询主办方
MerchantSponsorsVo sponsorsVo = merchantRedisUtil.getSponsorsVoBySponsorId(sponsorId); LambdaQueryWrapper<MerchantSponsors> sponsorsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantSponsors.class);
sponsorsLambdaQueryWrapper.eq(MerchantSponsors::getSponsorId, sponsorId);
MerchantSponsors sponsors = sponsorsAdminService.getOne(sponsorsLambdaQueryWrapper);
// 是否已存在权限 // 是否已存在权限
if (null != authorizationRecords) { if (null != authorizationRecords) {
if (authorizationRecords.getUid().equals(sponsorsVo.getUid())) { if (null != sponsors && authorizationRecords.getUid().equals(sponsors.getUid())) {
// 前后 主办方一致 不处理 // 前后 主办方一致 不处理
return true; return true;
} }
...@@ -334,7 +351,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -334,7 +351,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
authorizationRecords.setUpdatedAt(now); authorizationRecords.setUpdatedAt(now);
authorizationRecords.setDeletedAt(now); authorizationRecords.setDeletedAt(now);
// mysql // 删除旧权限 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)
...@@ -353,7 +370,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -353,7 +370,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
throw new LiquidnetServiceException(); throw new LiquidnetServiceException();
} }
// mongo // 删除旧权限 mongo
Criteria criteria = Criteria.where("performanceId").is(performanceId).and("deletedAt").is(null); Criteria criteria = Criteria.where("performanceId").is(performanceId).and("deletedAt").is(null);
criteria.orOperator( criteria.orOperator(
Criteria.where("authorizationRecordId").is(authorizationRecords.getAuthorizationRecordId()), Criteria.where("authorizationRecordId").is(authorizationRecords.getAuthorizationRecordId()),
...@@ -364,7 +381,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -364,7 +381,7 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
} }
// 是否添加权限 // 是否添加权限
if (!sponsorsVo.getUid().isEmpty()) { if (null != sponsors && !sponsors.getUid().isEmpty()) {
ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>(); ArrayList<MerchantAuthorizationRecords> authorizationRecordsArrayList = new ArrayList<>();
ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>(); ArrayList<MerchantAuthorizationPermissions> authorizationPermissionsArrayList = new ArrayList<>();
...@@ -374,11 +391,11 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me ...@@ -374,11 +391,11 @@ public class MerchantAuthorizationRecordsAdminServiceImpl extends ServiceImpl<Me
sponsorAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId()); sponsorAuthorizationRecords.setAuthorizationRecordId(IDGenerator.nextSnowId());
sponsorAuthorizationRecords.setPerformanceId(performanceId); sponsorAuthorizationRecords.setPerformanceId(performanceId);
sponsorAuthorizationRecords.setUidRole("sponsor"); sponsorAuthorizationRecords.setUidRole("sponsor");
sponsorAuthorizationRecords.setUid(sponsorsVo.getUid()); sponsorAuthorizationRecords.setUid(sponsors.getUid());
sponsorAuthorizationRecords.setMobile(""); sponsorAuthorizationRecords.setMobile("");
sponsorAuthorizationRecords.setName(""); sponsorAuthorizationRecords.setName("");
sponsorAuthorizationRecords.setCuid(cuid); sponsorAuthorizationRecords.setCuid("");
sponsorAuthorizationRecords.setCuidRole("creator"); sponsorAuthorizationRecords.setCuidRole("");
sponsorAuthorizationRecords.setCreatedAt(now); sponsorAuthorizationRecords.setCreatedAt(now);
authorizationRecordsArrayList.add(sponsorAuthorizationRecords); authorizationRecordsArrayList.add(sponsorAuthorizationRecords);
// 授权权限 entity vo // 授权权限 entity vo
......
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.IMerchantFieldCheckersAdminService;
import com.liquidnet.service.merchant.entity.MerchantFieldCheckers;
import com.liquidnet.service.merchant.mapper.MerchantFieldCheckersMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class MerchantFieldCheckersAdminServiceImpl extends ServiceImpl<MerchantFieldCheckersMapper, MerchantFieldCheckers> implements IMerchantFieldCheckersAdminService {
}
...@@ -30,7 +30,7 @@ public class MerchantFieldCheckers implements Serializable { ...@@ -30,7 +30,7 @@ public class MerchantFieldCheckers implements Serializable {
private String fieldCheckerId; private String fieldCheckerId;
/** /**
* 要认领的或创建的场地ID * 场地ID
*/ */
private String fieldId; private String fieldId;
......
...@@ -44,7 +44,7 @@ create table merchant_field_checkers ...@@ -44,7 +44,7 @@ create table merchant_field_checkers
( (
mid bigint unsigned auto_increment primary key, mid bigint unsigned auto_increment primary key,
field_checker_id varchar(64) not null comment 'field_apply_id', field_checker_id varchar(64) not null comment 'field_apply_id',
field_id varchar(64) default '' not null comment '要认领的或创建的场地ID', field_id varchar(64) default '' not null comment '场地ID',
uid varchar(64) default '' not null comment '验票员账号', uid varchar(64) default '' not null comment '验票员账号',
mobile varchar(255) default '' not null comment '手机号', mobile varchar(255) default '' not null comment '手机号',
name varchar(255) default '' not null comment '姓名', name varchar(255) default '' not null comment '姓名',
......
...@@ -9,6 +9,7 @@ import com.liquidnet.service.merchant.dto.param.MerchantFieldApplyParam; ...@@ -9,6 +9,7 @@ import com.liquidnet.service.merchant.dto.param.MerchantFieldApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.service.IMerchantFieldAppliesService;
import com.liquidnet.service.merchant.service.IMerchantFieldsService; import com.liquidnet.service.merchant.service.IMerchantFieldsService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -39,6 +40,9 @@ public class MerchantFieldsController { ...@@ -39,6 +40,9 @@ public class MerchantFieldsController {
@Autowired @Autowired
IMerchantFieldsService merchantFieldsService; IMerchantFieldsService merchantFieldsService;
@Autowired
IMerchantFieldAppliesService merchantFieldAppliesService;
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@ApiOperation(value = "场地搜索") @ApiOperation(value = "场地搜索")
@GetMapping("search") @GetMapping("search")
...@@ -54,7 +58,7 @@ public class MerchantFieldsController { ...@@ -54,7 +58,7 @@ public class MerchantFieldsController {
public ResponseDto<Object> apply(@Valid @RequestBody MerchantFieldApplyParam parameter) { public ResponseDto<Object> apply(@Valid @RequestBody MerchantFieldApplyParam parameter) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
return ResponseDto.success(merchantFieldsService.apply(currentUid, parameter)); return ResponseDto.success(merchantFieldAppliesService.apply(currentUid, parameter));
} }
@ApiOperationSupport(order = 12) @ApiOperationSupport(order = 12)
...@@ -63,7 +67,7 @@ public class MerchantFieldsController { ...@@ -63,7 +67,7 @@ public class MerchantFieldsController {
public ResponseDto<Object> applyDel(@RequestParam(required = true) String fieldApplyId) { public ResponseDto<Object> applyDel(@RequestParam(required = true) String fieldApplyId) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
merchantFieldsService.applyDel(currentUid, fieldApplyId); merchantFieldAppliesService.applyDel(currentUid, fieldApplyId);
return ResponseDto.success(); return ResponseDto.success();
} }
...@@ -74,7 +78,7 @@ public class MerchantFieldsController { ...@@ -74,7 +78,7 @@ public class MerchantFieldsController {
public ResponseDto<MerchantFieldAppliesVo> applyInfo(@RequestParam(required = true) String fieldApplyId) { public ResponseDto<MerchantFieldAppliesVo> applyInfo(@RequestParam(required = true) String fieldApplyId) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
return ResponseDto.success(merchantFieldsService.applyInfo(currentUid, fieldApplyId)); return ResponseDto.success(merchantFieldAppliesService.applyInfo(currentUid, fieldApplyId));
} }
@ApiOperationSupport(order = 21) @ApiOperationSupport(order = 21)
......
...@@ -8,6 +8,7 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -8,6 +8,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam; import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo; import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo; import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.service.IMerchantSponsorAppliesService;
import com.liquidnet.service.merchant.service.IMerchantSponsorsService; import com.liquidnet.service.merchant.service.IMerchantSponsorsService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -37,6 +38,9 @@ public class MerchantSponsorsController { ...@@ -37,6 +38,9 @@ public class MerchantSponsorsController {
@Autowired @Autowired
IMerchantSponsorsService merchantSponsorsService; IMerchantSponsorsService merchantSponsorsService;
@Autowired
IMerchantSponsorAppliesService merchantSponsorAppliesService;
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@ApiOperation(value = "主办搜索") @ApiOperation(value = "主办搜索")
@GetMapping("search") @GetMapping("search")
...@@ -52,7 +56,7 @@ public class MerchantSponsorsController { ...@@ -52,7 +56,7 @@ public class MerchantSponsorsController {
public ResponseDto<Object> apply(@Valid @RequestBody MerchantSponsorApplyParam parameter) { public ResponseDto<Object> apply(@Valid @RequestBody MerchantSponsorApplyParam parameter) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
return ResponseDto.success(merchantSponsorsService.apply(currentUid, parameter)); return ResponseDto.success(merchantSponsorAppliesService.apply(currentUid, parameter));
} }
@ApiOperationSupport(order = 12) @ApiOperationSupport(order = 12)
...@@ -61,7 +65,7 @@ public class MerchantSponsorsController { ...@@ -61,7 +65,7 @@ public class MerchantSponsorsController {
public ResponseDto<Object> applyDel(@RequestParam(required = true) String sponsorApplyId) { public ResponseDto<Object> applyDel(@RequestParam(required = true) String sponsorApplyId) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
merchantSponsorsService.applyDel(currentUid, sponsorApplyId); merchantSponsorAppliesService.applyDel(currentUid, sponsorApplyId);
return ResponseDto.success(); return ResponseDto.success();
} }
...@@ -72,6 +76,6 @@ public class MerchantSponsorsController { ...@@ -72,6 +76,6 @@ public class MerchantSponsorsController {
public ResponseDto<MerchantSponsorAppliesVo> applyInfo(@RequestParam(required = true) String sponsorApplyId) { public ResponseDto<MerchantSponsorAppliesVo> applyInfo(@RequestParam(required = true) String sponsorApplyId) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
return ResponseDto.success(merchantSponsorsService.applyInfo(currentUid, sponsorApplyId)); return ResponseDto.success(merchantSponsorAppliesService.applyInfo(currentUid, sponsorApplyId));
} }
} }
package com.liquidnet.service.merchant.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.merchant.dto.param.MerchantFieldApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.service.IMerchantFieldAppliesService;
import com.liquidnet.service.merchant.service.MerchantRdmService;
import com.liquidnet.service.merchant.util.QueueUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.IntStream;
@Slf4j
@Service
public class MerchantFieldAppliesServiceImpl implements IMerchantFieldAppliesService {
@Autowired
MerchantRdmService merchantRdmService;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
QueueUtil queueUtils;
@Override
public String apply(String uid, MerchantFieldApplyParam parameter) {
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> fieldUpdateObjs = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> fieldApplyInsertObjs = CollectionUtil.linkedListObjectArr();
// 若认领,查询验证场地
MerchantFieldsVo fieldsVo = null;
if (null != parameter.getFieldId() && !parameter.getFieldId().isEmpty()) {
fieldsVo = merchantRdmService.getFieldsVoByFieldId(parameter.getFieldId());
if (null == fieldsVo) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13101");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
if (0 != fieldsVo.getClaimStatus()) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13102");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
// 申请场地 vos 上限
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRdmService.getFieldAppliesVosByUid(uid);
if (!CollectionUtils.isEmpty(fieldAppliesVos)) {
if (fieldAppliesVos.size() >= 10) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13103");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
LocalDateTime now = LocalDateTime.now();
long s = System.currentTimeMillis();
if (null != fieldsVo) {
// 场地 vo 更改场地状态 及 认领的人
fieldsVo.setClaimStatus(2);
fieldsVo.setUid(uid);
fieldsVo.setUpdatedAt(now);
// 场地 redis
merchantRdmService.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 场地 mongo
s = System.currentTimeMillis();
Query query = Query.query(Criteria.where("fieldId").is(fieldsVo.getFieldId()));
Update update = Update.update("claimStatus", fieldsVo.getClaimStatus()).set("uid", fieldsVo.getUid()).set("updatedAt", fieldsVo.getUpdatedAt());
mongoTemplate.updateFirst(query, update, MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
}
// 申请场地 vo
MerchantFieldAppliesVo fieldAppliesVo = MerchantFieldAppliesVo.getNew();
BeanUtils.copyProperties(parameter, fieldAppliesVo);
fieldAppliesVo.setFieldApplyId(IDGenerator.nextSnowId());
fieldAppliesVo.setApplyStatus(0);
if (null != fieldsVo) {
fieldAppliesVo.setApplyType("claim");
} else {
fieldAppliesVo.setApplyType("create");
}
fieldAppliesVo.setReject("");
fieldAppliesVo.setUid(uid);
fieldAppliesVo.setCreatedAt(now);
// 身份证检查
String respStr = IdentityUtils.aliThird(fieldAppliesVo.getLegalName(), fieldAppliesVo.getLegalIdentity());;
JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
log.info("###实名认证失败[{}]", respStr);
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13001");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// 申请场地 redis
s = System.currentTimeMillis();
merchantRdmService.addFieldAppliesVoByUid(uid, fieldAppliesVos, fieldAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 申请场地 mongo
s = System.currentTimeMillis();
mongoTemplate.insert(fieldAppliesVo, MerchantFieldAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
if (null != fieldsVo) {
// 场地 sql
toMqSqls.add(SqlMapping.get("merchant_fields.update_claim_status_and_uid"));
fieldUpdateObjs.add(new Object[]{
fieldsVo.getClaimStatus(), fieldsVo.getUid(), fieldsVo.getUpdatedAt(), fieldsVo.getFieldId()
});
}
// 申请场地 sql
toMqSqls.add(SqlMapping.get("merchant_field_applies.insert"));
fieldApplyInsertObjs.add(new Object[]{
fieldAppliesVo.getFieldApplyId(), fieldAppliesVo.getApplyStatus(), fieldAppliesVo.getApplyType(), fieldAppliesVo.getReject(), fieldAppliesVo.getUid(), fieldAppliesVo.getFieldId(),
fieldAppliesVo.getName(), fieldAppliesVo.getLogo(), fieldAppliesVo.getBackground(), fieldAppliesVo.getDescription(), fieldAppliesVo.getBuiltDate(),
fieldAppliesVo.getProvinceId(), fieldAppliesVo.getProvinceName(), fieldAppliesVo.getCityId(), fieldAppliesVo.getCityName(), fieldAppliesVo.getDistrictId(), fieldAppliesVo.getDistrictName(), fieldAppliesVo.getAddress(), fieldAppliesVo.getLongitude(), fieldAppliesVo.getLatitude(),
fieldAppliesVo.getContactName(), fieldAppliesVo.getContactEmail(),
fieldAppliesVo.getCompanyName(), fieldAppliesVo.getLicenseCode(), fieldAppliesVo.getLicenseImg(),
fieldAppliesVo.getLegalName(), fieldAppliesVo.getLegalIdentity(), fieldAppliesVo.getLegalIdentityObverse(), fieldAppliesVo.getLegalIdentityReverse(), fieldAppliesVo.getCreatedAt()
});
// mq
s = System.currentTimeMillis();
if (null != fieldsVo) {
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(),
SqlMapping.gets(toMqSqls, fieldUpdateObjs, fieldApplyInsertObjs)
);
} else {
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(),
SqlMapping.gets(toMqSqls, fieldApplyInsertObjs)
);
}
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return fieldAppliesVo.getFieldApplyId();
}
@Override
public void applyDel(String uid, String fieldApplyId) {
// 查找场地申请,是否存在且已经驳回
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRdmService.getFieldAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(fieldAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, fieldAppliesVos.size())
.filter(i -> fieldAppliesVos.get(i).getFieldApplyId().equals(fieldApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantFieldAppliesVo fieldAppliesVo = fieldAppliesVos.get(idx);
if (fieldAppliesVo.getApplyStatus() != 2) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13105");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
LocalDateTime now = LocalDateTime.now();
fieldAppliesVo.setUpdatedAt(now);
fieldAppliesVo.setDeletedAt(now);
// 申请场地 redis
long s = System.currentTimeMillis();
merchantRdmService.delFieldAppliesVoByUid(uid, fieldAppliesVos, fieldAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 申请场地 mongo
s = System.currentTimeMillis();
Query query = Query.query(Criteria.where("fieldApplyId").is(fieldAppliesVo.getFieldApplyId()));
Update update = Update.update("updatedAt", fieldAppliesVo.getUpdatedAt()).set("deletedAt", fieldAppliesVo.getDeletedAt());
mongoTemplate.updateFirst(query, update, MerchantFieldAppliesVo.class, MerchantFieldAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 申请场地 sql
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> fieldAppliesUpdateObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("merchant_field_applies.update"));
fieldAppliesUpdateObjs.add(new Object[]{
fieldAppliesVo.getUpdatedAt(), fieldAppliesVo.getDeletedAt(), fieldAppliesVo.getFieldApplyId()
});
// mq
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(),
SqlMapping.gets(toMqSqls, fieldAppliesUpdateObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
@Override
public MerchantFieldAppliesVo applyInfo(String uid, String fieldApplyId) {
// 查找场地申请,是否存在
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRdmService.getFieldAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(fieldAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, fieldAppliesVos.size())
.filter(i -> fieldAppliesVos.get(i).getFieldApplyId().equals(fieldApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantFieldAppliesVo fieldAppliesVo = fieldAppliesVos.get(idx);
if (null != fieldAppliesVo.getFieldId() && !fieldAppliesVo.getFieldId().isEmpty()) {
MerchantFieldsVo fieldsVo = merchantRdmService.getFieldsVoByFieldId(fieldAppliesVo.getFieldId());
fieldAppliesVo.setFieldVo(fieldsVo);
}
return fieldAppliesVos.get(idx);
}
}
package com.liquidnet.service.merchant.service.impl; package com.liquidnet.service.merchant.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.exception.LiquidnetServiceException; 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.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult; import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.merchant.dto.param.MerchantFieldApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldCheckersVo;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo; import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.service.IMerchantFieldsService; import com.liquidnet.service.merchant.service.IMerchantFieldsService;
...@@ -19,7 +14,6 @@ import com.liquidnet.service.merchant.service.MerchantRdmService; ...@@ -19,7 +14,6 @@ import com.liquidnet.service.merchant.service.MerchantRdmService;
import com.liquidnet.service.merchant.util.ObjectUtil; import com.liquidnet.service.merchant.util.ObjectUtil;
import com.liquidnet.service.merchant.util.QueueUtil; import com.liquidnet.service.merchant.util.QueueUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -78,205 +72,6 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService { ...@@ -78,205 +72,6 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService {
return pagedResult; return pagedResult;
} }
@Override
public String apply(String uid, MerchantFieldApplyParam parameter) {
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> fieldUpdateObjs = CollectionUtil.linkedListObjectArr();
LinkedList<Object[]> fieldApplyInsertObjs = CollectionUtil.linkedListObjectArr();
// 若认领,查询验证场地
MerchantFieldsVo fieldsVo = null;
if (null != parameter.getFieldId() && !parameter.getFieldId().isEmpty()) {
fieldsVo = merchantRdmService.getFieldsVoByFieldId(parameter.getFieldId());
if (null == fieldsVo) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13101");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
if (0 != fieldsVo.getClaimStatus()) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13102");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
// 申请场地 vos 上限
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRdmService.getFieldAppliesVosByUid(uid);
if (!CollectionUtils.isEmpty(fieldAppliesVos)) {
if (fieldAppliesVos.size() >= 10) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13103");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
LocalDateTime now = LocalDateTime.now();
long s = System.currentTimeMillis();
if (null != fieldsVo) {
// 场地 vo 更改场地状态 及 认领的人
fieldsVo.setClaimStatus(2);
fieldsVo.setUid(uid);
fieldsVo.setUpdatedAt(now);
// 场地 redis
merchantRdmService.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 场地 mongo
s = System.currentTimeMillis();
Query query = Query.query(Criteria.where("fieldId").is(fieldsVo.getFieldId()));
Update update = Update.update("claimStatus", fieldsVo.getClaimStatus()).set("uid", fieldsVo.getUid()).set("updatedAt", fieldsVo.getUpdatedAt());
mongoTemplate.updateFirst(query, update, MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
}
// 申请场地 vo
MerchantFieldAppliesVo fieldAppliesVo = MerchantFieldAppliesVo.getNew();
BeanUtils.copyProperties(parameter, fieldAppliesVo);
fieldAppliesVo.setFieldApplyId(IDGenerator.nextSnowId());
fieldAppliesVo.setApplyStatus(0);
if (null != fieldsVo) {
fieldAppliesVo.setApplyType("claim");
} else {
fieldAppliesVo.setApplyType("create");
}
fieldAppliesVo.setReject("");
fieldAppliesVo.setUid(uid);
fieldAppliesVo.setCreatedAt(now);
// 身份证检查
String respStr = IdentityUtils.aliThird(fieldAppliesVo.getLegalName(), fieldAppliesVo.getLegalIdentity());;
JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
log.info("###实名认证失败[{}]", respStr);
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13001");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// 申请场地 redis
s = System.currentTimeMillis();
merchantRdmService.addFieldAppliesVoByUid(uid, fieldAppliesVos, fieldAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 申请场地 mongo
s = System.currentTimeMillis();
mongoTemplate.insert(fieldAppliesVo, MerchantFieldAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
if (null != fieldsVo) {
// 场地 sql
toMqSqls.add(SqlMapping.get("merchant_fields.update_claim_status_and_uid"));
fieldUpdateObjs.add(new Object[]{
fieldsVo.getClaimStatus(), fieldsVo.getUid(), fieldsVo.getUpdatedAt(), fieldsVo.getFieldId()
});
}
// 申请场地 sql
toMqSqls.add(SqlMapping.get("merchant_field_applies.insert"));
fieldApplyInsertObjs.add(new Object[]{
fieldAppliesVo.getFieldApplyId(), fieldAppliesVo.getApplyStatus(), fieldAppliesVo.getApplyType(), fieldAppliesVo.getReject(), fieldAppliesVo.getUid(), fieldAppliesVo.getFieldId(),
fieldAppliesVo.getName(), fieldAppliesVo.getLogo(), fieldAppliesVo.getBackground(), fieldAppliesVo.getDescription(), fieldAppliesVo.getBuiltDate(),
fieldAppliesVo.getProvinceId(), fieldAppliesVo.getProvinceName(), fieldAppliesVo.getCityId(), fieldAppliesVo.getCityName(), fieldAppliesVo.getDistrictId(), fieldAppliesVo.getDistrictName(), fieldAppliesVo.getAddress(), fieldAppliesVo.getLongitude(), fieldAppliesVo.getLatitude(),
fieldAppliesVo.getContactName(), fieldAppliesVo.getContactEmail(),
fieldAppliesVo.getCompanyName(), fieldAppliesVo.getLicenseCode(), fieldAppliesVo.getLicenseImg(),
fieldAppliesVo.getLegalName(), fieldAppliesVo.getLegalIdentity(), fieldAppliesVo.getLegalIdentityObverse(), fieldAppliesVo.getLegalIdentityReverse(), fieldAppliesVo.getCreatedAt()
});
// mq
s = System.currentTimeMillis();
if (null != fieldsVo) {
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(),
SqlMapping.gets(toMqSqls, fieldUpdateObjs, fieldApplyInsertObjs)
);
} else {
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(),
SqlMapping.gets(toMqSqls, fieldApplyInsertObjs)
);
}
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return fieldAppliesVo.getFieldApplyId();
}
@Override
public void applyDel(String uid, String fieldApplyId) {
// 查找场地申请,是否存在且已经驳回
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRdmService.getFieldAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(fieldAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, fieldAppliesVos.size())
.filter(i -> fieldAppliesVos.get(i).getFieldApplyId().equals(fieldApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantFieldAppliesVo fieldAppliesVo = fieldAppliesVos.get(idx);
if (fieldAppliesVo.getApplyStatus() != 2) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13105");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
LocalDateTime now = LocalDateTime.now();
fieldAppliesVo.setUpdatedAt(now);
fieldAppliesVo.setDeletedAt(now);
// 申请场地 redis
long s = System.currentTimeMillis();
merchantRdmService.delFieldAppliesVoByUid(uid, fieldAppliesVos, fieldAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 申请场地 mongo
s = System.currentTimeMillis();
Query query = Query.query(Criteria.where("fieldApplyId").is(fieldAppliesVo.getFieldApplyId()));
Update update = Update.update("updatedAt", fieldAppliesVo.getUpdatedAt()).set("deletedAt", fieldAppliesVo.getDeletedAt());
mongoTemplate.updateFirst(query, update, MerchantFieldAppliesVo.class, MerchantFieldAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 申请场地 sql
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> fieldAppliesUpdateObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("merchant_field_applies.update"));
fieldAppliesUpdateObjs.add(new Object[]{
fieldAppliesVo.getUpdatedAt(), fieldAppliesVo.getDeletedAt(), fieldAppliesVo.getFieldApplyId()
});
// mq
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_FIELD.getKey(),
SqlMapping.gets(toMqSqls, fieldAppliesUpdateObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
@Override
public MerchantFieldAppliesVo applyInfo(String uid, String fieldApplyId) {
// 查找场地申请,是否存在
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRdmService.getFieldAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(fieldAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, fieldAppliesVos.size())
.filter(i -> fieldAppliesVos.get(i).getFieldApplyId().equals(fieldApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13104");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantFieldAppliesVo fieldAppliesVo = fieldAppliesVos.get(idx);
if (null != fieldAppliesVo.getFieldId() && !fieldAppliesVo.getFieldId().isEmpty()) {
MerchantFieldsVo fieldsVo = merchantRdmService.getFieldsVoByFieldId(fieldAppliesVo.getFieldId());
fieldAppliesVo.setFieldVo(fieldsVo);
}
return fieldAppliesVos.get(idx);
}
@Override @Override
public void editIsCheck(String uid, String fieldId, int isCheck) { public void editIsCheck(String uid, String fieldId, int isCheck) {
// 当前用户是否管理该场地 // 当前用户是否管理该场地
......
package com.liquidnet.service.merchant.service.impl;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.service.IMerchantSponsorAppliesService;
import com.liquidnet.service.merchant.service.MerchantRdmService;
import com.liquidnet.service.merchant.util.QueueUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.IntStream;
@Slf4j
@Service
public class MerchantSponsorAppliesServiceImpl implements IMerchantSponsorAppliesService {
@Autowired
MerchantRdmService merchantRdmService;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
QueueUtil queueUtils;
@Override
public String apply(String uid, MerchantSponsorApplyParam parameter) {
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sponsorApplyInsertObjs = CollectionUtil.linkedListObjectArr();
// 申请主办 vos 上限
List<MerchantSponsorAppliesVo> sponsorAppliesVos = merchantRdmService.getSponsorAppliesVosByUid(uid);
if (!CollectionUtils.isEmpty(sponsorAppliesVos)) {
if (sponsorAppliesVos.size() >= 10) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13201");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
LocalDateTime now = LocalDateTime.now();
// 申请主办 vo
MerchantSponsorAppliesVo sponsorAppliesVo = MerchantSponsorAppliesVo.getNew();
BeanUtils.copyProperties(parameter, sponsorAppliesVo);
sponsorAppliesVo.setSponsorApplyId(IDGenerator.nextSnowId());
sponsorAppliesVo.setApplyStatus(0);
sponsorAppliesVo.setApplyType("create");
sponsorAppliesVo.setReject("");
sponsorAppliesVo.setUid(uid);
sponsorAppliesVo.setCreatedAt(now);
if (parameter.getSkipCompany() > 0) {
sponsorAppliesVo.setCompanyName("");
sponsorAppliesVo.setLicenseCode("");
sponsorAppliesVo.setLicenseImg("");
sponsorAppliesVo.setLegalName("");
sponsorAppliesVo.setLegalIdentity("");
sponsorAppliesVo.setLegalIdentityObverse("");
sponsorAppliesVo.setLegalIdentityReverse("");
} else {
if (sponsorAppliesVo.getCompanyName().isEmpty()
|| sponsorAppliesVo.getLicenseCode().isEmpty()
|| sponsorAppliesVo.getLicenseImg().isEmpty()
|| sponsorAppliesVo.getLegalName().isEmpty()
|| sponsorAppliesVo.getLegalIdentity().isEmpty()
|| sponsorAppliesVo.getLegalIdentityObverse().isEmpty()
|| sponsorAppliesVo.getLegalIdentityReverse().isEmpty()) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13202");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// 身份证检查
// String respStr = IdentityUtils.aliThird(sponsorAppliesVo.getLegalName(), sponsorAppliesVo.getLegalIdentity());;
// JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
// if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
// log.info("###法人实名认证失败[{}]", respStr);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13001");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
}
// 身份证检查
// String respStr = IdentityUtils.aliThird(sponsorAppliesVo.getContactName(), sponsorAppliesVo.getContactIdentity());;
// JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
// if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
// log.info("###联系人实名认证失败[{}]", respStr);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13002");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// 申请主办 redis
long s = System.currentTimeMillis();
merchantRdmService.addSponsorAppliesVoByUid(uid, sponsorAppliesVos, sponsorAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 申请主办 mongo
s = System.currentTimeMillis();
mongoTemplate.insert(sponsorAppliesVo, MerchantSponsorAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 申请主办 sql
toMqSqls.add(SqlMapping.get("merchant_sponsor_applies.insert"));
sponsorApplyInsertObjs.add(new Object[]{
sponsorAppliesVo.getSponsorApplyId(), sponsorAppliesVo.getApplyStatus(), sponsorAppliesVo.getApplyType(), sponsorAppliesVo.getReject(), sponsorAppliesVo.getUid(),
sponsorAppliesVo.getName(), sponsorAppliesVo.getLogo(), sponsorAppliesVo.getBackground(), sponsorAppliesVo.getDescription(),
sponsorAppliesVo.getContactName(), sponsorAppliesVo.getContactIdentity(), sponsorAppliesVo.getContactIdentityObverse(), sponsorAppliesVo.getContactIdentityReverse(), sponsorAppliesVo.getContactEmail(),
sponsorAppliesVo.getCompanyName(), sponsorAppliesVo.getLicenseCode(), sponsorAppliesVo.getLicenseImg(),
sponsorAppliesVo.getLegalName(), sponsorAppliesVo.getLegalIdentity(), sponsorAppliesVo.getLegalIdentityObverse(), sponsorAppliesVo.getLegalIdentityReverse(), sponsorAppliesVo.getCreatedAt()
});
// mq
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getKey(),
SqlMapping.gets(toMqSqls, sponsorApplyInsertObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return sponsorAppliesVo.getSponsorApplyId();
}
@Override
public void applyDel(String uid, String sponsorApplyId) {
// 查找主办申请,是否存在且已经驳回
List<MerchantSponsorAppliesVo> sponsorAppliesVos = merchantRdmService.getSponsorAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(sponsorAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, sponsorAppliesVos.size())
.filter(i -> sponsorAppliesVos.get(i).getSponsorApplyId().equals(sponsorApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantSponsorAppliesVo sponsorAppliesVo = sponsorAppliesVos.get(idx);
if (sponsorAppliesVo.getApplyStatus() != 2) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13204");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
LocalDateTime now = LocalDateTime.now();
sponsorAppliesVo.setUpdatedAt(now);
sponsorAppliesVo.setDeletedAt(now);
// 主办申请 redis
long s = System.currentTimeMillis();
merchantRdmService.delSponsorAppliesVoByUid(uid, sponsorAppliesVos, sponsorAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 主办申请 mongo
s = System.currentTimeMillis();
Query query = Query.query(Criteria.where("sponsorApplyId").is(sponsorAppliesVo.getSponsorApplyId()));
Update update = Update.update("updatedAt", sponsorAppliesVo.getUpdatedAt()).set("deletedAt", sponsorAppliesVo.getDeletedAt());
mongoTemplate.updateFirst(query, update, MerchantSponsorAppliesVo.class, MerchantSponsorAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 主办申请 sql
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sponsorAppliesUpdateObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("merchant_sponsor_applies.update"));
sponsorAppliesUpdateObjs.add(new Object[]{
sponsorAppliesVo.getUpdatedAt(), sponsorAppliesVo.getDeletedAt(), sponsorAppliesVo.getSponsorApplyId()
});
// mq
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getKey(),
SqlMapping.gets(toMqSqls, sponsorAppliesUpdateObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
@Override
public MerchantSponsorAppliesVo applyInfo(String uid, String sponsorApplyId) {
// 查找主办申请,是否存在
List<MerchantSponsorAppliesVo> sponsorAppliesVos = merchantRdmService.getSponsorAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(sponsorAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, sponsorAppliesVos.size())
.filter(i -> sponsorAppliesVos.get(i).getSponsorApplyId().equals(sponsorApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
return sponsorAppliesVos.get(idx);
}
}
package com.liquidnet.service.merchant.service.impl; package com.liquidnet.service.merchant.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult; import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.merchant.dto.param.MerchantSponsorApplyParam;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorAppliesVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo; import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import com.liquidnet.service.merchant.service.IMerchantSponsorsService; import com.liquidnet.service.merchant.service.IMerchantSponsorsService;
import com.liquidnet.service.merchant.service.MerchantRdmService;
import com.liquidnet.service.merchant.util.ObjectUtil; import com.liquidnet.service.merchant.util.ObjectUtil;
import com.liquidnet.service.merchant.util.QueueUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
...@@ -26,28 +12,17 @@ import org.springframework.data.domain.Sort; ...@@ -26,28 +12,17 @@ import org.springframework.data.domain.Sort;
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.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.IntStream;
@Slf4j @Slf4j
@Service @Service
public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService { public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService {
@Autowired
MerchantRdmService merchantRdmService;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
@Autowired
QueueUtil queueUtils;
@Override @Override
public PagedResult<MerchantSponsorsVo> search(String name, int page, int size) { public PagedResult<MerchantSponsorsVo> search(String name, int page, int size) {
// 查询条件 // 查询条件
...@@ -76,173 +51,5 @@ public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService { ...@@ -76,173 +51,5 @@ public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService {
return pagedResult; return pagedResult;
} }
@Override
public String apply(String uid, MerchantSponsorApplyParam parameter) {
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sponsorApplyInsertObjs = CollectionUtil.linkedListObjectArr();
// 申请主办 vos 上限
List<MerchantSponsorAppliesVo> sponsorAppliesVos = merchantRdmService.getSponsorAppliesVosByUid(uid);
if (!CollectionUtils.isEmpty(sponsorAppliesVos)) {
if (sponsorAppliesVos.size() >= 10) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13201");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
LocalDateTime now = LocalDateTime.now();
// 申请主办 vo
MerchantSponsorAppliesVo sponsorAppliesVo = MerchantSponsorAppliesVo.getNew();
BeanUtils.copyProperties(parameter, sponsorAppliesVo);
sponsorAppliesVo.setSponsorApplyId(IDGenerator.nextSnowId());
sponsorAppliesVo.setApplyStatus(0);
sponsorAppliesVo.setApplyType("create");
sponsorAppliesVo.setReject("");
sponsorAppliesVo.setUid(uid);
sponsorAppliesVo.setCreatedAt(now);
if (parameter.getSkipCompany() > 0) {
sponsorAppliesVo.setCompanyName("");
sponsorAppliesVo.setLicenseCode("");
sponsorAppliesVo.setLicenseImg("");
sponsorAppliesVo.setLegalName("");
sponsorAppliesVo.setLegalIdentity("");
sponsorAppliesVo.setLegalIdentityObverse("");
sponsorAppliesVo.setLegalIdentityReverse("");
} else {
if (sponsorAppliesVo.getCompanyName().isEmpty()
|| sponsorAppliesVo.getLicenseCode().isEmpty()
|| sponsorAppliesVo.getLicenseImg().isEmpty()
|| sponsorAppliesVo.getLegalName().isEmpty()
|| sponsorAppliesVo.getLegalIdentity().isEmpty()
|| sponsorAppliesVo.getLegalIdentityObverse().isEmpty()
|| sponsorAppliesVo.getLegalIdentityReverse().isEmpty()) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13202");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// 身份证检查
// String respStr = IdentityUtils.aliThird(sponsorAppliesVo.getLegalName(), sponsorAppliesVo.getLegalIdentity());;
// JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
// if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
// log.info("###法人实名认证失败[{}]", respStr);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13001");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
}
// 身份证检查
// String respStr = IdentityUtils.aliThird(sponsorAppliesVo.getContactName(), sponsorAppliesVo.getContactIdentity());;
// JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
// if (null == respJNode || !"0".equals(respJNode.get("error_code").asText())) {
// log.info("###联系人实名认证失败[{}]", respStr);
// ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13002");
// throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
// }
// 申请主办 redis
long s = System.currentTimeMillis();
merchantRdmService.addSponsorAppliesVoByUid(uid, sponsorAppliesVos, sponsorAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 申请主办 mongo
s = System.currentTimeMillis();
mongoTemplate.insert(sponsorAppliesVo, MerchantSponsorAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 申请主办 sql
toMqSqls.add(SqlMapping.get("merchant_sponsor_applies.insert"));
sponsorApplyInsertObjs.add(new Object[]{
sponsorAppliesVo.getSponsorApplyId(), sponsorAppliesVo.getApplyStatus(), sponsorAppliesVo.getApplyType(), sponsorAppliesVo.getReject(), sponsorAppliesVo.getUid(),
sponsorAppliesVo.getName(), sponsorAppliesVo.getLogo(), sponsorAppliesVo.getBackground(), sponsorAppliesVo.getDescription(),
sponsorAppliesVo.getContactName(), sponsorAppliesVo.getContactIdentity(), sponsorAppliesVo.getContactIdentityObverse(), sponsorAppliesVo.getContactIdentityReverse(), sponsorAppliesVo.getContactEmail(),
sponsorAppliesVo.getCompanyName(), sponsorAppliesVo.getLicenseCode(), sponsorAppliesVo.getLicenseImg(),
sponsorAppliesVo.getLegalName(), sponsorAppliesVo.getLegalIdentity(), sponsorAppliesVo.getLegalIdentityObverse(), sponsorAppliesVo.getLegalIdentityReverse(), sponsorAppliesVo.getCreatedAt()
});
// mq
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getKey(),
SqlMapping.gets(toMqSqls, sponsorApplyInsertObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
return sponsorAppliesVo.getSponsorApplyId();
}
@Override
public void applyDel(String uid, String sponsorApplyId) {
// 查找主办申请,是否存在且已经驳回
List<MerchantSponsorAppliesVo> sponsorAppliesVos = merchantRdmService.getSponsorAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(sponsorAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, sponsorAppliesVos.size())
.filter(i -> sponsorAppliesVos.get(i).getSponsorApplyId().equals(sponsorApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
MerchantSponsorAppliesVo sponsorAppliesVo = sponsorAppliesVos.get(idx);
if (sponsorAppliesVo.getApplyStatus() != 2) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13204");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
LocalDateTime now = LocalDateTime.now();
sponsorAppliesVo.setUpdatedAt(now);
sponsorAppliesVo.setDeletedAt(now);
// 主办申请 redis
long s = System.currentTimeMillis();
merchantRdmService.delSponsorAppliesVoByUid(uid, sponsorAppliesVos, sponsorAppliesVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
// 主办申请 mongo
s = System.currentTimeMillis();
Query query = Query.query(Criteria.where("sponsorApplyId").is(sponsorAppliesVo.getSponsorApplyId()));
Update update = Update.update("updatedAt", sponsorAppliesVo.getUpdatedAt()).set("deletedAt", sponsorAppliesVo.getDeletedAt());
mongoTemplate.updateFirst(query, update, MerchantSponsorAppliesVo.class, MerchantSponsorAppliesVo.class.getSimpleName());
log.debug("#MONGO耗时:{}ms", System.currentTimeMillis() - s);
// 主办申请 sql
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sponsorAppliesUpdateObjs = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("merchant_sponsor_applies.update"));
sponsorAppliesUpdateObjs.add(new Object[]{
sponsorAppliesVo.getUpdatedAt(), sponsorAppliesVo.getDeletedAt(), sponsorAppliesVo.getSponsorApplyId()
});
// mq
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.MerchantQueue.SQL_MERCHANT_SPONSOR.getKey(),
SqlMapping.gets(toMqSqls, sponsorAppliesUpdateObjs)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
@Override
public MerchantSponsorAppliesVo applyInfo(String uid, String sponsorApplyId) {
// 查找主办申请,是否存在
List<MerchantSponsorAppliesVo> sponsorAppliesVos = merchantRdmService.getSponsorAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(sponsorAppliesVos)) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
int idx = IntStream.range(0, sponsorAppliesVos.size())
.filter(i -> sponsorAppliesVos.get(i).getSponsorApplyId().equals(sponsorApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("13203");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
return sponsorAppliesVos.get(idx);
}
} }
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