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

Commit 4cc7cd12 authored by 张国柄's avatar 张国柄

fix:入场人、收货地址顺序处理;

parent 81aeec14
package com.liquidnet.common.exception;
import com.liquidnet.common.exception.constant.ServiceErrorCode;
/**
* @author AnJiabin <jiabin.an@lightnet.io>
* @version V1.0
......@@ -12,44 +10,46 @@ import com.liquidnet.common.exception.constant.ServiceErrorCode;
* @date 2020/9/21 10:37
*/
public class LiquidnetServiceException extends RuntimeException {
private ServiceErrorCode errorCode;
private static final long serialVersionUID = -4836329430647395511L;
private String code;
private String message;
private String url;
public LiquidnetServiceException() {
}
public LiquidnetServiceException(ServiceErrorCode errorCode) {
this.errorCode = errorCode;
}
private Object data;
public LiquidnetServiceException(String message) {
public LiquidnetServiceException(String code, String message) {
super(message);
this.code = code;
this.message = message;
}
public LiquidnetServiceException(ServiceErrorCode errorCode, String message) {
public LiquidnetServiceException(String code, String message, Object data) {
super(message);
this.errorCode = errorCode;
this.code = code;
this.message = message;
this.data = data;
}
public ServiceErrorCode errorCode() {
return errorCode;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Override
public String getMessage() {
return message;
}
public LiquidnetServiceException(ServiceErrorCode errorCode, String message, String url) {
super(message);
this.errorCode = errorCode;
public void setMessage(String message) {
this.message = message;
this.url = url;
}
public String getUrl() {
return url;
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
......@@ -33,7 +33,7 @@ public class PageControllerAdviceHandler {
model.addAttribute("msg", exception.getMessage());
if (exception instanceof LiquidnetServiceException) {
LiquidnetServiceException ex = (LiquidnetServiceException) exception;
logger.error("PageController errorCode:{} errorMsg:{}", ex.errorCode(), ex.getMessage());
logger.error("PageErrorController errorCode:{},errorMsg:{}", ex.getCode(), ex.getMessage());
}
return "500";
}
......
......@@ -42,35 +42,34 @@ public class RestControllerAdviceHandler {
logger.error("Ex.Handler.RestController:{},ex:{},request:{},param:{}",
rex.getClass().getSimpleName(), rex.getLocalizedMessage(), req.getRequestURI(), JSON.toJSONString(req.getParameterMap()));
if (rex instanceof MissingServletRequestParameterException) {
MissingServletRequestParameterException ygex = ((MissingServletRequestParameterException) rex);
MissingServletRequestParameterException ygex = (MissingServletRequestParameterException) rex;
String message = ygex.getMessage();
return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_PARAM_ERROR.getCode(), message), HttpStatus.OK);
}
if (rex instanceof ConstraintViolationException) {
ConstraintViolationException ygex = ((ConstraintViolationException) rex);
ConstraintViolationException ygex = (ConstraintViolationException) rex;
ConstraintViolation violation = (ConstraintViolation) ygex.getConstraintViolations().toArray()[0];
String violationNode = violation.getPropertyPath().toString();
String message = violationNode.substring(violationNode.indexOf(".") + 1) + violation.getMessage();
return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_PARAM_ERROR.getCode(), message), HttpStatus.OK);
}
if (rex instanceof MethodArgumentNotValidException) {
MethodArgumentNotValidException ygex = ((MethodArgumentNotValidException) rex);
MethodArgumentNotValidException ygex = (MethodArgumentNotValidException) rex;
FieldError fieldError = ygex.getBindingResult().getFieldErrors().get(0);
String message = fieldError.getField() + fieldError.getDefaultMessage();
return new ResponseEntity<Error>(new Error(ErrorCode.HTTP_PARAM_ERROR.getCode(), message), HttpStatus.OK);
}
if (rex instanceof LiquidnetFeignException) {
LiquidnetFeignException ygex = ((LiquidnetFeignException) rex);
LiquidnetFeignException ygex = (LiquidnetFeignException) rex;
String errorCode = ygex.errorCode().getCode();
String message = ygex.getMessage();
message = message == null ? ygex.errorCode().getMessage() : message;
return new ResponseEntity<Error>(new Error(errorCode, message), HttpStatus.OK);
}
if (rex instanceof LiquidnetServiceException) {
LiquidnetServiceException ygex = ((LiquidnetServiceException) rex);
String errorCode = ygex.errorCode().getCode();
LiquidnetServiceException ygex = (LiquidnetServiceException) rex;
String errorCode = ygex.getCode();
String message = ygex.getMessage();
message = message == null ? ygex.errorCode().getMessage() : message;
return new ResponseEntity<Error>(new Error(errorCode, message), HttpStatus.OK);
} else {
logger.error("Unprocessed exception", rex);
......
......@@ -270,7 +270,6 @@ public class AdamLoginController {
}
private String ssoProcess(AdamUserInfoVo userInfoVo) {
long startTime = System.currentTimeMillis();
Map<String, Object> claimsMap = new HashMap<>();
claimsMap.put("sub", userInfoVo.getUid());
// TODO: 2021/5/25 修改手机号更新TOKEN
......@@ -285,7 +284,6 @@ public class AdamLoginController {
DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)),
jwtValidator.getExpireTtl() * 60
);
log.info(" redis ssoProcess calltime: {}",System.currentTimeMillis() - startTime);
return token;
}
}
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.AdamAddressesParam;
import com.liquidnet.service.adam.dto.vo.AdamAddressesVo;
import com.liquidnet.service.adam.service.IAdamAddressesService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -25,6 +27,7 @@ import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.IntStream;
/**
* <p>
......@@ -70,8 +73,8 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
)
);
vos.add(vo);
adamRdmService.setAddressesVoByUid(currentUid, vos);
adamRdmService.delAddressesVoByUid(currentUid);
return vo.getAddressesId();
}
......@@ -96,8 +99,9 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
toMqObjs.add(new Object[]{unDeaultVo.getIsDefault(), now, unDefaultVoAfter.getAddressesId()});
vos.removeIf(r -> r.getAddressesId().equals(unDefaultVoAfter.getAddressesId()));
vos.add(unDefaultVoAfter);
// vos.removeIf(r -> r.getAddressesId().equals(unDefaultVoAfter.getAddressesId()));
// vos.add(unDefaultVoAfter);
vos = this.collectionProcess(vos, unDefaultVoAfter.getAddressesId(), unDefaultVoAfter);
}
}
{// 设置新默认
......@@ -114,8 +118,9 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
toMqObjs.add(new Object[]{defaultVo.getIsDefault(), now, addressesId});
vos.removeIf(r -> r.getAddressesId().equals(defaultVoAfter.getAddressesId()));
vos.add(defaultVoAfter);
// vos.removeIf(r -> r.getAddressesId().equals(defaultVoAfter.getAddressesId()));
// vos.add(defaultVoAfter);
vos = this.collectionProcess(vos, defaultVoAfter.getAddressesId(), defaultVoAfter);
}
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
......@@ -150,9 +155,9 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamAddressesVo> vos = adamRdmService.getAddressesVoByUid(currentUid);
vos.removeIf(r -> r.getAddressesId().equals(parameter.getAddressesId()));
vos.add(updateVo);
adamRdmService.setAddressesVoByUid(currentUid, vos);
// vos.removeIf(r -> r.getAddressesId().equals(parameter.getAddressesId()));
// vos.add(updateVo);
adamRdmService.setAddressesVoByUid(updateVo.getUid(), this.collectionProcess(vos, parameter.getAddressesId(), updateVo));
}
}
......@@ -200,4 +205,28 @@ public class AdamAddressesServiceImpl implements IAdamAddressesService {
}
return null;
}
/* --------------------------------------------------------------- */
private List<AdamAddressesVo> collectionProcess(List<AdamAddressesVo> vos, String replaceId, AdamAddressesVo updateVo) {
int idx = IntStream.range(0, vos.size())
.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) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10018");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
vos.set(idx, updateVo);
return vos;
}
}
package com.liquidnet.service.adam.service.impl;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.common.mq.constant.MQConst;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.service.IAdamEntersService;
import com.liquidnet.service.adam.service.IAdamRdmService;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.SqlMapping;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
......@@ -26,6 +28,7 @@ import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.IntStream;
/**
* <p>
......@@ -72,8 +75,8 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
)
);
vos.add(vo);
adamRdmService.setEntersVoByUid(currentUid, vos);
adamRdmService.delEntersVoByUid(currentUid);
return vo.getEntersId();
}
......@@ -99,8 +102,9 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
toMqObjs.add(new Object[]{unDeaultVo.getIsDefault(), now, unDeaultVoAfter.getEntersId()});
vos.removeIf(r -> r.getEntersId().equals(unDeaultVoAfter.getEntersId()));
vos.add(unDeaultVoAfter);
// vos.removeIf(r -> r.getEntersId().equals(unDeaultVoAfter.getEntersId()));
// vos.add(unDeaultVoAfter);
vos = this.collectionProcess(vos, unDeaultVoAfter.getEntersId(), unDeaultVoAfter);
}
}
{// 设置新默认
......@@ -117,9 +121,9 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
toMqObjs.add(new Object[]{defaultVo.getIsDefault(), now, entersId});
vos.removeIf(r -> r.getEntersId().equals(defaultVoAfter.getEntersId()));
vos.add(defaultVoAfter);
// vos.removeIf(r -> r.getEntersId().equals(defaultVoAfter.getEntersId()));
// vos.add(defaultVoAfter);
vos = this.collectionProcess(vos, defaultVoAfter.getEntersId(), defaultVoAfter);
}
}
if (!CollectionUtils.isEmpty(toMqObjs)) {
......@@ -154,9 +158,9 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
String currentUid = CurrentUtil.getCurrentUid();
List<AdamEntersVo> vos = adamRdmService.getEntersVoByUid(currentUid);
vos.removeIf(r -> r.getEntersId().equals(parameter.getEntersId()));
vos.add(updateVo);
adamRdmService.setEntersVoByUid(currentUid, vos);
// vos.removeIf(r -> r.getEntersId().equals(parameter.getEntersId()));
// vos.add(updateVo);
adamRdmService.setEntersVoByUid(currentUid, this.collectionProcess(vos, parameter.getEntersId(), updateVo));
}
}
......@@ -206,4 +210,28 @@ public class AdamEntersServiceImpl implements IAdamEntersService {
}
return null;
}
/* --------------------------------------------------------------- */
private List<AdamEntersVo> collectionProcess(List<AdamEntersVo> vos, String replaceId, AdamEntersVo updateVo) {
int idx = IntStream.range(0, vos.size())
.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) {
ErrorMapping.ErrorMessage errorMessage = ErrorMapping.get("10017");
throw new LiquidnetServiceException(errorMessage.getCode(), errorMessage.getMessage());
}
}
vos.set(idx, updateVo);
return vos;
}
}
......@@ -145,7 +145,8 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
List<AdamEntersVo> entersList = (List<AdamEntersVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(entersList)) {
entersList = mongoTemplate.find(
Query.query(Criteria.where("uid").is(uid).and("state").is(1)), AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
Query.query(Criteria.where("uid").is(uid).and("state").is(1)).with(Sort.by(Sort.Direction.DESC, "createdAt")),
AdamEntersVo.class, AdamEntersVo.class.getSimpleName()
);
if (!CollectionUtils.isEmpty(entersList)) redisUtil.set(rk, entersList);
......@@ -173,11 +174,14 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
String rk = AdamRedisConst.INFO_ADDRESSES.concat(uid);
List<AdamAddressesVo> list = (List<AdamAddressesVo>) redisUtil.get(rk);
if (CollectionUtils.isEmpty(list)) {
list = mongoTemplate.find(Query.query(Criteria.where("uid").is(uid).and("state").is(1)),
AdamAddressesVo.class, AdamAddressesVo.class.getSimpleName());
list = 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()
);
if (!CollectionUtils.isEmpty(list)) redisUtil.set(rk, list);
}
return list;
}
......
......@@ -19,6 +19,8 @@
10014=
10015=入场人ID不能为空
10016=收货地址ID不能为空
10017=入场人不存在,请核实
10018=收货地址不存在,请核实
10101=姓名或身份证件号无效
......
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