admin
2019-07-31 5046ecde3cd849511a337e25e13af7df7f1894bc
Merge remote-tracking branch 'origin/master' into div

Conflicts:
fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
1 文件已重命名
19个文件已修改
555 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/DynamicRecommendController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/taobao/TaoBaoWeiQuanOrderMapper.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoWeiQuanOrder.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/order/pdd/UpdatePDDOrderJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/taobao/TaoBaoWeiQuanOrderMapper.xml 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoManageServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java 207 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanOrderServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoManageService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoWeiQuanOrderService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/OrderAdminController.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.admin;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -17,16 +18,21 @@
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.controller.admin.utils.AdminUtils;
import com.yeshi.fanli.entity.money.UserMoneyDebt.UserMoneyDebtTypeEnum;
import com.yeshi.fanli.entity.money.UserMoneyDebt;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.order.CommonOrderException;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.count.TaoBaoOrderCountService;
import com.yeshi.fanli.service.inter.money.UserMoneyDebtService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.OrderProcessService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
@@ -75,6 +81,12 @@
    @Resource
    private OrderProcessService orderProcessService;
    @Resource
    private HongBaoOrderService hongBaoOrderService;
    @Resource
    private UserMoneyDebtService userMoneyDebtService;
    /**
     * 统计历史订单-淘宝订单
@@ -201,7 +213,22 @@
                            // 退款成功
                            order.setWeiQuanBackMoney(detail.getMoney().abs().toString());
                        } else {// 尚未退款
                            order.setWeiQuanBackMoney("-" + order.getHongBao());
                            order.setWeiQuanBackMoney(drawBack.getDrawBackMoney().toString());
                            // 查询出对应的hongBaoId
                            CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(
                                    Constant.SOURCE_TYPE_TAOBAO, drawBack.getOrderItemId());
                            if (commonOrder != null) {
                                HongBaoOrder hongBaoOrder = hongBaoOrderService
                                        .selectDetailByCommonOrderId(commonOrder.getId());
                                if (hongBaoOrder != null) {
                                    UserMoneyDebt debt = userMoneyDebtService.selectByTypeAndSourceId(
                                            UserMoneyDebtTypeEnum.order, hongBaoOrder.getHongBaoV2().getId());
                                    if (debt != null && debt.getLeftMoney().compareTo(new BigDecimal(0)) > 0) {
                                        order.setWeiQuanBackMoney(
                                                new BigDecimal(0).subtract(debt.getLeftMoney()).toString());//未扣除
                                    }
                                }
                            }
                        }
                    } else {// 尚未退款
fanli/src/main/java/com/yeshi/fanli/controller/admin/order/TaoBaoOrderController.java
@@ -21,9 +21,11 @@
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.job.order.taobao.UpdateOrderJob;
import com.yeshi.fanli.job.order.taobao.UpdateTBRelationAndSpecialOrderJob;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoWeiQuanOrderService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
@@ -37,6 +39,9 @@
    @Resource
    private TaoBaoOrderService taoBaoOrderService;
    @Resource
    private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
    @Resource
    private UpdateTBRelationAndSpecialOrderJob updateRelationAndSpecialOrderJob;
@@ -140,4 +145,48 @@
        }
    }
    @RequestMapping(value = "listTaoBaoWQOrder")
    public void listTaoBaoWeiQuanOrder(String callback, String key, Integer pageIndex, PrintWriter out) {
        try {
            if (pageIndex == null || pageIndex < 0) {
                pageIndex = 1;
            }
            List<TaoBaoWeiQuanOrder> orderList = null;
            Long count = null;
            if (!StringUtil.isNullOrEmpty(key)) {
                orderList = taoBaoWeiQuanOrderService.listByOrderId(key);
                count = (long) orderList.size();
            } else {
                orderList = taoBaoWeiQuanOrderService.listByState(null, pageIndex, Constant.PAGE_SIZE);
                count = taoBaoWeiQuanOrderService.countByState(null);
            }
            int pageSize = Constant.PAGE_SIZE;
            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
            PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
            Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
                @Override
                public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                    if (value == null) {
                        return new JsonPrimitive("");
                    } else {
                        return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy-MM-dd HH:mm:ss"));
                    }
                }
            }).create();
            JSONObject data = new JSONObject();
            data.put("pe", pe);
            data.put("result_list", gson.toJson(orderList));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/DynamicRecommendController.java
@@ -152,6 +152,9 @@
        Pattern p = Pattern.compile(URL_REGEX);
        Matcher matcher = p.matcher(text);
        if (!matcher.find()) {// 不包含链接
            // 解析淘口令
            if (analysisTaoToken(text, out))
                return;
            // 商品详情
            // 发现
            // 没有链接,标题过长也不处理
@@ -163,6 +166,8 @@
            LogHelper.test("根据粘贴板推荐:" + text);
            if (text.length() > 80) {
                out.print(JsonUtil.loadFalseResult("值过长"));
                return;
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java
@@ -679,7 +679,7 @@
        long counttotal = 5000;
        // 精选库数据为空时,网络进行查询
        if (listQuery == null || listQuery.size() == 0) {
        if (listQuery == null || listQuery.size() == 0||listQuery.size()<10) {
            long count = qualityGoodsService.countQueryClassId(gcid);
            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
            page = page - totalPage;
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java
@@ -140,6 +140,18 @@
     */
    Long countInviteOrderCountByUidAndSettleTime(@Param("uid") Long uid, @Param("state") int state,
            @Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
    /**
     * 根据用户ID,订单状态和结算时间统计分享赚的订单数量
     *
     * @param uid
     * @param minDate
     * @param maxDate
     * @return
     */
    Long countShareOrderCountByUidAndSettleTime(@Param("uid") Long uid, @Param("state") int state,
            @Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
    /**
     * 通过用户ID和状态查询数量
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/taobao/TaoBaoWeiQuanOrderMapper.java
@@ -66,4 +66,26 @@
    List<TaoBaoWeiQuanOrder> listByState(@Param("state") String state, @Param("start") long start,
            @Param("count") int count);
    /**
     * 根据状态统计数量
     *
     * @param state
     * @return
     */
    long countByState(@Param("state") String state);
    /**
     * 根据订单号检索
     * @param orderId
     * @return
     */
    List<TaoBaoWeiQuanOrder> listByOrderId(String orderId);
    /**
     * 根据子订单号检索
     * @param tradeId
     * @return
     */
    TaoBaoWeiQuanOrder selectByOrderItem(String tradeId);
}
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoWeiQuanOrder.java
@@ -41,10 +41,10 @@
    private Date createTime;// 创建时间
    @Column(name = "tmo_updatetime")
    private Date updateTime;// 本地更新时间
    @Column(name = "tmo_settlement")
    private BigDecimal settlement;// 结算金额
    @Transient
    private int mate; // 是否已匹配
    
    public Long getId() {
        return id;
@@ -54,6 +54,14 @@
        this.id = id;
    }
    public BigDecimal getSettlement() {
        return settlement;
    }
    public void setSettlement(BigDecimal settlement) {
        this.settlement = settlement;
    }
    public Date getCreateTime() {
        return createTime;
    }
fanli/src/main/java/com/yeshi/fanli/job/order/pdd/UpdatePDDOrderJob.java
File was renamed from fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdatePDDOrderJob.java
@@ -1,4 +1,4 @@
package com.yeshi.fanli.job.order.jd;
package com.yeshi.fanli.job.order.pdd;
import java.util.ArrayList;
import java.util.Date;
fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml
@@ -233,6 +233,16 @@
        co.`co_settle_time` is not null and co.`co_settle_time`>=#{minDate}
        and #{maxDate}>co.`co_settle_time`;
    </select>
    <select id="countShareOrderCountByUidAndSettleTime" resultType="java.lang.Long">
        SELECT COUNT(h.hb_id) FROM yeshi_ec_hongbao_v2 h LEFT JOIN
        yeshi_ec_hongbao_order ho ON h.`hb_id`=ho.`ho_hongbao_id` LEFT JOIN
        yeshi_ec_common_order co ON co.`co_id`=ho.`ho_order_id` WHERE
        h.`hb_uid`=#{uid} and h.`hb_type`=20 and co.`co_state`=#{state} and
        co.`co_settle_time` is not null and co.`co_settle_time`>=#{minDate}
        and #{maxDate}>co.`co_settle_time`;
    </select>
fanli/src/main/java/com/yeshi/fanli/mapping/taobao/TaoBaoWeiQuanOrderMapper.xml
@@ -20,8 +20,9 @@
            jdbcType="TIMESTAMP" />
        <result column="tmo_createtime" property="createTime" jdbcType="TIMESTAMP" />
        <result column="tmo_updatetime" property="updateTime" jdbcType="TIMESTAMP" />
        <result column="tmo_settlement" property="settlement" jdbcType="DECIMAL" />
    </resultMap>
    <sql id="Base_Column_List">tmo_id,tmo_order_id,tmo_order_item_id,tmo_goods_name,tmo_money,tmo_fan_money,tmo_state,tmo_jiesuan_time,tmo_weiquan_time,tmo_weiquan_finish_time,tmo_createtime,tmo_updatetime
    <sql id="Base_Column_List">tmo_id,tmo_order_id,tmo_order_item_id,tmo_goods_name,tmo_money,tmo_fan_money,tmo_state,tmo_jiesuan_time,tmo_weiquan_time,tmo_weiquan_finish_time,tmo_createtime,tmo_updatetime,tmo_settlement
    </sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
@@ -30,23 +31,18 @@
        from yeshi_ec_taobao_weiqaun_order where tmo_id =
        #{id,jdbcType=BIGINT}
    </select>
    <select id="selectByOrderIdAndOrderItemId" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_weiqaun_order where tmo_order_id =#{orderId} and
        tmo_order_item_id=#{orderItemId}
    </select>
    <select id="selectListByOrderIdAndState" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_weiqaun_order where tmo_order_id =#{orderId} and
        tmo_state=#{state}
    </select>
    <select id="selectByOrderItemId" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
@@ -54,16 +50,37 @@
    </select>
    <select id="listByOrderId" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_weiqaun_order
        where tmo_order_id=#{0}
    </select>
    <select id="listByState" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_weiqaun_order
        <if test="state!=null">
            where tmo_state like '${state}%'
        </if>
        <if test="state!=null">where tmo_state like '${state}%'</if>
        order by tmo_createtime desc limit #{start},#{count}
    </select>
    <select id="countByState" resultType="java.lang.Long"
        parameterType="java.lang.String">
        select
        count(*)
        from yeshi_ec_taobao_weiqaun_order
        <if test="state!=null">where tmo_state like '${state}%'</if>
    </select>
    <select id="selectByOrderItem" resultMap="BaseResultMap" parameterType="java.lang.String">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_taobao_weiqaun_order
        where tmo_order_item_id=#{0}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
@@ -72,9 +89,9 @@
    <insert id="insert" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder"
        useGeneratedKeys="true" keyProperty="id">insert into
        yeshi_ec_taobao_weiqaun_order
        (tmo_id,tmo_order_id,tmo_order_item_id,tmo_goods_name,tmo_money,tmo_fan_money,tmo_state,tmo_jiesuan_time,tmo_weiquan_time,tmo_weiquan_finish_time,tmo_createtime,tmo_updatetime)
        (tmo_id,tmo_order_id,tmo_order_item_id,tmo_goods_name,tmo_money,tmo_fan_money,tmo_state,tmo_jiesuan_time,tmo_weiquan_time,tmo_weiquan_finish_time,tmo_createtime,tmo_updatetime,tmo_settlement)
        values
        (#{id,jdbcType=BIGINT},#{orderId,jdbcType=VARCHAR},#{orderItemId,jdbcType=VARCHAR},#{goodsName,jdbcType=VARCHAR},#{money,jdbcType=DECIMAL},#{fanMoney,jdbcType=DECIMAL},#{state,jdbcType=VARCHAR},#{jieSuanTime,jdbcType=TIMESTAMP},#{weiQuanTime,jdbcType=TIMESTAMP},#{weiQuanFinishTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})
        (#{id,jdbcType=BIGINT},#{orderId,jdbcType=VARCHAR},#{orderItemId,jdbcType=VARCHAR},#{goodsName,jdbcType=VARCHAR},#{money,jdbcType=DECIMAL},#{fanMoney,jdbcType=DECIMAL},#{state,jdbcType=VARCHAR},#{jieSuanTime,jdbcType=TIMESTAMP},#{weiQuanTime,jdbcType=TIMESTAMP},#{weiQuanFinishTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{settlement,jdbcType=DECIMAL})
    </insert>
    <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder"
        useGeneratedKeys="true" keyProperty="id">
@@ -92,6 +109,7 @@
            <if test="weiQuanFinishTime != null">tmo_weiquan_finish_time,</if>
            <if test="createTime != null">tmo_createtime,</if>
            <if test="updateTime != null">tmo_updatetime,</if>
            <if test="settlement != null">tmo_settlement,</if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -107,6 +125,7 @@
            <if test="weiQuanFinishTime != null">#{weiQuanFinishTime,jdbcType=TIMESTAMP},</if>
            <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
            <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
            <if test="settlement != null">#{settlement,jdbcType=DECIMAL}</if>
        </trim>
    </insert>
    <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder">update
@@ -121,7 +140,8 @@
        #{weiQuanTime,jdbcType=TIMESTAMP},tmo_weiquan_finish_time =
        #{weiQuanFinishTime,jdbcType=TIMESTAMP},tmo_createtime =
        #{createTime,jdbcType=TIMESTAMP},tmo_updatetime =
        #{updateTime,jdbcType=TIMESTAMP} where tmo_id = #{id,jdbcType=BIGINT}
        #{updateTime,jdbcType=TIMESTAMP} ,tmo_settlement
        =#{settlement,jdbcType=DECIMAL} where tmo_id = #{id,jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder">
        update yeshi_ec_taobao_weiqaun_order
@@ -138,23 +158,16 @@
            </if>
            <if test="createTime != null">tmo_createtime=#{createTime,jdbcType=TIMESTAMP},</if>
            <if test="updateTime != null">tmo_updatetime=#{updateTime,jdbcType=TIMESTAMP},</if>
            <if test="settlement !=null">tmo_settlement =#{settlement,jdbcType=DECIMAL},</if>
        </set>
        where tmo_id = #{id,jdbcType=BIGINT}
    </update>
    <sql id="Column_DateType">
        <if test="dateType == 1">
            DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m-%d') AS 'showDate'
        <if test="dateType == 1">DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m-%d') AS 'showDate'
        </if>
        <if test="dateType == 2">
            DATE_FORMAT(t.`tmo_weiquan_time`,'%m') AS 'showDate'
        </if>
        <if test="dateType == 3">
            DATE_FORMAT(t.`tmo_weiquan_time`,'%Y') AS 'showDate'
        </if>
        <if test="dateType == 2">DATE_FORMAT(t.`tmo_weiquan_time`,'%m') AS 'showDate'</if>
        <if test="dateType == 3">DATE_FORMAT(t.`tmo_weiquan_time`,'%Y') AS 'showDate'</if>
    </sql>
    <sql id="Count_Select_DateType">
        <if test="startTime != null and startTime != '' ">
            AND DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
@@ -162,38 +175,27 @@
        <if test="endTime != null and endTime != '' ">
            AND DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m-%d') <![CDATA[ <= ]]>'${endTime}'
        </if>
        <if test="year != null and year != '' ">
            AND DATE_FORMAT(t.`tmo_weiquan_time`,'%Y') = '${year}'
        <if test="year != null and year != '' ">AND DATE_FORMAT(t.`tmo_weiquan_time`,'%Y') = '${year}'
        </if>
    </sql>
    <sql id="Count_Group_DateType">
        <if test="dateType == 1">
            GROUP BY DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m-%d')
        </if>
        <if test="dateType == 2">
            GROUP BY DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m')
        </if>
        <if test="dateType == 3">
            GROUP BY DATE_FORMAT(t.`tmo_weiquan_time`,'%Y')
        </if>
        <if test="dateType == 1">GROUP BY DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m-%d')</if>
        <if test="dateType == 2">GROUP BY DATE_FORMAT(t.`tmo_weiquan_time`,'%Y-%m')</if>
        <if test="dateType == 3">GROUP BY DATE_FORMAT(t.`tmo_weiquan_time`,'%Y')</if>
    </sql>
    <select id="countWeiQaunOrderNumber" resultType="java.util.HashMap">
        SELECT IFNULL(COUNT(t.`tmo_id`),0) AS showValue,
        <include refid="Column_DateType" />
        FROM yeshi_ec_taobao_weiqaun_order t
        WHERE t.`tmo_createtime`IS NOT
        FROM yeshi_ec_taobao_weiqaun_order t WHERE t.`tmo_createtime`IS NOT
        NULL
        <include refid="Count_Select_DateType" />
        <include refid="Count_Group_DateType" />
        ORDER BY t.`tmo_weiquan_time`
    </select>
    <select id="countWeiQaunOrderMoney" resultType="java.util.HashMap">
        SELECT CAST(SUM(t.`tmo_fan_money`)AS DECIMAL(19,2)) AS showValue,
        <include refid="Column_DateType" />
        FROM yeshi_ec_taobao_weiqaun_order t
        WHERE t.`tmo_createtime` IS NOT
        FROM yeshi_ec_taobao_weiqaun_order t WHERE t.`tmo_createtime` IS NOT
        NULL
        <include refid="Count_Select_DateType" />
        <include refid="Count_Group_DateType" />
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -458,6 +458,12 @@
        // 大淘客数据
        DaTaoKeDetail daTaoKe = daTaoKeGoodsService.getGoodsNotInList(subclassId, listId, 1).get(0);
        try {
            daTaoKe = DaTaoKeUtil.filterDaTaoKe(TaoKeApiUtil.searchGoodsDetail(daTaoKe.getGoodsId()), daTaoKe);
        } catch (Exception e) {
        }
        List<TaoBaoGoodsBrief> listGoods = new ArrayList<TaoBaoGoodsBrief>();
        TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(daTaoKe);
        listGoods.add(taoBaoGoodsBrief);
fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoManageServiceImpl.java
@@ -165,4 +165,28 @@
        return new BigDecimal(0);
    }
    @Override
    public BigDecimal getTLJFanLiRate() {
        String key = "tlj_fanli_proportion";
        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis());
        if (hongBaoManage == null)
            hongBaoManage = hongBaoManageMapper.selectByKey(key);
        if (hongBaoManage != null)
            return new BigDecimal(hongBaoManage.getValue());
        LogHelper.error("获取淘礼金返利分成比例出错");
        return null;
    }
    @Override
    public BigDecimal getTLJShareRate() {
        String key = "tlj_share_proportion";
        HongBaoManage hongBaoManage = hongBaoManageMapper.selectByKeyAndMaxValidTime(key, System.currentTimeMillis());
        if (hongBaoManage == null)
            hongBaoManage = hongBaoManageMapper.selectByKey(key);
        if (hongBaoManage != null)
            return new BigDecimal(hongBaoManage.getValue());
        LogHelper.error("获取淘礼金分享赚分成比例出错");
        return null;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -228,7 +228,7 @@
    @Override
    public void fanli() {
        // 获取主红包
        List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByType(HongBao.TYPE_TAOBAO, 100);
        List<HongBaoV2> hongBaoList = hongBaoV2Mapper.listCanBalanceHongBaoByType(HongBao.TYPE_TAOBAO, 1000);
        //
        // /**
        // * 需要实时更新待返利的订单
@@ -736,12 +736,9 @@
                Date minDate = new Date(TimeUtil
                        .convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
                long validCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid,
                        CommonOrder.STATE_JS, minDate, maxDate);
                long weiQuanCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid,
                        CommonOrder.STATE_WQ, minDate, maxDate);
                long invalidCount = commonOrderService.countByUidAndOrderStateWithOrderBalanceTime(uid,
                        CommonOrder.STATE_SX, minDate, maxDate);
                long validCount =  hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS, minDate, maxDate);
                long weiQuanCount = hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ, minDate, maxDate);
                long invalidCount =hongBaoV2Mapper.countShareOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_SX, minDate, maxDate);
                UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, Constant.SOURCE_TYPE_TAOBAO,
                        (int) validCount, (int) weiQuanCount, (int) invalidCount, sharemoney, new Date());
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -99,6 +99,21 @@
        userMoneyDebtService.addUserMoneyDebt(debt);
    }
    /**
     * 计算退款金额
     *
     * @param settlement
     * @param wqMoney
     * @param hongBaoMoney
     * @return
     */
    private BigDecimal computeDrawBackMoney(BigDecimal settlement, BigDecimal wqMoney, BigDecimal hongBaoMoney) {
        BigDecimal money = (hongBaoMoney.multiply(wqMoney)).divide(settlement, 2, BigDecimal.ROUND_UP);
        if (money.compareTo(hongBaoMoney) > 0)
            money = hongBaoMoney;
        return money;
    }
    @Transactional
    @Override
    public void doWeiQuanFanli(String orderId) throws TaoBaoWeiQuanException {
@@ -108,19 +123,6 @@
        List<TaoBaoWeiQuanOrder> list = taoBaoWeiQuanOrderService.getWeiQuanSuccessOrders(orderId);
        if (list == null || list.size() == 0)
            return;
        // 查询订单库
        List<TaoBaoOrder> orderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
        // 计算淘宝联盟返给平台的资金
        BigDecimal sumFee = new BigDecimal("0");
        for (TaoBaoOrder order : orderList)
            if (order.getOrderState().equalsIgnoreCase("订单结算")) {
                sumFee = sumFee.add(order.geteIncome());
                if (order.getSubsidy() != null)
                    sumFee = sumFee.add(order.getSubsidy());
            }
        if (new BigDecimal(0).compareTo(sumFee) == 0)
            throw new TaoBaoWeiQuanException(TaoBaoWeiQuanException.CODE_NEDD_UPDATE_ORDER, "需要更新订单");
        // 获取和该订单号有关联的用户
        // 获取主红包(同一个订单号的单只会对应同一个用户)
        List<CommonOrderVO> typeList = new ArrayList<>();
@@ -140,7 +142,16 @@
                commonOrderMapper.updateByPrimaryKeySelective(co);
                HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
                if (hongBaoOrder.getCommonOrder() != null
                        && !StringUtil.isNullOrEmpty(hongBaoOrder.getCommonOrder().getTradeId()))
                // 查询是否已经维权
                {
                    TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackMapper.selectByOrderItemIdAndUid(
                            hongBaoOrder.getCommonOrder().getTradeId(),
                            hongBaoOrder.getHongBaoV2().getUserInfo().getId());
                    if (drawBack == null)// 添加还未扣款的子订单
                mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
                }
            }
        if (mainHongBaoList == null || mainHongBaoList.size() == 0)
            return;
