Browse Source

订单管理

PLF 5 years ago
parent
commit
51615f53b5

+ 0 - 1
src/main/java/com/caimei/modules/club/controller/CmUserOrganizeController.java

@@ -10,7 +10,6 @@ import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 

+ 85 - 0
src/main/java/com/caimei/modules/order/controller/CmReturnedPurchaseController.java

@@ -0,0 +1,85 @@
+package com.caimei.modules.order.controller;
+
+import com.caimei.modules.club.entity.Page;
+import com.caimei.modules.order.entity.BpClause;
+import com.caimei.modules.order.entity.CmReturnedPurchase;
+import com.caimei.modules.order.entity.NewOrder;
+import com.caimei.modules.order.service.BpClauseService;
+import com.caimei.modules.order.service.CmReturnedPurchaseService;
+import com.caimei.modules.order.service.NewOrderService;
+import com.caimei.utils.JsonModel;
+import com.github.pagehelper.PageHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 退货退款Controller
+ */
+@Controller
+@RequestMapping(value = "/order/cmReturnedPurchase")
+public class CmReturnedPurchaseController {
+    @Autowired
+    private CmReturnedPurchaseService cmReturnedPurchaseService;
+    @Autowired
+    private NewOrderService newOrderService;
+    @Autowired
+    private BpClauseService bpClauseService;
+
+
+    /**
+     * 用户退款列表
+     *
+     * @param cmReturnedPurchase
+     * @param page
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "list")
+    public JsonModel list(CmReturnedPurchase cmReturnedPurchase, Page page) {
+        PageHelper.startPage(page.getIndex(), page.getPageSize());
+        List<CmReturnedPurchase> returnedPurchaseList = cmReturnedPurchaseService.findList(cmReturnedPurchase);
+        Page<CmReturnedPurchase> purchasePage = new Page<>(returnedPurchaseList);
+        return JsonModel.newInstance().success(purchasePage);
+    }
+
+    /**
+     * 退款详情
+     */
+    @ResponseBody
+    @RequestMapping(value = "toRecturnRecord")
+    public JsonModel toRecturnRecord(CmReturnedPurchase cmReturnedPurchase) {
+        Map<String, Object> map = new HashMap();
+        try {
+            NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
+            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+            BpClause bpClause = new BpClause();
+            bpClause.setEnabledStatus("1");
+            List<BpClause> bpClauses = bpClauseService.findList(bpClause);
+            Double returnedPurchaseFee = 0D;    //退款(退货)总金额
+            Double refundFee = 0D;  //退款总额(给买家)
+            for (CmReturnedPurchase bean : dataList) {
+                if (!bean.getStatus().equals("3")) {
+                    returnedPurchaseFee += bean.getReturnedPurchaseFee();
+                    refundFee += bean.getRefundFee();
+                }
+            }
+            map.put("bpClauses", bpClauses);
+            map.put("cmReturnedPurchaseList", dataList);
+            map.put("order", newOrder);
+            map.put("returnedPurchaseFee", returnedPurchaseFee);
+            map.put("refundFee", refundFee);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return JsonModel.newInstance().success(map);
+    }
+}

+ 66 - 1
src/main/java/com/caimei/modules/order/controller/OrganizeOrderController.java

@@ -8,11 +8,14 @@ import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -160,7 +163,7 @@ public class OrganizeOrderController {
     }
 
     /**
-     * 物流详情展示
+     * 发货记录
      */
     @ResponseBody
     @RequestMapping("logisticsDetails")
@@ -169,4 +172,66 @@ public class OrganizeOrderController {
         logisticsInfoVos = newShopOrderService.logisticsDetails(orderID, logisticsBatchID);
         return JsonModel.newInstance().success(logisticsInfoVos);
     }
+
+    /**
+     * 收退款记录
+     */
+    @ResponseBody
+    @RequestMapping(value = "toRefundRecord")
+    public JsonModel toRefundRecord(CmReturnedPurchase cmReturnedPurchase, String from) {
+        JsonModel jsonModel = JsonModel.newInstance();
+        Map<String, Object> map = new HashMap();
+        try {
+            NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
+            List<CmReceiptOrderRelation> listRelation = cmReceiptOrderRelationService.findByOrderID(newOrder.getOrderID());
+            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+            Double refundFee = 0D;  //退款总额
+            for (CmReturnedPurchase bean : dataList) {
+                if (!bean.getStatus().equals("3")) {
+                    refundFee += bean.getRefundFee();
+                }
+            }
+            map.put("cmReturnedPurchaseList", dataList);
+            map.put("order", newOrder);
+            map.put("receipt", listRelation);
+            map.put("refundFee", refundFee);
+            map.put("from", from);
+            map.put("orderID", cmReturnedPurchase.getOrderID().toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return jsonModel.success(map);
+    }
+
+    /**
+     * 退款退货记录
+     */
+    @ResponseBody
+    @RequestMapping(value = "toRecturnRecordByOrderID")
+    public JsonModel toRecturnRecordByOrderID(CmReturnedPurchase cmReturnedPurchase) {
+        Map<String, Object> map = new HashMap();
+        try {
+            NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
+            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+            Double returnedPurchaseFee = 0D;    //退款(退货)总金额
+            Double refundFee = 0D;  //退款总额(给买家)
+            for (CmReturnedPurchase bean : dataList) {
+                if (!bean.getStatus().equals("3")) {
+                    returnedPurchaseFee += bean.getReturnedPurchaseFee();
+                    refundFee += bean.getRefundFee();
+                }
+            }
+            BpClause bpClause = new BpClause();
+            bpClause.setEnabledStatus("1");
+            List<BpClause> bpClauses = bpClauseService.findList(bpClause);
+            map.put("bpClauses", bpClauses);
+            map.put("cmReturnedPurchaseList", dataList);
+            map.put("order", newOrder);
+            map.put("returnedPurchaseFee", returnedPurchaseFee);
+            map.put("refundFee", refundFee);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return JsonModel.newInstance().success(map);
+    }
 }

+ 3 - 0
src/main/java/com/caimei/modules/order/dao/CmReceiptOrderRelationDao.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.order.dao;
 
+import com.caimei.modules.order.entity.CmReceiptOrderRelation;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -7,4 +8,6 @@ import java.util.List;
 @Mapper
 public interface CmReceiptOrderRelationDao {
     List<Integer> toAudit(Integer orderID);
+
+    List<CmReceiptOrderRelation> findByOrderID(Integer orderID);
 }

+ 96 - 0
src/main/java/com/caimei/modules/order/entity/CmReceiptOrderRelation.java

@@ -0,0 +1,96 @@
+package com.caimei.modules.order.entity;
+
+import org.hibernate.validator.constraints.Length;
+
+import java.beans.Transient;
+import java.io.Serializable;
+
+/**
+ * 收款项和订单关系Entity
+ *
+ * @author lwt
+ * @version 2019-06-20
+ */
+public class CmReceiptOrderRelation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    private Integer id;
+    private String relationType;        // 关系类型:1返佣订单(返佣款)、2非返佣订单(订单款或者非订单款)
+    private String receiptID;        // 识别款项Id(对应cm_discern_receipt表)
+    private String associateAmount;        // 关联金额:1普通收款(线下):收款具体对该应母订单的收金额、2线上支付:付款金额就等于该金额、3返佣收款:默认为0
+    private String orderID;        // 订单Id(relationType值为1是为子订单ID,为2时为主订单ID)
+
+    private String payType;    //收款类型
+    private String receiptDate;    //收款时间
+    private String confirmType;        //确认订单类型
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    @Length(min = 0, max = 1, message = "关系类型:1返佣订单(返佣款)、2非返佣订单(订单款或者非订单款)长度必须介于 0 和 1 之间")
+    public String getRelationType() {
+        return relationType;
+    }
+
+    public void setRelationType(String relationType) {
+        this.relationType = relationType;
+    }
+
+    @Length(min = 0, max = 11, message = "识别款项Id(对应cm_discern_receipt表)长度必须介于 0 和 11 之间")
+    public String getReceiptID() {
+        return receiptID;
+    }
+
+    public void setReceiptID(String receiptID) {
+        this.receiptID = receiptID;
+    }
+
+    public String getAssociateAmount() {
+        return associateAmount;
+    }
+
+    public void setAssociateAmount(String associateAmount) {
+        this.associateAmount = associateAmount;
+    }
+
+    @Length(min = 0, max = 11, message = "订单Id(relationType值为1是为子订单ID,为2时为主订单ID)长度必须介于 0 和 11 之间")
+    public String getOrderID() {
+        return orderID;
+    }
+
+    public void setOrderID(String orderID) {
+        this.orderID = orderID;
+    }
+
+    @Transient
+    public String getPayType() {
+        return payType;
+    }
+
+    public void setPayType(String payType) {
+        this.payType = payType;
+    }
+
+    @Transient
+    public String getReceiptDate() {
+        return receiptDate;
+    }
+
+    public void setReceiptDate(String receiptDate) {
+        this.receiptDate = receiptDate;
+    }
+
+    @Transient
+    public String getConfirmType() {
+        return confirmType;
+    }
+
+    public void setConfirmType(String confirmType) {
+        this.confirmType = confirmType;
+    }
+}

+ 4 - 0
src/main/java/com/caimei/modules/order/service/CmReceiptOrderRelationService.java

@@ -1,7 +1,11 @@
 package com.caimei.modules.order.service;
 
+import com.caimei.modules.order.entity.CmReceiptOrderRelation;
+
 import java.util.List;
 
 public interface CmReceiptOrderRelationService {
     List<Integer> toAudit(Integer orderID);
+
+    List<CmReceiptOrderRelation> findByOrderID(Integer orderID);
 }

+ 2 - 0
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -8,4 +8,6 @@ public interface CmReturnedPurchaseService {
     List<Integer> findOrderIDsInApplyReturnFlag(List<Integer> oId);
 
     List<CmReturnedPurchase> getReturnedPurchaseList(CmReturnedPurchase cmReturnedPurchase);
+
+    List<CmReturnedPurchase> findList(CmReturnedPurchase cmReturnedPurchase);
 }

+ 11 - 0
src/main/java/com/caimei/modules/order/service/impl/CmReceiptOrderRelationServiceImpl.java

@@ -1,7 +1,9 @@
 package com.caimei.modules.order.service.impl;
 
 import com.caimei.modules.order.dao.CmReceiptOrderRelationDao;
+import com.caimei.modules.order.entity.CmReceiptOrderRelation;
 import com.caimei.modules.order.service.CmReceiptOrderRelationService;
+import com.caimei.utils.ReceivablesType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,4 +18,13 @@ public class CmReceiptOrderRelationServiceImpl implements CmReceiptOrderRelation
     public List<Integer> toAudit(Integer orderID) {
         return cmReceiptOrderRelationDao.toAudit(orderID);
     }
+
+    @Override
+    public List<CmReceiptOrderRelation> findByOrderID(Integer orderID) {
+        List<CmReceiptOrderRelation> list= cmReceiptOrderRelationDao.findByOrderID(orderID);
+        for(CmReceiptOrderRelation bean : list){
+            bean.setPayType(ReceivablesType.getReceivablesType(Integer.parseInt(bean.getPayType())));
+        }
+        return list;
+    }
 }

+ 5 - 0
src/main/java/com/caimei/modules/order/service/impl/CmReturnedPurchaseServiceImpl.java

@@ -117,4 +117,9 @@ public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService
         }
         return dataList;
     }
