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

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

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

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