@@ -162,7 +173,7 @@
        if (mainHongBaoList != null)
            for (HongBaoV2 hongBao : mainHongBaoList) {
                if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO)
                if (hongBao.getState() != HongBaoV2.STATE_YILINGQU)
                    continue;
                // 累计主红包的金额
                if (fanMoneyMap.get(hongBao.getUserInfo().getId()) == null) {
@@ -177,28 +188,48 @@
        while (its.hasNext()) {
            Long uid = its.next();
            BigDecimal userGetMoney = fanMoneyMap.get(uid);
            BigDecimal fanMoney = new BigDecimal("0");
            BigDecimal wqMoney = new BigDecimal("0");
            // 统计用户在这个单中需要扣除的资金
            TaoBaoWeiQuanDrawBack weiQuanDrawBack = null;
            List<TaoBaoWeiQuanDrawBack> newWeiQuanDrawBackList = new ArrayList<>();
            BigDecimal settleMent = new BigDecimal(0);
            for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
                weiQuanDrawBack = taoBaoWeiQuanDrawBackMapper.selectByOrderItemIdAndUid(weiQuanOrder.getOrderItemId(),
                        uid);
                if (weiQuanDrawBack != null)
                    continue;
                // 计算结算金额
                TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
                if (taoBaoOrder == null)
                    throw new TaoBaoWeiQuanException(101, "未找到子订单相关数据");
                if (taoBaoOrder.getSettlement() == null)
                    throw new TaoBaoWeiQuanException(102, "淘宝结算金额为空");
                settleMent = settleMent.add(taoBaoOrder.getSettlement());
                // 退款的资金
                fanMoney = fanMoney.add(weiQuanOrder.getFanMoney());
                wqMoney = wqMoney.add(weiQuanOrder.getMoney());
                weiQuanDrawBack = new TaoBaoWeiQuanDrawBack();
                weiQuanDrawBack.setCreateTime(new Date());
                // 暂时设为0
                weiQuanDrawBack.setDrawBackMoney(new BigDecimal(0));
                CommonOrder commonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
                        weiQuanOrder.getOrderItemId());
                HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
                // 计算退款的资金
                BigDecimal drawBack = null;
                if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null)
                    drawBack = computeDrawBackMoney(commonOrder.getSettlement(), weiQuanOrder.getMoney(),
                            hongBaoOrder.getHongBaoV2().getMoney());
                weiQuanDrawBack.setDrawBackMoney(drawBack);
                weiQuanDrawBack.setOrderId(weiQuanOrder.getOrderId());
                weiQuanDrawBack.setOrderItemId(weiQuanOrder.getOrderItemId());
                weiQuanDrawBack.setUser(new UserInfo(uid));
                newWeiQuanDrawBackList.add(weiQuanDrawBack);
            }
            if (fanMoney.compareTo(new BigDecimal("0")) <= 0)
            if (wqMoney.compareTo(new BigDecimal("0")) <= 0)
                continue;
            // 插入记录
