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

Commit c3983863 authored by Tice's avatar Tice

场地审核

parent 9482c9ac
package com.liquidnet.client.admin.zhengzai.merchant.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantCompaniesAdminService;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldAppliesAdminService;
import com.liquidnet.client.admin.zhengzai.merchant.service.IMerchantFieldsAdminService;
import com.liquidnet.client.admin.zhengzai.merchant.utils.MerchantMongoUtil;
import com.liquidnet.client.admin.zhengzai.merchant.utils.MerchantRedisUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.IDGenerator;
......@@ -18,10 +20,15 @@ import com.liquidnet.service.merchant.entity.MerchantFields;
import com.liquidnet.service.merchant.mapper.MerchantFieldAppliesMapper;
import lombok.extern.slf4j.Slf4j;
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.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.IntStream;
......@@ -33,6 +40,13 @@ public class MerchantFieldAppliesAdminServiceImpl extends ServiceImpl<MerchantFi
@Autowired
MerchantRedisUtil merchantRedisUtil;
@Autowired
MerchantMongoUtil merchantMongoUtil;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
IMerchantFieldsAdminService merchantFieldsAdminService;
......@@ -46,6 +60,7 @@ public class MerchantFieldAppliesAdminServiceImpl extends ServiceImpl<MerchantFi
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRedisUtil.getFieldAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(fieldAppliesVos)) {
// todo error
throw new LiquidnetServiceException();
}
int idx = IntStream.range(0, fieldAppliesVos.size())
.filter(i -> fieldAppliesVos.get(i).getFieldApplyId().equals(fieldApplyId))
......@@ -53,120 +68,324 @@ public class MerchantFieldAppliesAdminServiceImpl extends ServiceImpl<MerchantFi
.orElse(-1);
if (idx < 0) {
// todo error
throw new LiquidnetServiceException();
}
MerchantFieldAppliesVo fieldAppliesVo = fieldAppliesVos.get(idx);
if (0 != fieldAppliesVo.getApplyStatus()) {
// todo error
throw new LiquidnetServiceException();
}
LocalDateTime now = LocalDateTime.now();
if (fieldAppliesVo.getApplyType().equals("claim")) {
// 认领逻辑
MerchantFieldsVo fieldsVo = merchantRedisUtil.getFieldsVoByFieldId(fieldAppliesVo.getFieldId());
if (2 != fieldsVo.getClaimStatus() || !fieldsVo.getUid().equals(uid)) {
// todo error
}
// 场地认领 vo
// 场地申请 vo
fieldAppliesVo.setApplyStatus(1);
fieldAppliesVo.setReject("");
fieldAppliesVo.setAuditUid(auditUid);
fieldAppliesVo.setAuditName(auditName);
fieldAppliesVo.setAuditedAt(now);
fieldAppliesVo.setUpdatedAt(now);
// 公司 entity
MerchantCompanies companies = new MerchantCompanies();
companies.setCompanyId(IDGenerator.nextSnowId());
companies.setName(fieldAppliesVo.getCompanyName());
companies.setLicenseCode(fieldAppliesVo.getLicenseCode());
companies.setLicenseImg(fieldAppliesVo.getLicenseImg());
companies.setLegalName(fieldAppliesVo.getLegalName());
companies.setLegalIdentity(fieldAppliesVo.getLegalIdentity());
companies.setLegalIdentityObverse(fieldAppliesVo.getLegalIdentityObverse());
companies.setLegalIdentityReverse(fieldAppliesVo.getLegalIdentityReverse());
companies.setCreatedAt(now);
boolean success = merchantCompaniesAdminService.save(companies);
// 公司 entity mysql
MerchantCompanies companiesEntity = new MerchantCompanies();
companiesEntity.setCompanyId(IDGenerator.nextSnowId());
companiesEntity.setName(fieldAppliesVo.getCompanyName());
companiesEntity.setLicenseCode(fieldAppliesVo.getLicenseCode());
companiesEntity.setLicenseImg(fieldAppliesVo.getLicenseImg());
companiesEntity.setLegalName(fieldAppliesVo.getLegalName());
companiesEntity.setLegalIdentity(fieldAppliesVo.getLegalIdentity());
companiesEntity.setLegalIdentityObverse(fieldAppliesVo.getLegalIdentityObverse());
companiesEntity.setLegalIdentityReverse(fieldAppliesVo.getLegalIdentityReverse());
companiesEntity.setCreatedAt(now);
boolean success = merchantCompaniesAdminService.save(companiesEntity);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 公司 vo
MerchantCompaniesVo companiesVo = MerchantCompaniesVo.getNew();
companiesVo.copy(companiesEntity);
// 场地 entity
// MerchantFields fields = merchantFieldsAdminService.query()
// 场地 entity mysql
LambdaQueryWrapper<MerchantFields> fieldsLambdaQueryWrapper = Wrappers.lambdaQuery(MerchantFields.class);
fieldsLambdaQueryWrapper.eq(MerchantFields::getFieldId, fieldAppliesVo.getFieldId());
MerchantFields fieldsEntity = merchantFieldsAdminService.getOne(fieldsLambdaQueryWrapper);
if (null == fieldsEntity) {
// todo error
throw new LiquidnetServiceException();
}
if (2 != fieldsEntity.getClaimStatus() || !fieldsEntity.getUid().equals(uid)) {
// todo error
throw new LiquidnetServiceException();
}
fieldsEntity.setIsOnline(1);
fieldsEntity.setClaimStatus(1);
fieldsEntity.setUid(uid);
fieldsEntity.setIsCheck(0);
fieldsEntity.setName(fieldAppliesVo.getName());
fieldsEntity.setLogo(fieldAppliesVo.getLogo());
fieldsEntity.setBackground(fieldAppliesVo.getBackground());
fieldsEntity.setDescription(fieldAppliesVo.getDescription());
fieldsEntity.setBuiltDate(LocalDate.parse(fieldAppliesVo.getBuiltDate()));
fieldsEntity.setProvinceId(fieldAppliesVo.getProvinceId());
fieldsEntity.setProvinceName(fieldAppliesVo.getProvinceName());
fieldsEntity.setCityId(fieldAppliesVo.getCityId());
fieldsEntity.setCityName(fieldAppliesVo.getCityName());
fieldsEntity.setDistrictId(fieldAppliesVo.getDistrictId());
fieldsEntity.setDistrictName(fieldAppliesVo.getDistrictName());
fieldsEntity.setAddress(fieldAppliesVo.getAddress());
fieldsEntity.setLongitude(fieldAppliesVo.getLongitude());
fieldsEntity.setLatitude(fieldAppliesVo.getLatitude());
fieldsEntity.setContactName(fieldAppliesVo.getContactName());
fieldsEntity.setContactEmail(fieldAppliesVo.getContactEmail());
fieldsEntity.setCompanyId(companiesEntity.getCompanyId());
fieldsEntity.setUpdatedAt(now);
LambdaUpdateWrapper<MerchantFields> fieldsLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantFields.class);
fieldsLambdaUpdateWrapper.eq(MerchantFields::getFieldId, fieldsEntity.getFieldId());
success = merchantFieldsAdminService.update(fieldsEntity, fieldsLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地 vo
MerchantFieldsVo fieldsVo = MerchantFieldsVo.getNew();
fieldsVo.copy(fieldsEntity);
fieldsVo.setCompaniesVo(companiesVo);
// 场地申请 mysql
LambdaUpdateWrapper<MerchantFieldApplies> fieldAppliesLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantFieldApplies.class);
fieldAppliesLambdaUpdateWrapper.eq(MerchantFieldApplies::getFieldApplyId, fieldAppliesVo.getFieldApplyId());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getApplyStatus, fieldAppliesVo.getApplyStatus());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getReject, fieldAppliesVo.getReject());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditUid, fieldAppliesVo.getAuditUid());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditName, fieldAppliesVo.getAuditName());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditedAt, fieldAppliesVo.getAuditedAt());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getUpdatedAt, fieldAppliesVo.getUpdatedAt());
success = update(fieldAppliesLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地 sync mongo
merchantMongoUtil.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
// 场地 sync redis
merchantRedisUtil.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
// 场地申请 redis
merchantRedisUtil.setFieldAppliesVosByUid(uid, fieldAppliesVos);
} else {
// 创建逻辑
// 场地申请 vo
fieldAppliesVo.setApplyStatus(1);
fieldAppliesVo.setReject("");
fieldAppliesVo.setAuditUid(auditUid);
fieldAppliesVo.setAuditName(auditName);
fieldAppliesVo.setAuditedAt(now);
fieldAppliesVo.setUpdatedAt(now);
// 公司 entity mysql
MerchantCompanies companiesEntity = new MerchantCompanies();
companiesEntity.setCompanyId(IDGenerator.nextSnowId());
companiesEntity.setName(fieldAppliesVo.getCompanyName());
companiesEntity.setLicenseCode(fieldAppliesVo.getLicenseCode());
companiesEntity.setLicenseImg(fieldAppliesVo.getLicenseImg());
companiesEntity.setLegalName(fieldAppliesVo.getLegalName());
companiesEntity.setLegalIdentity(fieldAppliesVo.getLegalIdentity());
companiesEntity.setLegalIdentityObverse(fieldAppliesVo.getLegalIdentityObverse());
companiesEntity.setLegalIdentityReverse(fieldAppliesVo.getLegalIdentityReverse());
companiesEntity.setCreatedAt(now);
boolean success = merchantCompaniesAdminService.save(companiesEntity);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 公司 vo
MerchantCompaniesVo companiesVo = MerchantCompaniesVo.getNew();
companiesVo.copy(companies);
companiesVo.copy(companiesEntity);
// 场地 entity mysql
MerchantFields fieldsEntity = new MerchantFields();
fieldsEntity.setFieldId(IDGenerator.nextSnowId());
fieldsEntity.setIsOnline(1);
fieldsEntity.setClaimStatus(1);
fieldsEntity.setUid(uid);
fieldsEntity.setIsCheck(0);
fieldsEntity.setName(fieldAppliesVo.getName());
fieldsEntity.setLogo(fieldAppliesVo.getLogo());
fieldsEntity.setBackground(fieldAppliesVo.getBackground());
fieldsEntity.setDescription(fieldAppliesVo.getDescription());
fieldsEntity.setBuiltDate(LocalDate.parse(fieldAppliesVo.getBuiltDate()));
fieldsEntity.setProvinceId(fieldAppliesVo.getProvinceId());
fieldsEntity.setProvinceName(fieldAppliesVo.getProvinceName());
fieldsEntity.setCityId(fieldAppliesVo.getCityId());
fieldsEntity.setCityName(fieldAppliesVo.getCityName());
fieldsEntity.setDistrictId(fieldAppliesVo.getDistrictId());
fieldsEntity.setDistrictName(fieldAppliesVo.getDistrictName());
fieldsEntity.setAddress(fieldAppliesVo.getAddress());
fieldsEntity.setLongitude(fieldAppliesVo.getLongitude());
fieldsEntity.setLatitude(fieldAppliesVo.getLatitude());
fieldsEntity.setContactName(fieldAppliesVo.getContactName());
fieldsEntity.setContactEmail(fieldAppliesVo.getContactEmail());
fieldsEntity.setCompanyId(companiesEntity.getCompanyId());
fieldsEntity.setCreatedAt(now);
success = merchantFieldsAdminService.save(fieldsEntity);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地 vo
MerchantFieldsVo fieldsVo = MerchantFieldsVo.getNew();
fieldsVo.copy(fieldsEntity);
fieldsVo.setCompaniesVo(companiesVo);
// 场地申请 mysql
LambdaUpdateWrapper<MerchantFieldApplies> fieldAppliesLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantFieldApplies.class);
fieldAppliesLambdaUpdateWrapper.eq(MerchantFieldApplies::getFieldApplyId, fieldAppliesVo.getFieldApplyId());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getApplyStatus, fieldAppliesVo.getApplyStatus());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getReject, fieldAppliesVo.getReject());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditUid, fieldAppliesVo.getAuditUid());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditName, fieldAppliesVo.getAuditName());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditedAt, fieldAppliesVo.getAuditedAt());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getUpdatedAt, fieldAppliesVo.getUpdatedAt());
success = update(fieldAppliesLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地 sync mongo
merchantMongoUtil.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
// 场地 sync redis
merchantRedisUtil.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
// 场地申请 sync redis
merchantRedisUtil.setFieldAppliesVosByUid(uid, fieldAppliesVos);
}
}
@Override
public void applyReject(String uid, String fieldApplyId, String auditUid, String auditName, String reject) {
List<MerchantFieldAppliesVo> fieldAppliesVos = merchantRedisUtil.getFieldAppliesVosByUid(uid);
if (CollectionUtils.isEmpty(fieldAppliesVos)) {
// todo error
throw new LiquidnetServiceException();
}
int idx = IntStream.range(0, fieldAppliesVos.size())
.filter(i -> fieldAppliesVos.get(i).getFieldApplyId().equals(fieldApplyId))
.findFirst()
.orElse(-1);
if (idx < 0) {
// todo error
throw new LiquidnetServiceException();
}
MerchantFieldAppliesVo fieldAppliesVo = fieldAppliesVos.get(idx);
if (0 != fieldAppliesVo.getApplyStatus()) {
// todo error
throw new LiquidnetServiceException();
}
LocalDateTime now = LocalDateTime.now();
if (fieldAppliesVo.getApplyType().equals("claim")) {
// 驳回认领逻辑
// 场地申请 vo
fieldAppliesVo.setApplyStatus(2);
fieldAppliesVo.setReject(reject);
fieldAppliesVo.setAuditUid(auditUid);
fieldAppliesVo.setAuditName(auditName);
fieldAppliesVo.setAuditedAt(now);
fieldAppliesVo.setUpdatedAt(now);
// 场地 vo
fieldsVo.setIsOnline(1);
fieldsVo.setClaimStatus(1);
fieldsVo.setUid(uid);
fieldsVo.setName(fieldAppliesVo.getName());
fieldsVo.setLogo(fieldAppliesVo.getLogo());
fieldsVo.setBackground(fieldAppliesVo.getBackground());
fieldsVo.setDescription(fieldAppliesVo.getDescription());
fieldsVo.setBuiltDate(fieldAppliesVo.getBuiltDate());
fieldsVo.setProvinceId(fieldAppliesVo.getProvinceId());
fieldsVo.setProvinceName(fieldAppliesVo.getProvinceName());
fieldsVo.setCityId(fieldAppliesVo.getCityId());
fieldsVo.setCityName(fieldAppliesVo.getCityName());
fieldsVo.setDistrictId(fieldAppliesVo.getDistrictId());
fieldsVo.setDistrictName(fieldAppliesVo.getDistrictName());
fieldsVo.setAddress(fieldAppliesVo.getAddress());
fieldsVo.setLongitude(fieldAppliesVo.getLongitude());
fieldsVo.setLatitude(fieldAppliesVo.getLatitude());
fieldsVo.setContactName(fieldAppliesVo.getContactName());
fieldsVo.setContactEmail(fieldAppliesVo.getContactEmail());
fieldsVo.setCompanyId(companiesVo.getCompanyId());
fieldsVo.setCompaniesVo(companiesVo);
MerchantFieldsVo fieldsVo = merchantRedisUtil.getFieldsVoByFieldId(fieldAppliesVo.getFieldId());
if (null == fieldsVo) {
// todo error
throw new LiquidnetServiceException();
}
if (2 != fieldsVo.getClaimStatus() || !fieldsVo.getUid().equals(uid)) {
// todo error
throw new LiquidnetServiceException();
}
fieldsVo.setClaimStatus(0);
fieldsVo.setUid("");
fieldsVo.setUpdatedAt(now);
// 场地 mysql
LambdaUpdateWrapper<MerchantFields> fieldsLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantFields.class);
fieldsLambdaUpdateWrapper.eq(MerchantFields::getFieldId, fieldAppliesVo.getFieldId());
fieldsLambdaUpdateWrapper.eq(MerchantFields::getFieldId, fieldsVo.getFieldId());
fieldsLambdaUpdateWrapper.set(MerchantFields::getClaimStatus, fieldsVo.getClaimStatus());
fieldsLambdaUpdateWrapper.set(MerchantFields::getUid, fieldsVo.getUid());
fieldsLambdaUpdateWrapper.set(MerchantFields::getName, fieldsVo.getName());
fieldsLambdaUpdateWrapper.set(MerchantFields::getLogo, fieldsVo.getLogo());
fieldsLambdaUpdateWrapper.set(MerchantFields::getBackground, fieldsVo.getBackground());
fieldsLambdaUpdateWrapper.set(MerchantFields::getDescription, fieldsVo.getDescription());
fieldsLambdaUpdateWrapper.set(MerchantFields::getBuiltDate, fieldsVo.getBuiltDate());
fieldsLambdaUpdateWrapper.set(MerchantFields::getProvinceId, fieldsVo.getProvinceId());
fieldsLambdaUpdateWrapper.set(MerchantFields::getProvinceName, fieldsVo.getProvinceName());
fieldsLambdaUpdateWrapper.set(MerchantFields::getCityId, fieldsVo.getCityId());
fieldsLambdaUpdateWrapper.set(MerchantFields::getCityName, fieldsVo.getCityName());
fieldsLambdaUpdateWrapper.set(MerchantFields::getDistrictId, fieldsVo.getDistrictId());
fieldsLambdaUpdateWrapper.set(MerchantFields::getDistrictName, fieldsVo.getDistrictName());
fieldsLambdaUpdateWrapper.set(MerchantFields::getAddress, fieldsVo.getAddress());
fieldsLambdaUpdateWrapper.set(MerchantFields::getLongitude, fieldsVo.getLongitude());
fieldsLambdaUpdateWrapper.set(MerchantFields::getLatitude, fieldsVo.getLatitude());
fieldsLambdaUpdateWrapper.set(MerchantFields::getContactName, fieldsVo.getContactName());
fieldsLambdaUpdateWrapper.set(MerchantFields::getContactEmail, fieldsVo.getContactEmail());
fieldsLambdaUpdateWrapper.set(MerchantFields::getCompanyId, fieldsVo.getCompanyId());
fieldsLambdaUpdateWrapper.set(MerchantFields::getUpdatedAt, fieldsVo.getUpdatedAt());
success = merchantFieldsAdminService.update(fieldsLambdaUpdateWrapper);
boolean success = merchantFieldsAdminService.update(fieldsLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地 sync redis
// 场地申请 mysql
LambdaUpdateWrapper<MerchantFieldApplies> fieldAppliesLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantFieldApplies.class);
fieldAppliesLambdaUpdateWrapper.eq(MerchantFieldApplies::getFieldApplyId, fieldAppliesVo.getFieldApplyId());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getApplyStatus, fieldAppliesVo.getApplyStatus());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getReject, fieldAppliesVo.getReject());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditUid, fieldAppliesVo.getAuditUid());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditName, fieldAppliesVo.getAuditName());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditedAt, fieldAppliesVo.getAuditedAt());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getUpdatedAt, fieldAppliesVo.getUpdatedAt());
success = update(fieldAppliesLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地 sync mongo
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());
// 场地申请 mysql
// 场地 sync redis
merchantRedisUtil.setFieldsVoByFieldId(fieldsVo.getFieldId(), fieldsVo);
// 场地申请 redis
// 场地申请 sync redis
merchantRedisUtil.setFieldAppliesVosByUid(uid, fieldAppliesVos);
} else {
// 创建逻辑
// 驳回创建逻辑
}
}
// 场地申请 vo
fieldAppliesVo.setApplyStatus(2);
fieldAppliesVo.setReject(reject);
fieldAppliesVo.setAuditUid(auditUid);
fieldAppliesVo.setAuditName(auditName);
fieldAppliesVo.setAuditedAt(now);
fieldAppliesVo.setUpdatedAt(now);
@Override
public void applyReject(String uid, String fieldApplyId, String auditUid, String auditName, String reject) {
// 场地申请 mysql
LambdaUpdateWrapper<MerchantFieldApplies> fieldAppliesLambdaUpdateWrapper = Wrappers.lambdaUpdate(MerchantFieldApplies.class);
fieldAppliesLambdaUpdateWrapper.eq(MerchantFieldApplies::getFieldApplyId, fieldAppliesVo.getFieldApplyId());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getApplyStatus, fieldAppliesVo.getApplyStatus());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getReject, fieldAppliesVo.getReject());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditUid, fieldAppliesVo.getAuditUid());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditName, fieldAppliesVo.getAuditName());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getAuditedAt, fieldAppliesVo.getAuditedAt());
fieldAppliesLambdaUpdateWrapper.set(MerchantFieldApplies::getUpdatedAt, fieldAppliesVo.getUpdatedAt());
boolean success = update(fieldAppliesLambdaUpdateWrapper);
if (!success) {
// todo error
throw new LiquidnetServiceException();
}
// 场地申请 sync redis
merchantRedisUtil.setFieldAppliesVosByUid(uid, fieldAppliesVos);
}
}
......
......@@ -2,10 +2,13 @@ package com.liquidnet.client.admin.zhengzai.merchant.utils;
import com.liquidnet.service.merchant.dto.vo.MerchantFieldsVo;
import com.liquidnet.service.merchant.dto.vo.MerchantSponsorsVo;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;
@Component
......@@ -13,11 +16,22 @@ public class MerchantMongoUtil {
@Autowired
private MongoTemplate mongoTemplate;
public MerchantFieldsVo getMerchantFieldsVoByFieldId(String fieldId) {
@Autowired
private MongoConverter mongoConverter;
public MerchantFieldsVo getFieldsVoByFieldId(String fieldId) {
return mongoTemplate.findOne(Query.query(Criteria.where("fieldId").is(fieldId)), MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName());
}
public MerchantSponsorsVo getMerchantSponsorsVoBySponsorId(String sponsorId) {
public void setFieldsVoByFieldId(String fieldId, MerchantFieldsVo vo) {
Query query = Query.query(Criteria.where("fieldId").is(fieldId));
Document document = (Document)mongoConverter.convertToMongoType(vo);
Update update = Update.fromDocument(document);
mongoTemplate.upsert(query, update, MerchantFieldsVo.class, MerchantFieldsVo.class.getSimpleName());
}
public MerchantSponsorsVo getSponsorsVoBySponsorId(String sponsorId) {
return mongoTemplate.findOne(Query.query(Criteria.where("sponsorId").is(sponsorId)), MerchantSponsorsVo.class, MerchantSponsorsVo.class.getSimpleName());
}
}
......@@ -10,6 +10,7 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
@Slf4j
@Service
......@@ -27,7 +28,7 @@ public class MerchantRedisUtil {
MerchantFieldsVo vo = (MerchantFieldsVo) redisUtil.get(key);
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
if (null == vo) {
vo = mongoUtil.getMerchantFieldsVoByFieldId(fieldId);
vo = mongoUtil.getFieldsVoByFieldId(fieldId);
this.setFieldsVoByFieldId(fieldId, vo);
}
return vo;
......@@ -48,6 +49,11 @@ public class MerchantRedisUtil {
return vos;
}
// 【场地认领】更新我的列表
public boolean setFieldAppliesVosByUid(String uid, List<MerchantFieldAppliesVo> vos) {
return redisUtil.set(MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid), vos);
}
// 【场地申请】新增
public boolean addFieldAppliesVoByUid(String uid, List<MerchantFieldAppliesVo> vos, MerchantFieldAppliesVo vo) {
if (null == vos) {
......@@ -66,6 +72,21 @@ public class MerchantRedisUtil {
return redisUtil.set(MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid), vos);
}
// 【场地申请】更新
public boolean setFieldAppliesVoByUid(String uid, List<MerchantFieldAppliesVo> vos, MerchantFieldAppliesVo vo) {
if (CollectionUtils.isEmpty(vos)) {
return false;
}
int idx = IntStream.range(0, vos.size())
.filter(i -> vos.get(i).getFieldApplyId().equals(vo.getFieldApplyId()))
.findFirst().orElse(-1);
if (idx == -1) {
return false;
}
vos.set(idx, vo);
return redisUtil.set(MerchantRedisConst.INFO_FIELD_APPLIES.concat(uid), vos);
}
// 【场地默认验票员】列表
public List<MerchantFieldCheckersVo> getFieldCheckersVosByFieldId(String fieldId) {
......@@ -101,7 +122,7 @@ public class MerchantRedisUtil {
MerchantSponsorsVo vo = (MerchantSponsorsVo) redisUtil.get(key);
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
if (null == vo) {
vo = mongoUtil.getMerchantSponsorsVoBySponsorId(sponsorId);
vo = mongoUtil.getSponsorsVoBySponsorId(sponsorId);
this.setSponsorsVoBySponsorId(sponsorId, vo);
}
return vo;
......
......@@ -45,7 +45,7 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService {
MerchantRdmService merchantRdmService;
@Autowired
private MongoTemplate mongoTemplate;
MongoTemplate mongoTemplate;
@Autowired
QueueUtil queueUtils;
......@@ -122,7 +122,7 @@ public class MerchantFieldsServiceImpl implements IMerchantFieldsService {
// 场地 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("updateAt", fieldsVo.getUpdatedAt());
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);
}
......
......@@ -42,7 +42,7 @@ public class MerchantSponsorsServiceImpl implements IMerchantSponsorsService {
MerchantRdmService merchantRdmService;
@Autowired
private MongoTemplate mongoTemplate;
MongoTemplate mongoTemplate;
@Autowired
QueueUtil queueUtils;
......
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