zhijiezhao преди 1 година
родител
ревизия
e39ce216e4

+ 19 - 0
src/main/java/com/caimei365/manager/controller/hehe/order/HeHeOrderApi.java

@@ -1,8 +1,13 @@
 package com.caimei365.manager.controller.hehe.order;
 
 
+import com.caimei365.manager.entity.PaginationVo;
+import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.order.CmOrder;
 import com.caimei365.manager.service.hehe.order.HeHeOrderService;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
@@ -13,4 +18,18 @@ public class HeHeOrderApi {
 
     @Resource
     private HeHeOrderService orderService;
+
+    @GetMapping("/order/list")
+    public ResponseJson<PaginationVo<CmOrder>> orderList(CmOrder order,
+                                                         @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                         @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return orderService.orderList(order, pageNum, pageSize);
+    }
+
+    @GetMapping("/returnedPurchase/list")
+    public ResponseJson<PaginationVo<CmOrder>> returnedPurchaseList(CmOrder order,
+                                                         @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                         @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return orderService.orderList(order, pageNum, pageSize);
+    }
 }

+ 1 - 0
src/main/java/com/caimei365/manager/dao/FinanceDao.java

@@ -1,6 +1,7 @@
 package com.caimei365.manager.dao;
 
 import com.caimei365.manager.entity.caimei.*;
+import com.caimei365.manager.entity.order.CmOrder;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;

+ 6 - 0
src/main/java/com/caimei365/manager/dao/hehe/HeHeOrderDao.java

@@ -1,10 +1,16 @@
 package com.caimei365.manager.dao.hehe;
 
 
+import com.caimei365.manager.entity.order.CmOrder;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 
 @Mapper
 public interface HeHeOrderDao {
 
+    List<CmOrder> findOrderList(CmOrder order);
+
+    List<Integer> findOrderIdInReturnPurchase(List<Integer> orderIds);
 }

+ 2 - 1
src/main/java/com/caimei365/manager/entity/hehe/product/CollageProduct.java