@@ -207,30 +238,25 @@
            }
            // 退款金额
            BigDecimal drawBackMoney = MoneyBigDecimalUtil.div(userGetMoney.multiply(fanMoney), sumFee);
            if (drawBackMoney.compareTo(userGetMoney) > 0)
                drawBackMoney = userGetMoney;// 退款金额不能比获得的金额大
            BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, wqMoney, userGetMoney);
            // 计算资金是否充足
            UserInfo user = userInfoMapper.selectByPKey(uid);
            if (user != null && user.getMyHongBao().compareTo(drawBackMoney) < 0)// 资金不足
            {
                // 添加债务
                for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
                    TaoBaoOrder taoBaoOrder = taoBaoOrderMapper
                            .selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
                for (TaoBaoWeiQuanDrawBack drawBack : newWeiQuanDrawBackList) {
                    TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(drawBack.getOrderItemId());
                    if (taoBaoOrder != null) {
                        BigDecimal totalFee = taoBaoOrder.geteIncome();
                        if (taoBaoOrder.getSubsidy() != null)
                            totalFee = totalFee.add(taoBaoOrder.getSubsidy());
                        //
                        TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService
                                .selectByTradeId(drawBack.getOrderItemId());
                        CommonOrder co = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
                                weiQuanOrder.getOrderItemId());
                                drawBack.getOrderItemId());
                        if (co != null) {
                            HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(co.getId());
                            if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null) {
                                BigDecimal drawback = MoneyBigDecimalUtil.div(
                                        hongBaoOrder.getHongBaoV2().getMoney().multiply(weiQuanOrder.getFanMoney()),
                                        totalFee);
                                BigDecimal drawback = computeDrawBackMoney(taoBaoOrder.getSettlement(),
                                        weiQuanOrder.getMoney(), hongBaoOrder.getHongBaoV2().getMoney());
                                try {
                                    addDebt(uid, hongBaoOrder.getHongBaoV2().getId(), drawback);
                                } catch (UserMoneyDebtException e) {
@@ -271,19 +297,8 @@
        List<TaoBaoWeiQuanOrder> list = taoBaoWeiQuanOrderService.getWeiQuanSuccessOrders(orderId);
        if (list == null || list.size() == 0)
            return;
        // 查询订单库
        List<TaoBaoOrder> orderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
        // 计算淘宝联盟返给平台的资金
        BigDecimal sumFee = new BigDecimal("0");
        for (TaoBaoOrder order : orderList)
            if (order.getOrderState().equalsIgnoreCase("订单结算")) {
                sumFee = sumFee.add(order.geteIncome());
                if (order.getSubsidy() != null)
                    sumFee = sumFee.add(order.getSubsidy());
            }
        // 获取和该订单号有关联的用户
        // 获取主红包(同一个订单号的单只会对应同一个用户)
        List<CommonOrderVO> typeList = new ArrayList<>();
        CommonOrderVO cv = new CommonOrderVO();
        cv.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
@@ -299,9 +314,17 @@
                co.setState(CommonOrder.STATE_WQ);
                co.setUpdateTime(new Date());
                commonOrderMapper.updateByPrimaryKeySelective(co);
                HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
                if (hongBaoOrder.getCommonOrder() != null
                        && !StringUtil.isNullOrEmpty(hongBaoOrder.getCommonOrder().getTradeId()))
                // 查询是否已经维权
                {
                    TaoBaoWeiQuanDrawBack drawBack = taoBaoWeiQuanDrawBackMapper.selectByOrderItemIdAndUid(
                            hongBaoOrder.getCommonOrder().getTradeId(),
                            hongBaoOrder.getHongBaoV2().getUserInfo().getId());
                    if (drawBack == null)// 添加还未扣款的子订单
                mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
                }
            }
        if (mainHongBaoList == null || mainHongBaoList.size() == 0)
@@ -311,9 +334,9 @@
        Map<Long, BigDecimal> fanMoneyMap = new HashMap<>();
        if (mainHongBaoList != null)
            for (HongBaoV2 hongBao : mainHongBaoList) {
            for (HongBaoV2 hongBao : mainHongBaoList) {// 统计订单下的所有主红包
                hongBao = hongBaoV2Mapper.selectByPrimaryKey(hongBao.getId());
                if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO)
                if (hongBao.getState() != HongBaoV2.STATE_YILINGQU)
                    continue;
                // 只计入分享赚的红包
@@ -327,12 +350,13 @@
                }
            }
        // 计算每个用户的返利比例
        Iterator<Long> its = fanMoneyMap.keySet().iterator();
        // 查询和这个订单有关的用户(主订单)
        while (its.hasNext()) {
            Long uid = its.next();
            BigDecimal userGetMoney = fanMoneyMap.get(uid);
            BigDecimal fanMoney = new BigDecimal("0");
            BigDecimal wqMoney = new BigDecimal("0");
            BigDecimal settleMent = new BigDecimal("0");
            // 统计用户在这个单中需要扣除的资金
            TaoBaoWeiQuanDrawBack weiQuanDrawBack = null;
@@ -342,24 +366,44 @@
                        uid);
                if (weiQuanDrawBack != null)
                    continue;
                // 计算结算金额
                TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
                if (taoBaoOrder == null)
                    throw new TaoBaoWeiQuanException(101, "未找到子订单相关数据");
                if (taoBaoOrder.getSettlement() == null)
                    throw new TaoBaoWeiQuanException(102, "淘宝结算金额为空");
                settleMent = settleMent.add(taoBaoOrder.getSettlement());
                // 退款的资金
                fanMoney = fanMoney.add(weiQuanOrder.getFanMoney());
                wqMoney = wqMoney.add(weiQuanOrder.getMoney());
                // 插入记录
                weiQuanDrawBack = new TaoBaoWeiQuanDrawBack();
                weiQuanDrawBack.setCreateTime(new Date());
                // TODO 暂时设为0
                weiQuanDrawBack.setDrawBackMoney(new BigDecimal(0));
                // 计算退款资金
                CommonOrder commonOrder = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
                        weiQuanOrder.getOrderItemId());
                HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
                // 计算退款的资金
                BigDecimal drawBack = null;
                if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null)
                    drawBack = computeDrawBackMoney(commonOrder.getSettlement(), weiQuanOrder.getMoney(),
                            hongBaoOrder.getHongBaoV2().getMoney());
                weiQuanDrawBack.setDrawBackMoney(drawBack);
                weiQuanDrawBack.setOrderId(weiQuanOrder.getOrderId());
                weiQuanDrawBack.setOrderItemId(weiQuanOrder.getOrderItemId());
                weiQuanDrawBack.setUser(new UserInfo(uid));
                newWeiQuanDrawBackList.add(weiQuanDrawBack);
            }
            if (fanMoney.compareTo(new BigDecimal("0")) <= 0)
            if (wqMoney.compareTo(new BigDecimal("0")) <= 0)
                continue;
            // 退款金额
            BigDecimal drawBackMoney = MoneyBigDecimalUtil.div(userGetMoney.multiply(fanMoney), sumFee);
            BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, wqMoney, userGetMoney);
            if (drawBackMoney.compareTo(userGetMoney) > 0)
                drawBackMoney = userGetMoney;
