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

Commit c3983863 authored by Tice's avatar Tice

场地审核

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