Ver Fonte

退款改造

qng há 3 anos atrás
pai
commit
d5c0f895e0

+ 4 - 2
kmall-admin/src/main/java/com/kmall/admin/haikong/client/VmcShopTemplate.java

@@ -9,6 +9,7 @@ import okhttp3.MediaType;
 import okhttp3.Request;
 import okhttp3.RequestBody;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -18,6 +19,7 @@ import java.util.Map;
  * @author
  * @createDate 2021-10-28
  */
+@Component
 public class VmcShopTemplate {
 
     @Autowired
@@ -110,8 +112,8 @@ public class VmcShopTemplate {
 //                .url("https://testmall.greedc.com/openapi/vmcconnect/json")
 //                .build();
 //        String s = OkHttpUtils.retry(request, 1);
-//
-//        System.out.println(s);
+//        Map<String,String> res = JSON.parseObject(s,Map.class);
+//        System.out.println(res);
 //    }
 
 }

+ 38 - 38
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -31,9 +31,9 @@ import com.kmall.admin.fromcomm.dao.SysConfigDao;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.haikong.client.HaiKongMemberTemplate;
 import com.kmall.admin.haikong.client.HaiKongWarehouseTemplate;
+import com.kmall.admin.haikong.client.VmcShopTemplate;
 import com.kmall.admin.haikong.config.HaiKongProperties;
 import com.kmall.admin.haikong.dto.MemberInfoDTO;
-import com.kmall.admin.haikong.task.MemberSysAccessTokenRefreshTask;
 import com.kmall.admin.haikong.utils.Response;
 import com.kmall.admin.service.*;
 import com.kmall.admin.service.kmall2eccs.KtoEccsService;
@@ -220,6 +220,10 @@ public class OrderServiceImpl implements OrderService {
     @Autowired
     private HaiKongProperties haiKongProperties;
 
+    @Autowired
+    private VmcShopTemplate vmcShopTemplate;
+
+
 
     @Override
     public OrderEntity queryObject(Long id) {
@@ -3154,11 +3158,9 @@ public class OrderServiceImpl implements OrderService {
             if (totalActualPrice == null) {
                 totalActualPrice = 0d;
             }
-            String refundResult = "";
             if (orderInfo.getOrderStatus() != Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
                 LOGGER.info("微信退款开始");
-
-                WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn().toString(), totalActualPrice,
+                WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn(), totalActualPrice,
                         orderInfo.getActualPrice().doubleValue());
                 OrderRefundEntity orderRefund = new OrderRefundEntity();
                 orderRefund.setRefundId(result.getRefund_id());
@@ -3177,24 +3179,20 @@ public class OrderServiceImpl implements OrderService {
                 } else {
                     orderRefund.setRefundType(Integer.parseInt(Dict.RefundType.item_1.getItem()));//用户全额退款
                 }
-
-
                 order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
                 order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
-                LOGGER.info("微信退款");
-
-                orderDao.update(order);//修改为退款成功
+                //修改为退款成功
+                orderDao.update(order);
                 // 修改小票码
                 PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(order.getOrderSn());
                 pickUpCodeEntity.setPickUpCodeStatus("3");
                 pickUpCodeService.update(pickUpCodeEntity);
-
+                //新增退款记录
+                orderRefund.setRestore(1);
+                orderRefundDao.save(orderRefund);
                 //调用免税mall接口退款
-                //HttpUtil.doPostJson()
                 restoreInventoryMsMall(order);
-                orderRefund.setRestore(1);
 
-                orderRefundDao.save(orderRefund);//退款记录
             }
             // 支付宝的退款代码
         } else if (Dict.payFlag.item_alipay.getItem().equals(payFlag)) {
@@ -3255,32 +3253,34 @@ public class OrderServiceImpl implements OrderService {
      * @param order
      */
     private void restoreInventoryMsMall(OrderEntity order) {
-        //调用CCNET接口
-        String msg = OkHttpUtils.post(JSON.toJSONString(order),OmsMerchPropertiesBuilder.instance().getWxOrderResendUrl() + "/refundOrder",JSON.toJSONString(order),"SSL");
-        ResponseData responseData = JacksonUtils.fromStringJson(msg, ResponseData.class);
-        if(responseData.getCode().equalsIgnoreCase("0")) {
-
-            Map<String, Object> map = new HashMap();
-            SysUserEntity user = ShiroUtils.getUserEntity();
-            map.put("orderId", order.getId());
-            List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
-
-            for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
-                ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
-                        .queryByGoodsIdAndStoreId(order.getStoreId().longValue(), orderGoodsEntity.getGoodsId().longValue());
-                if (null == storeRelaEntity || null == storeRelaEntity.getSellVolume()) {
-                    storeRelaEntity.setSellVolume(0);
-                }
-                BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume() - orderGoodsEntity.getNumber());//销售量
-                if (sellVolume.compareTo(Constant.ZERO) < 0) {
-                    sellVolume = Constant.ZERO;
-                }
-                //还原门店库存
-                if (null != storeRelaEntity.getStockNum()) {
-                    Integer stockNum = storeRelaEntity.getStockNum();
-                    resetStoreGoodsStock(stockNum, storeRelaEntity, orderGoodsEntity, sellVolume, responseData.getCode(), user);
-                }
+        Map<String, Object> map = new HashMap();
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        map.put("orderId", order.getId());
+        List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
+        for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
+            ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
+                    .queryByGoodsIdAndStoreId(order.getStoreId().longValue(), orderGoodsEntity.getGoodsId().longValue());
+            if (null == storeRelaEntity || null == storeRelaEntity.getSellVolume()) {
+                storeRelaEntity.setSellVolume(0);
             }
+            BigDecimal sellVolume = new BigDecimal(storeRelaEntity.getSellVolume() - orderGoodsEntity.getNumber());//销售量
+            if (sellVolume.compareTo(Constant.ZERO) < 0) {
+                sellVolume = Constant.ZERO;
+            }
+            //还原门店库存
+            if (null != storeRelaEntity.getStockNum()) {
+                Integer stockNum = storeRelaEntity.getStockNum();
+                resetStoreGoodsStock(stockNum, storeRelaEntity, orderGoodsEntity, sellVolume, "0", user);
+            }
+        }
+        LOGGER.info("=======> 调用VMCShop接口开始发送退款订单数据......");
+        String response = vmcShopTemplate.refundOrder(JacksonUtil.toJson(order.getOrderSn()));
+        // 3. 解析响应数据
+        LOGGER.info("=======> [发送退款订单数据成功,开始处理后续流程]"+response);
+        Map<String,String> res = JSON.parseObject(response,Map.class);
+        if("0".equals(res.get("code"))){
+
+
         }else{
             LOGGER.error(order.getOrderSn()+"[该订单退款失败]"+JSON.toJSONString(order));
         }

+ 0 - 4
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -471,10 +471,6 @@
 
                 </div>
 
-<!--                <div class="modal-footerNew">-->
-<!--                    <button type="button" v-if="openSku" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="saveNew" id="saveNew" data-dismiss="modal">确定</button>-->
-<!--                    <button type="button" v-if="openSku" style="margin:0 30px 0 20px;font-size: 25px;" class="btn btn-primary" @click="cancelNew" id="cancelNew" data-dismiss="modal">取消</button>-->
-<!--                </div>-->
             </div>