From ba3c255cbfc3fd6ff0708dca96c9e256c690e370 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 13 Apr 2021 13:28:36 +0800
Subject: [PATCH] 修改订单物流查询信息
---
zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java | 144 ++++++++--------
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java | 29 +++
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java | 9
zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java | 8
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java | 2
zq-erp/src/main/resources/config/db/increment/推广员.sql | 4
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java | 197 +++++++++++++++++----
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java | 23 ++
zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java | 32 +--
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml | 71 +------
zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java | 2
11 files changed, 321 insertions(+), 200 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
index d1ad6a3..02099a7 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WXShopOrderAction.java
@@ -1,30 +1,43 @@
package com.matrix.system.shopXcx.api.action;
-import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
-import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
+import com.matrix.config.RabbitMqConfig;
import com.matrix.core.constance.SystemErrorCode;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.system.common.constance.AppConstance;
+import com.matrix.system.hive.bean.MoneyCardUse;
+import com.matrix.system.hive.bean.MoneyCardUseFlow;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.MoneyCardUseDao;
+import com.matrix.system.hive.dao.MoneyCardUseFlowDao;
import com.matrix.system.hive.dao.ShoppingGoodsDao;
import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.score.dao.ScoreVipDetailDao;
import com.matrix.system.shopXcx.api.pojo.OrderInfoQueryPOJO;
import com.matrix.system.shopXcx.api.pojo.ShopOrderDto;
import com.matrix.system.shopXcx.api.service.OrderCouponGroupService;
import com.matrix.system.shopXcx.api.service.ShoppingCartService;
import com.matrix.system.shopXcx.api.service.WXShopOrderService;
import com.matrix.system.shopXcx.api.service.WxShopCouponService;
-import com.matrix.system.shopXcx.api.tools.WxShopCouponUtil;
-import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
+import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoin;
+import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoinUser;
import com.matrix.system.shopXcx.bean.ShopOrder;
+import com.matrix.system.shopXcx.bean.ShopPayLog;
import com.matrix.system.shopXcx.dao.*;
+import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
+import java.util.*;
/**
@@ -42,16 +55,10 @@
@Autowired
WxShopCouponService wxShopCouponService;
- @Autowired
- private ShopReceiveAddressDao shopReceiveAddressDao;
@Autowired
ShoppingCartService shoppingCartService;
- @Autowired
- private ShopCouponDao shopCouponDao;
- @Autowired
- private WxShopCouponUtil wxShopCouponUtil;
@Autowired
private RedisUserLoginUtils redisUserLoginUtils;
@@ -64,20 +71,39 @@
@Autowired
ShopProductDao shopProductDao;
- @Autowired
- private WxShopOrderUtil wxShopOrderUtil;
-
- @Autowired
- private ShopOrderDetailsDao shopOrderDetailsDao;
@Autowired
OrderCouponGroupService orderCouponGroupService;
+
+ @Autowired
+ private ShopPayLogDao shopPayLogDao;
@Autowired
ShopOrderDao shopOrderDao;
@Autowired
SysVipInfoDao sysVipInfoDao;
+
+ @Autowired
+ private ShopActivitiesGroupJoinUserDao shopActivitiesGroupJoinUserDao;
+
+ @Autowired
+ private ShopActivitiesGroupJoinDao shopActivitiesGroupJoinDao;
+
+ @Autowired
+ private RabiitMqTemplate rabiitMqTemplate;
+
+ @Autowired
+ ShoppingGoodsDao shoppingGoodsDao;
+
+ @Autowired
+ MoneyCardUseFlowDao moneyCardUseFlowDao;
+
+ @Autowired
+ MoneyCardUseDao moneyCardUseDao;
+
+ @Value("${evn}")
+ private String evn;
/**
* 计算购物车订单价格
@@ -90,17 +116,15 @@
public
@ResponseBody
AjaxResult calculationCartOrder(@RequestBody ShopOrderDto shopOrderDto) throws Exception {
-
-
return shopOrderService.buildDiscountExplain(shopOrderDto);
}
@Autowired
- ShoppingGoodsDao shoppingGoodsDao;
+ private ScoreVipDetailDao scoreVipDetailDao;
/**
- * 新增订单
+ * 新增微信支付订单
*
* @param shopOrderDto
* @return
@@ -108,43 +132,128 @@
@PostMapping(value = "/addShopOrder")
public
@ResponseBody
- AjaxResult addShopOrder(@RequestBody ShopOrderDto shopOrderDto) throws Exception {
- return shopOrderService.createShopOrder(shopOrderDto);
+ AjaxResult addShopOrder(@RequestBody @Validated ShopOrderDto shopOrderDto) throws Exception {
+
+ ShopOrder shopOrder = shopOrderService.createShopOrder(shopOrderDto);
+ AjaxResult result = AjaxResult.buildSuccessInstance("订单创建成功");
+ result.putInMap("orderId", shopOrder.getId());
+ if (shopOrderDto.getPayMethod().equals(ShopOrder.SHOP_ORDER_PAY_METHOD_WX)) {
+ BrandWCPayRequestData payData = shopOrderService.startPayment(shopOrder);
+ result.setRows(Arrays.asList(payData));
+ }
+ return result;
}
- @Value("${wx_pay_debug_onoff}")
- private boolean isDebug;
- @Autowired
- private WeixinServiceUtil weixinServiceUtil;
-
/**
- * 开始付款
+ * 余额支付确认
*
- * @param shopOrder
+ * @param orderId
* @return
* @throws Exception
*/
- public BrandWCPayRequestData startPayment(ShopOrder shopOrder) throws Exception {
- BigDecimal unit = new BigDecimal("100");
- BigDecimal money = new BigDecimal(shopOrder.getOrderMoney().toString());
- BrandWCPayRequestData payData;
- String productNames = wxShopOrderUtil.getProductNames(shopOrder.getUserId(), shopOrder.getId());
- SysVipInfo vipInfo = sysVipInfoDao.selectById(shopOrder.getUserId());
+ @PostMapping(value = "/moneyCardPay/{orderId}")
+ @ResponseBody
+ @Transactional
+ public AjaxResult moneyCardPay(@PathVariable Integer orderId) throws Exception {
- if (isDebug) {
- payData = weixinServiceUtil.createOrder("[测试]" + productNames, shopOrder.getOrderNo(),
- 1, vipInfo.getOpenId(), String.valueOf(shopOrder.getId()));
+ ShopOrder order = shopOrderDao.selectById(orderId);
+ if (order != null
+ && ShopOrder.SHOP_ORDER_PAY_METHOD_VIPCARD == order.getPayMethod()
+ && ShopOrder.ORDER_PAY_STATUS_WAIT == order.getPayStatus()) {
+
+ MoneyCardUse moneyCardUse = moneyCardUseDao.selectVipCard(order.getUserId());
+ Double balance=moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney();
+ if(balance>=order.getOrderMoney().doubleValue()){
+ //扣减会员卡余额
+ if(moneyCardUse.getRealMoney()>=order.getOrderMoney().doubleValue()){
+ moneyCardUse.setRealMoney(moneyCardUse.getRealMoney()-order.getOrderMoney().doubleValue());
+ }else{
+ moneyCardUse.setGiftMoney(moneyCardUse.getGiftMoney()-(order.getOrderMoney().doubleValue()- moneyCardUse.getRealMoney() ));
+ moneyCardUse.setRealMoney(0D);
+ }
+ moneyCardUseDao.update(moneyCardUse);
+ //插入扣减记录
+ MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow();
+ moneyCardUseFlow.setTotal(order.getOrderMoney().doubleValue());
+ moneyCardUseFlow.setCarUseId(moneyCardUse.getId());
+ moneyCardUseFlow.setVipId(order.getUserId());
+ moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CONSUMER);
+ moneyCardUseFlow.setOrderNo(order.getOrderNo());
+ moneyCardUseFlow.setCreateTime(new Date());
+ moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney());
+ moneyCardUseFlow.setCardName(moneyCardUse.getCardName());
+ moneyCardUseFlowDao.insert(moneyCardUseFlow);
+
+ //构建需要修改订单信息Map
+ Map<String, Object> modifyMap = new HashMap<>();
+ modifyMap.put("id", order.getId());
+ //设置微信支付状态为已支付
+ modifyMap.put("payResult", ShopOrder.ORDER_WX_STATUS_PAY_SUCCESS);
+ //设置支付状态为支付成功
+ modifyMap.put("payStatus", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+ //如果是商品订单则进入待发货
+ modifyMap.put("orderStatus", ShopOrder.ORDER_STATUS_WAIT_SEND);
+ shopOrderDao.updateByMap(modifyMap);
+
+ // 判断该订单是否为拼团产生的订单
+ ShopActivitiesGroupJoinUser joinUser = shopActivitiesGroupJoinUserDao.selectGroupJoinUserByOrderId(order.getId().longValue());
+ if (joinUser != null) {
+ joinUser.setIsHasPay(ShopActivitiesGroupJoinUser.IS_HAS_PAY_Y);
+ shopActivitiesGroupJoinUserDao.updateByModel(joinUser);
+
+ ShopActivitiesGroupJoin groupJoin = shopActivitiesGroupJoinDao.selectGroupAndPriceById(joinUser.getGjId());
+ List<ShopActivitiesGroupJoinUser> joinUserList = shopActivitiesGroupJoinUserDao.selectGroupJoinUserListByGjId(joinUser.getGjId());
+ LogUtil.info("#当前已支付完成:{}#", joinUserList.size());
+ // 若拼团中已支付的数量等于几人团预设值,则更新拼团状态为拼团成功
+ if (groupJoin.getGroupPrice().getGpCount() == joinUserList.size()) {
+ groupJoin.setGjStatus(ShopActivitiesGroupJoin.ACTIVITIES_JOIN_SUCCESS);
+ } else {
+ if (joinUser.getUserId().equals(groupJoin.getGjHeadId())) {
+ groupJoin.setGjStatus(ShopActivitiesGroupJoin.ACTIVITIES_JOIN_ING);
+ }
+ }
+ shopActivitiesGroupJoinDao.updateByModel(groupJoin);
+
+ SysVipInfo sysVipInfo = sysVipInfoDao.selectByPhone(order.getUserTel());
+ if (sysVipInfo != null) {
+ sysVipInfo.setIsDeal(SysVipInfo.DEAL_VIP);
+ sysVipInfoDao.update(sysVipInfo);
+ }
+ }
+
+ // 根据订单类型创建不同的处理任务
+ rabiitMqTemplate.sendTopicMsg(RabbitMqConfig.MQ_EXCHANGE_TOPIC + evn, MQTaskRouting.CREATE_ORDER + evn, orderId + "");
+ //支付记录
+ recordPayLog(Integer.valueOf(orderId), 1, order.getOrderNo(), order.getOrderMoney(), "会员卡余额支付成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+
+ return AjaxResult.buildSuccessInstance("支付成功");
+
+ }else{
+ return AjaxResult.buildFailInstance("会员卡余额不足");
+ }
+
} else {
- payData = weixinServiceUtil.createOrder(productNames, shopOrder.getOrderNo(),
- unit.multiply(money).intValue(), vipInfo.getOpenId(), String.valueOf(shopOrder.getId()));
+ LogUtil.info("订单状态不为待付款,order status=", order.getOrderStatus());
+ return AjaxResult.buildFailInstance("订单不支持本次结算");
}
- ShopOrder updateParam = new ShopOrder();
- updateParam.setId(shopOrder.getId());
- updateParam.setWxOrderNo(payData.getPrepay_id());
- shopOrderDao.updateByModel(updateParam);
- return payData;
+
+ }
+
+
+ private void recordPayLog(Integer orderId, Integer type, String orderNo, BigDecimal payMoney, String payRemark, int payStatus) {
+ //设置支付类型为收款
+ ShopPayLog payLog = new ShopPayLog();
+ payLog.setPayType(type);
+ payLog.setJoinId(orderId);
+ payLog.setPayMoney(payMoney);
+ payLog.setPayOrderNo(orderNo);
+ payLog.setPayRemark(payRemark);
+ payLog.setPayStatus(payStatus);
+ payLog.setCreateBy(AppConstance.SYSTEM_USER);
+ payLog.setUpdateBy(AppConstance.SYSTEM_USER);
+ shopPayLogDao.insert(payLog);
}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
index d36a21e..b54a0bc 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
@@ -204,7 +204,7 @@
resXml = AppConstance.RESULT_XML_SUCCESS;
//支付记录
- recordPayLog(Integer.valueOf(orderId), 1, order.getOrderNo(), payMoney, payLog, "支付成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+ recordPayLog(Integer.valueOf(orderId), 1, order.getOrderNo(), payMoney, "支付成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
} else {
@@ -306,7 +306,7 @@
BigDecimal.ROUND_HALF_DOWN).doubleValue();
if (moneyCardUseFlow.getCarUseId()==null) {
- ShopPayLog payLog = new ShopPayLog();
+
if(payMoney.equals(moneyCardUseFlow.getTotal())){
threadResult.putInMap("status", "success");
resXml = AppConstance.RESULT_XML_SUCCESS;
@@ -321,7 +321,7 @@
moneyCardUseDao.update(moneyCardUse);
//充值记录
- recordPayLog(Integer.valueOf(moneyCardUseFlowId),2,moneyCardUseFlow.getPayNo(),new BigDecimal(payMoney), payLog, "充值成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
+ recordPayLog(Integer.valueOf(moneyCardUseFlowId),2,moneyCardUseFlow.getPayNo(),new BigDecimal(payMoney), "充值成功", ShopOrder.ORDER_PAY_STATUS_SUCCESS);
}else{
LogUtil.debug("支付金额不一致,检查支付金额payMoney={},order.getPayMoney()={}", payMoney, moneyCardUseFlow.getTotal());
threadResult.putInMap("status", "err");
@@ -367,8 +367,9 @@
- private void recordPayLog(Integer orderId, Integer type,String orderNo, BigDecimal payMoney, ShopPayLog payLog, String payRemark, int payStatus) {
+ private void recordPayLog(Integer orderId, Integer type,String orderNo, BigDecimal payMoney, String payRemark, int payStatus) {
//设置支付类型为收款
+ ShopPayLog payLog=new ShopPayLog();
payLog.setPayType(type);
payLog.setJoinId(orderId);
payLog.setPayMoney(payMoney);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
index 2b18016..be20797 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
@@ -58,6 +58,26 @@
@Autowired
CodeService codeService;
+
+
+
+ @ApiOperation(value = "查询会员主卡", notes = "")
+ @PostMapping(value = "/getUserVipCard")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "ok", response = WxMoneyCardUseVO.class)
+ })
+ public AjaxResult getUserVipCard() {
+ SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.eq("vip_id", sysVipInfo.getId());
+ queryWrapper.eq("is_vip_car","Y");
+ MoneyCardUse moneyCardUse = moneyCardUseV2Dao.selectOne(queryWrapper);
+ WxMoneyCardUseVO vo = new WxMoneyCardUseVO();
+ BeanUtils.copyProperties(moneyCardUse, vo);
+ return AjaxResult.buildSuccessInstance(vo);
+ }
+
+
@ApiOperation(value = "查询会员储值卡", notes = "")
@PostMapping(value = "/getUserMoneyCardUseList")
@ApiResponses({
@@ -77,6 +97,9 @@
return AjaxResult.buildSuccessInstance(rows);
}
+
+
+
@ApiOperation(value = "创建储值卡充值预付单", notes = "传入参数 {rechargeAmount:10} 最少充值1元,最多2位小数 ")
@PostMapping(value = "/createRechargeOrder")
@ApiResponses({
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java
index bf3e8a1..c77ba64 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopLogisticsQueryAction.java
@@ -68,6 +68,8 @@
}
logisticsInfo.put("isShipments",AppConstance.IS_SHIPMENTS);
logisticsInfo.put("logisticsStatus",shopDeliveryInfo.getLogisticsStatus()==null?"0":String.valueOf(shopDeliveryInfo.getLogisticsStatus()));
+ logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
+ logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
logisticsInfo.put("describe",describe);
result.setStatus(AjaxResult.STATUS_SUCCESS);
result.putInMap("logisticsInfo",logisticsInfo);
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java
index ad131b4..a5fa5e3 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/pojo/ShopOrderDto.java
@@ -2,6 +2,7 @@
import lombok.Data;
+import javax.validation.constraints.NotNull;
import java.util.List;
/**
@@ -15,6 +16,7 @@
/**
* 收货地址ID
*/
+ @NotNull(message = "请选择正确的收获地址")
private Integer receiveAddrId;
/**
@@ -37,7 +39,11 @@
*/
private Integer joinActive;
-
+ /**
+ * 支付方式1微信,2 vipCard余额
+ */
+ @NotNull(message = "请选择支付方式")
+ private Integer payMethod;
/**
* 订单备注
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java
index da0f5e4..8430dc5 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/WXShopOrderService.java
@@ -23,7 +23,7 @@
* @return
* @throws Exception
*/
- AjaxResult createShopOrder(ShopOrderDto shopOrderDto) throws Exception;
+ ShopOrder createShopOrder(ShopOrderDto shopOrderDto) throws Exception;
/**
* 订单结算
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
index e702535..7e20e42 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WXShopOrderServiceImpl.java
@@ -3,7 +3,6 @@
import cn.hutool.core.collection.CollUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
-import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.component.rabbitmq.RabiitMqTemplate;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.component.tools.WxUtils;
@@ -17,6 +16,7 @@
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.common.dao.CustomerDataDictionaryDao;
import com.matrix.system.common.interceptor.HostInterceptor;
+import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.dao.ShoppingGoodsDao;
import com.matrix.system.hive.dao.SysVipInfoDao;
import com.matrix.system.score.dao.ScoreVipDetailDao;
@@ -29,7 +29,6 @@
import com.matrix.system.shopXcx.api.service.ShoppingCartService;
import com.matrix.system.shopXcx.api.service.WXShopOrderService;
import com.matrix.system.shopXcx.api.service.WxShopCouponService;
-import com.matrix.system.shopXcx.api.tools.WxShopCouponUtil;
import com.matrix.system.shopXcx.api.tools.WxShopOrderUtil;
import com.matrix.system.shopXcx.api.vo.CouponReceiveInfoVO;
import com.matrix.system.shopXcx.bean.*;
@@ -55,8 +54,6 @@
@Autowired
private WxShopOrderUtil wxShopOrderUtil;
@Autowired
- private WxShopCouponUtil wxShopCouponUtil;
- @Autowired
private RedisUserLoginUtils redisUserLoginUtils;
@Autowired
private WeixinServiceUtil weixinServiceUtil;
@@ -68,8 +65,6 @@
private ShopOrderDao shopOrderDao;
@Autowired
private ShopOrderDetailsDao shopOrderDetailsDao;
- @Autowired
- private ShopCouponDao shopCouponDao;
@Autowired
private ShopProductDao shopProductDao;
@Autowired
@@ -131,27 +126,25 @@
*/
@Transactional(rollbackFor = Exception.class)
@Override
- public AjaxResult createShopOrder(ShopOrderDto shopOrderDto) throws Exception {
+ public ShopOrder createShopOrder(ShopOrderDto shopOrderDto) throws Exception {
SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
- //校验收货地址
+
ShopReceiveAddress shopReceiveAddress = shopReceiveAddressDao.selectById(shopOrderDto.getReceiveAddrId());
- if (shopReceiveAddress == null) {
- return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择正确的收获地址");
- }
+
//计算订单优惠信息
AjaxResult caculateResult= buildDiscountExplain(shopOrderDto);
DiscountExplain discountExplain= (DiscountExplain) caculateResult.getMapInfo().get("discountExplain");
-
if(discountExplain.getScorePay()!=null){
//校验用户积分是否够用
int score=scoreVipDetailDao.selectUserTotalScore(sysVipInfo.getId());
if(score<discountExplain.getScorePay()){
- return AjaxResult.buildFailInstance("积分不足");
+ throw new GlobleException("积分不足");
}
}
+
ShopOrder shopOrder = new ShopOrder();
shopOrder.setCompanyId(sysVipInfo.getCompanyId());
@@ -256,11 +249,8 @@
- BrandWCPayRequestData payData = startPayment(shopOrder);
- AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, Arrays.asList(payData));
- result.putInMap("orderId", shopOrder.getId());
- return result;
+ return shopOrder;
}
@Override
@@ -392,11 +382,15 @@
@Override
public AjaxResult orderSettlement(int orderId) throws Exception {
ShopOrder shopOrder = shopOrderDao.selectById(orderId);
+
if (shopOrder == null) {
- throw new GlobleException("订单不存在!");
+ return AjaxResult.buildFailInstance("订单不存在!");
+ }
+ if (ShopOrder.SHOP_ORDER_PAY_METHOD_WX != shopOrder.getPayMethod()) {
+ return AjaxResult.buildFailInstance("支付方式错误");
}
if (!shopOrder.getPayResult().equals(ShopOrder.ORDER_PAY_STATUS_WAIT)) {
- throw new GlobleException("该订单不是待支付状态!");
+ return AjaxResult.buildFailInstance("该订单不是待支付状态!");
}
if(shopOrder.getScorePay()!=null){
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java
index 92cf088..d5fc4b5 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/service/impl/WxShopLogisticsQueryServiceImpl.java
@@ -79,76 +79,72 @@
List<ShopLogisticsInfo> shopLogisticsList = new ArrayList<ShopLogisticsInfo>();
AjaxResult result = new AjaxResult();
Map<String, String> logisticsInfo = new HashMap<String, String>();
- try {
- if (shopDeliveryInfo == null) {
- return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
- }
- if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
- return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
- }
- logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
- logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
- //如果已经签收直接查数据库
- if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
-
- List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
- logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
- result.setStatus(AjaxResult.STATUS_SUCCESS);
- result.setRows(shopLogisticsInfos);
- result.putInMap("logisticsInfo", logisticsInfo);
- return result;
- }
- Map<String, String> param = new HashMap<String, String>();
- param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
- param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
- Map<String, String> paramsUrl = getparams(param);
- LogUtil.info("物流查询参数" + paramsUrl);
- String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
- LogUtil.info("查询物流返回信息" + logisticsResult);
- LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
- if (logisticsInfoVo.isSuccess()) {
- ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
- shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
- shopDelivery.setId(shopDeliveryInfo.getId());
- logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
- //更新物流状态
- shopDeliveryInfoDao.updateByModel(shopDelivery);
- if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
- List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
- for (int i = 0; i < mapTraces.size(); i++) {
- ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
- shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
- shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
- shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
- String acceptStation = mapTraces.get(i).get("AcceptStation");
- shopLogisticsInfo.setDescribe(acceptStation);
- shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
- if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
- shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
- } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
- shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
- } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
- shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
- } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
- shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
- } else {
- shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
- }
- shopLogisticsList.add(shopLogisticsInfo);
- }
- shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
- if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
- shopLogisticsInfoDao.batchInsert(shopLogisticsList);
- }
- }
- } else {
- throw new GlobleException(logisticsInfoVo.getReason());
- }
-
- } catch (Exception e) {
- throw new GlobleException("物流信息查询失败");
+ if (shopDeliveryInfo == null) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "找不到发货信息");
}
+ if (!StringUtils.isNotBlank(shopDeliveryInfo.getWaybillNo()) || !StringUtils.isNotBlank(shopDeliveryInfo.getLogisticsCompanyCode())) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "物流公司信息为空");
+ }
+ logisticsInfo.put("logisticsCompany", shopDeliveryInfo.getLogisticsCompany());
+ logisticsInfo.put("waybillNo", shopDeliveryInfo.getWaybillNo());
+
+ //如果已经签收直接查数据库
+ if (AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR.equals(shopDeliveryInfo.getLogisticsStatus())) {
+
+ List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
+ logisticsInfo.put("logisticsStatus", String.valueOf(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR));
+ result.setStatus(AjaxResult.STATUS_SUCCESS);
+ result.setRows(shopLogisticsInfos);
+ result.putInMap("logisticsInfo", logisticsInfo);
+ return result;
+ }
+ Map<String, String> param = new HashMap<String, String>();
+ param.put("ShipperCode", shopDeliveryInfo.getLogisticsCompanyCode());
+ param.put("LogisticCode", shopDeliveryInfo.getWaybillNo());
+ Map<String, String> paramsUrl = getparams(param);
+ LogUtil.info("物流查询参数" + paramsUrl);
+ String logisticsResult = HttpCurlUtil.sendPost(logisticsUrl, paramsUrl);
+ LogUtil.info("查询物流返回信息" + logisticsResult);
+ LogisticsInfoVo logisticsInfoVo = JSON.parseObject(logisticsResult, LogisticsInfoVo.class);
+ if (logisticsInfoVo.isSuccess()) {
+ ShopDeliveryInfo shopDelivery = new ShopDeliveryInfo();
+ shopDelivery.setLogisticsStatus(Integer.valueOf(logisticsInfoVo.getState()));
+ shopDelivery.setId(shopDeliveryInfo.getId());
+ logisticsInfo.put("logisticsStatus", logisticsInfoVo.getState());
+ //更新物流状态
+ shopDeliveryInfoDao.updateByModel(shopDelivery);
+ if (CollectionUtils.isNotEmpty(logisticsInfoVo.getTraces())) {
+ List<Map<String, String>> mapTraces = logisticsInfoVo.getTraces();
+ for (int i = 0; i < mapTraces.size(); i++) {
+ ShopLogisticsInfo shopLogisticsInfo = new ShopLogisticsInfo();
+ shopLogisticsInfo.setCreateBy(AppConstance.SYSTEM_USER);
+ shopLogisticsInfo.setUpdateBy(AppConstance.SYSTEM_USER);
+ shopLogisticsInfo.setLogisticsTime(mapTraces.get(i).get("AcceptTime"));
+ String acceptStation = mapTraces.get(i).get("AcceptStation");
+ shopLogisticsInfo.setDescribe(acceptStation);
+ shopLogisticsInfo.setDelieryId(shopDeliveryInfo.getId());
+ if (acceptStation.indexOf(AppConstance.KDN_IS_SIGN) != -1) {
+ shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_SIGN_FOR);
+ } else if (acceptStation.indexOf(AppConstance.KDN_IS_RECEIVE) != -1) {
+ shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_RECEIVE);
+ } else if (acceptStation.indexOf(AppConstance.KDN_IS_ON_WAY) != -1) {
+ shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_ON_WAY);
+ } else if (acceptStation.indexOf(AppConstance.KDN_IS_MISTAKE) != -1) {
+ shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_MISTAKE);
+ } else {
+ shopLogisticsInfo.setState(AppConstance.LOGISTICS_STATUS_OF_NONE);
+ }
+ shopLogisticsList.add(shopLogisticsInfo);
+ }
+ shopLogisticsInfoDao.deleteByDelieryId(shopDeliveryInfo.getId());
+ if (CollectionUtils.isNotEmpty(shopLogisticsList)) {
+ shopLogisticsInfoDao.batchInsert(shopLogisticsList);
+ }
+ }
+ }
+
+
List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
result.setStatus(AjaxResult.STATUS_SUCCESS);
result.setRows(shopLogisticsInfos);
@@ -187,14 +183,18 @@
* @param map
* @return
*/
- private Map<String, String> getparams(Map<String, String> map) throws Exception {
+ private Map<String, String> getparams(Map<String, String> map) {
String params = JSON.toJSONString(map);
Map<String, String> paramsUrl = new HashMap<String, String>();
- paramsUrl.put("RequestData", URLEncoder.encode(params, "UTF-8"));
+ try {
+ paramsUrl.put("RequestData", URLEncoder.encode(params, "UTF-8"));
+ String dataSign = encrypt(params, appKey, "UTF-8");
+ paramsUrl.put("DataSign", URLEncoder.encode(dataSign, "UTF-8"));
+ } catch (Exception e) {
+ throw new GlobleException(e.getMessage());
+ }
paramsUrl.put("EBusinessID", eBusinessID);
paramsUrl.put("RequestType", requestType);
- String dataSign = encrypt(params, appKey, "UTF-8");
- paramsUrl.put("DataSign", URLEncoder.encode(dataSign, "UTF-8"));
paramsUrl.put("DataType", AppConstance.DATATYPE);
return paramsUrl;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
index e3003fe..f82f46d 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopOrder.java
@@ -17,9 +17,22 @@
public class ShopOrder extends EntityDTO {
/**
+ * 支付方式-微信支付
+ */
+ public static final int SHOP_ORDER_PAY_METHOD_WX = 1;
+
+ /**
+ * 支付方式-vip会籍卡
+ */
+ public static final int SHOP_ORDER_PAY_METHOD_VIPCARD = 2;
+
+
+
+ /**
* 订单微信支付状态(待支付)
*/
public static final int ORDER_WX_STATUS_WAIT_PAY = 1;
+
/**
* 订单微信支付状态(支付成功)
*/
@@ -162,7 +175,10 @@
* 支付状态(1=待支付,2=支付成功,3=支付失败)
*/
private Integer payStatus;
-
+ /**
+ * 支付方式1微信,2 vipCard余额
+ */
+ private Integer payMethod;
/**
* 优惠说明
@@ -491,10 +507,21 @@
this.delFlag = delFlag;
}
+
+ public Integer getPayMethod() {
+ return payMethod;
+ }
+
+ public void setPayMethod(Integer payMethod) {
+ this.payMethod = payMethod;
+ }
+
public String getWxOrderNo() {
return wxOrderNo;
}
+
+
public void setWxOrderNo(String wxOrderNo) {
this.wxOrderNo = wxOrderNo;
}
diff --git "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql" "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
index d29024c..36a5ba5 100644
--- "a/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
+++ "b/zq-erp/src/main/resources/config/db/increment/\346\216\250\345\271\277\345\221\230.sql"
@@ -227,7 +227,9 @@
ADD COLUMN `pay_no` varchar(32) NULL COMMENT '微信充值订单号';
-
+ALTER TABLE `shop_order`
+ ADD COLUMN `pay_method` int(2) NULL COMMENT '支付方式1微信,2 vipCard余额';
+update shop_order set pay_method=1;
ALTER TABLE `sys_vip_info`
ADD COLUMN `fenxiao_state` int(11) NULL DEFAULT NULL COMMENT '分销审核状态' AFTER `recommend_id`,
diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
index c584cfa..d475c2d 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderDao.xml
@@ -34,6 +34,7 @@
<result property="orderType" column="order_type" />
<result property="applyStatus" column="apply_status" />
<result property="scorePay" column="score_pay" />
+ <result property="payMethod" column="pay_method" />
<result property="companyId" column="company_id" />
</resultMap>
@@ -45,6 +46,7 @@
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
+ <result property="payMethod" column="pay_method" />
<result property="orderNo" column="order_no" />
<result property="orderMoney" column="order_money" />
<result property="commodityPrice" column="commodity_price" />
@@ -130,6 +132,8 @@
order_type,
activity_type,
score_pay,
+
+ pay_method,
company_id
</sql>
@@ -163,6 +167,7 @@
#{item.orderType},
#{item.activityType},
#{item.scorePay},
+ #{item.payMethod},
#{item.companyId}
</sql>
@@ -239,6 +244,7 @@
<if test="(record.companyId!=null and record.companyId!='') or (record.companyId!='' and record.companyId==0) ">
and company_id = #{record.companyId}
</if>
+
</if>
</sql>
@@ -541,35 +547,8 @@
<!-- 分页查询 -->
<select id="selectInPageByQuery" resultMap="ShopOrderMap">
select
- o.create_by,
- o.create_time,
- o.update_by,
- o.update_time,
- o.id,
- o.order_no,
- o.order_money,
- o.commodity_price,
- o.user_id,
- o.order_time,
- o.pay_status,
- o.discount_explain,
- o.discount_amount,
- o.order_status,
- o.refund_charge,
- o.user_name,
- o.user_tel,
- o.remarks,
- o.shipping_method,
- o.store_id,
- o.purchase_quantity,
- o.del_flag,
- o.wx_order_no,
- o.pay_result,
- o.postage,
- s.shop_name,
- o.order_type,
- o.score_pay,
- o.apply_status
+ o.*,
+ s.shop_name
from shop_order o
INNER JOIN sys_shop_info s on o.store_id = s.ID
where del_flag = 2 and o.company_id = #{record.companyId}
@@ -598,6 +577,10 @@
<if test="(record.shopId!=null and record.shopId!='')">
and o.store_id=#{record.shopId}
</if>
+ <if test="(record.payMethod!=null and record.payMethod!='') ">
+ and o.pay_method = #{record.payMethod}
+ </if>
+
</if>
<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
<if test="pageVo.sort !=null and pageVo.order !=null">
@@ -614,34 +597,8 @@
<!-- 导出Excel -->
<select id="selectInPageByQueryOfExcel" resultMap="ShopOrderComplexMap">
select
- o.create_by,
- o.create_time,
- o.update_by,
- o.update_time,
- o.id,
- o.order_no,
- o.order_money,
- o.commodity_price,
- o.user_id,
- o.order_time,
- o.pay_status,
- o.discount_explain,
- o.discount_amount,
- o.order_status,
- o.refund_charge,
- o.user_name,
- o.user_tel,
- o.remarks,
- o.shipping_method,
- o.store_id,
- o.purchase_quantity,
- o.del_flag,
- o.wx_order_no,
- o.pay_result,
- o.postage,
- s.store_name,
- s.score_pay,
- o.order_type
+ o.*,
+ s.store_name
from shop_order o
LEFT JOIN shop_store s on o.store_id = s.store_id
where del_flag = 2 and o.company_id = #{record.companyId}
--
Gitblit v1.9.1