|
|
|
|
@@ -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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|