admin
2019-04-09 573868c096a920acdb2c003f518d3a94f2e5567c
系統緩存bug修改
15个文件已修改
505 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/LostOrderController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/LostOrderMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/LostOrder.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/order/LostOrderMapper.xml 240 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/config/BusinessSystemServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/LostOrderService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/LostOrderController.java
@@ -4,10 +4,12 @@
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.IPUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.NumberUtil;
@@ -135,7 +137,7 @@
    }
    @RequestMapping("findLostOrder")
    public void findLostOrder(AcceptData acceptData, LostOrder lostOrder, PrintWriter out) {
    public void findLostOrder(AcceptData acceptData, LostOrder lostOrder, HttpServletRequest request, PrintWriter out) {
        boolean orderNum = true;
        if (!NumberUtil.isNumeric(lostOrder.getOrderId())) {
@@ -150,7 +152,7 @@
            out.print(JsonUtil.loadFalseResult(1, "请登录返利券账号"));
            return;
        }
        lostOrder.setIpInfo(IPUtil.getRemotIP(request) + ":" + request.getRemotePort());
        int state;
        String stateInfo = "提交成功,请等待审核结果";
        if (!orderNum) {
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -1816,12 +1816,12 @@
            tb.setCouponLinkTaoToken(token);
            // 服务端转链
            if (convertInServer && !StringUtil.isNullOrEmpty(tb.getCouponLink())) {
//            if (convertInServer && !StringUtil.isNullOrEmpty(tb.getCouponLink())) {
                couponInfo.put("couponUrl", tb.getCouponLink());
            } else {
                couponInfo.put("couponUrl",
                        TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, tb.getAuctionId() + ""));
            }
//            } else {
//                couponInfo.put("couponUrl",
//                        TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, tb.getAuctionId() + ""));
//            }
            couponInfo.put("couponAmount", NumberUtil.subZeroAndDot(tb.getCouponAmount().toString()));
            couponInfo.put("couponTime", "使用期限:" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-"
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/LostOrderMapper.java
@@ -108,4 +108,16 @@
     */
    int processFail();
    /**
     * 根据状态和结果码获取列表
     *
     * @param state
     * @param resultCode
     * @param start
     * @param count
     * @return
     */
    List<LostOrder> listByStateAndResultCode(@Param("state") Integer state, @Param("resultCode") Integer resultCode,
            @Param("start") long start, @Param("count") int count);
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/user/LostOrder.java
@@ -73,6 +73,8 @@
    @javax.persistence.Column(name = "result_code")
    @Expose
    private Integer resultCode;// 第三方平台订单爬取结果
    @Column(name = "ip_info")
    private String ipInfo;
    @Transient
    private Integer total;
@@ -193,4 +195,12 @@
        this.totalReject = totalReject;
    }
    public String getIpInfo() {
        return ipInfo;
    }
    public void setIpInfo(String ipInfo) {
        this.ipInfo = ipInfo;
    }
}
fanli/src/main/java/com/yeshi/fanli/job/UpdateOrderJob.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.job;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -11,6 +12,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.entity.bus.user.LostOrder;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
@@ -398,18 +400,53 @@
        orderProcessService.weiQuanOrder(orderList);
    }
    // 处理分享商品所产生的订单(后续版本废除)
    // @Scheduled(cron = "0 0/2 * * * ? ")
    // public void doPidOrder() {
    // if (!Constant.IS_TASK)
    // return;
    // pidOrderService.doPidOrder();
    // }
    // 每6个小时执行一次
    @Scheduled(cron = "0 0 0/6 * * ? ")
    public void doLostOrder() {
        if (!Constant.IS_TASK)
            return;
        lostOrderService.processFail();
    }
    // 每2分钟执行一次
    @Scheduled(cron = "0 0/2 * * * ? ")
    public void addLostOrder() {
        if (!Constant.IS_TASK)
            return;
        List<LostOrder> list = lostOrderService.listByStateAndResultCode(LostOrder.STATE_PASS,
                LostOrder.RESULT_CODE_VERFING, 1, 50);
        if (list != null)
            for (LostOrder lo : list) {
                List<TaoBaoOrder> taoBaoOrderList = taoBaoOrderService.getTaoBaoOrderByOrderId(lo.getOrderId());
                // 清除频率限制
                if (taoBaoOrderList != null && taoBaoOrderList.size() > 0) {
                    String key = "addorder-" + lo.getOrderId();
                    redisManager.removeCommonString(key);
                    addOrder(taoBaoOrderList);
                }
            }
    }
    /**
     * 处理淘宝结算订单,每小时执行一次
     */
    @Scheduled(cron = "30 0 0/1 * * ? ")
    public void doSettleOrders() {
        if (!Constant.IS_TASK)
            return;
        // 处理3-15天前的订单,每天跑一次
        Calendar ca = Calendar.getInstance();
        int hour = ca.get(Calendar.HOUR_OF_DAY);
        long startTime = TimeUtil.convertToTimeTemp(
                TimeUtil.getGernalTime(ca.getTimeInMillis() - 1000 * 60 * 60 * 24 * 3L, "yyyy-MM-dd"), "yyyy-MM-dd")
                - hour * (1000 * 60 * 60 * 12L);
        long endTime = startTime + 1000 * 60 * 60 * 12L;
        List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, false);
        List<TaoBaoOrder> tempOrderList = TaoKeOrderApiUtil.getTaoBaoSettleOrders(startTime, endTime, true);
        if (tempOrderList != null && tempOrderList.size() > 0)
            orderList.addAll(tempOrderList);
        addOrder(orderList);
    }
}
fanli/src/main/java/com/yeshi/fanli/mapping/order/LostOrderMapper.xml
@@ -12,17 +12,16 @@
        <result column="remake" property="remake" jdbcType="VARCHAR" />
        <result column="judge" property="judge" jdbcType="VARCHAR" />
        <result column="result_code" property="resultCode" jdbcType="INTEGER" />
        <result column="ip_info" property="ipInfo" jdbcType="VARCHAR" />
        <association property="userInfo" column="uid"
            javaType="com.yeshi.fanli.entity.bus.user.UserInfo">
            <id column="uid" property="id" jdbcType="BIGINT" />
        </association>
        <association property="order" column="oid"
            javaType="com.yeshi.fanli.entity.bus.user.Order">
            <id column="oid" property="id" jdbcType="BIGINT" />
        </association>
    </resultMap>
    <resultMap id="AllResultMap" type="com.yeshi.fanli.entity.bus.user.LostOrder">
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="orderId" property="orderId" jdbcType="VARCHAR" />
@@ -35,26 +34,20 @@
        <result column="result_code" property="resultCode" jdbcType="INTEGER" />
        <association property="userInfo" column="uid"
            select="com.yeshi.fanli.dao.mybatis.UserInfoMapper.selectByPKey" />
        <association property="order" column="oid"
            select="com.yeshi.fanli.dao.mybatis.order.OrderMapper.selectByPrimaryKey">
        </association>
            select="com.yeshi.fanli.dao.mybatis.order.OrderMapper.selectByPrimaryKey" />
    </resultMap>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
        yeshi_ec_lost_order where id = #{id,jdbcType=BIGINT}
    </delete>
        yeshi_ec_lost_order where id = #{id,jdbcType=BIGINT}</delete>
    <select id="selectByOrderId" resultMap="BaseResultMap"
        parameterType="java.lang.String">
        select * from yeshi_ec_lost_order where orderId=#{0}
        parameterType="java.lang.String">select * from yeshi_ec_lost_order where orderId=#{0}
    </select>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
        select * from yeshi_ec_lost_order where id=#{0}
        parameterType="java.lang.Long">select * from yeshi_ec_lost_order where id=#{0}</select>
    <select id="listByStateAndResultCode" resultMap="BaseResultMap">select * from
        yeshi_ec_lost_order where `state`=#{state} and
        `result_code`=#{resultCode} ORDER BY id DESC limit #{start},#{count}
    </select>
    <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.user.LostOrder">
        update yeshi_ec_lost_order
        <set>
