订单详情新增
物流进度新增 用户合并修改
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
package com.peanut.modules.common.controller;
|
||||
|
||||
import com.peanut.common.utils.R;
|
||||
import com.peanut.modules.common.entity.BuyOrder;
|
||||
import com.peanut.modules.common.service.BuyOrderService;
|
||||
import com.peanut.modules.common.to.PrepareOrderDto;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -9,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@@ -22,21 +20,30 @@ public class BuyOrderController {
|
||||
|
||||
@RequestMapping("/initPrepareOrder")
|
||||
public R initPrepareOrder(@RequestBody PrepareOrderDto prepareOrderDto){
|
||||
Map<String, Object> stringObjectMap = buyOrderService.initPrepareOrder(prepareOrderDto);
|
||||
return R.ok().put("data",stringObjectMap);
|
||||
return R.ok().put("data",buyOrderService.initPrepareOrder(prepareOrderDto));
|
||||
}
|
||||
|
||||
//用户订单列表
|
||||
@RequestMapping("/buyOrderList")
|
||||
public R buyOrderList(@RequestBody Map params){
|
||||
List<BuyOrder> list = buyOrderService.buyOrderList(params);
|
||||
return R.ok().put("data",list);
|
||||
return R.ok().put("data",buyOrderService.buyOrderList(params));
|
||||
}
|
||||
|
||||
//用户订单各状态下数量
|
||||
@RequestMapping("/getBuyOrderNumByStatus")
|
||||
public R getBuyOrderNumByStatus(@RequestBody Map params){
|
||||
List<Map<String,Object>> list = buyOrderService.getBuyOrderNumByStatus(params);
|
||||
return R.ok().put("data",list);
|
||||
return R.ok().put("data",buyOrderService.getBuyOrderNumByStatus(params));
|
||||
}
|
||||
|
||||
//订单详情
|
||||
@RequestMapping("/commonOrderDetail")
|
||||
public R commonOrderDetail(@RequestBody Map params){
|
||||
return R.ok().put("data",buyOrderService.commonOrderDetail(params));
|
||||
}
|
||||
|
||||
//获取快递进度详情
|
||||
@RequestMapping("/commonExpressDetail")
|
||||
public R commonExpressDetail(@RequestBody Map params){
|
||||
return R.ok().put("data",buyOrderService.commonExpressDetail(params));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.peanut.modules.common.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.peanut.modules.common.entity.BuyOrder;
|
||||
import com.peanut.modules.common.entity.ExpressQueryResponse;
|
||||
import com.peanut.modules.common.to.PrepareOrderDto;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -13,4 +14,8 @@ public interface BuyOrderService extends IService<BuyOrder> {
|
||||
List<BuyOrder> buyOrderList(Map params);
|
||||
|
||||
List<Map<String,Object>> getBuyOrderNumByStatus(Map params);
|
||||
|
||||
Map<String,Object> commonOrderDetail(Map params);
|
||||
|
||||
ExpressQueryResponse commonExpressDetail(Map params);
|
||||
}
|
||||
|
||||
@@ -6,10 +6,4 @@ import com.peanut.modules.common.entity.ExpressQueryResponse;
|
||||
import com.peanut.modules.common.vo.ExpressOrderResponseVo;
|
||||
|
||||
public interface ExpressOrderService extends IService<ExpressOrder> {
|
||||
/**
|
||||
* 下单生成面单
|
||||
*/
|
||||
ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder);
|
||||
|
||||
ExpressQueryResponse queryExpressOrder(String ShipperCode, String LogisticCode, String customerName);
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package com.peanut.modules.common.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.peanut.common.utils.ExpressOrderUtil;
|
||||
import com.peanut.modules.common.dao.*;
|
||||
import com.peanut.modules.common.entity.*;
|
||||
import com.peanut.modules.common.service.BuyOrderService;
|
||||
@@ -24,8 +25,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
@Autowired
|
||||
private MyUserDao userDao;
|
||||
@Autowired
|
||||
private BuyOrderDao buyOrderDao;
|
||||
@Autowired
|
||||
private BuyOrderProductDao buyOrderProductDao;
|
||||
@Autowired
|
||||
private ShopProductDao shopProductDao;
|
||||
@@ -102,7 +101,49 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
wrapper.select(BuyOrder::getOrderStatus);
|
||||
wrapper.select("count(1) as num");
|
||||
wrapper.groupBy(BuyOrder::getOrderStatus);
|
||||
List<Map<String,Object>> buyOrder = buyOrderDao.selectMaps(wrapper);
|
||||
List<Map<String,Object>> buyOrder = this.listMaps(wrapper);
|
||||
return buyOrder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> commonOrderDetail(Map params) {
|
||||
Map<String, Object> res = new HashMap<>();
|
||||
LambdaQueryWrapper<BuyOrder> orderWrapper = new LambdaQueryWrapper<>();
|
||||
orderWrapper.eq(BuyOrder::getOrderId,params.get("orderId"));
|
||||
BuyOrder buyOrder = this.getOne(orderWrapper);
|
||||
res.put("buyOrder",buyOrder);
|
||||
if (buyOrder!=null){
|
||||
//添加商品信息
|
||||
MPJLambdaWrapper<BuyOrderProduct> buyOrderProductWrapper = new MPJLambdaWrapper<>();
|
||||
buyOrderProductWrapper.leftJoin(BuyOrder.class,BuyOrder::getOrderId,BuyOrderProduct::getOrderId);
|
||||
buyOrderProductWrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,BuyOrderProduct::getProductId);
|
||||
buyOrderProductWrapper.select(BuyOrderProduct::getQuantity);
|
||||
buyOrderProductWrapper.selectAll(ShopProduct.class);
|
||||
buyOrderProductWrapper.eq(BuyOrder::getOrderId,buyOrder.getOrderId());
|
||||
List productInfo = buyOrderProductDao.selectMaps(buyOrderProductWrapper);
|
||||
res.put("productInfo",productInfo);
|
||||
//添加快递信息
|
||||
LambdaQueryWrapper<ExpressOrder> expressOrderWrapper = new LambdaQueryWrapper<>();
|
||||
expressOrderWrapper.like(ExpressOrder::getOrderSn,buyOrder.getOrderSn());
|
||||
List<ExpressOrder> expressOrders = expressOrderDao.selectList(expressOrderWrapper);
|
||||
if (expressOrders != null&&expressOrders.size() > 0) {
|
||||
for (ExpressOrder eOrder : expressOrders) {
|
||||
ExpressOrderUtil util = new ExpressOrderUtil();
|
||||
ExpressQueryResponse response = util.queryExpressOrder(eOrder);
|
||||
res.put(eOrder.getExpressOrderSn(),response);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExpressQueryResponse commonExpressDetail(Map params) {
|
||||
LambdaQueryWrapper<ExpressOrder> expressOrderWrapper = new LambdaQueryWrapper<>();
|
||||
expressOrderWrapper.eq(ExpressOrder::getExpressOrderSn,params.get("expressOrderSn"));
|
||||
ExpressOrder expressOrder = expressOrderDao.selectOne(expressOrderWrapper);
|
||||
ExpressOrderUtil util = new ExpressOrderUtil();
|
||||
return util.queryExpressOrder(expressOrder);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,124 +22,4 @@ import java.util.Map;
|
||||
@Slf4j
|
||||
@Service("commonExpressOrderService")
|
||||
public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, ExpressOrder> implements ExpressOrderService {
|
||||
|
||||
@Value("${express.sender.senderName}")
|
||||
private String senderName;
|
||||
@Value("${express.sender.mobile}")
|
||||
private String senderMobile;
|
||||
@Value("${express.sender.provinceName}")
|
||||
private String senderProvinceName;
|
||||
@Value("${express.sender.cityName}")
|
||||
private String senderCityName;
|
||||
@Value("${express.sender.expAreaName}")
|
||||
private String senderExpAreaName;
|
||||
@Value("${express.sender.address}")
|
||||
private String senderAddress;
|
||||
|
||||
|
||||
@Override
|
||||
public ExpressOrderResponseVo placeExpressOrder(ExpressOrder expressOrder) {
|
||||
ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo();
|
||||
// 订单号
|
||||
orderRequestVo.setOrderCode(expressOrder.getOrderSn());
|
||||
orderRequestVo.setIsReturnPrintTemplate(1);
|
||||
orderRequestVo.setShipperCode(expressOrder.getExpressCompanyCode());
|
||||
orderRequestVo.setPayType(3);
|
||||
if (expressOrder.getExpressCompanyCode().equals(Constants.EXPRESS_COMPANY_CODE_SF)) {
|
||||
orderRequestVo.setMonthCode(Constants.EXPRESS_SF_MONTH_CODE);
|
||||
//如果是顺丰港澳台,参数多两个必填CurrencyCode、Dutiable.DeclaredValue
|
||||
if ("台湾省".equals(expressOrder.getProvince())||
|
||||
"香港特别行政区".equals(expressOrder.getProvince())||
|
||||
"澳门特别行政区".equals(expressOrder.getProvince())){
|
||||
orderRequestVo.setCurrencyCode("CNY");
|
||||
BigDecimal declaredValue = new BigDecimal(0);
|
||||
if (expressOrder.getCommodity().size()>0){
|
||||
for (ExpressCommodity commodity : expressOrder.getCommodity()) {
|
||||
BigDecimal quantity = BigDecimal.valueOf(commodity.getGoodsquantity());
|
||||
BigDecimal price = BigDecimal.valueOf(commodity.getGoodsPrice());
|
||||
BigDecimal total = quantity.multiply(price);
|
||||
declaredValue = declaredValue.add(total);
|
||||
}
|
||||
}
|
||||
DutiableVo dutiable = new DutiableVo();
|
||||
dutiable.setDeclaredValue(declaredValue.setScale(3));
|
||||
orderRequestVo.setDutiable(dutiable);
|
||||
}
|
||||
}
|
||||
if (expressOrder.getExpressCompanyCode().equals(Constants.EXPRESS_COMPANY_CODE_YD)) {
|
||||
orderRequestVo.setCustomerName(Constants.EXPRESS_YD_CUSTOMER_NAME);
|
||||
orderRequestVo.setCustomerPwd(Constants.EXPRESS_YD_CUSTOMER_PWD);
|
||||
}
|
||||
orderRequestVo.setExpType(231);//1特快2标快
|
||||
orderRequestVo.setCost(expressOrder.getExpressFee().doubleValue());
|
||||
// 发货人
|
||||
ExpressUserInfoVo sender = new ExpressUserInfoVo();
|
||||
sender.setName(senderName);
|
||||
sender.setMobile(senderMobile);
|
||||
sender.setProvinceName(senderProvinceName);
|
||||
sender.setCityName(senderCityName);
|
||||
sender.setExpAreaName(senderExpAreaName);
|
||||
sender.setAddress(senderAddress);
|
||||
// 收货人
|
||||
ExpressUserInfoVo receiver = new ExpressUserInfoVo();
|
||||
receiver.setName(expressOrder.getConsigneeName());
|
||||
receiver.setMobile(expressOrder.getConsigneeMobile());
|
||||
receiver.setProvinceName(expressOrder.getProvince());
|
||||
receiver.setCityName(expressOrder.getCity());
|
||||
receiver.setExpAreaName(expressOrder.getCounty());
|
||||
receiver.setAddress(expressOrder.getAddress());
|
||||
orderRequestVo.setSender(sender);
|
||||
orderRequestVo.setReceiver(receiver);
|
||||
orderRequestVo.setCommodity(expressOrder.getCommodity());
|
||||
orderRequestVo.setWeight(expressOrder.getTotalWeight().doubleValue());
|
||||
orderRequestVo.setRemark(expressOrder.getRemark());
|
||||
orderRequestVo.setTemplateSize("150");
|
||||
String requestData = JSONObject.toJSONString(orderRequestVo);
|
||||
//如果是顺丰港澳台,参数多两个必填CurrencyCode、Dutiable.DeclaredValue,需要大写
|
||||
String requestDataUpperCase = requestData;
|
||||
if (requestData.contains("currencyCode")){
|
||||
requestDataUpperCase = requestData.replace("currencyCode","CurrencyCode")
|
||||
.replace("dutiable","Dutiable")
|
||||
.replace("declaredValue","DeclaredValue");
|
||||
}
|
||||
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("RequestData", requestDataUpperCase);
|
||||
params.put("EBusinessID", Constants.EXPRESS_BUSINESS_ID);
|
||||
params.put("RequestType", Constants.EXPRESS_REQUEST_TYPE_PLACE_ORDER);
|
||||
try {
|
||||
String dataSign = KdUtils.encrypt(requestDataUpperCase, Constants.EXPRESS_API_KEY, "UTF-8");
|
||||
params.put("DataSign", KdUtils.urlEncoder(dataSign, "UTF-8"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
params.put("DataType", "2");
|
||||
|
||||
String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_PLACE_ORDER_URL, params);
|
||||
return JSONObject.parseObject(response, ExpressOrderResponseVo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ExpressQueryResponse queryExpressOrder(String shipperCode, String logisticCode, String customerName) {
|
||||
ExpressQueryRequestVo requestVo = new ExpressQueryRequestVo();
|
||||
requestVo.setLogisticCode(logisticCode);
|
||||
requestVo.setCustomerName(customerName);
|
||||
requestVo.setShipperCode(shipperCode);
|
||||
String requestData = JSONObject.toJSONString(requestVo);
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put("RequestData", requestData);
|
||||
params.put("EBusinessID", Constants.EXPRESS_BUSINESS_ID);
|
||||
params.put("RequestType", Constants.EXPRESS_REQUEST_TYPE_QUERY);
|
||||
try {
|
||||
String dataSign = KdUtils.encrypt(requestData, Constants.EXPRESS_API_KEY, "UTF-8");
|
||||
params.put("DataSign", KdUtils.urlEncoder(dataSign, "UTF-8"));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error(e.getMessage());
|
||||
}
|
||||
params.put("DateType", "2");
|
||||
String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_QUERY_URL, params);
|
||||
return JSONObject.parseObject(response, ExpressQueryResponse.class);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user