@@ -43,7 +43,8 @@ public class CollageProduct {
 	 * 添加时间
 	 */
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date addTime;
+	private String addTime;
+
 	private List<CmSku> skus;
 	/**
 	 * 供应商名称

+ 1 - 1
src/main/java/com/caimei365/manager/entity/hehe/product/CollageRecord.java

@@ -28,7 +28,7 @@ public class CollageRecord {
 	 */
 	private Integer memberNum;
 	/**
-	 * 拼团状态:1拼团中,已拼成
+	 * 拼团状态:1拼团中,2已拼成
 	 */
 	private Integer status;
 	/**

+ 48 - 1
src/main/java/com/caimei365/manager/entity/caimei/CmOrder.java → src/main/java/com/caimei365/manager/entity/order/CmOrder.java

@@ -1,6 +1,7 @@
-package com.caimei365.manager.entity.caimei;
+package com.caimei365.manager.entity.order;
 
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 
@@ -13,6 +14,52 @@ import java.io.Serializable;
 @Data
 public class CmOrder implements Serializable {
     private static final long serialVersionUID = 1L;
+
+    private Integer orderRefundType;
+    /**
+     * 商品名称
+     */
+    private String productName;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String startTime;
+    /**
+     * 审核中退款标记 1审核中,0不是审核中
+     */
+    private Integer returnedPurchaseStatus;
+    /**
+     * 拼团状态:1拼团中,2已拼成
+     */
+    private Integer collageStatus;
+    /**
+     * 拼团订单标识:1拼团订单,0不是
+     */
+    private Integer collageFlag;
+    /**
+     * 协销名称
+     */
+    private String spName;
+    /**
+     * 邮费订单标识 1是邮费订单  0不是邮费订单
+     */
+    private Integer postageOrderFlag;
+    /**
+     * 买家
+     */
+    private String buyer;
+    /**
+     * 收货人
+     */
+    private String receiver;
+
+    private Integer organizeId;
+    /**
+     * 应收商品金额==应付合计(只需要付商品金额)
+     */
+    private Double shouldPayProduct;
     /**
      * orderSeen:订单对机构可见度,1可见,2不可见
      */

+ 213 - 0
src/main/java/com/caimei365/manager/entity/order/CmReturnedPurchase.java

@@ -0,0 +1,213 @@
+package com.caimei365.manager.entity.order;
+
+import com.caimei.po.CmReturnedPurchaseProduct;
+import com.caimei.po.ShopOrderReturned;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 退货退款Entity
+ */
+@Data
+public class CmReturnedPurchase {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 退款退货编号
+     */
+    private String returnedNo;
+    /**
+     * 主订单ID
+     */
+    private Integer orderId;
+    /**
+     * 组织id
+     */
+    private Integer organizeId;
+    /**
+     * 主订单号
+     */
+    private String orderNo;
+    /**
+     * 买家名
+     */
+    private String userName;
+    /**
+     * 子订单Id
+     */
+    private Integer shopOrderId;
+    /**
+     * 子订单编号
+     */
+    private String shopOrderNo;
+    /**
+     * 用户ID(买家)
+     */
+    private Integer userId;
+    /**
+     * 状态:1待审核、2审核通过、3审核不通过
+     */
+    private String status;
+    /**
+     * 退款方式 1有支付有退款(退款方式可多选具体参考以上金额)、4未支付无退款(未支付发起退款)
+     */
+    private String returnedWay;
+    /**
+     * 付款方式 付款方式 1建设银行7297, 2中信银行0897, 3中信银行7172, 4广发银行0115, 5广发银行5461
+     */
+    private String payType;
+    /**
+     * 发起该操作时订单状态快照:0待确认,11待收待发,12待收部发,13待收全发,21部收待发,22部收部发,23部收全发,
+     * 31已收待发,32已收部发,33已收全发,4交易完成,5订单完成,6已关闭,7交易全退
+     */
+    private String operatingOrderStatus;
+    /**
+     * 退款(退货)总金额
+     */
+    private Double returnedPurchaseFee;
+    /**
+     * 退款总额(给买家)
+     */
+    private Double refundFee;
+    /**
+     * 自定义退款总额
+     */
+    private Double freeRefundFee;
+    /**
+     * todo 改成list
+     * 凭证图片
+     */
+    private String image1;
+    private String image2;
+    private String image3;
+    private String image4;
+    private String image5;
+    /**
+     * 凭证图片
+     */
+    private String reviewImage1;
+    private String reviewImage2;
+    private String reviewImage3;
+    private String reviewImage4;
+    private String reviewImage5;
+    /**
+     * 审核备注
+     */
+    private String reviewRemarks;
+    /**
+     * 申请退款时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String returnTime;
+    /**
+     * 确认退款时间(审核退款时间)
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String confirmReturnTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String beginReturnTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String endReturnTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String beginConfirmReturnTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String endConfirmReturnTime;
+
+    /**
+     * 退款退货商品列表(用于前端接收)
+     */
+    private List<List<CmReturnedPurchaseProduct>> cmReturnedPurchaseProductList;
+    /**
+     * 退款退货商品列表
+     */
+    private List<ShopOrderReturned> shopOrderReturnedList;
+    /**
+     * 退款退货商品列表
+     */
+    private List<CmReturnedPurchaseProduct> productList;
+    /**
+     * 能否退货  1 能 2 不能
+     */
+    private Integer returnGoodsStutas;
+    /**
+     * 银行账户名
+     */
+    private String bankAccountName;
+    /**
+     * 开户银行账户
+     */
+    private String bankAccountNo;
+    /**
+     * 开户银行
+     */
+    private String openBank;
+    /**
+     * 账户类型:1公账,2私账
+     */
+    private String bankAccountType;
+    /**
+     * 退账户余额
+     */
+    private Double refundBalanceFee;
+    /**
+     * 退线上退回
+     */
+    private Double refundOnlineFee;
+    /**
+     * 退线下转账
+     */
+    private Double refundOfflineFee;
+    /**
+     * 申请人ID
+     */
+    private Integer applicationUserId;
+    /**
+     * 审核人ID
+     */
+    private Integer reviewUserId;
+    /**
+     * 申请人
+     */
+    private String applicationUserName;
+    /**
+     * 审核人
+     */
+    private String reviewUserName;
+    /**
+     * 机构名
+     */
+    private String name;
+    /**
+     * 订单类型 0协销订单、 1普通订单、 2呵呵订单
+     */
+    private Integer orderType;
+    /**
+     * 退款模式 1按商品金额退款  2 自定义金额退款
+     */
+    private Integer refundType;
+    /**
+     * 时间开始 查询条件 申请时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String beginTime;
+    /**
+     * 时间结束  查询条件 申请时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+    /**
+     * 子订单id
+     */
+    private Integer onlineShopOrderId;
+    /**
+     * 1跳转结算记录页面2跳转分账记录页面
+     */
+    private Integer pageType;
+    private String bankNameType;
+    private CmOrder newOrder;
+}

+ 1 - 0
src/main/java/com/caimei365/manager/service/caimei/impl/FinanceServiceImpl.java

@@ -4,6 +4,7 @@ import com.caimei365.manager.dao.FinanceDao;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.*;
+import com.caimei365.manager.entity.order.CmOrder;
 import com.caimei365.manager.service.caimei.FinanceService;
 import com.github.pagehelper.PageHelper;
 import lombok.extern.slf4j.Slf4j;

+ 5 - 0
src/main/java/com/caimei365/manager/service/hehe/order/HeHeOrderService.java

@@ -1,4 +1,9 @@
 package com.caimei365.manager.service.hehe.order;
 
+import com.caimei365.manager.entity.PaginationVo;
+import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.order.CmOrder;
+
 public interface HeHeOrderService {
+    ResponseJson<PaginationVo<CmOrder>> orderList(CmOrder order, int pageNum, int pageSize);
 }

+ 31 - 1
src/main/java/com/caimei365/manager/service/hehe/order/impl/HeHeOrderServiceImpl.java

@@ -1,14 +1,44 @@
 package com.caimei365.manager.service.hehe.order.impl;
 
 import com.caimei365.manager.dao.hehe.HeHeOrderDao;
+import com.caimei365.manager.entity.PaginationVo;
+import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.order.CmOrder;
 import com.caimei365.manager.service.hehe.order.HeHeOrderService;
+import com.github.pagehelper.PageHelper;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
 
 @Service
 public class HeHeOrderServiceImpl implements HeHeOrderService {
+
     @Autowired
     private HeHeOrderDao orderDao;
+
+    @Override
+    public ResponseJson<PaginationVo<CmOrder>> orderList(CmOrder cmOrder, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<CmOrder> list = orderDao.findOrderList(cmOrder);
+        List<Integer> oId = list.stream().map(CmOrder::getOrderId).collect(Collectors.toList());
+        //从查询到的订单列表中 找到正在退款中的订单集合
+        List<Integer> orderIdsInReturn = null;
+        if (CollectionUtils.isNotEmpty(oId)) {
+            orderIdsInReturn = orderDao.findOrderIdInReturnPurchase(oId);
+        }
+        for (CmOrder order : list) {
+            // todo 审核中标记,优化到findList里面
+            if (orderIdsInReturn != null && orderIdsInReturn.contains(order.getOrderId())) {
+                order.setReturnedPurchaseStatus(1);
+            } else {
+                order.setReturnedPurchaseStatus(0);
+            }
+        }
+        PaginationVo<CmOrder> page = new PaginationVo<>(list);
+        return ResponseJson.success(page);
+    }
 }

+ 1 - 1
src/main/resources/mapper/FinanceDao.xml

@@ -377,7 +377,7 @@
           AND cdr.receiptStatus = '2' AND  cdr.delFlag = '0'
           AND cror.relationType = '1' AND  cror.delFlag = '0'
     </select>
-    <select id="getOrderByOrderId" resultType="com.caimei365.manager.entity.caimei.CmOrder">
+    <select id="getOrderByOrderId" resultType="com.caimei365.manager.entity.order.CmOrder">
         SELECT
             orderID AS orderId,
             shopOrderIds,

+ 164 - 0
src/main/resources/mapper/hehe/HeHeOrderDao.xml

@@ -3,4 +3,168 @@
 <mapper namespace="com.caimei365.manager.dao.hehe.HeHeOrderDao">
 
 
+    <select id="findOrderList" resultType="com.caimei365.manager.entity.order.CmOrder">
+        SELECT DISTINCT
+        co.orderID AS orderId,
+        co.orderNo AS orderNo,
+        co.organizeID AS organizeId,
+        co.userID AS userId,
+        co.orderType AS orderType,
+        co.secondHandOrderFlag AS secondHandOrderFlag,
+        co.onlinePayFlag AS onlinePayFlag,
+        bou.shouHuoRen AS receiver,
+        IFNULL(c.name,c.nickName) AS buyer,
+        co.orderSource AS orderSource,
+        co.orderTotalFee AS orderTotalFee,
+        co.payableAmount AS payableAmount,
+        co.orderTime AS orderTime,
+        co.confirmTime AS confirmTime,
+        co.payTotalFee AS payTotalFee,
+        co.payStatus AS payStatus,
+        co.refundType AS refundType,
+        co.sendOutStatus AS sendOutStatus,
+        co.receiptStatus AS receiptStatus,
+        co.productCount AS productCount,
+        (SELECT IFNULL(sum(cop.shouldPayFee),0) FROM cm_order_product cop WHERE cop.orderId=co.orderID) AS
+        "shouldPayProduct",
+        co.status AS status,
+        co.splitFlag AS splitFlag,
+        co.postageOrderFlag AS postageOrderFlag,
+        if(chcm.id is not null,1,0) as collageFlag,
+        chc.status as collageStatus
+        FROM cm_order co
+        LEFT JOIN bp_order_userinfo bou ON bou.orderId = co.orderID
+        LEFT JOIN user u ON u.userID = co.userID
+        LEFT JOIN cm_hehe_user c ON u.userID = c.userId
+        LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
+        LEFT JOIN product p ON cop.productID = p.productID
+        LEFT JOIN cm_hehe_collage_member chcm on co.orderID = chcm.orderId
+        LEFT JOIN cm_hehe_collage chc on chcm.collageId = chc.id
+        <where>
+            co.orderType = 2
+            <if test="orderId != null and orderId != ''">
+                AND co.orderID = #{orderId}
+            </if>
+            <if test="orderNo != null and orderNo != ''">
+                AND co.orderNo = #{orderNo}
+            </if>
+            <if test="status != null and status != ''">
+                <choose>
+                    <when test="status == '99'.toString()">
+                        AND co.status in (11,12,13,21,22,23,31,32,33)
+                    </when>
+                    <otherwise>
+                        AND co.status = #{status}
+                    </otherwise>
+                </choose>
+            </if>
+            <if test="buyer != null and buyer != ''">
+                AND (c.name LIKE concat('%',#{buyer},'%') or c.nickName LIKE concat('%',#{buyer},'%'))
+            </if>
+            <if test="orderTime != null and orderTime != ''">
+                AND co.orderTime = #{orderTime}
+            </if>
+            <if test="sendOutStatus != null and sendOutStatus != ''">
+                AND co.sendOutStatus = #{sendOutStatus}
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND co.orderTime <![CDATA[  >=  ]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND co.orderTime <![CDATA[   <=  ]]> #{endTime}
+            </if>
+            <if test="receiver != null and receiver != ''">
+                AND bou.shouHuoRen LIKE concat('%',#{receiver},'%')
+            </if>
+
+            <if test="receiptStatus != null and receiptStatus != ''">
+                AND co.receiptStatus = #{receiptStatus}
+            </if>
+            <if test="payStatus != null and payStatus != ''">
+                AND co.payStatus = #{payStatus}
+            </if>
+            <if test="sendOutStatus != null and sendOutStatus != ''">
+                AND co.sendOutStatus = #{sendOutStatus}
+            </if>
+            <if test="returnedPurchaseStatus != null and returnedPurchaseStatus != ''">
+                AND
+                <if test="returnedPurchaseStatus == 1">
+                    exists
+                </if>
+                <if test="returnedPurchaseStatus == 0">
+                    not exists
+                </if>
+                (select 1 from cm_returned_purchase c3 where c3.status = '1' and c3.orderID = co.orderID and c3.delFlag
+                = 0)
+            </if>
+            <if test="refundType != null and refundType != ''">
+                AND
+                <if test="refundType == 0">
+                    co.refundType is null
+                </if>
+                <if test="refundType == 1">
+                    co.refundType = '1'
+                </if>
+                <if test="refundType == 2">
+                    co.refundType = '2'
+                </if>
+            </if>
+            <if test="productName != null and productName != ''">
+                and p.name like CONCAT('%',#{productName},'%')
+            </if>
+            <if test="orderRefundType != null and orderRefundType != ''">
+                <if test="orderRefundType == 0">
+                    AND (select count(1) from cm_returned_purchase crp where co.orderID = crp.orderID and crp.delFlag =
+                    0) = 0
+                </if>
+                <if test="orderRefundType == 1">
+                    AND (select count(1) from cm_returned_purchase crp where co.orderID = crp.orderID and crp.delFlag =
+                    0) > 0
+                </if>
+                <if test="orderRefundType == 11">
+                    AND (select count(1) from cm_returned_purchase crp where co.orderID = crp.orderID and crp.status = 1
+                    and crp.delFlag = 0) > 0
+                </if>
+                <if test="orderRefundType == 12">
+                    AND (select count(1) from cm_returned_purchase crp where co.orderID = crp.orderID and crp.status = 2
+                    and crp.delFlag = 0
+                    <if test="startRefundTime != null and startRefundTime != ''">
+                        AND crp.confirmReturnTime <![CDATA[  >=  ]]> #{startRefundTime}
+                    </if>
+                    <if test="endRefundTime != null and endRefundTime != ''">
+                        AND crp.confirmReturnTime <![CDATA[   <=  ]]> #{endRefundTime}
+                    </if>
+                    ) > 0
+                </if>
+                <if test="orderRefundType == 13">
+                    AND (select count(1) from cm_returned_purchase crp where co.orderID = crp.orderID and crp.status = 3
+                    and crp.delFlag = 0) > 0
+                </if>
+            </if>
+            <if test="collageFlag != null">
+                <if test="collageFlag == 1">
+                    and chcm.id is not null
+                </if>
+                <if test="collageFlag == 0">
+                    and chcm.id is null
+                </if>
+            </if>
+            <if test="collageStatus != null">
+                and chc.status = #{collageStatus}
+            </if>
+            AND co.delFlag = 0
+        </where>
+        ORDER BY co.orderID DESC, co.orderTime DESC
+    </select>
+
+    <select id="findOrderIdInReturnPurchase" resultType="java.lang.Integer">
+        select orderID from cm_returned_purchase where status = '1'
+        and orderID in
+        <foreach collection="orderIds" open="(" close=")" item="oId" separator=",">
+            #{oId}
+        </foreach>
+        and delFlag = 0
+    </select>
+
+
 </mapper>