@@ -68,81 +61,40 @@
            <if test="remake != null">remake=#{remake,jdbcType=VARCHAR},</if>
            <if test="judge != null">judge=#{judge,jdbcType=VARCHAR},</if>
            <if test="resultCode != null">result_code=#{resultCode,jdbcType=INTEGER},</if>
            <if test="ipInfo !=null">ip_info =#{ipInfo,jdbcType=VARCHAR},</if>
        </set>
        where id = #{id,jdbcType=BIGINT}
    </update>
    <select id="countByUid" resultType="java.util.HashMap">
        SELECT IFNULL(COUNT(id), 0)
        AS total,IFNULL(SUM(CASE WHEN state = 1 THEN 1
        ELSE 0 END),0) AS
        totalPass,
        IFNULL(SUM(CASE WHEN state = 2 THEN 1 ELSE 0 END),0) AS
        totalReject
        FROM
        yeshi_ec_lost_order WHERE uid = #{uid};
    </select>
    <select id="countByUid" resultType="java.util.HashMap">SELECT IFNULL(COUNT(id), 0)
        AS total,IFNULL(SUM(CASE WHEN state = 1 THEN 1 ELSE 0 END),0) AS
        totalPass, IFNULL(SUM(CASE WHEN state = 2 THEN 1 ELSE 0 END),0) AS
        totalReject FROM yeshi_ec_lost_order WHERE uid = #{uid};</select>
    <select id="listQuery" resultMap="AllResultMap">
        SELECT d.* FROM yeshi_ec_lost_order d
        left join yeshi_ec_user u on
        d.uid = u.id
        WHERE 1=1
        <if test='key != null and key != ""'>
            AND (d.orderId like '%${key}%' or d.uid like '%${key}%' or
            u.nick_name
            like '%${key}%')
        </if>
        <if test='state != null'>
            AND d.state = #{state}
        </if>
        <if test='handleType != null and handleType == 0'>
            AND d.state = 0
        </if>
        <if test='handleType != null and handleType != 0'>
            AND (d.state = 1 or d.state = 2)
        </if>
        ORDER BY d.createTime desc
        LIMIT ${start},${count}
        SELECT d.* FROM yeshi_ec_lost_order d left join yeshi_ec_user u on
        d.uid = u.id WHERE 1=1
        <if test="key != null and key != &quot;&quot;">AND (d.orderId like '%${key}%' or d.uid like '%${key}%' or
            u.nick_name like '%${key}%')</if>
        <if test="state != null">AND d.state = #{state}</if>
        <if test="handleType != null and handleType == 0">AND d.state = 0</if>
        <if test="handleType != null and handleType != 0">AND (d.state = 1 or d.state = 2)</if>
        ORDER BY d.createTime desc LIMIT ${start},${count}
    </select>
    <select id="countQuery" resultType="java.lang.Long">
        SELECT IFNULL(count(d.id),0) FROM yeshi_ec_lost_order d
        left join
        yeshi_ec_user u on d.uid = u.id
        WHERE 1=1
        <if test='key != null and key != ""'>
            AND (d.orderId like '%${key}%' or d.uid like '%${key}%' or
            u.nick_name
            like '%${key}%')
        </if>
        <if test='state != null'>
            AND d.state = #{state}
        </if>
        <if test='handleType != null and handleType == 0'>
            AND d.state = 0
        </if>
        <if test='handleType != null and handleType != 0'>
            AND (d.state = 1 or d.state = 2)
        </if>
        SELECT IFNULL(count(d.id),0) FROM yeshi_ec_lost_order d left join
        yeshi_ec_user u on d.uid = u.id WHERE 1=1
        <if test="key != null and key != &quot;&quot;">AND (d.orderId like '%${key}%' or d.uid like '%${key}%' or
            u.nick_name like '%${key}%')</if>
        <if test="state != null">AND d.state = #{state}</if>
        <if test="handleType != null and handleType == 0">AND d.state = 0</if>
        <if test="handleType != null and handleType != 0">AND (d.state = 1 or d.state = 2)</if>
    </select>
    <select id="countLostNum" resultType="java.util.HashMap">
        SELECT COUNT(t.`id`) AS showValue,
        <if test="dateType == 1">
            FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d') AS
            'showDate'
        </if>
        <if test="dateType == 2">
            FROM_UNIXTIME(t.`createTime`/1000,'%m') AS 'showDate'
        </if>
        <if test="dateType == 3">
            FROM_UNIXTIME(t.`createTime`/1000,'%Y') AS 'showDate'
        </if>
        FROM `yeshi_ec_lost_order` t
        WHERE t.`createTime`IS NOT NULL
        <if test="dateType == 1">FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d') AS
            'showDate'</if>
        <if test="dateType == 2">FROM_UNIXTIME(t.`createTime`/1000,'%m') AS 'showDate'</if>
        <if test="dateType == 3">FROM_UNIXTIME(t.`createTime`/1000,'%Y') AS 'showDate'</if>
        FROM `yeshi_ec_lost_order` t WHERE t.`createTime`IS NOT NULL
        <if test="startTime != null and startTime != '' ">
            AND FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
        </if>
