This commit is contained in:
Cauchy
2023-10-17 10:40:48 +08:00
parent 22fb5ec3a8
commit c268fb185d
9 changed files with 202 additions and 280 deletions

View File

@@ -26,6 +26,18 @@ public class ExpressOrder {
* 用户地址 ID
*/
private int userAddressId;
/**
* 订单号
*/
private String orderId;
/**
* 快递公司代码
*/
private String expressCompanyCode;
/**
* 备注
*/
private String remark;
/**
* 快递费
*/

View File

@@ -14,5 +14,11 @@ public interface ExpressOrderService extends IService<ExpressOrder> {
*/
int insertNewExpressOrder(ExpressOrder expressOrder);
void placeExpressOrder(Integer userAddressId, ExpressOrder expressOrder);
// void printDeliveryBill();
//
// void expressRealTimeQuery();
}

View File

@@ -263,6 +263,5 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
int expressOrderId = expressOrderService.insertNewExpressOrder(expressOrder);
}
}

View File

@@ -1,14 +1,20 @@
package com.peanut.modules.book.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.book.dao.ExpressOrderDao;
import com.peanut.modules.book.entity.ExpressOrder;
import com.peanut.modules.book.service.ExpressOrderService;
import com.peanut.modules.book.entity.*;
import com.peanut.modules.book.service.*;
import com.peanut.modules.book.vo.ExpressCommodityVo;
import com.peanut.modules.book.vo.ExpressOrderRequestVo;
import com.peanut.modules.book.vo.ExpressUserInfoVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Description: 快递订单 Service 实现
* @Author: Cauchy
@@ -16,65 +22,96 @@ import org.springframework.stereotype.Service;
*/
@Service
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;
@Autowired
private ExpressOrderDao expressOrderDao;
@Autowired
private UserAddressService userAddressService;
@Autowired
private CountyService countyService;
@Autowired
private CityService cityService;
@Autowired
private ProvinceService provinceService;
@Override
public int insertNewExpressOrder(ExpressOrder expressOrder) {
expressOrderDao.insertNewExpressOrder(expressOrder);
return expressOrder.getId();
}
public void createExpressOrder() throws Exception {
ExpressUserInfoVo receiver = new ExpressUserInfoVo();
receiver.setName("张三");
receiver.setMobile("12345678910");
receiver.setPrintAddr("广东省深圳市南山区科技南十二路");
@Override
public void placeExpressOrder(Integer userAddressId, ExpressOrder expressOrder) {
ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo();
// 订单号
orderRequestVo.setOrderCode(expressOrder.getOrderId());
orderRequestVo.setShipperCode(expressOrder.getExpressCompanyCode());
orderRequestVo.setPayType(3);
orderRequestVo.setExpType(1);
// 发货人
ExpressUserInfoVo sender = new ExpressUserInfoVo();
sender.setName("李四");
sender.setMobile("12345678910");
sender.setPrintAddr("北京市海淀区xxx路");
sender.setName(senderName);
sender.setMobile(senderMobile);
sender.setProvinceName(senderProvinceName);
sender.setCityName(senderCityName);
sender.setExpAreaName(senderExpAreaName);
sender.setAddress(senderAddress);
// 收货人
UserAddress userAddress = userAddressService.getById(userAddressId);
ExpressUserInfoVo receiver = buildReceiverBasedOnUserAddress(userAddress);
orderRequestVo.setSender(sender);
orderRequestVo.setReceiver(receiver);
ExpressCommodityVo commodityVo = new ExpressCommodityVo();
commodityVo.setGoodsName("书籍");
List<ExpressCommodityVo> commodityVoList = new ArrayList<>();
orderRequestVo.setCommodity(commodityVoList);
//orderRequestVo.setWeight(expressOrder.getTotalWeight());
orderRequestVo.setRemark(expressOrder.getRemark());
ExpressOrderRequestVo request = new ExpressOrderRequestVo();
request.setKuaidicom(CompanyConstant.ZJS);
request.setCount(1);
request.setSiid(siid);
request.setTempId("60f6c17c7c223700131d8bc3");
request.setSendMan(sender);
request.setRecMan(receiver);
request.setPrintType(PrintType.CLOUD);
String param = new Gson().toJson(request);
String t = System.currentTimeMillis() + "";
PrintReq printReq = new PrintReq();
printReq.setT(t);
printReq.setKey(key);
printReq.setSign(SignUtils.printSign(param, t, key, secret));
printReq.setMethod(ApiInfoConstant.ORDER);
printReq.setParam(param);
IBaseClient baseClient = new LabelV2();
System.out.println(baseClient.execute(printReq));
}
public void testPrintOld() throws Exception {
RepeatPrintReq repeatPrintReq = new RepeatPrintReq();
repeatPrintReq.setTaskId("027B34AD22DE4F299643A13642B70D5F");
String param = new Gson().toJson(repeatPrintReq);
String t = System.currentTimeMillis() + "";
PrintReq printReq = new PrintReq();
printReq.setT(t);
printReq.setKey(key);
printReq.setSign(SignUtils.printSign(param, t, key, secret));
printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_OLD_METHOD);
printReq.setParam(param);
IBaseClient baseClient = new LabelV2();
System.out.println(baseClient.execute(printReq));
private ExpressUserInfoVo buildReceiverBasedOnUserAddress(UserAddress userAddress) {
ExpressUserInfoVo vo = new ExpressUserInfoVo();
vo.setName(userAddress.getConsigneeName());
vo.setMobile(userAddress.getConsigneePhone());
vo.setAddress(userAddress.getDetailAddress());
String regionCode = userAddress.getRegionCode();
QueryWrapper<CountyEntity> countyQueryWrapper = new QueryWrapper<>();
countyQueryWrapper.eq("region_code", regionCode);
CountyEntity county = countyService.getOne(countyQueryWrapper);
vo.setExpAreaName(county.getCountyName());
String cityRegionCode;
if (regionCode.startsWith("11") || regionCode.startsWith("12") || regionCode.startsWith("31") || regionCode.startsWith("50")) {
cityRegionCode = regionCode.substring(0, 1).concat("0000");
} else {
cityRegionCode = regionCode.substring(0, 3).concat("00");
}
QueryWrapper<CityEntity> cityQueryWrapper = new QueryWrapper<>();
cityQueryWrapper.eq("region_code", cityRegionCode);
CityEntity city = cityService.getOne(cityQueryWrapper);
vo.setCityName(city.getCityName());
String provinceRegionCode = regionCode.substring(0, 1).concat("0000");
QueryWrapper<ProvinceEntity> provinceQueryWrapper = new QueryWrapper<>();
provinceQueryWrapper.eq("region_code", provinceRegionCode);
ProvinceEntity province = provinceService.getOne(provinceQueryWrapper);
vo.setProvinceName(province.getProvName());
return vo;
}
}