+
+    @Override
+    public List<CmReturnedPurchase> findList(CmReturnedPurchase cmReturnedPurchase) {
+        return cmReturnedPurchaseDao.findList(cmReturnedPurchase);
+    }
 }

+ 1 - 1
src/main/java/com/caimei/modules/products/controller/CmMallOrganizeProductsController.java

@@ -39,7 +39,7 @@ public class CmMallOrganizeProductsController {
     private CmMallProductsClassifyService cmMallProductsClassifyService;
 
     /**
-     * 去商品列表页面(全部页面)
+     * 去商品列表页面
      *
      * @return
      */

+ 73 - 0
src/main/java/com/caimei/utils/ReceivablesType.java

@@ -0,0 +1,73 @@
+/**
+ * <p>Description: Copyright © 2014-2015 CAIMEI365.com All Rights Reserved</p>
+ * @author zhang
+ * @date 2015年8月19日 上午11:00:10
+ */
+package com.caimei.utils;
+
+
+public enum ReceivablesType {
+
+	JIANSHE(1,"建设银行-7297"),
+	GUANGFA(2,"广发银行-0115"),
+	ZHONGXING_1(3,"中信银行-7172"),
+	ZHONGXING_2(4,"中信银行-0897"),
+	ZHONGXING_2_1(5,"中信银行-0897-财付通"),
+	ZHONGXING_2_2(6,"中信银行-0897-支付宝"),
+	XIANSHANG_ZFB(7,"线上-支付宝"),
+	XIANSHANG_WX(8,"线上-微信支付"),
+	XIANSHANG_KUAIQIAN(9,"线上-快钱支付"),
+	KOUTOUFANYONG(10,"口头返佣"),
+	GUANGFA_1(11,"广发银行-5461");
+
+
+	private int code;
+	private String desc;
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+
+	ReceivablesType(int code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+    public static String getReceivablesType(int code){
+        for(ReceivablesType type : ReceivablesType.values()){
+            if(type.getCode() == code){
+                return type.desc;
+            }
+        }
+        return "";
+    }
+
+	public static ReceivablesType getReceivablesType(String desc){
+		for(ReceivablesType type : ReceivablesType.values()){
+			if(type.getDesc().contains(desc)){
+				return type;
+			}
+		}
+		return null;
+	}
+
+	public static Boolean havaHandlingFee(int code){
+		Boolean res = false;
+		if(ReceivablesType.ZHONGXING_2_1.getCode() == code ||ReceivablesType.ZHONGXING_2_2.getCode() == code ||ReceivablesType.ZHONGXING_2.getCode() == code || ReceivablesType.GUANGFA_1.getCode() == code){
+			res =  true;
+		}
+		return res;
+	}
+}

+ 3 - 3
src/main/resources/mapper/CmMallOrganizeProductsMapper.xml

@@ -131,13 +131,13 @@
     <update id="saveSort">
 		UPDATE cm_mall_organize_products SET
 		<if test="modules == 1">
-            preferredProductSort = #{preferredProductSort}
+            preferredProductSort = #{sort}
         </if>
         <if test="modules == 2">
-            preferentialProductSort = #{preferentialProductSort}
+            preferentialProductSort = #{sort}
         </if>
         <if test="modules == 3">
-            commonlyProductSort = #{commonlyProductSort}
+            commonlyProductSort = #{sort}
         </if>
 		WHERE id = #{id}
 	</update>

+ 16 - 0
src/main/resources/mapper/CmReceiptOrderRelationMapper.xml

@@ -15,4 +15,20 @@
 		  AND cror.delFlag = '0'
 		  AND cror.orderID = #{orderID}
 	</select>
+
+	<select id="findByOrderID" resultType="com.caimei.modules.order.entity.CmReceiptOrderRelation">
+		select
+		a.*,
+		b.payType as "payType",
+		b.receiptDate as "receiptDate",
+		b.confirmType as "confirmType"
+		from  cm_receipt_order_relation a
+		left join cm_discern_receipt b on a.receiptID = b.id
+		where a.orderID = #{orderID}
+		AND b.receiptType = '1'
+		AND b.receiptStatus = '3'
+		AND a.delFlag = '0'
+		AND b.delFlag = '0'
+		order by b.receiptDate desc
+	</select>
 </mapper>