@@ -150,48 +102,25 @@
            AND FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d') <![CDATA[ <= ]]>
            '${endTime}'
        </if>
        <if test="year != null and year != '' ">
            AND FROM_UNIXTIME(t.`createTime`/1000,'%Y') = '${year}'
        <if test="year != null and year != '' ">AND FROM_UNIXTIME(t.`createTime`/1000,'%Y') = '${year}'
        </if>
        <if test="resultCode != null and resultCode != 0 ">
            AND t.`result_code` = ${resultCode}
        <if test="resultCode != null and resultCode != 0 ">AND t.`result_code` = ${resultCode}</if>
        <if test="dateType == 1">GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d')
        </if>
        <if test="dateType == 1">
            GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d')
        </if>
        <if test="dateType == 2">
            GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m')
        </if>
        <if test="dateType == 3">
            GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y')
        </if>
        <if test="dateType == 2">GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m')</if>
        <if test="dateType == 3">GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y')</if>
        ORDER BY t.`createTime`
    </select>
    <select id="countAppealMoney" resultType="java.util.HashMap">
        SELECT CAST(SUM(v.`hb_money`)AS DECIMAL(19,2)) AS showValue,
        <if test="dateType == 1">
            FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d') AS
            'showDate'
        </if>
        <if test="dateType == 2">
            FROM_UNIXTIME(t.`createTime`/1000,'%m') AS 'showDate'
        </if>
        <if test="dateType == 3">
            FROM_UNIXTIME(t.`createTime`/1000,'%Y') AS 'showDate'
        </if>
        FROM `yeshi_ec_lost_order` t
        LEFT JOIN `yeshi_ec_common_order` tc ON
        tc.`co_order_no` = t.`orderId`
        LEFT JOIN `yeshi_ec_hongbao_order` h ON
        h.`ho_order_id` = tc.`co_id`
        LEFT JOIN `yeshi_ec_hongbao_v2`v ON
        h.`ho_hongbao_id` = v.`hb_id`
        WHERE t.`createTime`IS NOT NULL AND
        <if test="dateType == 1">FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d') AS
            'showDate'</if>
        <if test="dateType == 2">FROM_UNIXTIME(t.`createTime`/1000,'%m') AS 'showDate'</if>
        <if test="dateType == 3">FROM_UNIXTIME(t.`createTime`/1000,'%Y') AS 'showDate'</if>
        FROM `yeshi_ec_lost_order` t LEFT JOIN `yeshi_ec_common_order` tc ON
        tc.`co_order_no` = t.`orderId` LEFT JOIN `yeshi_ec_hongbao_order` h ON
        h.`ho_order_id` = tc.`co_id` LEFT JOIN `yeshi_ec_hongbao_v2`v ON
        h.`ho_hongbao_id` = v.`hb_id` WHERE t.`createTime`IS NOT NULL AND
        t.`result_code` = 2 AND (v.`hb_type` =1 OR v.`hb_type` = 2)
        <if test="startTime != null and startTime != '' ">
            AND FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
