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

Commit 2fe3ce9c authored by 张国柄's avatar 张国柄

+API:获取默认入场人、收货地址;

parent 78542784
......@@ -38,6 +38,7 @@ public class AdamAddressesVo implements java.io.Serializable, Cloneable {
}
public AdamAddressesVo copy(AdamAddresses source) {
if (null == source) return this;
this.setAddressesId(source.getAddressesId());
this.setName(source.getName());
this.setPhone(source.getPhone());
......
......@@ -34,6 +34,7 @@ public class AdamEntersVo implements java.io.Serializable, Cloneable {
}
public AdamEntersVo copy(AdamEnters source) {
if (null == source) return this;
this.setEntersId(source.getEntersId());
this.setName(source.getName());
this.setIdCard(source.getIdCard());
......
package com.liquidnet.service.adam.service;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import java.util.List;
......@@ -19,7 +18,7 @@ public interface IAdamAddressesService extends IService<AdamAddresses> {
void add(AdamAddresses adamAddresses);
List<AdamAddresses> list(String uid);
List<AdamAddresses> queryByUid(String uid);
AdamAddresses query(String uid, String addressesId);
......@@ -28,4 +27,6 @@ public interface IAdamAddressesService extends IService<AdamAddresses> {
void edit(AdamAddresses info);
void remove(String uid, String addressesId);
AdamAddressesVo queryDefault(String uid);
}
package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import java.util.List;
......@@ -25,4 +26,6 @@ public interface IAdamEntersService extends IService<AdamEnters> {
void edit(AdamEnters info);
void remove(String uid, String entersId);
AdamEntersVo queryDefault(String uid);
}
......@@ -4,9 +4,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamAddressesService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
......@@ -66,7 +64,7 @@ public class AdamAddressesController {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamAddressesVo> voList = new ArrayList<>();
adamAddressesService.list(currentUid).forEach(i -> {
adamAddressesService.queryByUid(currentUid).forEach(i -> {
voList.add(AdamAddressesVo.getNew().copy(i));
});
......@@ -78,12 +76,12 @@ public class AdamAddressesController {
@PostMapping("def/{addrId}")
public ResponseDto<Object> def(@PathVariable String addrId) {
String currentUid = CurrentUtil.getCurrentUid();
AdamAddresses addresses = adamAddressesService.query(currentUid, addrId);
if (null == addresses) return ResponseDto.failure(ErrorMapping.get("10106"));
if (!addresses.getIsDefault()) {
adamAddressesService.def(currentUid, addrId);
}
if (!addresses.getIsDefault()) adamAddressesService.def(currentUid, addrId);
return ResponseDto.success();
}
......@@ -129,4 +127,11 @@ public class AdamAddressesController {
return null == addresses ? ResponseDto.failure(ErrorMapping.get(10105)) : ResponseDto.success(AdamAddressesVo.getNew().copy(addresses));
}
@ApiOperationSupport(order = 7)
@ApiOperation(value = "获取默认收获地址")
@PostMapping("query/def")
public ResponseDto<AdamAddressesVo> queryDef() {
return ResponseDto.success(adamAddressesService.queryDefault(CurrentUtil.getCurrentUid()));
}
}
......@@ -4,12 +4,12 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -130,4 +130,11 @@ public class AdamEntersController {
return null == info ? ResponseDto.failure(ErrorMapping.get(10105)) : ResponseDto.success(AdamEntersVo.getNew().copy(info));
}
@ApiOperationSupport(order = 7)
@ApiOperation(value = "获取默认入场人")
@PostMapping("query/def")
public ResponseDto<AdamEntersVo> queryDef() {
return ResponseDto.success(adamEntersService.queryDefault(CurrentUtil.getCurrentUid()));
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.entity.AdamAddresses;
import com.liquidnet.service.adam.mapper.AdamAddressesMapper;
import com.liquidnet.service.adam.service.IAdamAddressesService;
......@@ -50,7 +51,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamAddresses adamAddresses) {
adamAddresses.setIsDefault(CollectionUtils.isEmpty(this.list(adamAddresses.getUid())));
adamAddresses.setIsDefault(CollectionUtils.isEmpty(this.queryByUid(adamAddresses.getUid())));
mongoTemplate.insert(Collections.singletonList(adamAddresses), AdamAddresses.class.getSimpleName());
......@@ -63,7 +64,7 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
}
@Override
public List<AdamAddresses> list(String uid) {
public List<AdamAddresses> queryByUid(String uid) {
List<AdamAddresses> infoList = new ArrayList<>();
Map<Object, Object> objectMap = redisUtil.hmget(AdamRedisConst.INFO_ADDRESSES.concat(uid));
......@@ -95,7 +96,8 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
public void def(String uid, String addressesId) {
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> linkedList = new LinkedList<>();
{// 取消原默认
List<AdamAddresses> addressesList = this.queryByUid(uid);
if (addressesList.size() > 1) {// 取消原默认
AdamAddresses unDeaultAddresses = new AdamAddresses();
unDeaultAddresses.setIsDefault(false);
unDeaultAddresses.setUpdatedAt(now);
......@@ -104,15 +106,17 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
Query.query(Criteria.where("uid").is(uid).and("isDefault").is(true)).getQueryObject(),
object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
AdamAddresses addresses = BsonUtil.toBean(doc, AdamAddresses.class);
if (null != doc) {
AdamAddresses unDefaultAfterAddresses = BsonUtil.toBean(doc, AdamAddresses.class);
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultAddresses.getIsDefault());
paramList.add(unDeaultAddresses.getUpdatedAt());
paramList.add(addresses.getAddressesId());
linkedList.add(paramList.toArray());
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultAddresses.getIsDefault());
paramList.add(unDeaultAddresses.getUpdatedAt());
paramList.add(unDefaultAfterAddresses.getAddressesId());
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(addresses.getUid()), addresses.getAddressesId(), addresses);
redisUtil.hset(AdamRedisConst.INFO_ADDRESSES.concat(unDefaultAfterAddresses.getUid()), unDefaultAfterAddresses.getAddressesId(), unDefaultAfterAddresses);
}
}
{// 设置新默认
AdamAddresses defaultAddresses = new AdamAddresses();
......@@ -175,4 +179,22 @@ public class AdamAddressesServiceImpl extends ServiceImpl<AdamAddressesMapper, A
redisUtil.hdel(AdamRedisConst.INFO_ADDRESSES.concat(uid), addressesId);
}
@Override
public AdamAddressesVo queryDefault(String uid) {
List<AdamAddresses> addressesList = this.queryByUid(uid);
if (!CollectionUtils.isEmpty(addressesList)) {
AdamAddresses defaultAddr = null;
for (AdamAddresses addresses : addressesList) {
if (addresses.getIsDefault()) {
return AdamAddressesVo.getNew().copy(addresses);
}
defaultAddr = null == defaultAddr ? addresses :
addresses.getCreatedAt().isAfter(defaultAddr.getCreatedAt()) ? addresses : defaultAddr;
}
return AdamAddressesVo.getNew().copy(defaultAddr);
}
return null;
}
}
......@@ -2,13 +2,12 @@ package com.liquidnet.service.adam.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.BsonUtil;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.entity.AdamEnters;
import com.liquidnet.service.adam.mapper.AdamEntersMapper;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -113,26 +112,29 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
public void def(String uid, String entersId) {
LocalDateTime now = LocalDateTime.now();
LinkedList<Object[]> linkedList = new LinkedList<>();
{// 取消原默认
List<AdamEnters> adamEnters = this.queryByUid(uid);
if (adamEnters.size() > 1) {// 取消原默认
AdamEnters unDeaultEnters = new AdamEnters();
unDeaultEnters.setIsDefault(false);
unDeaultEnters.setUpdatedAt(now);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(unDeaultEnters));
Document doc = mongoTemplate.getCollection(AdamEnters.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(uid).and("isDefault").is(true)).getQueryObject(),
Query.query(Criteria.where("uid").is(uid).and("state").is(1).and("isDefault").is(true)).getQueryObject(),
object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
AdamEnters enters = BsonUtil.toBean(doc, AdamEnters.class);
if (null != doc) {
AdamEnters enters = BsonUtil.toBean(doc, AdamEnters.class);
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultEnters.getIsDefault());
paramList.add(unDeaultEnters.getUpdatedAt());
paramList.add(enters.getEntersId());
List<Object> paramList = new ArrayList<>();
paramList.add(unDeaultEnters.getIsDefault());
paramList.add(unDeaultEnters.getUpdatedAt());
paramList.add(enters.getEntersId());
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
linkedList.add(paramList.toArray());
linkedList.add(paramList.toArray());
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
}
}
{// 设置新默认
AdamEnters defaultEnters = new AdamEnters();
......@@ -204,4 +206,22 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
redisUtil.hdel(AdamRedisConst.INFO_ENTERS.concat(uid), entersId);
}
@Override
public AdamEntersVo queryDefault(String uid) {
List<AdamEnters> list = this.queryByUid(uid);
if (!CollectionUtils.isEmpty(list)) {
AdamEnters defaultVo = null;
for (AdamEnters l : list) {
if (l.getIsDefault()) {
return AdamEntersVo.getNew().copy(l);
}
defaultVo = null == defaultVo ? l :
l.getCreatedAt().isAfter(defaultVo.getCreatedAt()) ? l : defaultVo;
}
return AdamEntersVo.getNew().copy(defaultVo);
}
return null;
}
}
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