@@ -370,46 +414,22 @@
            if (user != null && user.getMyHongBao().compareTo(drawBackMoney) < 0)// 资金不足
            {
                // 添加债务
                for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
                    TaoBaoOrder taoBaoOrder = taoBaoOrderMapper
                            .selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
                for (TaoBaoWeiQuanDrawBack drawBack : newWeiQuanDrawBackList) {
                    TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(drawBack.getOrderItemId());
                    if (taoBaoOrder != null) {
                        BigDecimal totalFee = taoBaoOrder.geteIncome();
                        if (taoBaoOrder.getSubsidy() != null)
                            totalFee = totalFee.add(taoBaoOrder.getSubsidy());
                        //
                        TaoBaoWeiQuanOrder weiQuanOrder = taoBaoWeiQuanOrderService
                                .selectByTradeId(drawBack.getOrderItemId());
                        BigDecimal settleMentMoney = taoBaoOrder.getSettlement();
                        CommonOrder co = commonOrderMapper.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
                                weiQuanOrder.getOrderItemId());
                        if (co != null) {
                            HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(co.getId());
                            BigDecimal drawback = MoneyBigDecimalUtil.div(
                                    hongBaoOrder.getHongBaoV2().getMoney().multiply(weiQuanOrder.getFanMoney()),
                                    totalFee);
                            BigDecimal drawback = computeDrawBackMoney(settleMentMoney, weiQuanOrder.getMoney(),
                                    hongBaoOrder.getHongBaoV2().getMoney());
                            try {
                                addDebt(uid, hongBaoOrder.getHongBaoV2().getId(), drawback);
                            } catch (UserMoneyDebtException e) {
                                throw new TaoBaoWeiQuanException(101, "资金借贷异常");
                            }
                            if (hongBaoOrder != null && hongBaoOrder.getHongBaoV2() != null) {
                                List<HongBaoV2> hongBaoList = hongBaoV2Mapper
                                        .listChildrenById(hongBaoOrder.getHongBaoV2().getId());
                                for (int i = 0; i < hongBaoList.size(); i++) {
                                    if (hongBaoList.get(i).getUserInfo().getId().longValue() != uid) {
                                        hongBaoList.remove(i);
                                        i--;
                                    }
                                }
                                for (HongBaoV2 hb : hongBaoList) {
                                    drawback = MoneyBigDecimalUtil
                                            .div(hb.getMoney().multiply(weiQuanOrder.getFanMoney()), totalFee);
                                    try {
                                        addDebt(hb.getUserInfo().getId(), hb.getId(), drawback);
                                    } catch (UserMoneyDebtException e) {
                                        throw new TaoBaoWeiQuanException(101, "资金借贷异常");
                                    }
                                }
                            }
                        }
                    }
@@ -430,6 +450,7 @@
            }
            userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
            userMoneyMsgNotificationService.shareOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO,drawBackMoney,
                    userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
        }
    }
