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

Commit cdc3e0cc authored by jiangxiulong's avatar jiangxiulong

快递 缓存等

parent 689e287f
......@@ -16,8 +16,8 @@ public class KylinRedisConst {
public static final String SURPLUS_EXCHANGE = "surplusExchange";
public static final String TICKET = "kylin:ticket:id:";
public static final String ORDER = "kylin:order:id:";
public static final String ORDER_ROUTE_INFO = "kylin::order:routeInfo:id:";
public static final String ORDER_EXPRESS_STATUS = "kylin::order:ExpressStatus:id:";
public static final String ORDER_ROUTE_INFO = "kylin:order:routeInfo:id:";
public static final String ORDER_EXPRESS_INFO = "kylin:order:ExpressStatus:id:";
public static final String ORDER_ENTITIES = "kylin:order_entities:id:";
public static final String TIMES = "kylin:times:id:";
public static final String AGENT = "kylin:agent:info";
......
......@@ -79,7 +79,7 @@ public class KylinTableStatusConst {
/**
* 快递
*/
public static final Integer ORDER_EXPRESS_STATUS1 = 1; // 申请 顺丰返回失败
public static final Integer ORDER_EXPRESS_STATUS1 = 1; // 申请 顺丰返回失败 未下单 未发快递
public static final Integer ORDER_EXPRESS_STATUS2 = 2; // 申请 顺丰返回成功 或 通过主动再查询更新
public static final Integer ORDER_EXPRESS_STATUS3 = 3; // 取消
}
......@@ -23,6 +23,8 @@ public class KylinOrderExpressRouteVo implements Serializable {
private String orderExpressRouteId;
@ApiModelProperty(value = "orderExpressId")
private String orderExpressId;
@ApiModelProperty(value = "orderTicketsId")
private String orderTicketsId;
@ApiModelProperty(value = "路由节点发生的城市")
private String acceptAddress;
@ApiModelProperty(value = "YYYY-MM-DD")
......
......@@ -4,24 +4,26 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.common.utils.StringUtils;
import com.liquidnet.client.admin.zhengzai.kylin.utils.DataUtils;
import com.liquidnet.client.admin.zhengzai.kylin.utils.ShunfengSignUtils;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.dto.param.*;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderExpress;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -80,6 +82,9 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
@Autowired
private KylinOrderExpressRouteMapper kylinOrderExpressRouteMapper;
@Autowired
private DataUtils dataUtils;
public List<PerformanceExpressPerformanceListAdminDao> getPerformancesList(PerformanceExpressSearchAdminParam performanceExpressSearchAdminParam) {
List<PerformanceExpressPerformanceListAdminDao> voList = new ArrayList();
try {
......@@ -192,6 +197,10 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
kylinOrderExpress
, new UpdateWrapper<KylinOrderExpress>().in("order_express_id", orderExpressId)
);
KylinOrderExpressVo kylinOrderExpressVo = new KylinOrderExpressVo();
BeanUtils.copyProperties(kylinOrderExpress, kylinOrderExpressVo);
dataUtils.setOrderExpressInfo(orderTicketsId, kylinOrderExpressVo);
}
}
return ResponseDto.success();
......@@ -224,6 +233,7 @@ public class PerformancesExpressServiceImpl extends ServiceImpl<KylinOrderExpres
kylinOrderExpress
, new UpdateWrapper<KylinOrderExpress>().in("order_express_id", orderExpressInfo.getOrderExpressId())
);
dataUtils.delOrderExpressInfo(orderTicketsId);
}
}
}
......
......@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
......@@ -263,4 +264,18 @@ public class DataUtils {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
}
}
/**
* 演出订单快递信息
* @param orderId
* @param kylinOrderExpressVo
*/
public void setOrderExpressInfo(String orderId, KylinOrderExpressVo kylinOrderExpressVo) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
redisUtil.set(redisKey, kylinOrderExpressVo);
}
public void delOrderExpressInfo(String orderId) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
redisUtil.del(redisKey);
}
}
......@@ -867,7 +867,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
KylinOrderListVo item = voList.get(i);
//TODO 顺丰快递
Integer orderExpressStatus = dataUtils.getOrderExpressStatus(item.getOrderTicketsId());
Integer orderExpressStatus = dataUtils.getOrderExpressInfo(item.getOrderTicketsId());
item.setExpressStatus(orderExpressStatus);
if (item.getStatus().equals(KylinTableStatusConst.ORDER_STATUS0)) {
......@@ -984,7 +984,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
log.debug("获取倒计时 -> time:" + (currentTime) + "毫秒");
//TODO 顺丰快递
Integer orderExpressStatus = dataUtils.getOrderExpressStatus(orderTicketVo.getOrderTicketsId());
Integer orderExpressStatus = dataUtils.getOrderExpressInfo(orderTicketVo.getOrderTicketsId());
vo.setExpressStatus(orderExpressStatus);
if (null != performanceVo.getIsCanRefund() && performanceVo.getIsCanRefund() == 1) {
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.kylin.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.*;
......@@ -646,13 +647,16 @@ public class DataUtils {
}
/**
* 获取订单快递状态
* 获取演出订单快递状态
*/
public Integer getOrderExpressStatus(String orderId) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_STATUS.concat(orderId);
public Integer getOrderExpressInfo(String orderId) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
if (!redisUtil.hasKey(redisKey)) {
return 1;
} else {
KylinOrderExpressVo expressInfo = (KylinOrderExpressVo) redisUtil.get(redisKey);
return expressInfo.getExpressStatus();
}
return (Integer) redisUtil.get(redisKey);
}
}
......@@ -2,10 +2,8 @@ package com.liquidnet.service.platform.controller.express.shunfeng;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PerformanceExpressPushFreightParam;
import com.liquidnet.service.kylin.dto.param.PerformanceExpressPushRouteParam;
import com.liquidnet.service.kylin.dto.param.PerformanceExpressPushStatusParam;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.platform.service.express.shunfeng.PerformancesExpressCallbackServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -75,8 +73,8 @@ public class PerformancesExpressCallbackController {
@GetMapping("orderRoute/{orderTicketsId}")
@ApiOperation("获取物流信息") // 前端使用
@ApiImplicitParam(name = "orderTicketsId", value = "订单ID", required = true, dataType = "String", paramType = "path")
public ResponseDto<List<KylinOrderExpressRouteVo>> orderRouteDetail(@PathVariable() String orderTicketsId) {
List<KylinOrderExpressRouteVo> routeVoList = performancesExpressServiceImpl.orderRouteDetail(orderTicketsId);
public ResponseDto<KylinOrderExpressVo> orderRouteDetail(@PathVariable() String orderTicketsId) {
KylinOrderExpressVo routeVoList = performancesExpressServiceImpl.orderRouteDetail(orderTicketsId);
if (null != routeVoList) {
return ResponseDto.success(routeVoList);
} else {
......
package com.liquidnet.service.platform.service.express.shunfeng;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.*;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinRoadShowVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.kylin.service.IKylinOrderExpress;
import com.liquidnet.service.platform.utils.DataUtils;
import com.liquidnet.service.platform.utils.ShunfengSignUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
......@@ -22,7 +26,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
/**
......@@ -61,6 +64,9 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
@Autowired
private RedisUtil redisUtil;
@Autowired
private DataUtils dataUtils;
public boolean orderStatus(@RequestBody String params) {
boolean res = shunfengSignUtils.receiveRequestAndCheckSign(params, httpServletRequest);
if (res) {
......@@ -89,7 +95,7 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
public boolean orderFreightList(@RequestBody String params) {
boolean res = shunfengSignUtils.receiveRequestAndCheckSign(params, httpServletRequest);
if (true) {
if (res) {
PerformanceExpressPushFreightParam performanceExpressPushFreightParam = JsonUtils.fromJson(params, PerformanceExpressPushFreightParam.class);
KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne(new QueryWrapper<KylinOrderExpress>().eq("mailno", performanceExpressPushFreightParam.getWaybillNo()));
String orderExpressId = orderExpressInfo.getOrderExpressId();
......@@ -122,6 +128,10 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
String orderExpressRouteId = IDGenerator.nextSnowId();
KylinOrderExpress orderExpressInfo = kylinOrderExpressMapper.selectOne(new QueryWrapper<KylinOrderExpress>().eq("mailno", performanceExpressPushRouteParam.getMailno()));
KylinOrderExpress kylinOrderExpress = new KylinOrderExpress();
kylinOrderExpress.setExpressStatus(Integer.getInteger(performanceExpressPushRouteParam.getOpCode()));
kylinOrderExpressMapper.update(kylinOrderExpress, new UpdateWrapper<KylinOrderExpress>().eq("order_express_id", orderExpressInfo.getOrderExpressId()));
kylinOrderExpressRoute.setOrderExpressRouteId(orderExpressRouteId);
kylinOrderExpressRoute.setOrderExpressId(orderExpressInfo.getOrderExpressId());
kylinOrderExpressRoute.setAcceptAddress(performanceExpressPushRouteParam.getAcceptAddress());
......@@ -130,20 +140,28 @@ public class PerformancesExpressCallbackServiceImpl extends ServiceImpl<KylinOrd
kylinOrderExpressRoute.setOpcode(performanceExpressPushRouteParam.getOpCode());
kylinOrderExpressRoute.setCreatedAt(DateUtil.getNowTime());
kylinOrderExpressRouteMapper.insert(kylinOrderExpressRoute);
KylinOrderExpressVo kylinOrderExpressVo = new KylinOrderExpressVo();
BeanUtils.copyProperties(orderExpressInfo, kylinOrderExpressVo);
kylinOrderExpressVo.setOrderExpressCode(performanceExpressPushRouteParam.getOpCode());
dataUtils.setOrderExpressInfo(orderExpressInfo.getOrderTicketsId(), kylinOrderExpressVo);
KylinOrderExpressRouteVo kylinOrderExpressRouteVo = new KylinOrderExpressRouteVo();
BeanUtils.copyProperties(kylinOrderExpressRoute, kylinOrderExpressRouteVo);
kylinOrderExpressRouteVo.setOrderTicketsId(orderExpressInfo.getOrderTicketsId());
mongoTemplate.insert(kylinOrderExpressRouteVo, KylinOrderExpressRouteVo.class.getSimpleName());
dataUtils.delOrderExpressRoute(orderExpressInfo.getOrderTicketsId());
return true;
}
return false;
}
public List<KylinOrderExpressRouteVo> orderRouteDetail(String orderTicketsId) {
String redisKey = KylinRedisConst.ORDER_ROUTE_INFO.concat(orderTicketsId);
if (!redisUtil.hasKey(redisKey)) {
Query query = new Query();
query.addCriteria(Criteria.where("orderTicketsId").is(orderTicketsId));
List<KylinOrderExpressRouteVo> routeList = mongoTemplate.find(query, KylinOrderExpressRouteVo.class, KylinOrderExpressRouteVo.class.getSimpleName());
redisUtil.set(redisKey, routeList);
}
return (List<KylinOrderExpressRouteVo>) redisUtil.get(redisKey);
public KylinOrderExpressVo orderRouteDetail(String orderTicketsId) {
List<KylinOrderExpressRouteVo> routeList = dataUtils.getOrderExpressRoute(orderTicketsId);
KylinOrderExpressVo expressInfo = dataUtils.getOrderExpressInfo(orderTicketsId);
expressInfo.setRouteList(routeList);
return expressInfo;
}
}
\ No newline at end of file
......@@ -5,6 +5,8 @@ import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressRouteVo;
import com.liquidnet.service.kylin.dto.vo.express.KylinOrderExpressVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.mongo.*;
......@@ -21,7 +23,6 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
......@@ -595,4 +596,37 @@ public class DataUtils {
redisUtil.del(KylinRedisConst.ORDER_REFUND_BY_ORDER_ID + orderId);
}
/**
* 演出订单快递信息
* @param orderId
* @param kylinOrderExpressVo
*/
public void setOrderExpressInfo(String orderId, KylinOrderExpressVo kylinOrderExpressVo) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
redisUtil.set(redisKey, kylinOrderExpressVo);
}
public KylinOrderExpressVo getOrderExpressInfo(String orderId) {
String redisKey = KylinRedisConst.ORDER_EXPRESS_INFO.concat(orderId);
return (KylinOrderExpressVo) redisUtil.get(redisKey);
}
/**
* 演出订单快递路由
*/
public List<KylinOrderExpressRouteVo> getOrderExpressRoute(String orderTicketsId) { // 获取
String redisKey = KylinRedisConst.ORDER_ROUTE_INFO.concat(orderTicketsId);
if (!redisUtil.hasKey(redisKey)) {
List<KylinOrderExpressRouteVo> routeVoList = mongoTemplate.find(
Query.query(Criteria.where("orderTicketsId").is(orderTicketsId)),
KylinOrderExpressRouteVo.class, KylinOrderExpressRouteVo.class.getSimpleName()
);
redisUtil.set(redisKey, routeVoList);
}
return (List<KylinOrderExpressRouteVo>) redisUtil.get(redisKey);
}
public void delOrderExpressRoute(String orderTicketsId) { // 删除
String redisKey = KylinRedisConst.ORDER_ROUTE_INFO.concat(orderTicketsId);
redisUtil.del(redisKey);
}
}
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