| @@ -88,6 +88,9 @@ public class MqBaseConsumer { | |||||
| @Autowired | @Autowired | ||||
| private CreateCouponPasswordMsgServiceImpl createCouponPasswordMsgServiceImpl; | private CreateCouponPasswordMsgServiceImpl createCouponPasswordMsgServiceImpl; | ||||
| @Autowired | |||||
| private FmInsideCreateOrderMsgServiceImpl fmInsideCreateOrderMsgServiceImpl; | |||||
| public void doMessage(String message) { | public void doMessage(String message) { | ||||
| log.info("received message: {}", message); | log.info("received message: {}", message); | ||||
| @@ -251,6 +254,11 @@ public class MqBaseConsumer { | |||||
| FmInsideCreateCouponPasswordMsg msg = (FmInsideCreateCouponPasswordMsg) JsonUtil.readValue(message,FmInsideCreateCouponPasswordMsg.class); | FmInsideCreateCouponPasswordMsg msg = (FmInsideCreateCouponPasswordMsg) JsonUtil.readValue(message,FmInsideCreateCouponPasswordMsg.class); | ||||
| createCouponPasswordMsgServiceImpl.send(msg); | createCouponPasswordMsgServiceImpl.send(msg); | ||||
| } | } | ||||
| else if (EnumMsgRecordType.CREATE_ORDER.getCode().equals(baseMsg.getMsgType())) { | |||||
| FmInsideCreateOrderMsg msg = (FmInsideCreateOrderMsg) JsonUtil.readValue(message,FmInsideCreateOrderMsg.class); | |||||
| fmInsideCreateOrderMsgServiceImpl.send(msg); | |||||
| } | |||||
| }catch (Throwable e){ | }catch (Throwable e){ | ||||
| log.error("consum received error: ", e); | log.error("consum received error: ", e); | ||||
| @@ -0,0 +1,205 @@ | |||||
| package com.iformall.schedule; | |||||
| import com.iformall.domain.po.*; | |||||
| import com.iformall.enums.EnumCashOutStatus; | |||||
| import com.iformall.enums.EnumCouponOrderStatus; | |||||
| import com.iformall.enums.EnumPayWay; | |||||
| import com.iformall.enums.EnumYesOrNo; | |||||
| import com.iformall.mapper.WxBrandMapper; | |||||
| import com.iformall.mapper.WxCUserBasicInfoMapper; | |||||
| import com.iformall.mapper.WxCashOutMapper; | |||||
| import com.iformall.mapper.WxCouponMapper; | |||||
| import com.iformall.mapper.WxCouponOrderMapper; | |||||
| import com.iformall.mapper.WxMallMapper; | |||||
| import com.iformall.mapper.WxMerchantBUserMapper; | |||||
| import com.iformall.mapper.WxMerchantMapper; | |||||
| import com.iformall.service.AiOrderService; | |||||
| import com.iformall.service.WxAppinfoService; | |||||
| import com.iformall.service.WxBrandService; | |||||
| import com.iformall.service.WxBusinessService; | |||||
| import com.iformall.service.WxPayAccountService; | |||||
| import com.iformall.service.pay.PayServiceFactory; | |||||
| import com.iformall.service.pay.service.cashout.entity.CashOutAdapterResult; | |||||
| import com.iformall.utils.DateUtils; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.scheduling.annotation.Async; | |||||
| import org.springframework.scheduling.annotation.Scheduled; | |||||
| import org.springframework.stereotype.Component; | |||||
| import org.springframework.transaction.annotation.Propagation; | |||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| import java.util.ArrayList; | |||||
| import java.util.Calendar; | |||||
| import java.util.Date; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| @Component | |||||
| public class AiOrderSchedule { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| private WxMallMapper wxMallMapper; | |||||
| @Autowired | |||||
| AiOrderService aiOrderService; | |||||
| @Autowired | |||||
| WxCouponOrderMapper wxCouponOrderMapper; | |||||
| @Autowired | |||||
| WxCouponMapper wxCouponMapper; | |||||
| @Autowired | |||||
| WxCUserBasicInfoMapper wxCUserBasicInfoMapper; | |||||
| @Autowired | |||||
| WxMerchantBUserMapper wxMerchantBUserMapper; | |||||
| @Autowired | |||||
| WxMerchantMapper wxMerchantMapper; | |||||
| @Autowired | |||||
| WxBrandService wxBrandService; | |||||
| @Autowired | |||||
| WxBusinessService wxBusinessService; | |||||
| private List<WxMall> getMalls() { | |||||
| WxMall wxMall = new WxMall(); | |||||
| return wxMallMapper.findList(wxMall); | |||||
| } | |||||
| //查询新创建的订单,增量同步wxCouponOrder.因为中间有些订单有付了款,有没付款 | |||||
| @Async | |||||
| @Scheduled(cron = "0 50 0 * * ?") // 每天凌晨00:50 | |||||
| public void updateWxCouponOrderSchedule() { | |||||
| List<WxMall> malls = getMalls(); | |||||
| for (WxMall mall : malls) { | |||||
| AiOrder ao = new AiOrder(); | |||||
| ao.updateTenantInfo(mall); | |||||
| //没有couponOrder的同步 | |||||
| ao.setNoCouponOrder(EnumYesOrNo.YES.getCode()); | |||||
| ao.setNoCouponOrderStatus(EnumYesOrNo.YES.getCode()); | |||||
| ao.setLastCreateDate(DateUtils.getDayBegin(new Date())); | |||||
| List<AiOrder> aiOrderList = aiOrderService.list(ao); | |||||
| if (null != aiOrderList && aiOrderList.size() > 0 ) { | |||||
| for (AiOrder _ao : aiOrderList) { | |||||
| try { | |||||
| WxCouponOrder co = new WxCouponOrder(); | |||||
| co.updateTenantInfo(_ao); | |||||
| co.setOrderId(_ao.getOrderId()); | |||||
| List<WxCouponOrder> colist = wxCouponOrderMapper.findList(co); | |||||
| if (null != colist && colist.size() > 0) { | |||||
| WxCouponOrder wco = colist.get(0); | |||||
| _ao.setCouponOrderId(wco.getId()); | |||||
| _ao.setCouponId(wco.getCouponId()); | |||||
| _ao.setCouponType(wco.getCouponType()); | |||||
| WxCoupon coupon = wxCouponMapper.selectById(wco.getCouponId(), _ao.getTenantId()); | |||||
| if (null != coupon) { | |||||
| _ao.setCouponTitle(coupon.getTitle()); | |||||
| _ao.setCouponPrice(coupon.getPrice()); | |||||
| } | |||||
| _ao.setCouponSalePrice(wco.getCouponPrice()); | |||||
| _ao.setCouponSubsidy(wco.getSubsidy()); | |||||
| _ao.setExpiredTime(wco.getExpiredTime()); | |||||
| _ao.setOwnerId(wco.getOwnerId()); | |||||
| WxCUserBasicInfo cui = wxCUserBasicInfoMapper.selectById(wco.getOwnerId(), _ao.getTenantId()); | |||||
| if (null != cui) { | |||||
| _ao.setOwnerPhone(cui.getPhone()); | |||||
| _ao.setOwnerNickName(cui.getNickName()); | |||||
| } | |||||
| _ao.setCouponOrderStatus(wco.getCouponOrderStatus()); | |||||
| aiOrderService.saveOrUpdate(_ao); | |||||
| }else { | |||||
| //因为昨天未支付的订单现在肯定是已作废状态了 | |||||
| _ao.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_INVALID.getCode()); | |||||
| aiOrderService.saveOrUpdate(_ao); | |||||
| } | |||||
| }catch(Exception e) { | |||||
| logger.error("aiOrder updateWxCouponOrderSchedule error:"+_ao.getId(),e); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| //更新coupon_order_status==0或者为空的订单, 因为订单可能被核销等操作会变更一些数据 | |||||
| @Async | |||||
| @Scheduled(cron = "0 0 0/2 * * ?") // 每2个小时执行一次 | |||||
| public void updateOrderSchedule() { | |||||
| List<WxMall> malls = getMalls(); | |||||
| for (WxMall mall : malls) { | |||||
| try { | |||||
| AiOrder ao = new AiOrder(); | |||||
| ao.updateTenantInfo(mall); | |||||
| ao.setHasCouponOrder(EnumYesOrNo.YES.getCode()); | |||||
| ao.setNeedUpdateCouponOrderStatus(EnumYesOrNo.YES.getCode()); | |||||
| List<AiOrder> aiOrderList = aiOrderService.list(ao); | |||||
| if (null != aiOrderList && aiOrderList.size() > 0 ) { | |||||
| Map<Long, WxBrand> brandMap = wxBrandService.getAllMap(mall); | |||||
| Map<Integer, WxBusiness> businessMap = wxBusinessService.findAllMap(mall); | |||||
| for (AiOrder _ao : aiOrderList) { | |||||
| try { | |||||
| WxCouponOrder co = new WxCouponOrder(); | |||||
| co.updateTenantInfo(_ao); | |||||
| co.setOrderId(_ao.getOrderId()); | |||||
| List<WxCouponOrder> colist = wxCouponOrderMapper.findList(co); | |||||
| if (null != colist && colist.size() > 0) { | |||||
| WxCouponOrder wco = colist.get(0); | |||||
| if (null != wco.getBUserId()) { | |||||
| _ao.setBUserId(wco.getBUserId()); | |||||
| WxMerchantBUser mbu = wxMerchantBUserMapper.selectById(wco.getBUserId()); | |||||
| if (null != mbu) { | |||||
| _ao.setBUserPhone(mbu.getPhone()); | |||||
| } | |||||
| _ao.setBMerchantId(wco.getBMerchantId()); | |||||
| WxMerchant merchant = wxMerchantMapper.selectById(wco.getBMerchantId()); | |||||
| if (null != merchant) { | |||||
| _ao.setBMerchantName(merchant.getName()); | |||||
| _ao.setBrandId(merchant.getBrand()); | |||||
| if (null != merchant.getBrand() && null != brandMap) { | |||||
| WxBrand brand = brandMap.get(merchant.getBrand()); | |||||
| if (null != brand) { | |||||
| _ao.setBrandName(brand.getName()); | |||||
| } | |||||
| } | |||||
| _ao.setBussiness(merchant.getBusinessId()); | |||||
| if (null != merchant.getBusinessId() && null != businessMap) { | |||||
| WxBusiness business = businessMap.get(merchant.getBusinessId()); | |||||
| if (null != business) { | |||||
| _ao.setBussinessName(business.getTitle()); | |||||
| } | |||||
| } | |||||
| //_ao.setShopNumber(); | |||||
| } | |||||
| } | |||||
| _ao.setSendMerchantId(wco.getSendMerchantId()); | |||||
| if (null != wco.getSendMerchantId()) { | |||||
| WxMerchant smerchant = wxMerchantMapper.selectById(wco.getSendMerchantId()); | |||||
| if (null != smerchant) { | |||||
| _ao.setSendMerchantName(smerchant.getName()); | |||||
| } | |||||
| } | |||||
| if (wco.getCouponOrderStatus().intValue() == EnumCouponOrderStatus.COUPON_ORDER_USED.getCode().intValue()) { | |||||
| _ao.setVerifyTime(wco.getUpdateDate()); | |||||
| } | |||||
| _ao.setCouponOrderStatus(wco.getCouponOrderStatus()); | |||||
| aiOrderService.saveOrUpdate(_ao); | |||||
| } | |||||
| }catch(Exception e) { | |||||
| logger.error("aiOrder updateOrderSchedule error.mall:"+mall.getTenantId(),e); | |||||
| } | |||||
| } | |||||
| } | |||||
| }catch(Exception e) { | |||||
| logger.error("aiOrder updateOrderSchedule error.mall:"+mall.getTenantId(),e); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -59,7 +59,7 @@ public class AiOrder extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value = "品牌名称", name = "brandName") | @io.swagger.annotations.ApiModelProperty(value = "品牌名称", name = "brandName") | ||||
| private String brandName; | private String brandName; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "业态", name = "bussiness") | @io.swagger.annotations.ApiModelProperty(value = "业态", name = "bussiness") | ||||
| private Long bussiness; | |||||
| private Integer bussiness; | |||||
| @io.swagger.annotations.ApiModelProperty(value = "品牌名称", name = "bussinessName") | @io.swagger.annotations.ApiModelProperty(value = "品牌名称", name = "bussinessName") | ||||
| private String bussinessName; | private String bussinessName; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "店铺号", name = "shopNumber") | @io.swagger.annotations.ApiModelProperty(value = "店铺号", name = "shopNumber") | ||||
| @@ -84,6 +84,18 @@ public class AiOrder extends TenantEntity { | |||||
| private String ownerNickName; | private String ownerNickName; | ||||
| @io.swagger.annotations.ApiModelProperty(value = "EnumCouponOrderStatus", name = "couponOrderStatus") | @io.swagger.annotations.ApiModelProperty(value = "EnumCouponOrderStatus", name = "couponOrderStatus") | ||||
| private Integer couponOrderStatus; | private Integer couponOrderStatus; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private List<Integer> couponOrderStatusList; | private List<Integer> couponOrderStatusList; | ||||
| @TableField(exist = false) | |||||
| private Integer noCouponOrder; | |||||
| @TableField(exist = false) | |||||
| private Integer hasCouponOrder; | |||||
| @TableField(exist = false) | |||||
| private Integer noCouponOrderStatus; | |||||
| @TableField(exist = false) | |||||
| private Integer needUpdateCouponOrderStatus; | |||||
| @TableField(exist = false) | |||||
| private Date lastCreateDate; | |||||
| } | } | ||||
| @@ -0,0 +1,20 @@ | |||||
| package com.iformall.domain.po.msg; | |||||
| import java.util.List; | |||||
| import com.iformall.domain.po.WxOrder; | |||||
| import lombok.Data; | |||||
| import lombok.EqualsAndHashCode; | |||||
| import lombok.ToString; | |||||
| @Data | |||||
| @ToString(callSuper = true) | |||||
| @EqualsAndHashCode(callSuper = true) | |||||
| public class FmInsideCreateOrderMsg extends BaseMsg{ | |||||
| private static final long serialVersionUID = -1136114221897577385L; | |||||
| @io.swagger.annotations.ApiModelProperty(value = "", name = "") | |||||
| private List<WxOrder> orderList; | |||||
| } | |||||
| @@ -43,6 +43,8 @@ public enum EnumMsgRecordType { | |||||
| BILL_PAID(115,"账单支付回调"), | BILL_PAID(115,"账单支付回调"), | ||||
| CREATE_COUPASSWORD(116,"账单支付回调"), | CREATE_COUPASSWORD(116,"账单支付回调"), | ||||
| CREATE_ORDER(117,"创建订单后"), | |||||
| INSIDE_ORDER_PUSH_DELIVERY(200, "2.0核销同步"), | INSIDE_ORDER_PUSH_DELIVERY(200, "2.0核销同步"), | ||||
| ; | ; | ||||
| @@ -17,6 +17,8 @@ public interface AiOrderService { | |||||
| */ | */ | ||||
| PageInfo<AiOrder> listAsPage(AiOrder record, Integer pageIndex, Integer pageSize); | PageInfo<AiOrder> listAsPage(AiOrder record, Integer pageIndex, Integer pageSize); | ||||
| List<AiOrder> list(AiOrder record); | |||||
| /** | /** | ||||
| * 根据Id获得实体 | * 根据Id获得实体 | ||||
| * | * | ||||
| @@ -7,6 +7,8 @@ import com.iformall.domain.po.AiOrder; | |||||
| import com.iformall.mapper.AiOrderMapper; | import com.iformall.mapper.AiOrderMapper; | ||||
| import com.iformall.service.AiOrderService; | import com.iformall.service.AiOrderService; | ||||
| import java.util.List; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -24,6 +26,11 @@ public class AiOrderServiceImpl implements AiOrderService { | |||||
| public PageInfo<AiOrder> listAsPage(AiOrder record, Integer pageIndex, Integer pageSize) { | public PageInfo<AiOrder> listAsPage(AiOrder record, Integer pageIndex, Integer pageSize) { | ||||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> aiOrderMapper.findList(record)); | return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> aiOrderMapper.findList(record)); | ||||
| } | } | ||||
| @Override | |||||
| public List<AiOrder> list(AiOrder record) { | |||||
| return aiOrderMapper.findList(record); | |||||
| } | |||||
| @Override | @Override | ||||
| public AiOrder getById(Long id,String tenantId) { | public AiOrder getById(Long id,String tenantId) { | ||||
| @@ -3089,6 +3089,7 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| WxComposeOrder composeOrder = orderAdapterService.createDBMainOrder(tenantEntity,user, orderSave, payWay,payVersion); | WxComposeOrder composeOrder = orderAdapterService.createDBMainOrder(tenantEntity,user, orderSave, payWay,payVersion); | ||||
| Date orderDate = new Date(); | Date orderDate = new Date(); | ||||
| WxOrder lastOrder = null; | WxOrder lastOrder = null; | ||||
| List<WxOrder> orderList = new ArrayList<WxOrder>(); | |||||
| for (int i = 0 ; i < orderSave.size(); i ++) { | for (int i = 0 ; i < orderSave.size(); i ++) { | ||||
| OrderComposeSaveDto orderdto = orderSave.get(i); | OrderComposeSaveDto orderdto = orderSave.get(i); | ||||
| @@ -3096,21 +3097,25 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder(); | boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder(); | ||||
| if (isOneNumberOneOrder) { | if (isOneNumberOneOrder) { | ||||
| for (int j = 0; j < orderdto.getCount(); j++) { | for (int j = 0; j < orderdto.getCount(); j++) { | ||||
| lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), 1, | |||||
| WxOrder _order = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), 1, | |||||
| orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(), | orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(), | ||||
| orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion); | orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion); | ||||
| lastOrder = _order; | |||||
| orderList.add(_order); | |||||
| } | } | ||||
| }else { | }else { | ||||
| lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), orderdto.getCount(), | lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), orderdto.getCount(), | ||||
| orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(), | orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(), | ||||
| orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion); | orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion); | ||||
| orderList.add(lastOrder); | |||||
| } | } | ||||
| } | } | ||||
| //如果没有orderId,则用lastOrder的信息 | //如果没有orderId,则用lastOrder的信息 | ||||
| if (EnumComposeOrder.isSingle(composeOrderType.getCode())) { | if (EnumComposeOrder.isSingle(composeOrderType.getCode())) { | ||||
| composeOrder.setSingleOrder(lastOrder); | composeOrder.setSingleOrder(lastOrder); | ||||
| } | } | ||||
| return composeOrder; | |||||
| composeOrder.setOrderList(orderList); | |||||
| return composeOrder; | |||||
| } | } | ||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| @@ -3700,6 +3705,10 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); | WxOrderServiceImpl proxy = (WxOrderServiceImpl) AopContext.currentProxy(); | ||||
| try { | try { | ||||
| WxComposeOrder order = proxy.saveOrderForCoupon(tenantEntity,allowUnPayOrder,composeOrderType,wxCUserBasicInfo, composeOrderSaveDto, payWay,payVersion); | WxComposeOrder order = proxy.saveOrderForCoupon(tenantEntity,allowUnPayOrder,composeOrderType,wxCUserBasicInfo, composeOrderSaveDto, payWay,payVersion); | ||||
| //aiOrder | |||||
| if (null != order && null != order.getOrderList() && order.getOrderList().size() > 0 ) { | |||||
| sendInsideCreateOrderMsg(tenantEntity,order.getOrderList()); | |||||
| } | |||||
| return new ResultData(order); | return new ResultData(order); | ||||
| } catch (MallinkException e) { | } catch (MallinkException e) { | ||||
| logger.error("saveOrderForCoupon error.",e); | logger.error("saveOrderForCoupon error.",e); | ||||
| @@ -3718,6 +3727,20 @@ public class WxOrderServiceImpl implements WxOrderService { | |||||
| } | } | ||||
| private void sendInsideCreateOrderMsg(TenantEntity tenantEntity,List<WxOrder> orderList) { | |||||
| try{ | |||||
| FmInsideCreateOrderMsg orderPush = new FmInsideCreateOrderMsg(); | |||||
| orderPush.setDelayTimeLevel(5); | |||||
| orderPush.setMsgType(EnumMsgRecordType.CREATE_ORDER.getCode()); | |||||
| orderPush.updateTenantInfo(tenantEntity); | |||||
| orderPush.setOrderList(orderList); | |||||
| logger.info(">>>>>>>>>>>send sendInsideCreateOrderMsg :"+orderPush); | |||||
| mqBaseProducer.sendMessage(orderPush, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); | |||||
| }catch(Exception e){ | |||||
| logger.error(">>>>>>>>>>>send sendInsideCreateOrderMsg : error"+e.getMessage()); | |||||
| } | |||||
| } | |||||
| @Override | @Override | ||||
| public void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId,Integer thirdType) { | public void sendInsideOrderPushMsg(TenantEntity tenantEntity,Long composeOrderId,Integer thirdType) { | ||||
| try{ | try{ | ||||
| @@ -0,0 +1,45 @@ | |||||
| package com.iformall.service.msg.impl; | |||||
| import com.iformall.domain.po.AiOrder; | |||||
| import com.iformall.domain.po.WxOrder; | |||||
| import com.iformall.domain.po.msg.BaseMsg; | |||||
| import com.iformall.domain.po.msg.FmInsideCreateOrderMsg; | |||||
| import com.iformall.service.AiOrderService; | |||||
| import com.iformall.service.msg.MsgSendService; | |||||
| import org.slf4j.Logger; | |||||
| import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.stereotype.Service; | |||||
| import java.util.List; | |||||
| /** | |||||
| * | |||||
| */ | |||||
| @Service | |||||
| public class FmInsideCreateOrderMsgServiceImpl implements MsgSendService { | |||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||||
| @Autowired | |||||
| private AiOrderService aiOrderService; | |||||
| @Override | |||||
| public void send(BaseMsg baseMsg) throws Exception{ | |||||
| FmInsideCreateOrderMsg createOrderMsg = (FmInsideCreateOrderMsg)baseMsg; | |||||
| List<WxOrder> orderList = createOrderMsg.getOrderList(); | |||||
| if (null != orderList && orderList.size() > 0 ) { | |||||
| for (int i = 0 ; i < orderList.size(); i++) { | |||||
| WxOrder o = orderList.get(i); | |||||
| AiOrder ao = new AiOrder(); | |||||
| ao.updateTenantInfo(createOrderMsg.getTenantInfo()); | |||||
| ao.setOrderId(o.getId()); | |||||
| ao.setCreateDate(o.getCreateDate()); | |||||
| ao.setUpdateDate(o.getUpdateDate()); | |||||
| aiOrderService.saveOrUpdate(ao); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -34,4 +34,6 @@ public class WxComposeOrder extends TenantEntity{ | |||||
| private List<Map<String,String>> extParam;//处理其他返回参数 | private List<Map<String,String>> extParam;//处理其他返回参数 | ||||
| private List<WxOrder> orderList;//创建的订单列表 | |||||
| } | } | ||||
| @@ -19,7 +19,7 @@ | |||||
| <result column="b_merchant_name" jdbcType="VARCHAR" property="bMerchantName" /> | <result column="b_merchant_name" jdbcType="VARCHAR" property="bMerchantName" /> | ||||
| <result column="brand_id" jdbcType="BIGINT" property="brandId" /> | <result column="brand_id" jdbcType="BIGINT" property="brandId" /> | ||||
| <result column="brand_name" jdbcType="VARCHAR" property="brandName" /> | <result column="brand_name" jdbcType="VARCHAR" property="brandName" /> | ||||
| <result column="bussiness" jdbcType="BIGINT" property="bussiness" /> | |||||
| <result column="bussiness" jdbcType="INTEGER" property="bussiness" /> | |||||
| <result column="bussiness_name" jdbcType="VARCHAR" property="bussinessName" /> | <result column="bussiness_name" jdbcType="VARCHAR" property="bussinessName" /> | ||||
| <result column="shop_number" jdbcType="VARCHAR" property="shopNumber" /> | <result column="shop_number" jdbcType="VARCHAR" property="shopNumber" /> | ||||
| <result column="send_merchant_id" jdbcType="INTEGER" property="sendMerchantId" /> | <result column="send_merchant_id" jdbcType="INTEGER" property="sendMerchantId" /> | ||||
| @@ -82,6 +82,22 @@ | |||||
| and `send_merchant_id` = #{sendMerchantId} | and `send_merchant_id` = #{sendMerchantId} | ||||
| </if> | </if> | ||||
| <if test=" null != noCouponOrder "> | |||||
| and `coupon_order_id` is null | |||||
| </if> | |||||
| <if test=" null != hasCouponOrder "> | |||||
| and `coupon_order_id` is not null | |||||
| </if> | |||||
| <if test=" null != noCouponOrderStatus "> | |||||
| and `coupon_order_status` is null | |||||
| </if> | |||||
| <if test=" null != needUpdateCouponOrderStatus "> | |||||
| and ( `coupon_order_status` is null or coupon_order_status = 0 ) | |||||
| </if> | |||||
| <if test=" null != lastCreateDate "> | |||||
| and create_date < #{lastCreateDate} | |||||
| </if> | |||||
| <if test=" null != couponOrderStatusList "> | <if test=" null != couponOrderStatusList "> | ||||
| and coupon_order_status in | and coupon_order_status in | ||||
| <foreach collection="couponOrderStatusList" index="index" item="cosidItem" open="(" separator="," close=")"> | <foreach collection="couponOrderStatusList" index="index" item="cosidItem" open="(" separator="," close=")"> | ||||