@@ -446,14 +467,12 @@
        // 查询订单库
        for (TaoBaoWeiQuanOrder weiQuanOrder : list) {
            TaoBaoOrder taoBaoOrder = taoBaoOrderMapper.selectTaoBaoOrderByTradeId(weiQuanOrder.getOrderItemId());
            BigDecimal fanMoney = weiQuanOrder.getFanMoney();
            BigDecimal wqMoney = weiQuanOrder.getMoney();
            if (taoBaoOrder == null)
                throw new TaoBaoWeiQuanException(1, "来源交易ID有误");
            BigDecimal sumFee = new BigDecimal("0");
            BigDecimal settleMent = new BigDecimal("0");
            if (taoBaoOrder.getOrderState().equalsIgnoreCase("订单结算")) {
                sumFee = sumFee.add(taoBaoOrder.geteIncome());
                if (taoBaoOrder.getSubsidy() != null)
                    sumFee = sumFee.add(taoBaoOrder.getSubsidy());
                settleMent = settleMent.add(taoBaoOrder.getSettlement());
            }
            // 查询下级子用户
@@ -478,9 +497,7 @@
                            .selectByOrderItemIdAndUid(weiQuanOrder.getOrderItemId(), child.getUserInfo().getId());
                    if (weiQuanDrawBack != null)
                        continue;
                    BigDecimal drawBackMoney = MoneyBigDecimalUtil.div(child.getMoney().multiply(fanMoney), sumFee);
                    if (drawBackMoney.compareTo(child.getMoney()) > 0)
                        drawBackMoney = child.getMoney();
                    BigDecimal drawBackMoney = computeDrawBackMoney(settleMent, wqMoney, child.getMoney());
                    weiQuanDrawBack = new TaoBaoWeiQuanDrawBack();
                    weiQuanDrawBack.setCreateTime(new Date());
                    weiQuanDrawBack.setDrawBackMoney(drawBackMoney);
@@ -521,8 +538,8 @@
                        userMoneyService.subUserMoney(uid, drawBackMoney, userMoneyDetail);
                        // 新版通知
                        userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId,Constant.SOURCE_TYPE_TAOBAO, drawBackMoney,
                                userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
                        userMoneyMsgNotificationService.inviteOrderWeiQuan(uid, orderId, Constant.SOURCE_TYPE_TAOBAO,
                                drawBackMoney, userInfoMapper.selectByPrimaryKey(uid).getMyHongBao());
                    }
                }
        }
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanOrderServiceImpl.java
@@ -91,4 +91,19 @@
        return taoBaoWeiQuanOrderMapper.listByState(state, (page - 1) * pageSize, pageSize);
    }
    @Override
    public long countByState(String state) {
        return taoBaoWeiQuanOrderMapper.countByState(state);
    }
    @Override
    public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId) {
        return taoBaoWeiQuanOrderMapper.listByOrderId(orderId);
    }
    @Override
    public TaoBaoWeiQuanOrder selectByTradeId(String tradeId) {
        return taoBaoWeiQuanOrderMapper.selectByOrderItem(tradeId);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java
@@ -195,8 +195,8 @@
    @Override
    public List<DaTaoKeDetailV2> listPreShareHotGoods(int page) {
        Map<Long, DaTaoKeDetailV2> map = new HashMap<>();
        List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods((page - 1) * Constant.PAGE_SIZE,
                Constant.PAGE_SIZE, "monthSales");
        List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Dao.listPreShareHotGoods((page - 1) *100,
                100, "monthSales");
        System.out.println(list);
        for (DaTaoKeDetailV2 v2 : list) {
            map.put(v2.getId(), v2);
fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoManageService.java
@@ -107,4 +107,18 @@
     */
    public BigDecimal getSecondShareRate(int urank, long time);
    /**
     * 淘礼金返利比例
     *
     * @return
     */
    public BigDecimal getTLJFanLiRate();
    /**
     * 淘礼金分享比例
     *
     * @return
     */
    public BigDecimal getTLJShareRate();
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoWeiQuanOrderService.java
@@ -21,17 +21,25 @@
     */
    public List<TaoBaoWeiQuanOrder> getWeiQuanSuccessOrders(String orderId);
    
    /**
     * 根据订单检索
     *
     * @param orderId
     * @return
     */
    public List<TaoBaoWeiQuanOrder> listByOrderId(String orderId);
    
    /**
     * 根据交易ID查询维权状态
     *
     * @param tradeId
     * @return
     */
    public TaoBaoWeiQuanOrder listByorderItemId(String tradeId);
    
    /**
     * 根据状态检索
     *
     * @param state
     * @param page
     * @param pageSize
@@ -39,4 +47,19 @@
     */
    public List<TaoBaoWeiQuanOrder> listByState(String state,int page,int pageSize);
    /**
     * 根据状态统计数据
     *
     * @param state
     * @return
     */
    public long countByState(String state);
    /**
     *
     * @param tradeId
     * @return
     */
    public TaoBaoWeiQuanOrder selectByTradeId(String tradeId);
}
fanli/src/main/java/com/yeshi/fanli/util/TaoBaoConstant.java
@@ -17,6 +17,15 @@
    public static final String TAOBAO_COMMON_PID = "mm_124933865_43788020_437192946";
    // 淘宝将渠道ID处理成会员ID的pid
    public static final String TAOBAO_RELATION_AS_SPECIAL_PID = "mm_124933865_56750082_18689550042";
    //淘礼金渠道ID
    public static final String TAOBAO_TLJ_RELATION_PID_DEFAULT = "mm_124933865_56750082_19507100253";
    //淘礼金渠道会员
    public static final String TAOBAO_TLJ_RELATION_AS_SPECIAL_PID = "mm_124933865_56750082_19508150186";
    //淘礼金会员
    public static final String TAOBAO_TLJ_SPECIAL_PID_DEFAULT = "mm_124933865_56750082_19509300170";
    // 自购立减PID
    public static TaoKeAppInfo ownBuyApp = new TaoKeAppInfo("24937414", "0457746e24622a6c8c7924288550af5f",
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java
@@ -560,4 +560,19 @@
        return goods;
    }
    public static DaTaoKeDetail filterDaTaoKe(TaoBaoGoodsBrief goods, DaTaoKeDetail detail) {
        if (goods != null) {
            BigDecimal price = TaoBaoUtil.getAfterUseCouplePrice(goods);
            detail.setOrgPrice(goods.getZkPrice());
            detail.setPrice(price);
            if (goods.getCouponStartFee() != null)
                detail.setQuanCondition(goods.getCouponStartFee() + "");
            detail.setQuanId(goods.getCouponActivityId());
            detail.setQuanPrice(goods.getCouponAmount());
            return detail;
        }
        return detail;
    }
}