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 != """>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 != """>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`>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,6 +71,7 @@ /** * 统计用户申诉次数 * * @param uid * @return */ @@ -79,6 +79,7 @@ /** * 后端查询 * * @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 { 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; @@ -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; } }