123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- package com.emato.ccnet.service.ccent.impl;
- import com.emato.ccnet.config.Merchant;
- import com.emato.ccnet.contants.Contants;
- import com.emato.ccnet.domain.ccnet.CusOrder;
- import com.emato.ccnet.domain.ccnet.CusOrderGoods;
- import com.emato.ccnet.domain.ccnet.CusOrderStatus;
- import com.emato.ccnet.domain.kmall.OrderBill;
- import com.emato.ccnet.domain.kmall.OrderGoods;
- import com.emato.ccnet.mapper.ccnet.CusOrderGoodsMapper;
- import com.emato.ccnet.mapper.ccnet.CusOrderMapper;
- import com.emato.ccnet.mapper.ccnet.CusOrderStatusMapper;
- import com.emato.ccnet.mapper.kmall.KmallOrderMapper;
- import com.emato.ccnet.redis.jedis.cluster.mgt.JedisClusterManager;
- import com.emato.ccnet.service.ccent.CusOrderService;
- import com.emato.ccnet.snow.SnowflakeUtil;
- import com.emato.ccnet.util.DateUtil;
- import com.emato.ccnet.util.JacksonUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.*;
- @Service
- public class CusOrderImpl implements CusOrderService{
- private static final Logger logger = LoggerFactory.getLogger(CusPaymentCollectImpl.class);
- @Autowired
- private Merchant merchant;
- @Autowired
- private CusOrderMapper cusOrderMapper;
- @Autowired
- private CusOrderGoodsMapper cusOrderGoodsMapper;
- @Autowired
- private CusOrderStatusMapper cusOrderStatusMapper;
- @Autowired
- private KmallOrderMapper kmallOrderMapper;
- /**
- * 生成报关流水号
- * @return
- */
- public static String getNormalOrderNo() {
- String orderNo = DateUtil.dateToString(new Date(),"yyyyMMddHHmmss");
- return orderNo;
- }
- /**
- * 电子订单初始化
- * @param list
- * @return
- */
- @Override
- public int addCusOrder(List list) {
- //电子订单总表集合
- List<CusOrder> CusOrders = new ArrayList<>();
- //电子订单状态表集合
- List<CusOrderStatus> CusOrderStatues = new ArrayList<>();
- //支付单数据
- List<OrderBill> orderBillList = (List<OrderBill>) list;
- List<String> orderList = new ArrayList<>();
- for (OrderBill orderBill : orderBillList) {
- CusOrder bill = cusOrderMapper.findCusOrderByOrderNo(orderBill.getOrderNo());
- String cusOrderSn = Contants.ZWSH + SnowflakeUtil.getSnowNextId();
- String orderSn = Contants.ZW +SnowflakeUtil.getSnowNextId();
- //电子订单表
- CusOrder cusOrder = buildCusOrder(orderBill,cusOrderSn,orderSn);
- CusOrders.add(cusOrder);
- //插入电子订单商品表
- buildCusOrderGoods(orderBill,cusOrderSn);
- //电子订单发送状态
- CusOrderStatus cusOrderStatus = buildCusOrderStatus(orderBill,cusOrderSn,orderSn);
- CusOrderStatues.add(cusOrderStatus);
- }
- if (cusOrderMapper.insertCusOrderItemBatch(CusOrders) <= 0) {
- logger.error("批量插入,电子订单表记录全部失败");
- return 0;
- }
- if(cusOrderStatusMapper.insertCusOrderStatusItemBatch(CusOrderStatues) <= 0){
- logger.error("批量插入,电子订单状态表记录全部失败");
- return 0;
- }
- return 1;
- }
- /**
- * 记录CusOrderStatus
- * @param orderBill
- * @param cusOrderSn
- * @param orderSn
- * @return
- */
- private CusOrderStatus buildCusOrderStatus(OrderBill orderBill, String cusOrderSn, String orderSn) {
- CusOrderStatus cusOrderStatus = new CusOrderStatus();
- String cusOrderStatusPaySn = Contants.ZWSH+ SnowflakeUtil.getSnowNextId();
- cusOrderStatus.setCusOrderStatusSn(cusOrderStatusPaySn);
- cusOrderStatus.setCusOrderSn(cusOrderSn);
- cusOrderStatus.setOrderSn(orderSn);
- cusOrderStatus.setMerchOrderSn(orderBill.getOrderNo());
- cusOrderStatus.setMerchSn(merchant.getMerchSn());
- cusOrderStatus.setMerchName(merchant.getMerchName());
- cusOrderStatus.setPlatSn(merchant.getPlatSn());
- cusOrderStatus.setPlatName(merchant.getPlatName());
- cusOrderStatus.setThirdPartyMerchCode(orderBill.getSellerId());
- cusOrderStatus.setThirdPartyMerchName(orderBill.getSellerName());
- cusOrderStatus.setSendStatus(Contants.INIT_STATUS);
- cusOrderStatus.setPlatRespStatus(Contants.INIT_STATUS);
- cusOrderStatus.setCusRespStatus(Contants.INIT_STATUS);
- cusOrderStatus.setCipRespStatus(Contants.INIT_STATUS);
- return cusOrderStatus;
- }
- /**
- * 记录CusOrderGoods
- * @param orderBill
- * @param cusOrderSn
- * @return
- */
- private void buildCusOrderGoods(OrderBill orderBill, String cusOrderSn) {
- Map<String, Object> resultMap = new HashMap<>();
- List<OrderGoods> orderGoodsList = kmallOrderMapper.getOrderGoods(orderBill.getOrderNo());
- if (orderGoodsList == null || orderGoodsList.size() <= 0){
- logger.error("电子订单为空!");
- return;
- }
- List<CusOrderGoods> CusOrderGoodes = new ArrayList<>();
- int i = 1;
- for (OrderGoods orderGoods:orderGoodsList){
- CusOrderGoods cusOrderGoods = new CusOrderGoods();
- try {
- //获取缓存中的产品备案数据
- final String resultJson = JedisClusterManager.jedisClusterInstance().get(Contants.PD_PRODUCT_RECORD);
- resultMap = JacksonUtil.fromStringJson(resultJson, resultMap.getClass());
- } catch (Exception e) {
- logger.error("获取系统模块中缓存的产品备案数据集异常!");
- return;
- }
- String sku = orderGoods.getGoodsNo();
- Map<String, Object> productRecordMap = (Map) resultMap.get(sku);
- if(productRecordMap == null){
- logger.error("sku不存在异常");
- }
- String cusOrderGoodsPaySn = Contants.ZWSH+ SnowflakeUtil.getSnowNextId();
- cusOrderGoods.setCusOrderGoodsSn(cusOrderGoodsPaySn);
- cusOrderGoods.setCusOrderSn(cusOrderSn);
- cusOrderGoods.setGnum(i+"");
- cusOrderGoods.setItemNo(orderGoods.getGoodsNo());
- cusOrderGoods.setItemName(orderGoods.getName());
- cusOrderGoods.setItemDescribe(orderGoods.getContent());
- cusOrderGoods.setBarCode((String)productRecordMap.get("prodBarcode"));
- cusOrderGoods.setUnit((String)productRecordMap.get("unitCode"));
- cusOrderGoods.setQty(orderGoods.getGoodsNums());
- cusOrderGoods.setPrice(orderGoods.getSellPrice());
- cusOrderGoods.setTotalPrice(orderGoods.getSellTotalPice());
- cusOrderGoods.setCurrency(Contants.CURRENCY);
- cusOrderGoods.setCountry((String)productRecordMap.get("oriCntCode"));
- cusOrderGoods.setCiqGno((String)productRecordMap.get("cusRecCode"));
- cusOrderGoods.setGcode((String) productRecordMap.get("cusGoodsCode"));
- cusOrderGoods.setGmodel((String) productRecordMap.get("cusDeclEle"));
- cusOrderGoods.setCiqGmodel((String)productRecordMap.get("ciqProdModel"));
- cusOrderGoods.setBrand((String)productRecordMap.get("prodBrand"));
- cusOrderGoods.setCreaterSn(Contants.CREATER_NUMBER);
- cusOrderGoods.setCreateTime(new Date());
- CusOrderGoodes.add(cusOrderGoods);
- ++ i;
- }
- if(cusOrderGoodsMapper.insertCusOrderGoodsItemBatch(CusOrderGoodes) <= 0){
- logger.error("批量插入,电子订单商品表记录全部失败");
- return;
- }
- }
- /**
- * 记录CusOrder
- * @param orderBill
- * @param cusOrderSn
- * @param orderSn
- * @return
- */
- private CusOrder buildCusOrder(OrderBill orderBill, String cusOrderSn, String orderSn) {
- CusOrder cusOrder = new CusOrder();
- cusOrder.setCusOrderSn(cusOrderSn);
- cusOrder.setOrderSn(orderSn);
- cusOrder.setMerchOrderSn(orderBill.getOrderNo());
- cusOrder.setMerchSn(merchant.getMerchSn());
- cusOrder.setMerchName(merchant.getMerchName());
- cusOrder.setPlatSn(merchant.getPlatSn());
- cusOrder.setPlatName(merchant.getPlatName());
- cusOrder.setThirdPartyMerchCode(orderBill.getSellerId());
- cusOrder.setThirdPartyMerchName(orderBill.getSellerName());
- cusOrder.setPlaceOrderlTime(orderBill.getCreateTime());
- cusOrder.setAppType(Contants.APP_STATUS_DECLARE);
- cusOrder.setAppStatus(Contants.APP_STATUS_SEPARETE);
- cusOrder.setAppTime(getNormalOrderNo());
- cusOrder.setOrderNo(orderBill.getOrderNo());
- cusOrder.setEbpCode(merchant.getPlatSn());
- cusOrder.setEbpName(merchant.getPlatName());
- cusOrder.setEbcCode(merchant.getMerchSn());
- cusOrder.setEbcName(merchant.getMerchName());
- cusOrder.setGoodsValue(orderBill.getRealAmount());
- cusOrder.setbuyerIdNumber(orderBill.getUserId());
- cusOrder.setBuyerName(orderBill.getTrueName());
- cusOrder.setBuyerIdType(orderBill.getIdType());
- cusOrder.setbuyerIdNumber(orderBill.getIdCode());
- cusOrder.setPayCode(merchant.getMerchantCustomsCode());
- cusOrder.setPayName(merchant.getMerchantCustomsName());
- cusOrder.setPayTransactionId(orderBill.getTradeNo());
- cusOrder.setConsignee(orderBill.getAcceptName());
- cusOrder.setConsigneeTelephone(orderBill.getMobile());
- cusOrder.setConsigneeAddress(orderBill.getAddress());
- cusOrder.setActuralPaid(orderBill.getRealAmount());
- cusOrder.setBuyerRegNo(orderBill.getUserId());
- return cusOrder;
- }
- /**
- * 查找当前ccnet中的所有电子订单
- * @return
- */
- @Override
- public List<CusOrder> findAllCusOrder() {
- return cusOrderMapper.findAllCusOrder();
- }
- /**
- * 通过订单号查找电子订单表
- * @param orderSn
- * @return
- */
- @Override
- public CusOrder findCusOrder(String orderSn) {
- return cusOrderMapper.findCusOrderByOrderNo(orderSn);
- }
- /**
- * 更新电子订单表
- * @param cusOrder
- * @return
- */
- @Override
- public int updateCusOrder(CusOrder cusOrder) {
- return cusOrderMapper.updateCusOrder(cusOrder);
- }
- }
|