yujian
2018-12-29 780377985002bfc6d9fa0b1133bf4b8a922a2130
订单接口优化
4个文件已修改
123 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/order/CommonOrderGoodsVO.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/vo/order/CommonOrderVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
@@ -220,7 +220,7 @@
            AND <![CDATA[tc.co_create_time >= #{startTime}]]>
        </if>
        <if test="endTime != null">
            AND <![CDATA[tc.co_create_time < #{endTime}]]>
            AND <![CDATA[tc.co_create_time <= #{endTime}]]>
        </if>
        <if test="day != null and day == 1"> <!-- 今天 -->
            AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW())
@@ -267,13 +267,13 @@
            AND (th.`hb_type` = 5 OR th.`hb_type` = 6 OR th.`hb_type` = 7)
        </if>
        <if test="orderState != null and orderState = 1">
        <if test="orderState != null and orderState ==  1">
            AND (tc.co_state = 1 or tc.co_state = 2) <!-- 有效订单 -->
        </if>
        <if test="orderState != null and orderState = 2">
        <if test="orderState != null and orderState == 2">
            AND tc.co_state = 3 <!-- 维权订单 -->
        </if>
        <if test="orderState != null and orderState = 3">
        <if test="orderState != null and orderState ==  3">
            AND tc.co_state = 4 <!-- 失效订单 -->
        </if>
@@ -284,7 +284,7 @@
            AND <![CDATA[tc.co_create_time >= #{startTime}]]>
        </if>
        <if test="endTime != null">
            AND <![CDATA[tc.co_create_time < #{endTime}]]>
            AND <![CDATA[tc.co_create_time <= #{endTime}]]>
        </if>
        <if test="day != null and day == 1"> <!-- 今天 -->
            AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW())
@@ -308,7 +308,7 @@
        totalSettlement,COALESCE(SUM(tc.`co_count`),0)AS
        totalCount,tc.`co_source_type`,tc.`co_order_no`,tg.*
        FROM yeshi_ec_common_order_goods tg
        LEFT JOIN yeshi_ec_common_order tc ON tc.`co_order_goods_id` = tg.`co_id`
        LEFT JOIN yeshi_ec_common_order tc ON tc.`co_order_goods_id` = tg.`cog_id`
        WHERE
        <foreach collection="list" item="item" separator=" OR ">
            (tc.`co_source_type` = #{item.sourceType,jdbcType=INTEGER} AND
@@ -395,7 +395,7 @@
            AND <![CDATA[tc.co_create_time >= #{startTime}]]>
        </if>
        <if test="endTime != null">
            AND <![CDATA[tc.co_create_time < #{endTime}]]>
            AND <![CDATA[tc.co_create_time <= #{endTime}]]>
        </if>
        <if test="day != null and day == 1"> <!-- 今天 -->
            AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW())
@@ -436,7 +436,7 @@
            AND <![CDATA[tc.co_create_time >= #{startTime}]]>
        </if>
        <if test="endTime != null">
            AND <![CDATA[tc.co_create_time < #{endTime}]]>
            AND <![CDATA[tc.co_create_time <= #{endTime}]]>
        </if>
        <if test="day != null and day == 1"> <!-- 今天 -->
            AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW())
@@ -476,7 +476,7 @@
            AND <![CDATA[tc.co_create_time >= #{startTime}]]>
        </if>
        <if test="endTime != null">
            AND <![CDATA[tc.co_create_time < #{endTime}]]>
            AND <![CDATA[tc.co_create_time <= #{endTime}]]>
        </if>
        <if test="day != null and day == 1"> <!-- 今天 -->
            AND TO_DAYS(tc.`co_create_time`) = TO_DAYS(NOW())
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -131,7 +131,7 @@
        return commonOrderMapper.countByUidAndOrderState(uid, type,  startTime, endTime, day);
    }
    
    public void listDataFactory (List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods ) {
public void listDataFactory (List<CommonOrderVO> listOrder, List<CommonOrderVO> listGoods ) {
        
        /* 组合商品信息  */
        for (CommonOrderVO commonOrder: listGoods) {
@@ -160,8 +160,22 @@
                        e.printStackTrace();
                    }
                    
                    commonGoodsVO.setActualCount(commonOrder.getTotalCount());
                    commonGoodsVO.setActualPay(commonOrder.getTotalSettlement());
                    Integer hongBaoType = order.getHongBaoType();
                    // 邀请订单信息保护
                    if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType
                                || HongBaoV2.TYPE_ERJI == hongBaoType) {
                        Map<String, String> titleMap = new HashMap<String, String>();
                        titleMap.put("content", "为保障用户隐私,商品信息已隐藏!");
                        titleMap.put("fontColor", "#888888");
                        titleMap.put("bottomColor", "#E9E9E9");
                        commonGoodsVO.setTitle(null);
                        commonGoodsVO.setGoodsTitle(titleMap);
                    }
                    commonGoodsVO.setActualCount(commonOrder.getTotalCount() + "件");
                    String settlement = commonOrder.getTotalSettlement().setScale(2, BigDecimal.ROUND_DOWN).toString();
                    commonGoodsVO.setActualPay("实付款:¥" + settlement);
                    
                    listOrderGoods.add(commonGoodsVO);
                    
@@ -191,17 +205,19 @@
            
            Date thirdCreateTime = order.getThirdCreateTime();
            if (thirdCreateTime != null) {
                order.setDownTime(format.format(thirdCreateTime));
                order.setDownTime("下单时间:" + format.format(thirdCreateTime));
            }
            
            Date settleTime = order.getSettleTime();
            if (settleTime != null) {
                order.setReceiveTime(format.format(settleTime));
                order.setReceiveTime("收货时间:" + format.format(settleTime));
            }
            
            /* 订单状态  转换处理*/
            String orderStateContent = "";
            Map<String, String> orderStateMap = new HashMap<String, String>();
            Integer hongBaoState = order.getHongBaoState();
            
            Integer orderState = order.getState();
            if (CommonOrder.STATE_FK == orderState ) {
@@ -209,7 +225,7 @@
            } else if (CommonOrder.STATE_JS == orderState) {
                orderStateContent = "已收货";
            } else if (CommonOrder.STATE_SX == orderState) {
                orderStateContent = "已退款";
                orderStateContent = "未付款/已退款";
            } else if (CommonOrder.STATE_WQ == orderState) {
                orderStateContent = "已维权";
                
@@ -217,7 +233,8 @@
                List<TaoBaoWeiQuanOrder> listWQ =
                        taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(order.getOrderNo(), "维权成功");
                
                boolean isPart = true;
                boolean isPart = false;// 默认失效
                if (listWQ != null &&  listWQ.size() > 0) {
                    BigDecimal fanTotalMoney = new BigDecimal(0);
                    for (TaoBaoWeiQuanOrder weiQuanOrder: listWQ) {
@@ -227,15 +244,15 @@
                        }
                    }
                    
                    if (fanTotalMoney.compareTo(order.getHongBao()) >= 0) {
                        isPart = false;
                    if (fanTotalMoney.compareTo(order.getHongBao()) < 0) {
                        isPart = true;
                    }
                }
                
                if (isPart) {
                    order.setHongBaoState(HongBaoV2.STATE_BUFENSHIXIAO); // 部分失效
                    hongBaoState = HongBaoV2.STATE_BUFENSHIXIAO; // 部分失效
                } else {
                    order.setHongBaoState(HongBaoV2.STATE_SHIXIAO); // 全部失效
                    hongBaoState = HongBaoV2.STATE_SHIXIAO; // 全部失效
                }
            }
            orderStateMap.put("content", orderStateContent);
@@ -248,24 +265,24 @@
            if (HongBaoV2.TYPE_ZIGOU == hongBaoType || 2 == hongBaoType) {
                // 自购
                hongbaoInfo = "返利";
                order.setHongBaoType(1);
                order.setOrderOrigin("1");
                order.setHongBaoTypePic(CommonOrder.TYPE_FANLI);
            } else if (HongBaoV2.TYPE_SHARE_GOODS == hongBaoType || HongBaoV2.TYPE_SHARE_YIJI == hongBaoType 
                    || HongBaoV2.TYPE_SHARE_ERJI == hongBaoType) {
                // 分享
                hongbaoInfo = "奖金";
                order.setHongBaoType(2);
                order.setOrderOrigin("2");
                order.setHongBaoTypePic(CommonOrder.TYPE_SHARE);
            } else if (HongBaoV2.TYPE_YAOQING == hongBaoType || HongBaoV2.TYPE_YIJI == hongBaoType 
                    || HongBaoV2.TYPE_ERJI == hongBaoType) {
                // 邀请
                hongbaoInfo = "奖金";
                order.setHongBaoType(3);
                order.setOrderOrigin("3");
                order.setHongBaoTypePic(CommonOrder.TYPE_INVITE);
            }
            
            
            String hongBaoDate = "";
            String hongBaoDate = null;
            String hongBaoState_Str = "";
            String hongbaoInfoFontColor = "#E5005C";
            
@@ -273,7 +290,7 @@
            String stateContent = "";
            String stateFontColor = "#E5005C";
            Integer orderHongBaoState = null;
            Integer hongBaoState = order.getHongBaoState();
            if (HongBaoV2.STATE_KELINGQU == hongBaoState || HongBaoV2.STATE_BUKELINGQU == hongBaoState) {
                orderHongBaoState = 1;
                stateContent = "未到账";
@@ -281,8 +298,9 @@
                
                Date preAccountTime = order.getPreAccountTime();
                if (preAccountTime != null) {
                    hongBaoDate = "预计到账时间" + formatday.format(preAccountTime);
                    hongBaoDate = "预计到账时间:" + formatday.format(preAccountTime);
                }
                
            } else if (HongBaoV2.STATE_YILINGQU == hongBaoState) {
                orderHongBaoState = 3;
@@ -290,7 +308,7 @@
                
                Date accountTime = order.getAccountTime();
                if (accountTime != null) {
                    hongBaoDate = "到账时间" + formatday.format(accountTime);
                    hongBaoDate = "到账时间:" + formatday.format(accountTime);
                }
                
            } else if (HongBaoV2.STATE_BUFENSHIXIAO == hongBaoState) {
@@ -298,13 +316,12 @@
                orderHongBaoState = 3;
                Date accountTime = order.getAccountTime();
                if (accountTime != null) {
                    hongBaoDate = "到账时间" + formatday.format(accountTime);
                    hongBaoDate = "到账时间:" + formatday.format(accountTime);
                }
                
            } else if (HongBaoV2.STATE_SHIXIAO == hongBaoState) {
                orderHongBaoState = 4;
                stateContent = "已失效";    
                hongBaoDate = "  ";
                hongbaoInfoFontColor = "#888888";
            }
            order.setHongBaoState(orderHongBaoState);
@@ -315,18 +332,17 @@
            stateMap.put("fontColor", stateFontColor);
            order.setAccountState(stateMap);
            
            if ("奖金".equals(hongbaoInfo) && hongBaoState_Str.trim().length() > 0) {
                hongbaoInfo = hongBaoState_Str + hongbaoInfo;
            }
            hongbaoInfo = hongBaoState_Str + hongbaoInfo;
            BigDecimal hongBao = order.getHongBao();
            if (hongBao == null) {
                hongBao = new BigDecimal(0);
            }
            Map<String, String> hongBaoMap = new HashMap<String, String>();
            hongBaoMap.put("content", hongbaoInfo + " ¥" + hongBao);
            hongBaoMap.put("content", hongbaoInfo + " ¥" + hongBao.setScale(2, BigDecimal.ROUND_DOWN).toString());
            hongBaoMap.put("fontColor", hongbaoInfoFontColor);
            order.setHongBaoInfo(hongBaoMap);
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/vo/order/CommonOrderGoodsVO.java
@@ -1,7 +1,7 @@
package com.yeshi.fanli.vo.order;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Map;
import com.google.gson.annotations.Expose;
import com.yeshi.fanli.entity.order.CommonOrderGoods;
@@ -20,26 +20,38 @@
    // 实际总数量
    @Expose
    private Integer actualCount;
    private String actualCount;
    // 实际总付款
    @Expose
    private BigDecimal actualPay;
    private String actualPay;
    // 商品标题、颜色、背景色
    @Expose
    private Map<String, String> goodsTitle;
    
    public Integer getActualCount() {
    public String getActualCount() {
        return actualCount;
    }
    public void setActualCount(Integer actualCount) {
    public void setActualCount(String actualCount) {
        this.actualCount = actualCount;
    }
    public BigDecimal getActualPay() {
    public String getActualPay() {
        return actualPay;
    }
    public void setActualPay(BigDecimal actualPay) {
    public void setActualPay(String actualPay) {
        this.actualPay = actualPay;
    }
    public Map<String, String> getGoodsTitle() {
        return goodsTitle;
    }
    public void setGoodsTitle(Map<String, String> goodsTitle) {
        this.goodsTitle = goodsTitle;
    }
}
fanli/src/main/java/com/yeshi/fanli/vo/order/CommonOrderVO.java
@@ -35,7 +35,7 @@
    // 订单总预估奖金
     private BigDecimal hongBao;
     
     // 订单状态  1 淘宝 2 天猫
     //   1 淘宝 2 天猫
      @Expose
    private Integer orderType;
     // 红包状态
@@ -47,6 +47,9 @@
    // 红包类型图片链接
     @Expose
     private String hongBaoTypePic;
     // 订单: 自购 分享 邀请
      @Expose
    private String orderOrigin;
    // 订单状态
     @Expose
    private Map<String, String> orderState;
@@ -208,5 +211,13 @@
        this.accountState = accountState;
    }
    public String getOrderOrigin() {
        return orderOrigin;
    }
    public void setOrderOrigin(String orderOrigin) {
        this.orderOrigin = orderOrigin;
    }
    
}