Jelajahi Sumber

Init Repository

lhm 3 tahun lalu
induk
melakukan
a8cfb9914c

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -1071,7 +1071,7 @@ public class OrderController {
     }
 
     /**
-     *
+     * 退款
      * @param param
      * @return
      * @throws IOException

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/fromccnet/ToBeRestoredInvetoryController.java

@@ -24,6 +24,11 @@ public class ToBeRestoredInvetoryController {
 
     private final Logger LOGGER = LoggerFactory.getLogger(ToBeRestoredInvetoryController.class);
 
+    /**
+     * ccnet调用
+     * @param orderSn   订单编号
+     * @return          是否恢复成功
+     */
     @RequestMapping("/toBeRestored/{orderSn}")
     public R toBeRestored(@PathVariable("orderSn") String orderSn) {
 

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderRefundEntity.java

@@ -96,6 +96,9 @@ public class OrderRefundEntity implements Serializable {
 
     private String wechatRefundStatusDes;
 
+    /**
+     * 是否恢复库存,0:恢复;1:不恢复
+     */
     private Integer restore;
 
 

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

@@ -1947,7 +1947,7 @@ public class OrderServiceImpl implements OrderService {
     /**
      * 提交订单并付款
      *
-     * @param param
+     * @param param 提交的订单数据、包括用户信息、支付码、会话id、机器码(收银台)、取货方式、收货地址信息、会员码
      * @param user
      * @return
      */
@@ -1990,6 +1990,18 @@ public class OrderServiceImpl implements OrderService {
         }
 
 
+        // TODO 海控需求,下单流程修改,收银端接收会员码,付款码,用户信息,订单数据
+        // 1. 校验是否是会员,调用会员系统查询会员信息,查询接口:
+        // 2. 校验库存:保税仓库存 + 展销店库存 - 出区数 > 购买数
+        // 3. 查询付款接口
+        // 4. 扣减库存
+        // 5. 推送订单到免税mall
+
+
+
+
+
+
         Map resultObj = Maps.newHashMap();
 
 
@@ -3026,6 +3038,7 @@ public class OrderServiceImpl implements OrderService {
         map.put("orderId", order.getId());
         List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
         for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
+            // 当前订单商品数量
             Integer restoreNumber = orderGoodsEntity.getNumber();
             ProductStoreRelaEntity storeRelaEntity = productStoreRelaDao
                     .queryByGoodsIdAndStoreId(order.getStoreId().longValue(), orderGoodsEntity.getGoodsId().longValue());
@@ -3033,7 +3046,7 @@ public class OrderServiceImpl implements OrderService {
             if (toBeRestored == null) {
                 toBeRestored = 0;
             }
-            // 修改待退款的数量
+            // 修改门店商品待退款的数量 = 当前订单商品数量 + 门店待退款数量
             storeRelaEntity.setToBeRestored(toBeRestored + restoreNumber);
 
             GoodsEntity goodsEntity = goodsDao.queryObject(orderGoodsEntity.getGoodsId());

+ 10 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -19,6 +19,7 @@ import com.kmall.api.util.StockUtil;
 import com.kmall.common.constant.Dict;
 import com.kmall.common.utils.*;
 import com.kmall.manager.manager.redis.JedisUtil;
+import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -890,6 +891,10 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
     }
 
 
+
+    /**
+     * 这里调用当前bean的save()和update(),事务会失效,需要暴露代理对象
+     */
     @Override
     @Transactional
     public int uploadExcel(List<StoreGoodsDto> storeGoodsDtoList) {
@@ -1072,11 +1077,11 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
 
                 ProductStoreRelaEntity productStoreRelaEntity = productStoreRelaDao.queryByGoodsIdAndStoreId(storeRelaEntity.getStoreId(), storeRelaEntity.getGoodsId());
                 if (Objects.isNull(productStoreRelaEntity)) {
-                    save(storeRelaEntity);
+                    ((ProductStoreRelaService) AopContext.currentProxy()).save(storeRelaEntity);
                 }else{
                     storeRelaEntity.setId(productStoreRelaEntity.getId());
                     storeRelaEntity.setStockNum(productStoreRelaEntity.getStockNum()+Integer.valueOf(storeGoodsDto.getStockNum()));
-                    update(storeRelaEntity);
+                    ((ProductStoreRelaService) AopContext.currentProxy()).update(storeRelaEntity);
                 }
 
 
@@ -1178,6 +1183,9 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
         }
     }
 
+    /**
+     * 这里调用当前bean的save()和update(),事务会失效
+     */
     @Override
     @Transactional
     public int uploadExcelByCover(List<StoreGoodsDto> storeGoodsDtoList) {

+ 2 - 2
kmall-admin/src/main/resources/spring/spring-context.xml

@@ -21,7 +21,7 @@
         <context:exclude-filter type="aspectj" expression="com.kmall.admin.websocket.**"/>
     </context:component-scan>
 
-
-
+    <!-- 暴露代理对象,用来保证调用当前bean的其他方法事务不失效,获取当前bean代理对象:((需要转换的Service) AopContext.currentProxy()) -->
+    <aop:aspectj-autoproxy expose-proxy="true"/>
 
 </beans>

+ 17 - 8
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -620,10 +620,11 @@ let vm = new Vue({
         }
     },
     methods: {
-
+        // 支付完成,请求后端进行下单
         myDebounce:debounce(function(){
             toPayOrder();
         },2000),
+        // 退款开始
         debounceRefund:debounce(function(){
             toRefund();
             // alert(123113131);
@@ -922,6 +923,7 @@ let vm = new Vue({
                 vm.$refs.couponSn.value = "";
             this.userInfo.couponSn = "";
         },
+        // 提交订单
         submitOrder:function(){
             vm.parCode = this.$refs.payCode.currentValue
             vm.myDebounce();
@@ -1012,6 +1014,7 @@ let vm = new Vue({
                 }
             }
         },
+        // 填写并验证顾客信息
         submitCustomInfo:function(){
             this.userInfo.customName = this.$refs.customName.value ;
             this.userInfo.customIDCard =  this.$refs.customIDCard.value ;
@@ -1173,8 +1176,9 @@ let vm = new Vue({
                     success: function (r) {
                         if (r.ticket != null) {
                             // printArea(r.ticket);
-                            var content = getPrintContentOrder(r.ticket);
-                            printArea(content);
+                            console.log("核销打印前,订单号: " + vm.currentOrderNo);
+                            var content = getPrintContentOrder(r.ticket, printArea);
+                            console.log("核销打印后,小票码: " + vm.pickUpCode + ",订单号: " + r.ticket.ticketHead.orderId);
 
                         }else{
                             alert("打印小票失败");
@@ -1194,8 +1198,7 @@ let vm = new Vue({
                     data: JSON.stringify({'id':vm.currentOrderNo,'sessionId':vm.sessionId}),
                     success: function (r) {
                         if (r.ticket != null) {
-                            var content = getPrintContentOrder(r.ticket);
-                            printArea(content);
+                            var content = getPrintContentOrder(r.ticket, printArea);
 
                         }else{
                             alert("打印快递单失败");
@@ -1204,6 +1207,7 @@ let vm = new Vue({
                 });
             })
         },
+        // 退款方法
         refundOrder:function(){
             vm.debounceRefund();
         },
@@ -1305,7 +1309,7 @@ function getPrintContent(ticket) {
 
 
 var printAreaCount = 0;
-function printArea(content) {
+var printArea = function printArea(content) {
     var idPrefix = "printArea_";
     removePrintArea(idPrefix + printAreaCount);
     ++printAreaCount;
@@ -1458,7 +1462,7 @@ function parsedate(value){
     return  year+"-"+month+"-"+day+" "+hour+":"+minutes +":"+second;
 }
 
-function getPrintContentOrder(ticket) {
+function getPrintContentOrder(ticket, callback) {
     var content = "<div style=\"width: 270px;font-family: 微软雅黑;font-size: 8px;\">";
     // 打印ogo
     content += "<div style=\"text-align: center;width: 100%;height: 260px;\">";
@@ -1703,6 +1707,11 @@ function getPrintContentOrder(ticket) {
     box += markBox;
     box += "</div>";
     content += box;
+
+    if (typeof callback === "function") {
+        callback(content);
+    }
+
     return content;
 }
 
@@ -1929,7 +1938,7 @@ function toPayOrder(payCode){
         }
     });
 }
-
+// 调用后端接口进行退款
 function toRefund(){
     confirm('确认退款吗?', function () {
         vm.canRefund = false;