@@ -200,28 +129,19 @@
            AND FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d') <![CDATA[ <= ]]>
            '${endTime}'
        </if>
        <if test="year != null and year != '' ">
            AND FROM_UNIXTIME(t.`createTime`/1000,'%Y') = '${year}'
        <if test="year != null and year != '' ">AND FROM_UNIXTIME(t.`createTime`/1000,'%Y') = '${year}'
        </if>
        <if test="dateType == 1">
            GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d')
        <if test="dateType == 1">GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m-%d')
        </if>
        <if test="dateType == 2">
            GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m')
        </if>
        <if test="dateType == 3">
            GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y')
        </if>
        <if test="dateType == 2">GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y-%m')</if>
        <if test="dateType == 3">GROUP BY FROM_UNIXTIME(t.`createTime`/1000,'%Y')</if>
        ORDER BY t.`createTime`
    </select>
    <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.user.LostOrder"
        useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_lost_order
        (id,orderId,type,state,createTime,handleTime,uid,oid,remake,judge,result_code)
        (id,orderId,type,state,createTime,handleTime,uid,oid,remake,judge,result_code,id,ip_info)
        values
        (#{id,jdbcType=BIGINT},#{orderId,jdbcType=VARCHAR},#{type,jdbcType=INTEGER},#{state,jdbcType=INTEGER},#{createTime,jdbcType=BIGINT},#{handleTime,jdbcType=BIGINT},#{userInfo.id,jdbcType=BIGINT},#{order.id,jdbcType=BIGINT},#{remake,jdbcType=VARCHAR},#{judge,jdbcType=VARCHAR},#{resultCode,jdbcType=INTEGER})
        (#{id,jdbcType=BIGINT},#{orderId,jdbcType=VARCHAR},#{type,jdbcType=INTEGER},#{state,jdbcType=INTEGER},#{createTime,jdbcType=BIGINT},#{handleTime,jdbcType=BIGINT},#{userInfo.id,jdbcType=BIGINT},#{order.id,jdbcType=BIGINT},#{remake,jdbcType=VARCHAR},#{judge,jdbcType=VARCHAR},#{resultCode,jdbcType=INTEGER},#{id,jdbcType=BIGINT},#{ipInfo,jdbcType=VARCHAR})
    </insert>
    <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.user.LostOrder"
        useGeneratedKeys="true" keyProperty="id">
@@ -238,6 +158,7 @@
            <if test="remake != null">remake,</if>
            <if test="judge != null">judge,</if>
            <if test="resultCode != null">result_code,</if>
            <if test="ipInfo != null">ip_info,</if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -252,6 +173,7 @@
            <if test="remake != null">#{remake,jdbcType=VARCHAR},</if>
            <if test="judge != null">#{judge,jdbcType=VARCHAR},</if>
            <if test="resultCode != null">#{resultCode,jdbcType=INTEGER},</if>
            <if test="ipInfo != null">#{ipInfo,jdbcType=VARCHAR}</if>
        </trim>
    </insert>
    <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.bus.user.LostOrder">update
@@ -259,54 +181,28 @@
        #{type,jdbcType=INTEGER},state = #{state,jdbcType=INTEGER},createTime
        = #{createTime,jdbcType=BIGINT},handleTime =
        #{handleTime,jdbcType=BIGINT},uid = #{userInfo.id,jdbcType=BIGINT},oid
        =
        #{order.id,jdbcType=BIGINT},remake = #{remake,jdbcType=VARCHAR},judge
        =
        #{judge,jdbcType=VARCHAR},result_code =
        #{resultCode,jdbcType=INTEGER}
        where id = #{id,jdbcType=BIGINT}
        = #{order.id,jdbcType=BIGINT},remake =
        #{remake,jdbcType=VARCHAR},judge =
        #{judge,jdbcType=VARCHAR},result_code = #{resultCode,jdbcType=INTEGER}
        ,ip_info =#{ipInfo,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT}
    </update>
    <delete id="deleteByUid" parameterType="java.lang.Long">delete from
        yeshi_ec_lost_order where uid = #{0}
    </delete>
    <select id="listByUidOrderByCreateTimeDesc" resultMap="BaseResultMap">
        select *
        yeshi_ec_lost_order where uid = #{0}</delete>
    <select id="listByUidOrderByCreateTimeDesc" resultMap="BaseResultMap">select *
        from yeshi_ec_lost_order where uid=#{uid} order by id desc limit
        #{start},#{count}
    </select>
    <select id="countAllByUid" resultType="java.lang.Long">
        select count(id) from
        yeshi_ec_lost_order where uid=#{0}
    </select>
        #{start},#{count}</select>
    <select id="countAllByUid" resultType="java.lang.Long">select count(id) from
        yeshi_ec_lost_order where uid=#{0}</select>
    <select id="listByOrderIdAndTypeAndState" resultMap="BaseResultMap">
        select * from yeshi_ec_lost_order where orderId=#{orderId}
        <if test="type!=null">
            and type=#{type}
        </if>
        <if test="type!=null">and type=#{type}</if>
        <if test="stateList!=null">
            <foreach collection="stateList" item="state" open="and ("
                close=")" separator=" or ">
                state=#{state}
            </foreach>
                close=")" separator=" or ">state=#{state}</foreach>
        </if>
    </select>
    <update id="processFail">
        UPDATE `yeshi_ec_lost_order` lo SET
        lo.`result_code`=3 WHERE lo.`state`=1
        AND lo.`result_code`=1 AND
        UNIX_TIMESTAMP()*1000- lo.`handleTime`>1000* 60 * 60 * 24 * 3
    <update id="processFail">UPDATE `yeshi_ec_lost_order` lo SET
        lo.`result_code`=3 WHERE lo.`state`=1 AND lo.`result_code`=1 AND
        UNIX_TIMESTAMP()*1000- lo.`handleTime`&gt;1000* 60 * 60 * 24 * 3
    </update>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/config/BusinessSystemServiceImpl.java
@@ -32,7 +32,6 @@
    }
    @Override
    @Cacheable(value = "sysCache", key = "'getBusinessSystem-'+#platform+'-'+#packages")
    public BusinessSystem getBusinessSystem(String platform, String packages) {
        if (platform == null || packages == null) {
            return null;
@@ -47,6 +46,7 @@
        return list.get(0);
    }
    @Cacheable(value = "sysCache", key = "'getBusinessSystem-'+#platform+'-'+#packages")
    @Override
    public BusinessSystem getBusinessSystemCache(String platform, String packages) {
        return getBusinessSystem(platform, packages);
fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -630,6 +630,7 @@
                updateCommonOrder.setState(newCommonOrder.getState());
                updateCommonOrder.setStateWholeOrder(wholeOrderState);
                updateCommonOrder.setUpdateTime(new Date());
                updateCommonOrder.setTradeId(newCommonOrder.getTradeId());
                commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder);
                commonOrderList.add(commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId()));
                continue;
fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java
@@ -246,4 +246,9 @@
        return lostOrderMapper.countAppealMoney(dateType, year, startTime, endTime);
    }
    @Override
    public List<LostOrder> listByStateAndResultCode(int state, int resultCode, int page, int pageSize) {
        return lostOrderMapper.listByStateAndResultCode(state, resultCode, (page - 1) * pageSize, pageSize);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -146,7 +146,7 @@
            if (orders.get(orderId) != null && orders.get(orderId).size() > 0) {
                List<TaoBaoOrder> list = orders.get(orderId);
                LogHelper.test(String.format("订单处理:订单号-%s  订单数量-%s", orderId, list.size() + ""));
                if (!StringUtil.isNullOrEmpty(list.get(0).getRelationId())) {
                    shareOrderMap.put(orderId, list);
                } else if (!StringUtil.isNullOrEmpty(list.get(0).getSpecialId())) {
@@ -853,6 +853,11 @@
    @Override
    public void processShopingFanliOrderNew(String orderId, List<TaoBaoOrder> orderList)
            throws HongBaoException, OrderItemException {
        LogHelper.test(String.format("订单处理:订单号-%s  订单数量-%s", orderId, orderList.size() + ""));
        if (orderList.size() == 1)
            LogHelper.test("订单排序值:" + orderList.get(0).getOrderBy());
        List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
        if (orderList != null && orderList.size() > 0) {
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoOrderServiceImpl.java
@@ -14,6 +14,7 @@
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoOrderTradeMapMapper;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoOrderTradeMap;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
@@ -80,6 +81,23 @@
    @Transactional
    @Override
    public void addTaoBaoOrder(String orderId, List<TaoBaoOrder> list) {
        // 验证orderby是否正确
        if (list != null && list.size() > 0)
        {
            int maxOrderBy=list.get(0).getOrderBy();
            if(list.size()>1)
                for(TaoBaoOrder order:list)
                {
                    if(order.getOrderBy()>maxOrderBy)
                        maxOrderBy=order.getOrderBy();
                }
            if (list.size() != maxOrderBy) {
                LogHelper.test("捕捉到排序值错误:" + orderId);
                return;
            }
        }
        List<TaoBaoOrder> oldOrderList = taoBaoOrderMapper.selectTaoBaoOrderByOrderId(orderId);
        if (oldOrderList == null || oldOrderList.size() == 0) {
            for (TaoBaoOrder taoBaoOrder : list) {
fanli/src/main/java/com/yeshi/fanli/service/inter/order/LostOrderService.java
@@ -16,7 +16,6 @@
    void reject(LostOrder lostOrder);
    LostOrder getOne(long id);
    /**
@@ -72,13 +71,15 @@
    /**
     * 统计用户申诉次数
     *
     * @param uid
     * @return
     */
    public Map<String, Object>  countByUid(long uid);
    public Map<String, Object> countByUid(long uid);
    /**
     * 后端查询
     *
     * @param start
     * @param count
     * @param key
@@ -90,11 +91,12 @@
    public long countQuery(String key, Integer state, Integer handleType);
    /**
     * 本月申诉订单数 统计
     *
     * @param dateType
     * @param resultCode  (未处理: 成功  失败)
     * @param resultCode
     *            (未处理: 成功 失败)
     * @param year
     * @param startTime
     * @param endTime
@@ -107,4 +109,13 @@
    public List<Map<String, Object>> countAppealMoney(Integer dateType, String year, String startTime, String endTime)
            throws Exception;
    /**
     * 根据状态与处理结果过去值
     *
     * @param state
     * @param resultCode
     * @return
     */
    public List<LostOrder> listByStateAndResultCode(int state, int resultCode, int page, int pageSize);
}
fanli/src/main/java/com/yeshi/fanli/util/RedisManager.java
@@ -119,18 +119,6 @@
    }
    /**
     * 将信息永久保存到Redis
     *
     * @param goods
     */
    public void saveTaoBaoGoodsBriefForever(TaoBaoGoodsBrief goods) {
        String key = "taobao-goods-" + goods.getAuctionId();
        if (Constant.IS_OUTNET) {
            cacheCommonString(key, JsonUtil.getSimpleGson().toJson(goods));
        }
    }
    /**
     * 临时存储淘宝的商品详情
     * 
     * @param goods
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
@@ -76,6 +76,9 @@
    @Resource
    private TaoBaoOrderService taoBaoOrderService;
    @Resource
    private RedisManager redisManager;
    private static boolean isInited = false;
    public void onApplicationEvent(ContextRefreshedEvent arg0) {
@@ -215,7 +218,15 @@
                            while (its.hasNext()) {
                                String handler = its.next();
                                try {
                                    orderProcessService.fanli(map.get(handler));
                                    HongBaoV2 hongbao = map.get(handler);
                                    if (hongbao != null) {
                                        String key = "hongbao-fanli-" + hongbao.getId();
                                        if (StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
                                            // 处理之后要隔2小时再次进行处理
                                            redisManager.cacheCommonString(key, "1", 60 * 60 * 2);
                                            orderProcessService.fanli(map.get(handler));
                                        }
                                    }
                                    CMQManager.getInstance().deleteFanLiMsgNew(handler);
                                } catch (TaoBaoWeiQuanException e) {
                                    try {
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeOrderApiUtil.java
@@ -8,9 +8,11 @@
import com.yeshi.fanli.dto.order.OrderQuery;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
@@ -20,13 +22,13 @@
//淘宝客API接口
public class TaoKeOrderApiUtil {
    public static int TK_STATUS_ALL=1;
    public static int TK_STATUS_SETTLEMENT=3;
    public static int TK_STATUS_PAY=12;
    public static int TK_STATUS_SUCCESS=14;
    public static int TK_STATUS_INVALID=13;
    public static int TK_STATUS_ALL = 1;
    public static int TK_STATUS_SETTLEMENT = 3;
    public static int TK_STATUS_PAY = 12;
    public static int TK_STATUS_SUCCESS = 14;
    public static int TK_STATUS_INVALID = 13;
    /**
     * 获取会员订单
     * 
@@ -359,8 +361,8 @@
    private static List<TaoBaoOrder> getThirdTSpecialOrder(long startTime, int span) {
        int page = 1;
        String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
        List<TaoBaoOrder> orderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        List<TaoBaoOrder> orderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page,
                TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        while (orderList.size() == 100 * page) {
            page++;
            List<TaoBaoOrder> tempOrderList = getTaoBaoSpecialThirdOrder(startTimeStr, span, page,
@@ -374,8 +376,8 @@
    private static List<TaoBaoOrder> getRelationOrder(long startTime, int span) {
        int page = 1;
        String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
        List<TaoBaoOrder> orderList = getTaoBaoRelationOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        List<TaoBaoOrder> orderList = getTaoBaoRelationOrder(startTimeStr, span, page,
                TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        while (orderList.size() == 100 * page) {
            page++;
            List<TaoBaoOrder> tempOrderList = getTaoBaoRelationOrder(startTimeStr, span, page,
@@ -389,8 +391,8 @@
    private static List<TaoBaoOrder> getThirdRelationOrder(long startTime, int span) {
        int page = 1;
        String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
        List<TaoBaoOrder> orderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        List<TaoBaoOrder> orderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page,
                TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        while (orderList.size() == 100 * page) {
            page++;
            List<TaoBaoOrder> tempOrderList = getTaoBaoRelationThirdOrder(startTimeStr, span, page,
@@ -512,4 +514,73 @@
        }
        return orderList;
    }
    private static List<TaoBaoOrder> getTaoBaoSettleOrders(long startTime, int span, boolean third) {
        OrderQuery orderQuery = new OrderQuery();
        orderQuery.span = span;
        orderQuery.orderQueryType = "settle_time";
        orderQuery.orderScene = 1;
        orderQuery.pageSize = 100;
        int page = 1;
        orderQuery.pageNo = page;
        if (third)
            orderQuery.orderCountType = 2;
        else
            orderQuery.orderCountType = 1;
        String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss");
        orderQuery.startTime = startTimeStr;
        List<TaoBaoOrder> orderList = queryTaoBaoOrder(orderQuery, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        while (orderList.size() == 100 * page) {
            page++;
            orderQuery.pageNo = page;
            List<TaoBaoOrder> tempOrderList = queryTaoBaoOrder(orderQuery, TaoBaoConstant.TAOBAO_AUTH_APPKEY,
                    TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
            if (tempOrderList != null && tempOrderList.size() > 0)
                orderList.addAll(tempOrderList);
        }
        return orderList;
    }
    /**
     * 获取结算订单
     *
     * @param startTime
     * @param endTime
     * @param third
     *            -是否为第三方订单
     * @return
     */
    public static List<TaoBaoOrder> getTaoBaoSettleOrders(long startTime, long endTime, boolean third) {
        List<TaoBaoOrder> orderList = new ArrayList<>();
        long span = (endTime - startTime) % 1000 == 0 ? (endTime - startTime) / 1000 : (endTime - startTime) / 1000 + 1;
        int count = (int) (span / 1200);
        if (span % 1200 != 0)
            count++;
        for (int i = 0; i < count; i++) {
            long startT = startTime + i * 1200 * 1000L;
            int s = 1200;
            if (endTime < startT + 1200 * 1000L) {
                s = (int) ((endTime - startT) / 1000) + 1;
                if (s < 60)
                    s = 60;
            }
            List<TaoBaoOrder> tempOrderList = getTaoBaoSettleOrders(startT, s, third);
            if (tempOrderList != null && tempOrderList.size() > 0)
                orderList.addAll(tempOrderList);
            try {
                Thread.sleep(1000 * 10);// 加个延时,防止API请求频率限制
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return orderList;
    }
    public static List<TaoBaoWeiQuanOrder> getTaoBaoWeiQuanOrderList() {
        return null;
    }
}