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

Commit ac10a5a2 authored by 张国柄's avatar 张国柄

fix:去除MONGO;

parent d9fed03f
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import java.util.List;
/**
* <p>
......@@ -23,5 +23,5 @@ public interface IAdamAddressesService {
void remove(String uid, String addressesId);
AdamAddressesVo queryDefault(String uid);
AdamAddressesVo queryDefault(List<AdamAddressesVo> vos, String uid, boolean downgrade);
}
......@@ -3,6 +3,8 @@ package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import java.util.List;
/**
* <p>
* 入场人 服务类
......@@ -20,5 +22,5 @@ public interface IAdamEntersService {
void remove(String uid, String entersId);
AdamEntersVo queryDefault(String uid);
AdamEntersVo queryDefault(List<AdamEntersVo> vos, String uid, boolean downgrade);
}
......@@ -39,6 +39,17 @@ public class AdamSwitchAdminController {
return ResponseDto.success(redisUtil.get(AdamRedisConst.SWITCH_BUY_MEMBER));
}
@RequiresPermissions("adam:switch:max:memberno")
@ApiOperation(value = "会员用户最大ID_NO")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "int", name = "opt", value = "会员用户最大ID_NO", example = "15000"),
})
@PostMapping("set/memberno")
public ResponseDto<Object> purchaseStartMemberNo(@Max(1) @Min(0) @RequestParam int opt) {
redisUtil.set(AdamRedisConst.INCR_MEMBER_NO, opt);
return ResponseDto.success(redisUtil.get(AdamRedisConst.INCR_MEMBER_NO));
}
@RequiresPermissions("adam:switch:gray:login")
@ApiOperation(value = "开放/限制校验证码")
@ApiImplicitParams({
......
......@@ -124,7 +124,7 @@ public class AdamAddressesController {
@ApiOperation(value = "获取默认收货地址")
@PostMapping("query/def")
public ResponseDto<AdamAddressesVo> queryDef() {
AdamAddressesVo vo = adamAddressesService.queryDefault(CurrentUtil.getCurrentUid());
AdamAddressesVo vo = adamAddressesService.queryDefault(null, CurrentUtil.getCurrentUid(), true);
if (null != vo) {
vo.setPhone(SensitizeUtil.custom(vo.getPhone(), 3, 4));
}
......
......@@ -180,7 +180,7 @@ public class AdamEntersController {
@ApiOperation(value = "获取默认入场人")
@PostMapping("query/def")
public ResponseDto<AdamEntersVo> queryDef() {
AdamEntersVo vo = adamEntersService.queryDefault(CurrentUtil.getCurrentUid());
AdamEntersVo vo = adamEntersService.queryDefault(null, CurrentUtil.getCurrentUid(), true);
if (null != vo) {
vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
......
......@@ -248,7 +248,7 @@ public class AdamMemberOrderController {
@ApiOperationSupport(order = 6)
@ApiOperation(value = "会员订单详情")
@GetMapping("info/{orderNo}")
public ResponseDto<AdamMemberOrderVo> getMemberOrderList(@NotBlank(message = "订单号不能为空") @PathVariable String orderNo) {
public ResponseDto<AdamMemberOrderVo> getMemberOrder(@NotBlank(message = "订单号不能为空") @PathVariable String orderNo) {
AdamMemberOrderVo mOrderVo = adamRdmService.getShotMemberOrderVoByOrderNo(orderNo);
if (null != mOrderVo) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(mOrderVo.getMemberId());
......
......@@ -9,10 +9,6 @@ import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
......@@ -27,8 +23,8 @@ import java.util.stream.Collectors;
@Slf4j
@Service
public class AdamRdmService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
......@@ -71,17 +67,17 @@ public class AdamRdmService {
String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
if (StringUtils.isEmpty(val)) {
Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
query.fields().include("uid");
s = System.currentTimeMillis();
AdamUserInfoVo vo = mongoTemplate.findOne(query, AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) {
val = vo.getUid();
redisUtil.set(key, vo.getUid());
}
}
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("mobile").is(mobile).and("state").is(1));
// query.fields().include("uid");
// s = System.currentTimeMillis();
// AdamUserInfoVo vo = mongoTemplate.findOne(query, AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) {
// val = vo.getUid();
// redisUtil.set(key, vo.getUid());
// }
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -98,17 +94,17 @@ public class AdamRdmService {
String key = AdamRedisConst.IDENTITY_THIRD_PARTY + platform + ":" + openId;
long s = System.currentTimeMillis();
String val = (String) redisUtil.get(key);
if (StringUtils.isEmpty(val)) {
Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
query.fields().include("uid");
s = System.currentTimeMillis();
AdamThirdPartInfoVo vo = mongoTemplate.findOne(query, AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) {
val = vo.getUid();
redisUtil.set(key, vo.getUid());
}
}
// if (StringUtils.isEmpty(val)) {
// Query query = Query.query(Criteria.where("openId").is(openId).and("platform").is(platform).and("state").is(1));
// query.fields().include("uid");
// s = System.currentTimeMillis();
// AdamThirdPartInfoVo vo = mongoTemplate.findOne(query, AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) {
// val = vo.getUid();
// redisUtil.set(key, vo.getUid());
// }
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return val;
}
......@@ -127,14 +123,14 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_USER.concat(uid);
long s = System.currentTimeMillis();
AdamUserInfoVo vo = (AdamUserInfoVo) redisUtil.get(rk);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamUserInfoVo.class, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(rk, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -153,14 +149,14 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_REAL_NAME.concat(uid);
long s = System.currentTimeMillis();
AdamRealInfoVo vo = (AdamRealInfoVo) redisUtil.get(rk);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamRealInfoVo.class, AdamRealInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(rk, vo);
// }
if (null != vo) {
vo.setName(SensitizeUtil.chineseName(vo.getName()));
vo.setIdCard(SensitizeUtil.custom(vo.getIdCard(), 3, 2));
......@@ -190,14 +186,14 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_THIRD_PARTY.concat(uid);
long s = System.currentTimeMillis();
List<AdamThirdPartInfoVo> thirdPartInfoVos = (List<AdamThirdPartInfoVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
s = System.currentTimeMillis();
thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
}
// if (CollectionUtils.isEmpty(thirdPartInfoVos)) {
// s = System.currentTimeMillis();
// thirdPartInfoVos = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
// AdamThirdPartInfoVo.class, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(thirdPartInfoVos)) redisUtil.set(rk, thirdPartInfoVos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return thirdPartInfoVos;
}
......@@ -229,20 +225,24 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_ENTERS.concat(uid);
long s = System.currentTimeMillis();
List<AdamEntersVo> vos = (List<AdamEntersVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
// AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamEntersVo getEntersVoByUidEntersId(List<AdamEntersVo> vos, String entersId) {
return vos.stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
public AdamEntersVo getEntersVoByUidEntersId(String uid, String entersId) {
return this.getEntersVoByUid(uid).stream().filter(r -> r.getEntersId().equals(entersId)).findAny().orElse(null);
}
......@@ -266,20 +266,24 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
long s = System.currentTimeMillis();
List<AdamAddressesVo> vos = (List<AdamAddressesVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(vos)) {
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamAddressesVo.class, AdamAddressesVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
// AdamAddressesVo.class, AdamAddressesVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(rk, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamAddressesVo getAddressesVoByUidAddressesId(List<AdamAddressesVo> vos, String addressesId) {
return vos.stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
public AdamAddressesVo getAddressesVoByUidAddressesId(String uid, String addressesId) {
return this.getAddressesVoByUid(uid).stream().filter(r -> r.getAddressesId().equals(addressesId)).findAny().orElse(null);
}
......@@ -308,13 +312,13 @@ public class AdamRdmService {
String rk = AdamRedisConst.INFO_USER_MEMBER.concat(uid);
long s = System.currentTimeMillis();
AdamUserMemberVo vo = (AdamUserMemberVo) redisUtil.get(rk);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(rk, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(rk, vo);
// }
if (null != vo) {
vo.setState(vo.getState() == 1 ? (vo.getExpiryAt().isAfter(LocalDateTime.now()) ? 1 : 2) : vo.getState());
}
......@@ -329,19 +333,21 @@ public class AdamRdmService {
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | <MEMBER_SIMPLE_INFO> */
public AdamMemberSimpleVo getMemberSimpleVo() {
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
if (null == vo) {
long s = System.currentTimeMillis();
List<AdamMemberSimpleVo> vos = mongoTemplate.find(
Query.query(Criteria.where("state").is(1)).with(Sort.by(Sort.Direction.ASC, "memberId")),
AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
vo = CollectionUtils.isEmpty(vos) ? null : vos.get(0);
if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
}
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
// if (null == vo) {
// long s = System.currentTimeMillis();
// List<AdamMemberSimpleVo> vos = mongoTemplate.find(
// Query.query(Criteria.where("state").is(1)).with(Sort.by(Sort.Direction.ASC, "memberId")),
// AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// vo = CollectionUtils.isEmpty(vos) ? null : vos.get(0);
//
// if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -355,15 +361,15 @@ public class AdamRdmService {
String key = AdamRedisConst.INFO_MEMBER_CATEGORY.concat(memberId);
long s = System.currentTimeMillis();
AdamMemberVo vo = (AdamMemberVo) redisUtil.get(key);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(
// Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
// AdamMemberVo.class, AdamMemberVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo) redisUtil.set(key, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -382,22 +388,21 @@ public class AdamRdmService {
String key = AdamRedisConst.INFO_MEMBER_PRICE.concat(memberId);
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = (List<AdamMemberPriceVo>) redisUtil.get(key);
if (CollectionUtils.isEmpty(vos)) {
s = System.currentTimeMillis();
vos = mongoTemplate.find(
Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
}
// if (CollectionUtils.isEmpty(vos)) {
// s = System.currentTimeMillis();
// vos = mongoTemplate.find(
// Query.query(Criteria.where("memberId").is(memberId).and("state").is(1)),
// AdamMemberPriceVo.class, AdamMemberPriceVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(vos)) redisUtil.set(key, vos);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vos;
}
public AdamMemberPriceVo getMemberPriceVoByPriceId(String memberId, String memberPriceId) {
long s = System.currentTimeMillis();
List<AdamMemberPriceVo> vos = this.getMemberPriceVoByMemberId(memberId);
if (!CollectionUtils.isEmpty(vos)) {
// for (AdamMemberPriceVo r : vos) {
......@@ -459,16 +464,16 @@ public class AdamRdmService {
String key = AdamRedisConst.SHOT_MEMBER_ORDER + orderNo;
long s = System.currentTimeMillis();
AdamMemberOrderVo vo = (AdamMemberOrderVo) redisUtil.get(key);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("orderNo").is(orderNo)),
AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo) redisUtil.set(key, vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(
// Query.query(Criteria.where("orderNo").is(orderNo)),
// AdamMemberOrderVo.class, AdamMemberOrderVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (null != vo) redisUtil.set(key, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -502,15 +507,15 @@ public class AdamRdmService {
String key = AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode);
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = (AdamMemberCodeVo) redisUtil.get(key);
if (null == vo) {
s = System.currentTimeMillis();
vo = mongoTemplate.findOne(
Query.query(Criteria.where("code").is(memberCode)),
AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
}
// if (null == vo) {
// s = System.currentTimeMillis();
// vo = mongoTemplate.findOne(
// Query.query(Criteria.where("code").is(memberCode)),
// AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != vo && vo.getState() == 0) redisUtil.set(AdamRedisConst.INFO_MEMBER_CODE.concat(memberCode), vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo;
}
......@@ -525,14 +530,16 @@ public class AdamRdmService {
* Temporarily connect Mongo
*/
public AdamMemberCodeVo getMemberCodeVoByBuyOrderNo(String buyOrderNo) {
Query query = Query.query(Criteria.where("buyOrderNo").is(buyOrderNo));
query.fields().include("code").include("memberNo").include("state").include("type");
long s = System.currentTimeMillis();
AdamMemberCodeVo vo = mongoTemplate.findOne(
query, AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
return vo;
// Query query = Query.query(Criteria.where("buyOrderNo").is(buyOrderNo));
// query.fields().include("code").include("memberNo").include("state").include("type");
// long s = System.currentTimeMillis();
// AdamMemberCodeVo vo = mongoTemplate.findOne(
// query, AdamMemberCodeVo.class, AdamMemberCodeVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// return vo;
// TODO: 2021/7/29 降级查取,此处只用于用户购买会员码时使用
return AdamMemberCodeVo.getNew();
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | TAGS:List<AdamTagVo> */
......
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.service.AdamRdmService;
......@@ -10,16 +12,9 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
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.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -39,8 +34,8 @@ import java.util.stream.IntStream;
@Slf4j
@Service
public class AdamAddressesServiceImpl implements IAdamAddressesService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -62,11 +57,11 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
vo.setState(1);
vo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(vo, AdamAddressesVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(vo, AdamAddressesVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.delAddressesVoByUid(currentUid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -91,39 +86,45 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
// AdamAddressesVo unDeaultVo = AdamAddressesVo.getNew();
// unDeaultVo.setIsDefault(false);
// unDeaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamAddressesVo unDefaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
// new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamAddressesVo unDefaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
AdamAddressesVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
toMqObjs.add(new Object[]{false, now, unDefaultVoAfter.getAddressesId()});
toMqObjs.add(new Object[]{false, now, defaultVo.getAddressesId()});
vos = this.collectionProcess(vos, unDefaultVoAfter.getAddressesId(), unDefaultVoAfter);
}
this.collectionProcess(vos, defaultVo.getAddressesId(), defaultVo);
// }
}
{// 设置新默认
// AdamAddressesVo defaultVo = AdamAddressesVo.getNew();
// defaultVo.setIsDefault(true);
// defaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("addressesId").is(addressesId)).getQueryObject(),
new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamAddressesVo defaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("addressesId").is(addressesId)).getQueryObject(),
// new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamAddressesVo defaultVoAfter = BsonUtil.toBean(doc, AdamAddressesVo.class);
AdamAddressesVo defaultVoAfter = adamRdmService.getAddressesVoByUidAddressesId(vos, addressesId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
toMqObjs.add(new Object[]{true, now, addressesId});
vos = this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
}
this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
// }
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
long s = System.currentTimeMillis();
......@@ -144,20 +145,29 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
AdamAddressesVo updateVo = AdamAddressesVo.getNew();
BeanUtils.copyProperties(parameter, updateVo);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(parameter.getAddressesId())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
updateVo = BsonUtil.toBean(doc, AdamAddressesVo.class);
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
s = System.currentTimeMillis();
AdamAddressesVo updateVo = adamRdmService.getAddressesVoByUidAddressesId(vos, parameter.getAddressesId());
updateVo.setName(parameter.getName());
updateVo.setPhone(parameter.getPhone());
updateVo.setProvince(parameter.getProvince());
updateVo.setCity(parameter.getCity());
updateVo.setCounty(parameter.getCounty());
updateVo.setAddress(parameter.getAddress());
updateVo.setUpdatedAt(now);
// AdamAddressesVo updateVo = AdamAddressesVo.getNew();
// BeanUtils.copyProperties(parameter, updateVo);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamAddressesVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(parameter.getAddressesId())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// updateVo = BsonUtil.toBean(doc, AdamAddressesVo.class);
//
// List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
long s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(updateVo.getUid(), this.collectionProcess(vos, parameter.getAddressesId(), updateVo));
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -169,13 +179,13 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
// }
}
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String addressesId) {
String currentUid = CurrentUtil.getCurrentUid();
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
// AdamAddressesVo removeVo = AdamAddressesVo.getNew();
......@@ -184,14 +194,14 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
// removeVo.setUpdatedAt(now);
// removeVo.setDeletedAt(now);
long s = System.currentTimeMillis();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(currentUid).and("addressesId").is(addressesId)), AdamAddressesVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
vos.removeIf(r -> r.getAddressesId().equals(addressesId));
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setAddressesVoByUid(uid, vos);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -204,17 +214,21 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
}
@Override
public AdamAddressesVo queryDefault(String uid) {
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(uid);
public AdamAddressesVo queryDefault(List<AdamAddressesVo> vos, String uid, boolean downgrade) {
if (CollectionUtils.isEmpty(vos)) {
vos = adamRdmService.getAddressesVoByUid(uid);
}
if (!CollectionUtils.isEmpty(vos)) {
AdamAddressesVo defaultVo = null;
for (AdamAddressesVo vo : vos) {
if (vo.getIsDefault()) {
return vo;
}
if (downgrade) {
defaultVo = null == defaultVo ? vo :
vo.getCreatedAt().compareTo(defaultVo.getCreatedAt()) > 0 ? vo : defaultVo;
}
}
return defaultVo;
}
return null;
......@@ -228,18 +242,18 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
.filter(i -> vos.get(i).getAddressesId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
adamRdmService.delAddressesVoByUid(updateVo.getUid());
List<AdamAddressesVo> addressesVos = adamRdmService.getAddressesVoByUid(updateVo.getUid());
idx = IntStream.range(0, vos.size())
.filter(i -> addressesVos.get(i).getAddressesId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
// adamRdmService.delAddressesVoByUid(updateVo.getUid());
//
// List<AdamAddressesVo> addressesVos = adamRdmService.getAddressesVoByUid(updateVo.getUid());
//
// idx = IntStream.range(0, vos.size())
// .filter(i -> addressesVos.get(i).getAddressesId().equals(replaceId))
// .findFirst().orElse(-1);
//
// if (idx == -1) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10018");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// }
}
vos.set(idx, updateVo);
log.debug("#collect.process耗时:{}ms", System.currentTimeMillis() - s);
......
......@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamCollectVo;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamCollectionService;
......@@ -11,22 +10,12 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -39,8 +28,8 @@ import java.util.List;
@Slf4j
@Service
public class AdamCollectionServiceImpl implements IAdamCollectionService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -53,7 +42,7 @@ public class AdamCollectionServiceImpl implements IAdamCollectionService {
vo.setState(1);
vo.setCreatedAt(now);
mongoTemplate.insert(vo, AdamCollectBaseVo.class.getSimpleName());
// mongoTemplate.insert(vo, AdamCollectBaseVo.class.getSimpleName());
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
......@@ -65,21 +54,22 @@ public class AdamCollectionServiceImpl implements IAdamCollectionService {
@Override
public boolean exists(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamCollectBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamCollectBaseVo.class.getSimpleName()
// );
}
@Override
public void del(String uid, String type, String... contentIds) {
LocalDateTime now = LocalDateTime.now();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
AdamCollectBaseVo.class.getSimpleName()
);
if (deleteResult.getDeletedCount() > 0) {
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
// AdamCollectBaseVo.class.getSimpleName()
// );
// if (deleteResult.getDeletedCount() > 0) {
LinkedList<Object[]> toMqObjs = CollectionUtil.linkedListObjectArr();
for (String c : contentIds) {
toMqObjs.add(new Object[]{now, uid, c});
......@@ -88,86 +78,88 @@ public class AdamCollectionServiceImpl implements IAdamCollectionService {
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_collection.del", toMqObjs)
);
}
// }
}
@Override
public boolean queryState(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamCollectBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamCollectBaseVo.class.getSimpleName()
// );
}
@Override
public PagedResult<AdamCollectVo> queryPage(String uid, String type, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
long s = System.currentTimeMillis();
long count = mongoTemplate.count(query, AdamCollectBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
PagedResult<AdamCollectVo> pagedResult = ObjectUtil.getAdamCollectVoPagedResult();
if (count > 0) {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt"));
query.with(pageable);
s = System.currentTimeMillis();
List<AdamCollectVo> collectVoList = mongoTemplate.find(query, AdamCollectVo.class, AdamCollectBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(collectVoList)) {
// try {
// String[] contentIds = collectVoList.stream().map(AdamCollectVo::getContentId).toArray(a -> new String[collectVoList.size()]);
// Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
//
// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = feignKylinPerformanceClient.performanceList(contentIds);
// long s = System.currentTimeMillis();
// long count = mongoTemplate.count(query, AdamCollectBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (performanceVoListDto.isSuccess()) {
// List<KylinPerformanceVo> kylinPerformanceVoList = performanceVoListDto.getData();
// PagedResult<AdamCollectVo> pagedResult = ObjectUtil.getAdamCollectVoPagedResult();
// if (count > 0) {
// Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt"));
//
// collectVoList.forEach(v -> {
// kylinPerformanceVoList.forEach(vl -> {
// if (vl.getPerformancesId().equals(v.getContentId())) {
// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
// BeanUtils.copyProperties(vl, collectInfoVo);
// v.setContentInfo(collectInfoVo);
// query.with(pageable);
//
// s = System.currentTimeMillis();
// List<AdamCollectVo> collectVoList = mongoTemplate.find(query, AdamCollectVo.class, AdamCollectBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (!CollectionUtils.isEmpty(collectVoList)) {
//// try {
//// String[] contentIds = collectVoList.stream().map(AdamCollectVo::getContentId).toArray(a -> new String[collectVoList.size()]);
////
//// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = feignKylinPerformanceClient.performanceList(contentIds);
////
//// if (performanceVoListDto.isSuccess()) {
//// List<KylinPerformanceVo> kylinPerformanceVoList = performanceVoListDto.getData();
////
//// collectVoList.forEach(v -> {
//// kylinPerformanceVoList.forEach(vl -> {
//// if (vl.getPerformancesId().equals(v.getContentId())) {
//// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
//// BeanUtils.copyProperties(vl, collectInfoVo);
//// v.setContentInfo(collectInfoVo);
//// }
//// });
//// });
//// } else {
//// log.info("Failed:{}.API.performanceList(...) for AdamCollection:{}", feignKylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
//// }
//// } catch (Exception e) {
//// log.error("Exception:{}.API.performanceList(...) for AdamCollection", feignKylinPerformanceClient.getClass().getSimpleName(), e);
//// }
// s = System.currentTimeMillis();
// collectVoList.forEach(r -> {
// AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
// KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
// if (null != performanceVo) {
//// BeanUtils.copyProperties(performanceVo, vo);
// vo.setPerformancesId(performanceVo.getPerformancesId());
// vo.setTitle(performanceVo.getTitle());
// vo.setImgPoster(performanceVo.getImgPoster());
// vo.setType(performanceVo.getType());
// vo.setTimeStart(performanceVo.getTimeStart());
// vo.setPrice(performanceVo.getPrice());
// vo.setCityName(performanceVo.getCityName());
// vo.setFieldName(performanceVo.getFieldName());
// vo.setIsMember(performanceVo.getIsMember());
// vo.setIsExclusive(performanceVo.getIsExclusive());
// vo.setIsDiscount(performanceVo.getIsDiscount());
// vo.setIsAdvance(performanceVo.getIsAdvance());
// }
// r.setContentInfo(vo);
// });
// });
// } else {
// log.info("Failed:{}.API.performanceList(...) for AdamCollection:{}", feignKylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
// log.debug("#COL.RDS.K耗时:{}ms", System.currentTimeMillis() - s);
// }
// } catch (Exception e) {
// log.error("Exception:{}.API.performanceList(...) for AdamCollection", feignKylinPerformanceClient.getClass().getSimpleName(), e);
//
// pagedResult.setList(collectVoList).setTotal(count, pageSize);
// }
s = System.currentTimeMillis();
collectVoList.forEach(r -> {
AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
if (null != performanceVo) {
// BeanUtils.copyProperties(performanceVo, vo);
vo.setPerformancesId(performanceVo.getPerformancesId());
vo.setTitle(performanceVo.getTitle());
vo.setImgPoster(performanceVo.getImgPoster());
vo.setType(performanceVo.getType());
vo.setTimeStart(performanceVo.getTimeStart());
vo.setPrice(performanceVo.getPrice());
vo.setCityName(performanceVo.getCityName());
vo.setFieldName(performanceVo.getFieldName());
vo.setIsMember(performanceVo.getIsMember());
vo.setIsExclusive(performanceVo.getIsExclusive());
vo.setIsDiscount(performanceVo.getIsDiscount());
vo.setIsAdvance(performanceVo.getIsAdvance());
}
r.setContentInfo(vo);
});
log.debug("#COL.RDS.K耗时:{}ms", System.currentTimeMillis() - s);
}
pagedResult.setList(collectVoList).setTotal(count, pageSize);
}
return pagedResult;
//
// return pagedResult;
return ObjectUtil.getAdamCollectVoPagedResult();
}
}
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
......@@ -12,21 +11,12 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -39,8 +29,8 @@ import java.util.List;
@Slf4j
@Service
public class AdamDisposedServiceImpl implements IAdamDisposedService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -58,7 +48,7 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
vo.setState(1);
vo.setCreatedAt(now);
mongoTemplate.insert(vo, AdamDisposedBaseVo.class.getSimpleName());
// mongoTemplate.insert(vo, AdamDisposedBaseVo.class.getSimpleName());
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
......@@ -70,21 +60,22 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
@Override
public boolean exists(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamDisposedBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamDisposedBaseVo.class.getSimpleName()
// );
}
@Override
public void del(String uid, String type, String... contentIds) {
LocalDateTime now = LocalDateTime.now();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
AdamDisposedBaseVo.class.getSimpleName()
);
if (deleteResult.getDeletedCount() > 0) {
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("contentId").in(contentIds)),
// AdamDisposedBaseVo.class.getSimpleName()
// );
// if (deleteResult.getDeletedCount() > 0) {
LinkedList<Object[]> toMqObjs = CollectionUtil.linkedListObjectArr();
for (String c : contentIds) {
toMqObjs.add(new Object[]{now, uid, c});
......@@ -93,120 +84,123 @@ public class AdamDisposedServiceImpl implements IAdamDisposedService {
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_disposed.del", toMqObjs)
);
}
// }
}
@Override
public boolean queryState(String uid, String type, String contentId) {
return mongoTemplate.exists(
Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
AdamDisposedBaseVo.class.getSimpleName()
);
return false;
// return mongoTemplate.exists(
// Query.query(Criteria.where("uid").is(uid).and("contentId").is(contentId).and("type").is(type).and("state").is(1)),
// AdamDisposedBaseVo.class.getSimpleName()
// );
}
@Override
public PagedResult<AdamDisposedVo> queryPage(String uid, String type, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
long s = System.currentTimeMillis();
long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
PagedResult<AdamDisposedVo> pagedResult = ObjectUtil.getAdamDisposedVoPagedResult();
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
s = System.currentTimeMillis();
List<AdamDisposedVo> disposedVoList = mongoTemplate.find(query, AdamDisposedVo.class, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (!CollectionUtils.isEmpty(disposedVoList)) {
// List<KylinPerformanceVo> kylinPerformanceVoList = null;
// try {
// String[] contentIds = disposedVoList.stream().map(AdamDisposedVo::getContentId).toArray(a -> new String[disposedVoList.size()]);
// Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
//
// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = kylinPerformanceClient.performanceList(contentIds);
// long s = System.currentTimeMillis();
// long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// if (performanceVoListDto.isSuccess()) {
// kylinPerformanceVoList = performanceVoListDto.getData();
// } else {
// log.info("Failed:{}.API.performanceList(...) for AdamDisposedVo:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
// }
// } catch (Exception e) {
// log.error("Exception:{}.API.performanceList(...) for AdamDisposedVo >> {}", kylinPerformanceClient.getClass().getSimpleName(), e.getLocalizedMessage());
// }
// PagedResult<AdamDisposedVo> pagedResult = ObjectUtil.getAdamDisposedVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// if (!CollectionUtils.isEmpty(kylinPerformanceVoList)) {
// kylinPerformanceVoList.forEach(pv -> {
// disposedVoList.forEach(v -> {
// if (pv.getPerformancesId().equals(v.getContentId())) {
// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
// BeanUtils.copyProperties(pv, collectInfoVo);
// v.setContentInfo(collectInfoVo);
// }
// s = System.currentTimeMillis();
// List<AdamDisposedVo> disposedVoList = mongoTemplate.find(query, AdamDisposedVo.class, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
//
// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
// });
// if (!CollectionUtils.isEmpty(disposedVoList)) {
//// List<KylinPerformanceVo> kylinPerformanceVoList = null;
//// try {
//// String[] contentIds = disposedVoList.stream().map(AdamDisposedVo::getContentId).toArray(a -> new String[disposedVoList.size()]);
////
//// ResponseDto<List<KylinPerformanceVo>> performanceVoListDto = kylinPerformanceClient.performanceList(contentIds);
////
//// if (performanceVoListDto.isSuccess()) {
//// kylinPerformanceVoList = performanceVoListDto.getData();
//// } else {
//// log.info("Failed:{}.API.performanceList(...) for AdamDisposedVo:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
//// }
//// } catch (Exception e) {
//// log.error("Exception:{}.API.performanceList(...) for AdamDisposedVo >> {}", kylinPerformanceClient.getClass().getSimpleName(), e.getLocalizedMessage());
//// }
////
//// if (!CollectionUtils.isEmpty(kylinPerformanceVoList)) {
//// kylinPerformanceVoList.forEach(pv -> {
//// disposedVoList.forEach(v -> {
//// if (pv.getPerformancesId().equals(v.getContentId())) {
//// AdamCollectInfoVo collectInfoVo = AdamCollectInfoVo.getNew();
//// BeanUtils.copyProperties(pv, collectInfoVo);
//// v.setContentInfo(collectInfoVo);
//// }
////
//// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
////
//// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
//// });
//// });
//// } else {
//// disposedVoList.forEach(v -> {
//// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
////
//// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
//// });
//// }
// s = System.currentTimeMillis();
// disposedVoList.forEach(r -> {
// AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
// KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
// if (null != performanceVo) {
//// BeanUtils.copyProperties(performanceVo, vo);
// vo.setPerformancesId(performanceVo.getPerformancesId());
// vo.setTitle(performanceVo.getTitle());
// vo.setImgPoster(performanceVo.getImgPoster());
// vo.setType(performanceVo.getType());
// vo.setTimeStart(performanceVo.getTimeStart());
// vo.setPrice(performanceVo.getPrice());
// vo.setCityName(performanceVo.getCityName());
// vo.setFieldName(performanceVo.getFieldName());
// vo.setIsMember(performanceVo.getIsMember());
// vo.setIsExclusive(performanceVo.getIsExclusive());
// vo.setIsDiscount(performanceVo.getIsDiscount());
// vo.setIsAdvance(performanceVo.getIsAdvance());
// }
// r.setContentInfo(vo);
// PagedResult<AdamDisposedUserVo> disposedUserVoPagedResult = this.queryDisposedUsers(type, r.getContentId(), 1, 3);
// if (disposedUserVoPagedResult.getTotal() > 0) r.setUserVos(disposedUserVoPagedResult.getList());
// });
// } else {
// disposedVoList.forEach(v -> {
// PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
// log.debug("#DIS.RDS.MDB.K耗时:{}ms", System.currentTimeMillis() - s);
// }
//
// if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
// });
// pagedResult.setList(disposedVoList).setTotal(count, pageSize);
// }
s = System.currentTimeMillis();
disposedVoList.forEach(r -> {
AdamCollectInfoVo vo = AdamCollectInfoVo.getNew();
KylinPerformanceVo performanceVo = adamRdmService.kylinPerformanceVo(r.getContentId());
if (null != performanceVo) {
// BeanUtils.copyProperties(performanceVo, vo);
vo.setPerformancesId(performanceVo.getPerformancesId());
vo.setTitle(performanceVo.getTitle());
vo.setImgPoster(performanceVo.getImgPoster());
vo.setType(performanceVo.getType());
vo.setTimeStart(performanceVo.getTimeStart());
vo.setPrice(performanceVo.getPrice());
vo.setCityName(performanceVo.getCityName());
vo.setFieldName(performanceVo.getFieldName());
vo.setIsMember(performanceVo.getIsMember());
vo.setIsExclusive(performanceVo.getIsExclusive());
vo.setIsDiscount(performanceVo.getIsDiscount());
vo.setIsAdvance(performanceVo.getIsAdvance());
}
r.setContentInfo(vo);
PagedResult<AdamDisposedUserVo> disposedUserVoPagedResult = this.queryDisposedUsers(type, r.getContentId(), 1, 3);
if (disposedUserVoPagedResult.getTotal() > 0) r.setUserVos(disposedUserVoPagedResult.getList());
});
log.debug("#DIS.RDS.MDB.K耗时:{}ms", System.currentTimeMillis() - s);
}
pagedResult.setList(disposedVoList).setTotal(count, pageSize);
}
return pagedResult;
//
// return pagedResult;
return ObjectUtil.getAdamDisposedVoPagedResult();
}
@Override
public PagedResult<AdamDisposedUserVo> queryDisposedUsers(String type, String contentId, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("type").is(type).and("contentId").is(contentId).and("state").is(1));
long s = System.currentTimeMillis();
long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
PagedResult<AdamDisposedUserVo> pagedResult = ObjectUtil.getAdamDisposedUserVoPagedResult();
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
s = System.currentTimeMillis();
List<AdamDisposedUserVo> disposedUserVoList = mongoTemplate.find(query, AdamDisposedUserVo.class, AdamDisposedBaseVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
pagedResult.setList(disposedUserVoList).setTotal(count, pageSize);
}
return pagedResult;
// Query query = Query.query(Criteria.where("type").is(type).and("contentId").is(contentId).and("state").is(1));
//
// long s = System.currentTimeMillis();
// long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// PagedResult<AdamDisposedUserVo> pagedResult = ObjectUtil.getAdamDisposedUserVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// s = System.currentTimeMillis();
// List<AdamDisposedUserVo> disposedUserVoList = mongoTemplate.find(query, AdamDisposedUserVo.class, AdamDisposedBaseVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// pagedResult.setList(disposedUserVoList).setTotal(count, pageSize);
// }
// return pagedResult;
return ObjectUtil.getAdamDisposedUserVoPagedResult();
}
}
......@@ -11,26 +11,16 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;
/**
......@@ -46,8 +36,8 @@ import java.util.stream.IntStream;
public class AdamEntersServiceImpl implements IAdamEntersService {
@Autowired
Environment env;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -80,11 +70,11 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
vo.setState(1);
vo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(vo, AdamEntersVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(vo, AdamEntersVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.delEntersVoByUid(currentUid);
if (1 == parameter.getType()) {
adamRdmService.setCertification(1, parameter.getIdCard(), parameter.getName());
......@@ -117,39 +107,44 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
// AdamEntersVo unDeaultVo = AdamEntersVo.getNew();
// unDeaultVo.setIsDefault(false);
// unDeaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamEntersVo unDeaultVoAfter = BsonUtil.toBean(doc, AdamEntersVo.class);
toMqObjs.add(new Object[]{false, now, unDeaultVoAfter.getEntersId()});
vos = this.collectionProcess(vos, unDeaultVoAfter.getEntersId(), unDeaultVoAfter);
}
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
// new Document("$set", new Document("isDefault", false).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// AdamEntersVo defaultVo = BsonUtil.toBean(doc, AdamEntersVo.class);
AdamEntersVo defaultVo = queryDefault(vos, uid, false);
defaultVo.setIsDefault(false);
defaultVo.setUpdatedAt(now);
toMqObjs.add(new Object[]{false, now, defaultVo.getEntersId()});
vos = this.collectionProcess(vos, defaultVo.getEntersId(), defaultVo);
// }
}
{// 设置新默认
// AdamEntersVo defaultVo = AdamEntersVo.getNew();
// defaultVo.setIsDefault(true);
// defaultVo.setUpdatedAt(now);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("entersId").is(entersId)).getQueryObject(),
new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
AdamEntersVo defaultVoAfter = BsonUtil.toBean(doc, AdamEntersVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("entersId").is(entersId)).getQueryObject(),
// new Document("$set", new Document("isDefault", true).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
AdamEntersVo defaultVoAfter = adamRdmService.getEntersVoByUidEntersId(vos, entersId);
defaultVoAfter.setIsDefault(true);
defaultVoAfter.setUpdatedAt(now);
toMqObjs.add(new Object[]{true, now, entersId});
vos = this.collectionProcess(vos, defaultVoAfter.getEntersId(), defaultVoAfter);
}
// }
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
long s = System.currentTimeMillis();
......@@ -176,20 +171,27 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
}
AdamEntersVo updateVo = AdamEntersVo.getNew();
BeanUtils.copyProperties(parameter, updateVo);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(parameter.getEntersId())).getQueryObject(),
new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (null != doc) {
updateVo = BsonUtil.toBean(doc, AdamEntersVo.class);
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
s = System.currentTimeMillis();
AdamEntersVo updateVo = adamRdmService.getEntersVoByUidEntersId(vos, parameter.getEntersId());
updateVo.setType(parameter.getType());
updateVo.setName(parameter.getName());
updateVo.setMobile(parameter.getMobile());
updateVo.setIdCard(parameter.getIdCard());
updateVo.setUpdatedAt(now);
// AdamEntersVo updateVo = AdamEntersVo.getNew();
// BeanUtils.copyProperties(parameter, updateVo);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamEntersVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(parameter.getEntersId())).getQueryObject(),
// new Document("$set", Document.parse(JsonUtils.toJson(updateVo)).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (null != doc) {
// updateVo = BsonUtil.toBean(doc, AdamEntersVo.class);
//
// List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
long s = System.currentTimeMillis();
adamRdmService.setEntersVoByUid(currentUid, this.collectionProcess(vos, parameter.getEntersId(), updateVo));
if (1 == parameter.getType()) {
adamRdmService.setCertification(1, parameter.getIdCard(), parameter.getName());
......@@ -204,22 +206,22 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
)
);
log.debug("#MQ耗时:{}ms", System.currentTimeMillis() - s);
}
// }
}
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void remove(String uid, String entersId) {
String currentUid = CurrentUtil.getCurrentUid();
// String currentUid = CurrentUtil.getCurrentUid();
LocalDateTime now = LocalDateTime.now();
long s = System.currentTimeMillis();
DeleteResult deleteResult = mongoTemplate.remove(
Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// DeleteResult deleteResult = mongoTemplate.remove(
// Query.query(Criteria.where("uid").is(currentUid).and("entersId").is(entersId)), AdamEntersVo.class.getSimpleName()
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
vos.removeIf(r -> r.getEntersId().equals(entersId));
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setEntersVoByUid(uid, vos);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -232,8 +234,10 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
@Override
public AdamEntersVo queryDefault(String uid) {
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(uid);
public AdamEntersVo queryDefault(List<AdamEntersVo> vos, String uid, boolean downgrade) {
if (CollectionUtils.isEmpty(vos)) {
vos = adamRdmService.getEntersVoByUid(uid);
}
if (!CollectionUtils.isEmpty(vos)) {
AdamEntersVo defaultVo = null;
......@@ -241,9 +245,11 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
if (vo.getIsDefault()) {
return vo;
}
if (downgrade) {
defaultVo = null == defaultVo ? vo :
vo.getCreatedAt().compareTo(defaultVo.getCreatedAt()) > 0 ? vo : defaultVo;
}
}
return defaultVo;
}
return null;
......@@ -257,18 +263,18 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
.filter(i -> vos.get(i).getEntersId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
adamRdmService.delEntersVoByUid(updateVo.getUid());
List<AdamEntersVo> entersVos = adamRdmService.getEntersVoByUid(updateVo.getUid());
idx = IntStream.range(0, vos.size())
.filter(i -> entersVos.get(i).getEntersId().equals(replaceId))
.findFirst().orElse(-1);
if (idx == -1) {
// adamRdmService.delEntersVoByUid(updateVo.getUid());
//
// List<AdamEntersVo> entersVos = adamRdmService.getEntersVoByUid(updateVo.getUid());
//
// idx = IntStream.range(0, vos.size())
// .filter(i -> entersVos.get(i).getEntersId().equals(replaceId))
// .findFirst().orElse(-1);
//
// if (idx == -1) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10017");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
// }
}
vos.set(idx, updateVo);
log.debug("#collect.process耗时:{}ms", System.currentTimeMillis() - s);
......
......@@ -19,14 +19,8 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.StringUtils;
......@@ -35,15 +29,14 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.LinkedList;
import java.util.List;
@Slf4j
@Service
public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Autowired
Environment env;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -215,10 +208,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initUserMemberVo.setExpiryAt(now.plusDays(memberPriceVo.getDays()).with(LocalTime.MAX));
initUserMemberVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
mongoTemplate.insert(initUserMemberVo, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), initUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -233,15 +226,15 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
LocalDateTime currentExpiryAt = existUserMemberVo.getExpiryAt();
LocalDateTime expiryAt = (currentExpiryAt.isBefore(now) ? now : currentExpiryAt).plusDays(memberPriceVo.getDays()).with(LocalTime.MAX);
long s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(existUserMemberVo.getUid())).getQueryObject(),
new Document("$set", new Document("expiryAt", expiryAt).append("state", 1))
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(existUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", new Document("expiryAt", expiryAt).append("state", 1))
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
existUserMemberVo.setState(1);
existUserMemberVo.setExpiryAt(expiryAt);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUserMemberVoByUid(handleMemberOrderVo.getUid(), existUserMemberVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -268,10 +261,10 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberCodeVo.setBuyAt(handleMemberOrderVo.getCreatedAt());
initMemberCodeVo.setCreatedAt(now);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
long s = System.currentTimeMillis();
mongoTemplate.insert(initMemberCodeVo, AdamMemberCodeVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
adamRdmService.setMemberCodeVoByCode(initMemberCodeVo.getCode(), initMemberCodeVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -286,9 +279,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.setUpdatedAt(now);
handleMemberOrderVo.setState(1);// 1-已支付
long s = System.currentTimeMillis();
mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(handleMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
updateMemberOrderObjs.add(new Object[]{
......@@ -299,7 +292,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
handleMemberOrderVo.getCreatedAt(), handleMemberOrderVo.getClientIp(), handleMemberOrderVo.getSource(), handleMemberOrderVo.getVersion()
});
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setShotMemberOrderVoByOrderNo(handleMemberOrderVo.getOrderNo(), handleMemberOrderVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -363,12 +356,12 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
upsertUserMemberVo.setExpiryAt(
(expiryAt.isBefore(now) ? now : expiryAt).plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX)
);
long s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(),
new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1))
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamUserMemberVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(upsertUserMemberVo.getUid())).getQueryObject(),
// new Document("$set", new Document("expiryAt", upsertUserMemberVo.getExpiryAt()).append("state", 1))
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.update"));
upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo.getState(), upsertUserMemberVo.getExpiryAt(), now, upsertUserMemberVo.getUid()
......@@ -382,9 +375,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
upsertUserMemberVo.setExpiryAt(now.plusDays(initMemberOrderVo.getDays()).with(LocalTime.MAX));
upsertUserMemberVo.setCreatedAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(upsertUserMemberVo, AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_user_member.add"));
upsertUserMemberObjs.add(new Object[]{
upsertUserMemberVo.getUid(), upsertUserMemberVo.getMemberId(), upsertUserMemberVo.getMemberNo(),
......@@ -396,25 +389,25 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
adamRdmService.delMemberCodeVoByCode(memberCodeVo.getCode());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
Document updateMemberCodeVo = new Document("state", 1)
.append("updatedAt", now)
.append("useOrderNo", initMemberOrderVo.getOrderNo())
.append("useUid", upsertUserMemberVo.getUid())
.append("useAt", now);
s = System.currentTimeMillis();
mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
new Document("$set", updateMemberCodeVo)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// Document updateMemberCodeVo = new Document("state", 1)
// .append("updatedAt", now)
// .append("useOrderNo", initMemberOrderVo.getOrderNo())
// .append("useUid", upsertUserMemberVo.getUid())
// .append("useAt", now);
// s = System.currentTimeMillis();
// mongoTemplate.getCollection(AdamMemberCodeVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("code").is(memberCodeVo.getCode())).getQueryObject(),
// new Document("$set", updateMemberCodeVo)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_code.exchange"));
updateMemberCodeObjs.add(new Object[]{
1, now, initMemberOrderVo.getOrderNo(), upsertUserMemberVo.getUid(), now, memberCodeVo.getCode()
});
s = System.currentTimeMillis();
mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.insert(initMemberOrderVo, AdamMemberOrderVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_member_order.add"));
initMemberOrderObjs.add(new Object[]{
initMemberOrderVo.getOrderNo(), initMemberOrderVo.getUid(), initMemberOrderVo.getMode(), initMemberOrderVo.getPrice(),
......@@ -438,20 +431,22 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
@Override
public PagedResult<AdamMemberOrderSimpleVo> queryPage(String uid, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("state").in(1,5));
long count = mongoTemplate.count(query, AdamMemberOrderVo.class.getSimpleName());
PagedResult<AdamMemberOrderSimpleVo> pagedResult = ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
List<AdamMemberOrderSimpleVo> voList = mongoTemplate.find(
query, AdamMemberOrderSimpleVo.class, AdamMemberOrderVo.class.getSimpleName()
);
pagedResult.setList(voList).setTotal(count, pageSize);
}
return pagedResult;
// Query query = Query.query(Criteria.where("uid").is(uid).and("state").in(1,5));
//
// long count = mongoTemplate.count(query, AdamMemberOrderVo.class.getSimpleName());
//
// PagedResult<AdamMemberOrderSimpleVo> pagedResult = ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
// if (count > 0) {
// query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
//
// List<AdamMemberOrderSimpleVo> voList = mongoTemplate.find(
// query, AdamMemberOrderSimpleVo.class, AdamMemberOrderVo.class.getSimpleName()
// );
//
// pagedResult.setList(voList).setTotal(count, pageSize);
// }
// return pagedResult;
// TODO: 2021/7/29 会员订单列表查取
return ObjectUtil.getAdamMemberOrderSimpleVoPagedResult();
}
}
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.service.IAdamRealNameService;
import com.liquidnet.service.adam.util.QueueUtils;
......@@ -9,7 +8,6 @@ import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.util.Arrays;
......@@ -26,8 +24,8 @@ import java.util.List;
@Slf4j
@Service
public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
@Autowired
......@@ -36,9 +34,9 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
@Override
// @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamRealName realName) {
long s = System.currentTimeMillis();
mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(realName, AdamRealInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
List<Object> paramList = Arrays.asList(
realName.getRealNameId(),
......@@ -49,7 +47,7 @@ public class AdamRealNameServiceImpl implements IAdamRealNameService {
realName.getState(),
realName.getCreatedAt()
);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_real_name.add", paramList.toArray())
......
......@@ -2,7 +2,6 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
......@@ -11,15 +10,9 @@ import com.liquidnet.service.adam.service.IAdamUserInfoService;
import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.UpdateResult;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
......@@ -39,8 +32,8 @@ import java.util.Map;
@Slf4j
@Service
public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
@Autowired
......@@ -56,17 +49,17 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
userInfoVo.setCreateAt(null);
Document updateDoc = Document.parse(JsonUtils.toJson(userInfoVo));
updateDoc.replace("updatedAt", userInfoVo.getUpdatedAt());
long s = System.currentTimeMillis();
UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(),
new Document("$set", updateDoc)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (updateResult.getModifiedCount() <= 0) {
log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo));
}
// long s = System.currentTimeMillis();
// UpdateResult updateResult = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("uid").is(userInfoVo.getUid())).getQueryObject(),
// new Document("$set", updateDoc)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (updateResult.getModifiedCount() <= 0) {
// log.warn("Invalid update MDB.AdamUserInfoVo:{}", JsonUtils.toJson(userInfoVo));
// }
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUserInfoVoByUid(userInfoVo.getUid(), userInfoVo);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -105,17 +98,18 @@ public class AdamUserInfoServiceImpl implements IAdamUserInfoService {
// AdamUserInfoVo updateInfoVo = AdamUserInfoVo.getNew();
// updateInfoVo.setUpdatedAt(now);
// updateInfoVo.setMobile(mobile);
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
new Document("$set", new Document("mobile", mobile).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc));
AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamUserInfoVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid)).getQueryObject(),
// new Document("$set", new Document("mobile", mobile).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.BEFORE)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// log.debug("edit mobile - before doc:{}", JsonUtils.toJson(doc));
// AdamUserInfoVo beforeUserInfoVo = BsonUtil.toBean(doc, AdamUserInfoVo.class);
AdamUserInfoVo beforeUserInfoVo = adamRdmService.getUserInfoVoByUid(uid);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.delUidByMobile(beforeUserInfoVo.getMobile());
adamRdmService.setUidByMobile(mobile, uid);
beforeUserInfoVo.setMobile(mobile);
......
......@@ -2,15 +2,10 @@ package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.service.adam.dto.vo.AdamMemberVo;
import com.liquidnet.service.adam.dto.vo.AdamUserMemberVo;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamUserMemberService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.regex.Pattern;
......@@ -20,8 +15,8 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UMEMBE
@Slf4j
@Service
public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
AdamRdmService adamRdmService;
......@@ -33,17 +28,17 @@ public class AdamUserMemberServiceImpl implements IAdamUserMemberService {
if (RedisLockUtil.tryLock(LOCK_KEY_UMEMBER_NO, 1, 3)) {
memberMaxNo = adamRdmService.getMaxMemberNo();
if (-1 == memberMaxNo) {
Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
if (null == latestMaxMemberNoVo) {
// Query query = Query.query(Criteria.where("memberId").is(memberId)).with(Sort.by(Sort.Direction.DESC, "memberNo")).limit(1);
//
// AdamUserMemberVo latestMaxMemberNoVo = mongoTemplate.findOne(query, AdamUserMemberVo.class, AdamUserMemberVo.class.getSimpleName());
//
// if (null == latestMaxMemberNoVo) {
AdamMemberVo memberVo = adamRdmService.getMemberVoByMemberId(memberId);
adamRdmService.setMaxMemberNo(memberVo.getStartNo());
} else {
adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
}
// } else {
// adamRdmService.setMaxMemberNo(Integer.parseInt(latestMaxMemberNoVo.getMemberNo()));
// }
}
RedisLockUtil.unlock(LOCK_KEY_UMEMBER_NO);
} else {
......
......@@ -6,8 +6,9 @@ import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.dto.vo.AdamRealInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamThirdPartInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamRealName;
import com.liquidnet.service.adam.service.AdamRdmService;
import com.liquidnet.service.adam.service.IAdamEntersService;
......@@ -17,28 +18,21 @@ import com.liquidnet.service.adam.util.QueueUtils;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.LinkedMultiValueMap;
import java.time.LocalDateTime;
import java.util.*;
import java.util.LinkedList;
import java.util.List;
import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGISTER;
......@@ -55,8 +49,8 @@ import static com.liquidnet.service.adam.constant.AdamRedisConst.LOCK_KEY_UREGIS
public class AdamUserServiceImpl implements IAdamUserService {
@Autowired
Environment env;
@Autowired
MongoTemplate mongoTemplate;
// @Autowired
// MongoTemplate mongoTemplate;
@Autowired
QueueUtils queueUtils;
@Autowired
......@@ -89,11 +83,11 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(now);
long s = System.currentTimeMillis();
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUidByMobile(mobile, userInfoVo.getUid());
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -148,9 +142,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
userInfoVo.setQrCode("lN".concat(userInfoVo.getUid()).concat(RandomStringUtils.randomAlphanumeric(5).toUpperCase()));
userInfoVo.setCreateAt(now);
s = System.currentTimeMillis();
mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.insert(userInfoVo, AdamUserInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
userInfoVo.setMobile(SensitizeUtil.custom(param.getMobile(), 3, 4));
......@@ -172,9 +166,9 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(userInfoVo.getUid());
thirdPartInfoVo.setState(1);// 1-绑定
s = System.currentTimeMillis();
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.add"));
initThirdPartObjs.add(new Object[]{thirdPartInfoVo.getUid(), thirdPartInfoVo.getOpenId(), thirdPartInfoVo.getAvatar(), thirdPartInfoVo.getNickname(), thirdPartInfoVo.getPlatform(), thirdPartInfoVo.getState(), thirdPartInfoVo.getCreatedAt()});
......@@ -207,11 +201,11 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(uid);
thirdPartInfoVo.setState(1);// 1-绑定
long s = System.currentTimeMillis();
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// long s = System.currentTimeMillis();
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
long s = System.currentTimeMillis();
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -242,7 +236,7 @@ public class AdamUserServiceImpl implements IAdamUserService {
thirdPartInfoVo.setUid(bindUid);
thirdPartInfoVo.setState(1);// 1-绑定
mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
// mongoTemplate.insert(thirdPartInfoVo, AdamThirdPartInfoVo.class.getSimpleName());
adamRdmService.setUidByPlatformOpenId(param.getPlatform(), param.getOpenId(), bindUid);
......@@ -269,17 +263,22 @@ public class AdamUserServiceImpl implements IAdamUserService {
// unBindThirdPartInfoVo.setUpdatedAt(now);
// unBindThirdPartInfoVo.setState(2);// 2-解绑
// long s = System.currentTimeMillis();
// Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
// new Document("$set", new Document("state", 2).append("updatedAt", now)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// s = System.currentTimeMillis();
// if (null != doc) {
// adamRdmService.delUidByPlatformOpenId(platform, doc.getString("openId"));
// }
long s = System.currentTimeMillis();
Document doc = mongoTemplate.getCollection(AdamThirdPartInfoVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("platform").is(platform).and("state").is(1)).getQueryObject(),
new Document("$set", new Document("state", 2).append("updatedAt", now)),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
s = System.currentTimeMillis();
if (null != doc) {
adamRdmService.delUidByPlatformOpenId(platform, doc.getString("openId"));
AdamThirdPartInfoVo unBindTpaVo = adamRdmService.getThirdPartVoByUidPlatform(uid, platform);
if (null != unBindTpaVo) {
adamRdmService.delUidByPlatformOpenId(platform, unBindTpaVo.getOpenId());
}
adamRdmService.delThirdPartVoListByUid(uid);
log.debug("#RDS耗时:{}ms", System.currentTimeMillis() - s);
......@@ -323,45 +322,45 @@ public class AdamUserServiceImpl implements IAdamUserService {
adamRdmService.delEntersVoByUid(uid);
log.debug("##RDS耗时:{}ms", System.currentTimeMillis() - s);
DeleteResult deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserInfoVo.class.getSimpleName());
// DeleteResult deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserInfoVo.class.getSimpleName());
toMqSqls.add(SqlMapping.get("adam_user.close"));
objsUser.add(new Object[]{now, now, uid});
/* ---------------------- 三方账号信息 */
if (!CollectionUtils.isEmpty(thirdPartInfoVos)) {
s = System.currentTimeMillis();
mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamThirdPartInfoVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// s = System.currentTimeMillis();
// mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamThirdPartInfoVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
toMqSqls.add(SqlMapping.get("adam_third_party.close"));
objsThirdPart.add(new Object[]{now, uid});
}
/* ---------------------- 用户会员信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamUserMemberVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_user_member.close"));
objsThirdPart.add(new Object[]{now, uid});
}
// }
/* ---------------------- 收货地址信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamAddressesVo.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)), AdamAddressesVo.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_addresses.close"));
objsAddresses.add(new Object[]{now, now, uid});
}
// }
/* ---------------------- 入场人信息 */
s = System.currentTimeMillis();
deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)).getQueryObject(), AdamEnters.class.getSimpleName());
log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
if (deleteResult.getDeletedCount() > 0) {
// s = System.currentTimeMillis();
// deleteResult = mongoTemplate.remove(Query.query(Criteria.where("uid").is(uid)).getQueryObject(), AdamEnters.class.getSimpleName());
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
// if (deleteResult.getDeletedCount() > 0) {
toMqSqls.add(SqlMapping.get("adam_enters.close"));
objsAddresses.add(new Object[]{now, now, uid});
}
// }
s = System.currentTimeMillis();
queueUtils.sendMsgByRedis(
......
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