浏览代码

联合丽格改版

zhijiezhao 2 年之前
父节点
当前提交
3c43abba6d

+ 3 - 1
src/main/java/com/caimei/modules/fastDFS/FastDFSClient.java

@@ -15,9 +15,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.github.tobato.fastdfs.service.FastFileStorageClient;
 
+import javax.annotation.Resource;
+
 @Component
 public class FastDFSClient {
-    @Autowired
+    @Resource
     private FastFileStorageClient storageClient;
 
 

+ 1 - 1
src/main/java/com/caimei/modules/groupbuy/entity/ProcurePo.java

@@ -39,7 +39,7 @@ public class ProcurePo {
     @ApiModelProperty("创建人Id")
     private String createUserId;
 
-    @ApiModelProperty("是否实现 0 以实现 1 未实现")
+    @ApiModelProperty("是否实现 0 未实现 1 已实现")
     private String isAchieve;
 
     @ApiModelProperty("是否删除 0 未删除 其他删除")

+ 4 - 0
src/main/java/com/caimei/modules/order/dao/NewOrderDao.java

@@ -39,4 +39,8 @@ public interface NewOrderDao {
     Double findPayAmount(Integer s);
 
     List<NewOrder> findListByPayShop(OrderPayShop orderPayShop);
+
+    String findStatus(Integer orderProductId);
+
+    void updateOrderStatus(Integer orderDeliverStatus, String orderStatus, Integer orderId);
 }

+ 4 - 0
src/main/java/com/caimei/modules/order/entity/NewShopOrder.java

@@ -138,6 +138,10 @@ public class NewShopOrder {
     @ApiModelProperty("子订单备注信息")
     private String note;
 
+    @ApiModelProperty("已经发货的商品数量")
+    private Integer outStoreNum;
+    @ApiModelProperty("子订单发货批次 默认值 = 0 即没过发货")
+    private Integer outStoreTimes;
     @ApiModelProperty("发货状态:1待发货、2部分发货、3已发货")
     private String sendOutStatus;
     @ApiModelProperty("收货人")

+ 2 - 0
src/main/java/com/caimei/modules/order/entity/OrderPayShopRecord.java

@@ -38,4 +38,6 @@ public class OrderPayShopRecord implements Serializable {
     private Integer status;
     @ApiModelProperty("银行账户")
     private String bankNameType;
+    @ApiModelProperty("删除标记")
+    private Integer delFlag;
 }

+ 6 - 0
src/main/java/com/caimei/modules/order/service/impl/OrderDeliverServiceImpl.java

@@ -53,6 +53,11 @@ public class OrderDeliverServiceImpl implements OrderDeliverService {
     @Transactional(readOnly = false, rollbackFor = Exception.class)
     public ResponseJson confirmDeliver(DeliverDto dto) {
         List<NewOrderProduct> orderProducts = dto.getOrderProducts();
+        // 设置子订单/主订单发货状态
+        Boolean status = orderUtil.setDeliverStatus(orderProducts);
+        if (!status) {
+            return ResponseJson.error("发货数量异常!");
+        }
         Integer orderId = orderProducts.get(0).getOrderId();
         //新增发货批次记录
         LogisticsBatch batch = new LogisticsBatch();
@@ -85,6 +90,7 @@ public class OrderDeliverServiceImpl implements OrderDeliverService {
             record.setProductId(p.getProductId());
             record.setProductName(p.getName());
             record.setImage(p.getProductImage());
+            recordDao.insert(record);
         });
 
         List<Transportation> transportations = dto.getTransportations();

+ 3 - 4
src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java

@@ -82,9 +82,9 @@ public class PayShopServiceImpl implements PayShopService {
                 NewShopOrder shopOrder = newShopOrderDao.get(record.getShopOrderId());
                 orderUtils.getShouldPay(shopOrder);
                 // 本次付款金额 + 付采美 + 原来已经付过的金额
-                BigDecimal payedFee = MathUtil.add(MathUtil.add(record.getPayAmount(), record.getPayAmount()), shopOrder.getPayedShopAmount());
+                BigDecimal payedFee = MathUtil.add(MathUtil.add(record.getPayAmount(), record.getPayCmAmount()), shopOrder.getPayedShopAmount());
                 // 总共要付的金额
-                BigDecimal shouldPayFee = MathUtil.add(shopOrder.getShouldPayShopAmount(), MathUtil.mul(shopOrder.getTotalAmount(), 0.03));
+                BigDecimal shouldPayFee = MathUtil.add(shopOrder.getShouldPayShopAmount(),shopOrder.getShouldPayCmAmount());
 
                 if (MathUtil.compare(payedFee, shouldPayFee) == -1) {
                     // (本次付款金额 + 付采美 + 原来已经付过的金额)  < 总共要付的金额
@@ -95,7 +95,7 @@ public class PayShopServiceImpl implements PayShopService {
                 } else {
                     log.info("已付款金额:" + shopOrder.getPayedShopAmount() + "本次付款金额:" + record.getPayAmount() + "付供应商:" + shouldPayFee + "付款id:" + id);
                     log.info("check ----> 付款金额异常, 付款金额大于待付款金额");
-                    throw new Exception("付款单审核金额异常, 付款金额大于待付款金额");
+                    return ResponseJson.error("付款单审核金额异常, 付款金额大于待付款金额");
                 }
                 shopOrder.setPayedShopAmount(shopOrder.getPayedShopAmount() == null ? 0D : shopOrder.getPayedShopAmount() + record.getPayAmount());
                 shopOrder.setPayCmAmount(shopOrder.getPayCmAmount() == null ? 0D : shopOrder.getPayCmAmount() + record.getPayCmAmount());
@@ -103,7 +103,6 @@ public class PayShopServiceImpl implements PayShopService {
                 shopOrder.setPaying(0);
                 newShopOrderDao.update(shopOrder);
                 record.setStatus(1);
-                record.setPayTime(new Date());
                 record.setPayType(payType);
                 payShopDao.updatePayRecord(record);
                 //查询未付

+ 53 - 12
src/main/java/com/caimei/modules/order/util/OrderUtils.java

@@ -1,34 +1,24 @@
 package com.caimei.modules.order.util;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.caimei.modules.order.constant.Constant;
 import com.caimei.modules.order.dao.*;
 import com.caimei.modules.order.entity.*;
 import com.caimei.modules.order.service.CmReturnedPurchaseService;
-import com.caimei.modules.order.service.impl.CmReturnedPurchaseServiceImpl;
-import com.caimei.utils.AppUtils;
-import com.caimei.utils.Disguiser;
-import com.caimei.utils.MathUtil;
-import com.caimei.utils.RedisService;
+import com.caimei.utils.*;
 import com.caimei.utils.payUtil.MyBeanUtils;
 import com.caimei.utils.payUtil.RSA;
 import com.caimei.utils.payUtil.SettlePostFormUtil;
 import lombok.extern.slf4j.Slf4j;
-import okhttp3.*;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.io.IOException;
-import java.lang.reflect.Field;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
 
 
 /**
@@ -351,4 +341,55 @@ public class OrderUtils {
     public List<OrderPayShopRecord> getPayRecords(NewOrder newOrder) {
         return payShopDao.findPayShopRecordsByOrder(newOrder.getOrderId());
     }
+
+    public Boolean setDeliverStatus(List<NewOrderProduct> orderProducts) {
+        AtomicReference<Boolean> flag = new AtomicReference<>(true);
+        String orderStatus = newOrderDao.findStatus(orderProducts.get(0).getOrderProductId());
+        if (orderStatus.length() < 2) {
+            return false;
+        }
+        Map<Integer, Integer> shops = new HashMap<>();
+        orderProducts.forEach(o -> {
+            boolean b = shops.containsKey(o.getShopOrderId());
+            if (b) {
+                Integer num = shops.get(o.getShopOrderId());
+                shops.put(o.getShopOrderId(), o.getDeliveryNum() + num);
+            } else {
+                shops.put(o.getShopOrderId(), o.getDeliveryNum());
+            }
+        });
+        if (!flag.get()) {
+            return flag.get();
+        }
+        AtomicReference<Integer> orderId = new AtomicReference<>();
+        List<Integer> statusList = new ArrayList<>();
+        shops.forEach((key, value) -> {
+            NewShopOrder shopOrder = shopOrderDao.get(key);
+            Integer outStoreNum = shopOrder.getOutStoreNum();
+            int deliver = outStoreNum + value;
+            int total = shopOrder.getItemCount() + shopOrder.getPresentNum();
+            // 已发货+本次发货 > 子订单商品总数 + 赠品数
+            if (deliver > total) {
+                flag.set(false);
+                return;
+            }
+            // 2 部分发货 3全部发货
+            int status = deliver < total ? 2 : 3;
+            statusList.add(status);
+            shopOrder.setOutStoreNum(outStoreNum + value);
+            shopOrder.setSendOutStatus(Integer.toString(status));
+            shopOrder.setOutStoreTimes(shopOrder.getOutStoreTimes() + 1);
+            shopOrder.setPaying(0);
+            shopOrderDao.update(shopOrder);
+            orderId.set(shopOrder.getOrderId());
+        });
+        Integer orderDeliverStatus = 3;
+        if (statusList.contains(2)) {
+            orderDeliverStatus = 2;
+        }
+        orderStatus = orderStatus.substring(0, 1) + orderDeliverStatus.toString();
+        //同步更新主订单的发货状态
+        newOrderDao.updateOrderStatus(orderDeliverStatus, orderStatus,orderId.get());
+        return true;
+    }
 }

+ 2 - 2
src/main/resources/config/beta/application-beta.yml

@@ -20,7 +20,7 @@ spring:
     mongodb:
       #使用uri连接
       # mongodb://用户名:密码@IP地址:27017/数据库
-      uri: mongodb://zzj:easyCome.@47.107.48.218:27017/userInfo
+      uri: mongodb://zzj:easyCome.@172.31.165.29:27017/userInfo
     #数据源连接--end
 
   #模板引擎配置
@@ -49,7 +49,7 @@ pagehelper:
 
 #日志配置
 logging:
-  file: /mnt/newdatadrive/data/runtime/jar-instance/mall-admin/logs/catalina.out
+  file: /mnt/newdatadrive/data/runtime/jar-instance/mall-admin/logs
   level: debug
 
 #自定义配置

+ 2 - 2
src/main/resources/config/dev/application-dev.yml

@@ -12,9 +12,9 @@ spring:
     #数据源连接--start
   datasource:
     driverClassName: com.mysql.jdbc.Driver
-    url: jdbc:mysql://192.168.2.100:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://120.79.25.27:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
     username: developer
-    password: 05bZ/OxTB:X+yd%1
+    password: J5p3tgOVazNl4ydf
   data:
     #mongo数据源配置
     mongodb:

+ 3 - 3
src/main/resources/config/prod/application-prod.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8086
+  port: 9104
 spring:
   application:
     name: caimei-mall-admin #指定服务名
@@ -19,7 +19,7 @@ spring:
     mongodb:
       #使用uri连接
       # mongodb://用户名:密码@IP地址:27017/数据库
-      uri: mongodb://zzj:easyCome.@120.79.162.1:27017/userInfo
+      uri: mongodb://zzj:easyCome.@172.31.165.26:27017/userInfo
     #数据源连接--end
 
   #模板引擎配置
@@ -49,7 +49,7 @@ pagehelper:
 
 #日志配置
 logging:
-  file: /mnt/newdatadrive/data/runtime/jar-instance/mall-admin/logs/catalina.out
+  file: /mnt/newdatadrive/data/runtime/jar-instance/mall-admin/logs
   level: info
 
 #自定义配置

+ 13 - 3
src/main/resources/mapper/NewOrderMapper.xml

@@ -240,6 +240,13 @@
         WHERE mbOrderId = #{mbOrderId}
     </update>
 
+    <update id="updateOrderStatus">
+        update cm_order
+        set sendOutStatus = #{orderDeliverStatus},
+            status = #{orderStatus}
+        where orderId = #{orderId}
+    </update>
+
     <resultMap id="orderDisplayList" type="com.caimei.modules.order.entity.NewOrder">
         <id column="orderId" property="orderId"/>
         <result column="orderNo" property="orderNo"/>
@@ -289,9 +296,6 @@
             <if test="organizeId != null and organizeId != '' and organizeId != 0 ">
                 AND co.organizeId = #{organizeId}
             </if>
-            <if test="organizeId == 0 ">
-                AND co.organizeId IS NULL
-            </if>
             <if test="status != null and status != ''">
                 <choose>
                     <when test="status == '99'.toString()">
@@ -657,4 +661,10 @@
         </where>
         ORDER BY co.orderId DESC, co.orderTime DESC
     </select>
+
+    <select id="findStatus" resultType="java.lang.String">
+        select status
+        from cm_order
+        where orderId = (select orderId from cm_order_product where orderProductId = #{orderProductId})
+    </select>
 </mapper>

+ 11 - 3
src/main/resources/mapper/NewShopOrderMapper.xml

@@ -174,6 +174,12 @@
             <if test="splitCode != null">
                 splitCode = #{splitCode},
             </if>
+            <if test="outStoreNum != null">
+                outStoreNum = #{outStoreNum},
+            </if>
+            <if test="outStoreTimes != null">
+                outStoreTimes = #{outStoreTimes},
+            </if>
         </set>
         <where>
             <if test="shopOrderId != null and shopOrderId != ''">
@@ -228,8 +234,8 @@
     <select id="findListByOrderId" resultType="com.caimei.modules.order.entity.NewShopOrder">
         SELECT<include refid="shopOrderColumns"/>,
         b.name as shopName,
-        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1),0) as payedShopAmount,
-        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1),0) as payCmAmount
+        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),0) as payedShopAmount,
+        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),0) as payCmAmount
         FROM cm_shop_order a
         left join shop b on a.shopId = b.shopId
         WHERE a.orderId = #{orderId} ORDER BY a.shopOrderNo DESC
@@ -296,7 +302,8 @@
         a.shopProductAmount AS shopProductAmount,
         a.shopPostFee AS shopPostFee,
         a.shouldPayShopAmount AS shouldPayShopAmount,
-        a.payedShopAmount AS payedShopAmount,
+        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),0) as payedShopAmount,
+        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),0) as payCmAmount,
         a.paying AS paying,
         a.settleStatus AS settleStatus,
         a.differenceType AS differenceType,
@@ -373,6 +380,7 @@
             and co.delFlag = 0
             and a.delFlag = 0
             and a.shopID != 998
+            and a.paying != 1
             and co.orderID not in (
             SELECT orderID FROM cm_order_product WHERE productID IN
             (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID

+ 8 - 8
src/main/resources/mapper/PayShopDao.xml

@@ -57,9 +57,9 @@
         UPDATE cm_pay_shop_record
         SET payAmount = #{payAmount},
             payType   = #{payType},
-            payTime   = #{payTime},
+            payTime   = now(),
             status    = #{status},
-            delFlag   = #{delFlag}
+            delFlag   = 0
         WHERE id = #{id}
     </update>
 
@@ -309,9 +309,9 @@
                         a.payStatus         AS payStatus,
                         a.shopProductAmount AS shopProductAmount,
                         a.shopPostFee       AS shopPostFee,
-                        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1),
+                        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),
                                0)           as payedShopAmount,
-                        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1),
+                        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),
                                0)           as payCmAmount,
                         a.payedShopAmount   AS payedShopAmount,
                         co.payTotalFee      AS payTotalFee,
@@ -457,8 +457,8 @@
         a.payStatus AS payStatus,
         a.shopProductAmount AS shopProductAmount,
         a.shopPostFee AS shopPostFee,
-        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),0) as payedShopAmount,
-        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),0) as payCmAmount,
+        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),0) as payedShopAmount,
+        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and status = 1 and delFlag = 0),0) as payCmAmount,
         a.payedShopAmount AS payedShopAmount,
         co.payTotalFee AS payTotalFee,
         s.name AS shopName,
@@ -528,9 +528,9 @@
                a.payedShopAmount          AS payedShopAmount,
                a.paying                   AS paying,
                b.name                     as shopName,
-               ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),
+               ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and delFlag = 0 and status = 1),
                       0)                  as payedShopAmount,
-               ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),
+               ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId and delFlag = 0 and status = 1),
                       0)                  as payCmAmount,
                cps.payTime as splitTime
         FROM cm_pay_shop_record cps