View File

@@ -9,8 +9,32 @@ import lombok.Data;
*/
@Data
public class ExpressCommodityVo {
/**
* 商品名称
*/
private String GoodsName;
/**
* 商品编码
*/
private String GoodsCode;
private int Goodsquantity;
private double GoodsPrice;
/**
* 商品数量
*/
private Integer Goodsquantity;
/**
* 商品价格
*/
private Double GoodsPrice;
/**
* 商品重量
*/
private Double GoodsWeight;
/**
* 商品描述
*/
private String GoodsDesc;
/**
* 商品体积
*/
private Double GoodsVol;
}

View File

@@ -1,11 +1,8 @@
package com.peanut.modules.book.vo;
import com.kuaidi100.sdk.contant.PrintType;
import com.kuaidi100.sdk.request.ManInfo;
import lombok.Data;
import java.util.List;
import java.util.Map;
import java.util.List ;
/**
* @Description: 快递请求 Value Object
@@ -31,7 +28,25 @@ public class ExpressOrderRequestVo {
* 快递公司业务类型
*/
private int ExpType;
/**
* 发货人
*/
private ExpressUserInfoVo Sender;
/**
* 收货人
*/
private ExpressUserInfoVo Receiver;
/**
* 货物信息
*/
private List<ExpressCommodityVo> Commodity;
/**
* 重量
*/
private Double Weight;
/**
* 备注
*/
private String Remark;
}