From c84d8ecd97d111b01db9cfd807300d0491a95bc8 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 08 一月 2019 16:38:34 +0800
Subject: [PATCH] Merge branch 'dev-hongbao'

---
 fanli/src/main/java/com/yeshi/fanli/entity/config/ZNXConfig.java                              |   92 +++++-
 fanli/src/test/java/org/fanli/TaoKeTest.java                                                  |    3 
 fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java            |   87 +++++
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java           |   72 +++-
 utils/src/main/java/org/yeshi/utils/HttpUtil.java                                             |   42 +++
 fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java |   28 +
 fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java                |    1 
 fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml                       |   21 +
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserNotificationServiceImpl.java        |   56 +++-
 fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml                         |  148 +++++-----
 fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java                    |   23 
 fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java                                      |   17 
 fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java                          |   12 
 fanli/src/test/java/org/fanli/TBImgTest.java                                                  |    3 
 fanli/src/main/resource/znx_msg.properties                                                    |   14 
 fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserNotificationService.java           |   27 +
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java            |  113 ++++---
 fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml                       |   15 
 fanli/src/main/resource/druid.properties                                                      |   14 
 fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoV2Service.java               |    2 
 fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java                               |    8 
 fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java                  |   19 +
 fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java               |   20 +
 23 files changed, 600 insertions(+), 237 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
index 98456af..5dd306b 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -2002,6 +2002,7 @@
 		data.put("goods", goods);
 		data.put("shareUsers", listShareUser);
 		data.put("couponUsers", listCouponUser);
+		data.put("detailWebUrl", "http://apph5.yeshitv.com/apppage/goods_img.html?id="+id);
 
 		out.print(JsonUtil.loadTrueResult(data));
 
diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java
index 69ff463..1d799bf 100644
--- a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java
+++ b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/HongBaoV2Mapper.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.dao.mybatis;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
@@ -107,4 +108,15 @@
 	List<HongBaoV2> listCanBalanceHongBaoByTypeAndUid(@Param("types") List<Integer> type, @Param("uid") Long uid,
 			@Param("count") int count);
 
+	/**
+	 * 鏍规嵁鐢ㄦ埛ID锛岃鍗曠姸鎬佸拰缁撶畻鏃堕棿缁熻閭�璇疯禋鐨勮鍗曟暟閲�
+	 * 
+	 * @param uid
+	 * @param minDate
+	 * @param maxDate
+	 * @return
+	 */
+	Long countInviteOrderCountByUidAndSettleTime(@Param("uid") Long uid, @Param("state") int state,
+			@Param("minDate") Date minDate, @Param("maxDate") Date maxDate);
+
 }
\ No newline at end of file
diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java
index 11b80d5..6214aaf 100644
--- a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java
+++ b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/hongbao/HongBaoMapper.java
@@ -255,6 +255,7 @@
 
 	/**
 	 * 缁熻鐢ㄦ埛绾㈠寘鏁伴噺
+	 * 
 	 * @param uid
 	 * @param type
 	 * @param state
@@ -265,24 +266,24 @@
 	long selectCountByTypeAndStateAndCreateTime(@Param("uid") Long uid, @Param("type") List<Integer> type,
 			@Param("state") List<Integer> state, @Param("minTime") Date minTime, @Param("maxTime") Date maxTime);
 
-	
 	/**
-	 * 鏍规嵁娓犻亾   缁熻鏂板鐢ㄦ埛24灏忔椂鍐呬骇鐢熺殑璁㈠崟鏁伴噺
+	 * 鏍规嵁娓犻亾 缁熻鏂板鐢ㄦ埛24灏忔椂鍐呬骇鐢熺殑璁㈠崟鏁伴噺
+	 * 
 	 * @param channel
 	 * @return
 	 */
-	List<Map<String, Object>> count24HOderByChannel(@Param("channel")String channel,
-			@Param("type")Integer type, @Param("years") String years, 
-			@Param("startTime")String startTime, @Param("endTime")String endTime);
+	List<Map<String, Object>> count24HOderByChannel(@Param("channel") String channel, @Param("type") Integer type,
+			@Param("years") String years, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
-	
 	/**
-	 * 鏍规嵁娓犻亾   缁熻鍘嗗彶浜х敓鐨勮鍗曟暟閲�
+	 * 鏍规嵁娓犻亾 缁熻鍘嗗彶浜х敓鐨勮鍗曟暟閲�
+	 * 
 	 * @param channel
 	 * @return
 	 */
-	List<Map<String, Object>> countHistoryOderByChannel(@Param("channel")String channel,
-			@Param("type")Integer type, @Param("years") String years, 
-			@Param("startTime")String startTime, @Param("endTime")String endTime);
-	
+	List<Map<String, Object>> countHistoryOderByChannel(@Param("channel") String channel, @Param("type") Integer type,
+			@Param("years") String years, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+
+
 }
\ No newline at end of file
diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
index f92fb29..d4cf9b6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
+++ b/fanli/src/main/java/com/yeshi/fanli/dao/mybatis/order/CommonOrderMapper.java
@@ -1,6 +1,7 @@
 package com.yeshi.fanli.dao.mybatis.order;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -38,7 +39,6 @@
 			@Param("orderState") Integer orderState, @Param("orderNo") String orderNo,
 			@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day);
 
-	
 	/**
 	 * 缁熻宸插埌璐﹂噾棰� 浠ュ強璁㈠崟鏁伴噺
 	 * 
@@ -48,8 +48,21 @@
 	 * @return
 	 */
 
-	Map<String, Object> countMoneyGroupOrderNoByUid(@Param("uid") Long uid, @Param("type") Integer type, @Param("orderNo") String orderNo,
-			@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("day") Integer day);
+	Map<String, Object> countMoneyGroupOrderNoByUid(@Param("uid") Long uid, @Param("type") Integer type,
+			@Param("orderNo") String orderNo, @Param("startTime") String startTime, @Param("endTime") String endTime,
+			@Param("day") Integer day);
+
+	/**
+	 * 鏍规嵁鐢ㄦ埛ID锛岃鍗曠姸鎬佸拰璁㈠崟缁撶畻鏃堕棿缁熻璁㈠崟鐨勬暟閲�
+	 * 
+	 * @param uid
+	 * @param state
+	 * @param minDate
+	 * @param maxDate
+	 * @return
+	 */
+	long countByUidAndOrderStateWithOrderBalanceTime(@Param("uid")Long uid, @Param("state")int state,@Param("minDate") Date minDate,@Param("maxDate") Date maxDate);
+
 	/**
 	 * 鏍规嵁璁㈠崟鍙枫�佽鍗曠被鍨嬫煡璇㈠晢鍝�
 	 * 
diff --git a/fanli/src/main/java/com/yeshi/fanli/entity/config/ZNXConfig.java b/fanli/src/main/java/com/yeshi/fanli/entity/config/ZNXConfig.java
index 3f48c2e..c1648f8 100644
--- a/fanli/src/main/java/com/yeshi/fanli/entity/config/ZNXConfig.java
+++ b/fanli/src/main/java/com/yeshi/fanli/entity/config/ZNXConfig.java
@@ -28,6 +28,22 @@
 	@Map("fanli_order_statisticed_msg")
 	private String fanliOrderStatisticedMsg;
 
+	// 鍒嗕韩璁㈠崟琚粺璁�
+	@Map("share_order_statisticed_title")
+	private String shareOrderStatisticedTitle;
+	@Map("share_order_statisticed_push")
+	private String shareOrderStatisticedPush;
+	@Map("share_order_statisticed_msg")
+	private String shareOrderStatisticedMsg;
+
+	// 閭�璇疯鍗曡缁熻
+	@Map("invite_order_statisticed_title")
+	private String inviteOrderStatisticedTitle;
+	@Map("invite_order_statisticed_push")
+	private String inviteOrderStatisticedPush;
+	@Map("invite_order_statisticed_msg")
+	private String inviteOrderStatisticedMsg;
+
 	// 鎻愭垚璁㈠崟琚粺璁�
 	@Map("ticheng_order_statisticed_title")
 	private String tichengOrderStatisticedTitle;
@@ -44,15 +60,14 @@
 	private String inviteMoneyRecievePush;
 	@Map("invite_money_recieve_msg")
 	private String inviteMoneyRecieveMsg;
-	
-	//鍒嗕韩璧氬晢涓氭敹鍏ュ埌璐︽彁绀�
+
+	// 鍒嗕韩璧氬晢涓氭敹鍏ュ埌璐︽彁绀�
 	@Map("share_money_recieve_title")
 	private String shareMoneyRecieveTitle;
 	@Map("share_money_recieve_push")
 	private String shareMoneyRecievePush;
 	@Map("share_money_recieve_msg")
 	private String shareMoneyRecieveMsg;
-	
 
 	// 鍞悗缁存潈璁㈠崟鎵f鎻愮ず
 
@@ -64,9 +79,8 @@
 
 	@Map("weiquan_drawback_fanli_push")
 	private String weiquanDrawbackFanliPush;
-	
-	
-	//閭�璇疯禋缁存潈
+
+	// 閭�璇疯禋缁存潈
 	@Map("weiquan_drawback_invite_title")
 	private String weiquanDrawbackInviteTitle;
 
@@ -75,9 +89,8 @@
 
 	@Map("weiquan_drawback_invite_push")
 	private String weiquanDrawbackInvitePush;
-	
-	
-    //鍒嗕韩璧氱淮鏉�
+
+	// 鍒嗕韩璧氱淮鏉�
 	@Map("weiquan_drawback_share_title")
 	private String weiquanDrawbackShareTitle;
 
@@ -124,15 +137,13 @@
 
 	@Map("extract_success_msg")
 	private String extractSuccessMsg;
-	
-	//鏀粯瀹濊处鎴烽獙璇�
+
+	// 鏀粯瀹濊处鎴烽獙璇�
 	@Map("alipay_account_valid_title")
 	private String alipayAccountValidTitle;
-	
+
 	@Map("alipay_account_valid_msg")
 	private String alipayAccountValidMsg;
-	
-	
 
 	public String getInviteMoneyRecieveTitle() {
 		return inviteMoneyRecieveTitle;
@@ -294,8 +305,6 @@
 		this.orderFanliRecieveTitle = orderFanliRecieveTitle;
 	}
 
-
-
 	public String getWeiquanDrawbackFanliTitle() {
 		return weiquanDrawbackFanliTitle;
 	}
@@ -368,7 +377,6 @@
 		this.orderFanliRecieveMsg = orderFanliRecieveMsg;
 	}
 
-
 	public String getWeiquanDrawbackFanliMsg() {
 		return weiquanDrawbackFanliMsg;
 	}
@@ -392,8 +400,6 @@
 	public void setExtractApplayPush(String extractApplayPush) {
 		this.extractApplayPush = extractApplayPush;
 	}
-
-
 
 	public String getExtractTransferFailPush() {
 		return extractTransferFailPush;
@@ -467,4 +473,52 @@
 		this.weiquanDrawbackSharePush = weiquanDrawbackSharePush;
 	}
 
+	public String getShareOrderStatisticedTitle() {
+		return shareOrderStatisticedTitle;
+	}
+
+	public void setShareOrderStatisticedTitle(String shareOrderStatisticedTitle) {
+		this.shareOrderStatisticedTitle = shareOrderStatisticedTitle;
+	}
+
+	public String getShareOrderStatisticedPush() {
+		return shareOrderStatisticedPush;
+	}
+
+	public void setShareOrderStatisticedPush(String shareOrderStatisticedPush) {
+		this.shareOrderStatisticedPush = shareOrderStatisticedPush;
+	}
+
+	public String getShareOrderStatisticedMsg() {
+		return shareOrderStatisticedMsg;
+	}
+
+	public void setShareOrderStatisticedMsg(String shareOrderStatisticedMsg) {
+		this.shareOrderStatisticedMsg = shareOrderStatisticedMsg;
+	}
+
+	public String getInviteOrderStatisticedTitle() {
+		return inviteOrderStatisticedTitle;
+	}
+
+	public void setInviteOrderStatisticedTitle(String inviteOrderStatisticedTitle) {
+		this.inviteOrderStatisticedTitle = inviteOrderStatisticedTitle;
+	}
+
+	public String getInviteOrderStatisticedPush() {
+		return inviteOrderStatisticedPush;
+	}
+
+	public void setInviteOrderStatisticedPush(String inviteOrderStatisticedPush) {
+		this.inviteOrderStatisticedPush = inviteOrderStatisticedPush;
+	}
+
+	public String getInviteOrderStatisticedMsg() {
+		return inviteOrderStatisticedMsg;
+	}
+
+	public void setInviteOrderStatisticedMsg(String inviteOrderStatisticedMsg) {
+		this.inviteOrderStatisticedMsg = inviteOrderStatisticedMsg;
+	}
+
 }
diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml
index fd18515..994b9d3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml
+++ b/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoMapper.xml
@@ -266,6 +266,7 @@
 
 
 
+
 	<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
 		yeshi_ec_hongbao where id = #{id,jdbcType=BIGINT}
 	</delete>
@@ -555,14 +556,14 @@
 
 	<select id="selectCountByTypeAndStateAndCreateTime" resultType="java.lang.Long">
 		SELECT COUNT(h.`id`) FROM yeshi_ec_hongbao h WHERE uid=#{uid}
-		<foreach  collection="type" item="itemType" open="and (" separator=" or "
-			close=")">
+		<foreach collection="type" item="itemType" open="and ("
+			separator=" or " close=")">
 			h.`type`=#{itemType}
 		</foreach>
-		
-		
-		<foreach collection="state" item="itemState" open="and (" separator=" or "
-			close=")">
+
+
+		<foreach collection="state" item="itemState" open="and ("
+			separator=" or " close=")">
 			h.`state`=#{itemState}
 		</foreach>
 
@@ -573,87 +574,92 @@
 		]]>
 		#{maxTime};
 	</select>
-	
+
 	<select id="count24HOderByChannel" resultType="java.util.HashMap">
-		SELECT  COALESCE(SUM(b.money*2),0) AS 'commision',  COALESCE(COUNT(b.id),0) AS'countOrder',
-			 COALESCE(SUM(b.payMoney),0) AS 'payMoney', 
-			 <if test="type == 1">
-			 	FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d') AS 'createDate'
-			</if>
-			<if test="type == 2">
-			 	FROM_UNIXTIME(u.`createtime`/1000,'%m') AS 'createDate'
-			</if>
-			<if test="type == 3">
-			 	FROM_UNIXTIME(u.`createtime`/1000,'%Y') AS 'createDate'
-			</if>
-		FROM
-			(
-			SELECT h.* FROM  yeshi_ec_hongbao h 
-			LEFT JOIN (SELECT a.`lua_uid` AS uid FROM `yeshi_ec_log_user_active`  a 
-			  	WHERE a.`lua_channel`='${channel}' GROUP BY a.`lua_uid`) a
-			ON a.uid=h.`uid` WHERE a.uid IS NOT NULL AND (h.`type`=1 OR h.`type`=20)
-			) b 
-		LEFT JOIN yeshi_ec_user u ON u.`id`=b.uid  
-		WHERE <![CDATA[b.createtime<u.`createtime`+1000*60*60*24 ]]>
-			<if test="startTime != null and startTime != '' ">
-			 	AND FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
-			</if>
-			<if test="endTime != null and endTime != '' ">
-			 	AND FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d') <![CDATA[ <= ]]> '${endTime}'
-			</if>
-			<if test="years != null and years != '' ">
-			 	AND FROM_UNIXTIME(u.`createtime`/1000,'%Y') = '${years}'
-			</if>
+		SELECT COALESCE(SUM(b.money*2),0) AS 'commision',
+		COALESCE(COUNT(b.id),0) AS'countOrder',
+		COALESCE(SUM(b.payMoney),0) AS 'payMoney',
 		<if test="type == 1">
-			GROUP BY FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d') 
+			FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d') AS 'createDate'
 		</if>
 		<if test="type == 2">
-		 	GROUP BY FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m') 
+			FROM_UNIXTIME(u.`createtime`/1000,'%m') AS 'createDate'
 		</if>
 		<if test="type == 3">
-		 	GROUP BY FROM_UNIXTIME(u.`createtime`/1000,'%Y') 
-		</if>		
+			FROM_UNIXTIME(u.`createtime`/1000,'%Y') AS 'createDate'
+		</if>
+		FROM
+		(
+		SELECT h.* FROM yeshi_ec_hongbao h
+		LEFT JOIN (SELECT a.`lua_uid` AS uid FROM `yeshi_ec_log_user_active` a
+		WHERE a.`lua_channel`='${channel}' GROUP BY a.`lua_uid`) a
+		ON a.uid=h.`uid` WHERE a.uid IS NOT NULL AND (h.`type`=1 OR h.`type`=20)
+		) b
+		LEFT JOIN yeshi_ec_user u ON u.`id`=b.uid
+		WHERE <![CDATA[b.createtime<u.`createtime`+1000*60*60*24 ]]>
+		<if test="startTime != null and startTime != '' ">
+			AND FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
+		</if>
+		<if test="endTime != null and endTime != '' ">
+			AND FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d') <![CDATA[ <= ]]>
+			'${endTime}'
+		</if>
+		<if test="years != null and years != '' ">
+			AND FROM_UNIXTIME(u.`createtime`/1000,'%Y') = '${years}'
+		</if>
+		<if test="type == 1">
+			GROUP BY FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m-%d')
+		</if>
+		<if test="type == 2">
+			GROUP BY FROM_UNIXTIME(u.`createtime`/1000,'%Y-%m')
+		</if>
+		<if test="type == 3">
+			GROUP BY FROM_UNIXTIME(u.`createtime`/1000,'%Y')
+		</if>
 		ORDER BY u.`createtime`
 
 	</select>
-	
+
 	<select id="countHistoryOderByChannel" resultType="java.util.HashMap">
-		
-		SELECT  COALESCE(SUM(h.`money`)*2,0) AS 'commision', COALESCE(COUNT(h.id),0) AS 'countOrder',
-			 COALESCE(SUM(h.payMoney),0) AS 'payMoney',
-				<if test="type == 1">
-				 	FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d') AS 'createDate'
-				</if>
-				<if test="type == 2">
-				 	FROM_UNIXTIME(h.`createtime`/1000,'%m') AS 'createDate'
-				</if>
-				<if test="type == 3">
-				 	FROM_UNIXTIME(h.`createtime`/1000,'%Y') AS 'createDate'
-				</if>
-		FROM yeshi_ec_hongbao h 
-		LEFT JOIN (SELECT a.`lua_uid` AS uid FROM `yeshi_ec_log_user_active`  a 
-			WHERE a.`lua_channel`='${channel}' GROUP BY a.`lua_uid`) a ON h.`uid`=a.uid 
-		WHERE  (h.`type`=1 OR h.`type`=20)  AND  a.uid IS NOT NULL
-				<if test="startTime != null and startTime != '' ">
-			 	AND FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
-				</if>
-				<if test="endTime != null and endTime != '' ">
-				 	AND FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d') <![CDATA[ <= ]]> '${endTime}'
-				</if>
-				<if test="years != null and years != '' ">
-				 	AND FROM_UNIXTIME(h.`createtime`/1000,'%Y') = '${years}'
-				</if>
+
+		SELECT COALESCE(SUM(h.`money`)*2,0) AS 'commision',
+		COALESCE(COUNT(h.id),0) AS 'countOrder',
+		COALESCE(SUM(h.payMoney),0) AS 'payMoney',
 		<if test="type == 1">
-			GROUP BY FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d') 
+			FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d') AS 'createDate'
 		</if>
 		<if test="type == 2">
-		 	GROUP BY FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m') 
+			FROM_UNIXTIME(h.`createtime`/1000,'%m') AS 'createDate'
 		</if>
 		<if test="type == 3">
-		 	GROUP BY FROM_UNIXTIME(h.`createtime`/1000,'%Y') 
-		</if>		
+			FROM_UNIXTIME(h.`createtime`/1000,'%Y') AS 'createDate'
+		</if>
+		FROM yeshi_ec_hongbao h
+		LEFT JOIN (SELECT a.`lua_uid` AS uid FROM `yeshi_ec_log_user_active` a
+		WHERE a.`lua_channel`='${channel}' GROUP BY a.`lua_uid`) a ON
+		h.`uid`=a.uid
+		WHERE (h.`type`=1 OR h.`type`=20) AND a.uid IS NOT NULL
+		<if test="startTime != null and startTime != '' ">
+			AND FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d')<![CDATA[ >= ]]>'${startTime}'
+		</if>
+		<if test="endTime != null and endTime != '' ">
+			AND FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d') <![CDATA[ <= ]]>
+			'${endTime}'
+		</if>
+		<if test="years != null and years != '' ">
+			AND FROM_UNIXTIME(h.`createtime`/1000,'%Y') = '${years}'
+		</if>
+		<if test="type == 1">
+			GROUP BY FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m-%d')
+		</if>
+		<if test="type == 2">
+			GROUP BY FROM_UNIXTIME(h.`createtime`/1000,'%Y-%m')
+		</if>
+		<if test="type == 3">
+			GROUP BY FROM_UNIXTIME(h.`createtime`/1000,'%Y')
+		</if>
 		ORDER BY h.`createtime`
 	</select>
-	
+
 
 </mapper>
diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml
index e280628..0455912 100644
--- a/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml
+++ b/fanli/src/main/java/com/yeshi/fanli/mapping/hongbao/HongBaoV2Mapper.xml
@@ -99,8 +99,7 @@
 	</select>
 
 
-	<select id="listCanBalanceHongBaoByType" resultMap="BaseResultMap"
-		parameterType="java.lang.Long">
+	<select id="listCanBalanceHongBaoByType" resultMap="BaseResultMap">
 		select
 		<include refid="Base_Column_List" />
 		FROM yeshi_ec_hongbao_v2 h WHERE h.`hb_version`=2 AND
@@ -216,7 +215,7 @@
 	<select id="listCanBalanceHongBaoByTypeAndUid" resultMap="BaseResultMap">
 		select
 		<include refid="Base_Column_List" />
-		from yeshi_ec_hongbao_v2 where hb_uid=#{uid} and `version`=2
+		from yeshi_ec_hongbao_v2 where hb_uid=#{uid} and `hb_version`=2
 
 		<foreach collection="types" item="type" open=" and ("
 			separator=" or " close=")">
@@ -231,6 +230,16 @@
 		NOW()>=hb_pre_get_time limit
 		#{count}
 	</select>
+	
+	<select id="countInviteOrderCountByUidAndSettleTime" 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_pid`=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`=6 or h.`hb_type`=7 OR
+		h.`hb_type`=21 OR h.`hb_type`=22) 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>
 
 
 	<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
index c3c3438..a758c65 100644
--- a/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
+++ b/fanli/src/main/java/com/yeshi/fanli/mapping/order/CommonOrderMapper.xml
@@ -31,8 +31,8 @@
 			<id column="co_order_goods_id" property="id" jdbcType="BIGINT" />
 		</association>
 	</resultMap>
-	
-	
+
+
 	<resultMap id="BaseDetailResultMap" type="com.yeshi.fanli.entity.order.CommonOrder">
 		<id column="co_id" property="id" jdbcType="BIGINT" />
 		<result column="co_order_no" property="orderNo" jdbcType="VARCHAR" />
@@ -57,8 +57,9 @@
 			<id column="co_uid" property="id" jdbcType="BIGINT" />
 		</association>
 
-		<association property="commonOrderGoods" resultMap="com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper.BaseResultMap">
-		
+		<association property="commonOrderGoods"
+			resultMap="com.yeshi.fanli.dao.mybatis.order.CommonOrderGoodsMapper.BaseResultMap">
+
 		</association>
 	</resultMap>
 
@@ -122,6 +123,14 @@
 		* from yeshi_ec_common_order where co_order_no=#{orderNo}
 		and
 		co_source_type=#{orderType} and co_order_by=#{orderBy}
+	</select>
+
+	<select id="countByUidAndOrderStateWithOrderBalanceTime"
+		resultType="java.lang.Long">
+		SELECT COUNT(*) FROM yeshi_ec_common_order co WHERE
+		co.`co_state`=#{state} and co.`co_uid`=#{uid} and co.`co_settle_time`
+		is not null and co.`co_settle_time`>=#{minDate} and
+		#{maxDate}>co.`co_settle_time`
 	</select>
 
 
@@ -290,7 +299,7 @@
 		DESC
 		LIMIT ${start},${count}
 	</select>
-	
+
 	<select id="countMoneyGroupOrderNoByUid" resultType="java.util.Map">
 		SELECT COALESCE(SUM(A.moneys),0)AS totalMoney,COUNT(*) AS totalRow FROM 
 			(SELECT COALESCE(SUM(th.`hb_money`),0)AS moneys FROM yeshi_ec_common_order tc
@@ -402,7 +411,7 @@
 		parameterType="java.util.List">
 		SELECT COALESCE(SUM(tc.`co_settlement`),0)AS
 		totalSettlement,COALESCE(SUM(tc.`co_count`),0)AS
-		totalCount,tc.`co_source_type`,tc.`co_order_no`,tg.*
+		totalCount,tc.`co_source_type`,tc.`co_order_no`,tg.*,tc.co_id
 		FROM
 		yeshi_ec_common_order_goods tg
 		LEFT JOIN yeshi_ec_common_order tc ON
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
index 19ed847..c268891 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/HongBaoV2ServiceImpl.java
@@ -5,7 +5,10 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -40,6 +43,7 @@
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.order.CommonOrderService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.UserNotificationService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
@@ -348,18 +352,51 @@
 	@Resource
 	private ThreeSaleSerivce threeSaleSerivce;
 
+	@Resource
+	private UserNotificationService userNotificationService;
+
 	@Transactional
 	@Override
-	public void addHongBao(CommonOrder commonOrder, int type) throws HongBaoException {
-		if (commonOrder == null || commonOrder.getId() == null || commonOrder.getUserInfo() == null)
-			throw new HongBaoException(1, "璁㈠崟淇℃伅涓嶅畬鏁�");
-		HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
-		if (hongBaoOrder == null) {
-			saveHongBao(commonOrder, type);
-		} else {
-			updateHongBao(hongBaoOrder, commonOrder, type);
-		}
+	public void addHongBao(List<CommonOrder> commonOrderList, int type) throws HongBaoException {
 
+		if (commonOrderList != null && commonOrderList.size() > 0) {
+			Map<Integer, HongBaoV2> notificationMap = new HashMap<>();
+			for (CommonOrder commonOrder : commonOrderList) {
+				if (commonOrder == null || commonOrder.getId() == null || commonOrder.getUserInfo() == null)
+					throw new HongBaoException(1, "璁㈠崟淇℃伅涓嶅畬鏁�");
+				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(commonOrder.getId());
+				if (hongBaoOrder == null) {
+					saveHongBao(commonOrder, type, notificationMap);
+				} else {
+					updateHongBao(hongBaoOrder, commonOrder, type);
+				}
+			}
+			/**
+			 * 閫氱煡鐢ㄦ埛鐨勮繑鍒╂儏鍐�
+			 */
+			Iterator<Integer> its = notificationMap.keySet().iterator();
+			while (its.hasNext()) {
+				Integer t = its.next();
+				HongBaoV2 notify = notificationMap.get(t);
+				String orderId = commonOrderList.get(0).getOrderNo();
+				Long uid = notify.getUserInfo().getId();
+				BigDecimal money = notify.getMoney();
+				switch (t) {
+				case HongBaoV2.TYPE_ZIGOU:
+					userNotificationService.orderFanliStatisticed(uid, orderId);
+					break;
+				case HongBaoV2.TYPE_SHARE_GOODS:
+					userNotificationService.orderShareStatisticed(uid, orderId, money);
+					break;
+				case HongBaoV2.TYPE_YIJI:
+					userNotificationService.orderInviteStatisticed(uid, orderId, money);
+					break;
+				case HongBaoV2.TYPE_ERJI:
+					userNotificationService.orderInviteStatisticed(uid, orderId, money);
+					break;
+				}
+			}
+		}
 	}
 
 	@Transactional
@@ -490,7 +527,8 @@
 	}
 
 	@Transactional
-	private void saveHongBao(CommonOrder commonOrder, int type) throws HongBaoException {
+	private void saveHongBao(CommonOrder commonOrder, int type, Map<Integer, HongBaoV2> notificationMap)
+			throws HongBaoException {
 		if (type == HongBaoV2.TYPE_ZIGOU) {// 鑾峰彇鑷喘鐨勮繑鍒╂瘮渚�
 			BigDecimal fanliRate = hongBaoManageService.getFanLiRate(commonOrder.getCreateTime().getTime());
 			HongBaoV2 hongBao = new HongBaoV2();
@@ -522,6 +560,12 @@
 			hongBaoOrder.setCreateTime(new Date());
 			hongBaoOrder.setHongBaoV2(hongBao);
 			hongBaoOrderMapper.insertSelective(hongBaoOrder);
+			// 鍔犲叆閫氱煡
+			if (notificationMap.get(type) == null)
+				notificationMap.put(type, hongBao);
+			else {
+				notificationMap.get(type).setMoney(notificationMap.get(type).getMoney().add(hongBao.getMoney()));
+			}
 
 			UserInfo boss = threeSaleSerivce.getBoss(user.getId());
 			if (boss != null && hongBao.getState() != HongBaoV2.STATE_SHIXIAO) {// 1绾OSS瀛樺湪涓旂孩鍖呮湭澶辨晥
@@ -554,6 +598,13 @@
 							MoneyBigDecimalUtil.mul(hongBao.getMoney(), firstRate.divide(new BigDecimal(100))));
 				}
 				hongBaoV2Mapper.insertSelective(firstHongbao);
+				// 鐢ㄦ埛閫氱煡
+				if (notificationMap.get(HongBaoV2.TYPE_YIJI) == null)
+					notificationMap.put(HongBaoV2.TYPE_YIJI, firstHongbao);
+				else {
+					notificationMap.get(HongBaoV2.TYPE_YIJI)
+							.setMoney(notificationMap.get(HongBaoV2.TYPE_YIJI).getMoney().add(firstHongbao.getMoney()));
+				}
 
 				// 鎻掑叆浜岀骇瀛愮孩鍖�
 				boss = threeSaleSerivce.getBoss(boss.getId());
@@ -571,7 +622,7 @@
 					secondHongbao.setVersion(2);
 					secondHongbao.setState(hongBao.getState());
 					if (hongBao.getState() == HongBaoV2.STATE_KELINGQU) {
-						firstHongbao.setMoney(
+						secondHongbao.setMoney(
 								MoneyBigDecimalUtil.mul(hongBao.getMoney(), secondRate.divide(new BigDecimal(100))));
 						Calendar calendar = Calendar.getInstance();
 						calendar.setTime(commonOrder.getSettleTime());
@@ -584,6 +635,14 @@
 								MoneyBigDecimalUtil.mul(hongBao.getMoney(), secondRate.divide(new BigDecimal(100))));
 					}
 					hongBaoV2Mapper.insertSelective(secondHongbao);
+
+					// 鐢ㄦ埛閫氱煡
+					if (notificationMap.get(HongBaoV2.TYPE_ERJI) == null)
+						notificationMap.put(HongBaoV2.TYPE_ERJI, secondHongbao);
+					else {
+						notificationMap.get(HongBaoV2.TYPE_ERJI).setMoney(
+								notificationMap.get(HongBaoV2.TYPE_ERJI).getMoney().add(secondHongbao.getMoney()));
+					}
 				}
 
 			}
@@ -623,6 +682,12 @@
 			hongBaoOrder.setHongBaoV2(hongBao);
 			hongBaoOrderMapper.insertSelective(hongBaoOrder);
 
+			if (notificationMap.get(type) == null)
+				notificationMap.put(type, hongBao);
+			else {
+				notificationMap.get(type).setMoney(notificationMap.get(type).getMoney().add(hongBao.getMoney()));
+			}
+
 			// 淇敼缁熻鏁版嵁
 			Long goodsId = commonOrder.getCommonOrderGoods().getId();
 			// 鏌ヨ鍟嗗搧
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
index 3a5c937..cc4fe93 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -241,8 +241,8 @@
 				orderStateContent = "宸茬淮鏉�";
 
 				/* 璁㈠崟缁存潈 鍒ゆ柇鏄惁鍏ㄩ儴缁存潈 */
-				List<TaoBaoWeiQuanOrder> listWQ = 
-						taoBaoWeiQuanOrderMapper.selectListByOrderIdAndState(order.getOrderNo(), "缁存潈鎴愬姛");
+				List<TaoBaoWeiQuanOrder> listWQ = taoBaoWeiQuanOrderMapper
+						.selectListByOrderIdAndState(order.getOrderNo(), "缁存潈鎴愬姛");
 
 				boolean isPart = false;// 榛樿澶辨晥
 
@@ -362,57 +362,64 @@
 
 	@Transactional
 	@Override
-	public CommonOrder addTaoBaoOrder(TaoBaoOrder taoBaoOrder, Long uid) throws CommonOrderException {
-		CommonOrder commonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(taoBaoOrder.getOrderId(),
-				Constant.SOURCE_TYPE_TAOBAO, taoBaoOrder.getOrderBy());
-		if (commonOrder == null)// 鏂板
-		{
-			commonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
-			CommonOrderGoods goods = new CommonOrderGoods();
-			goods.setGoodsId(taoBaoOrder.getAuctionId() + "");
-			goods.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
-			// 鍟嗗搧鏄惁宸茬粡鎻掑叆
-			List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper
-					.listByGoodsIdAndGoodsType(goods.getGoodsId(), goods.getGoodsType());
-			if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧
+	public List<CommonOrder> addTaoBaoOrder(List<TaoBaoOrder> taoBaoOrders, Long uid) throws CommonOrderException {
+		List<CommonOrder> commonOrderList = new ArrayList<>();
+		for (TaoBaoOrder taoBaoOrder : taoBaoOrders) {
+			CommonOrder commonOrder = commonOrderMapper.selectByOrderNoAndOrderTypeAndOrderBy(taoBaoOrder.getOrderId(),
+					Constant.SOURCE_TYPE_TAOBAO, taoBaoOrder.getOrderBy());
+			if (commonOrder == null)// 鏂板
 			{
-				TaoBaoGoodsBrief taoBaoGoods = null;
-				try {
-					taoBaoGoods = TaoKeApiUtil.getSimpleGoodsInfo(taoBaoOrder.getAuctionId());
-				} catch (TaobaoGoodsDownException e) {
-					e.printStackTrace();
-				}
-				if (taoBaoGoods != null) {
-					goods = CommonOrderGoodsFactory.create(taoBaoGoods);
-				}
-				goods.setCreateTime(new Date());
-				goods.setUpdateTime(new Date());
-				commonOrderGoodsMapper.insertSelective(goods);
-			} else
-				goods.setId(commonGoodsList.get(commonGoodsList.size() - 1).getId());
-			commonOrder.setCommonOrderGoods(goods);
-			commonOrder.setUserInfo(new UserInfo(uid));
-			commonOrder.setCreateTime(new Date());
-			commonOrderMapper.insertSelective(commonOrder);
-			
+				commonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
+				CommonOrderGoods goods = new CommonOrderGoods();
+				goods.setGoodsId(taoBaoOrder.getAuctionId() + "");
+				goods.setGoodsType(Constant.SOURCE_TYPE_TAOBAO);
+				// 鍟嗗搧鏄惁宸茬粡鎻掑叆
+				List<CommonOrderGoods> commonGoodsList = commonOrderGoodsMapper
+						.listByGoodsIdAndGoodsType(goods.getGoodsId(), goods.getGoodsType());
+				if (commonGoodsList.size() <= 0)// 涓嶅瓨鍦ㄥ氨鎻掑叆鍟嗗搧
+				{
+					TaoBaoGoodsBrief taoBaoGoods = null;
+					try {
+						taoBaoGoods = TaoKeApiUtil.getSimpleGoodsInfo(taoBaoOrder.getAuctionId());
+					} catch (TaobaoGoodsDownException e) {
+						e.printStackTrace();
+					}
+					if (taoBaoGoods != null) {
+						goods = CommonOrderGoodsFactory.create(taoBaoGoods);
+					}
+					goods.setCreateTime(new Date());
+					goods.setUpdateTime(new Date());
+					commonOrderGoodsMapper.insertSelective(goods);
+				} else
+					goods.setId(commonGoodsList.get(commonGoodsList.size() - 1).getId());
+				commonOrder.setCommonOrderGoods(goods);
+				commonOrder.setUserInfo(new UserInfo(uid));
+				commonOrder.setCreateTime(new Date());
+				commonOrderMapper.insertSelective(commonOrder);
 
-			return commonOrder;
-		} else {// 淇敼
-			// 宸茬粡缁撶畻鎴栬�呭凡缁忓け鏁堢殑璁㈠崟涓嶅鐞�
-			if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_SX)
-				return commonOrder;
-			CommonOrder newCommonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
-			CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
-			updateCommonOrder.seteIncome(newCommonOrder.geteIncome());
-			updateCommonOrder.setEstimate(newCommonOrder.getEstimate());
-			updateCommonOrder.setPayment(newCommonOrder.getPayment());
-			updateCommonOrder.setSettlement(newCommonOrder.getSettlement());
-			updateCommonOrder.setSettleTime(newCommonOrder.getSettleTime());
-			updateCommonOrder.setState(newCommonOrder.getState());
-			updateCommonOrder.setUpdateTime(new Date());
-			commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder);
-			return commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId());
+				commonOrderList.add(commonOrder);
+				continue;
+			} else {// 淇敼
+				// 宸茬粡缁撶畻鎴栬�呭凡缁忓け鏁堢殑璁㈠崟涓嶅鐞�
+				if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_SX) {
+					commonOrderList.add(commonOrder);
+					continue;
+				}
+				CommonOrder newCommonOrder = TaoBaoOrderUtil.convert(taoBaoOrder);
+				CommonOrder updateCommonOrder = new CommonOrder(commonOrder.getId());
+				updateCommonOrder.seteIncome(newCommonOrder.geteIncome());
+				updateCommonOrder.setEstimate(newCommonOrder.getEstimate());
+				updateCommonOrder.setPayment(newCommonOrder.getPayment());
+				updateCommonOrder.setSettlement(newCommonOrder.getSettlement());
+				updateCommonOrder.setSettleTime(newCommonOrder.getSettleTime());
+				updateCommonOrder.setState(newCommonOrder.getState());
+				updateCommonOrder.setUpdateTime(new Date());
+				commonOrderMapper.updateByPrimaryKeySelective(updateCommonOrder);
+				commonOrderList.add(commonOrderMapper.selectByPrimaryKey(updateCommonOrder.getId()));
+				continue;
+			}
 		}
+		return commonOrderList;
 	}
 
 	@Override
@@ -420,4 +427,10 @@
 			String endTime, Integer day) {
 		return commonOrderMapper.countMoneyGroupOrderNoByUid(uid, type, orderNo, startTime, endTime, day);
 	}
+
+	@Override
+	public long countByUidAndOrderStateWithOrderBalanceTime(Long uid, int state, Date minDate, Date maxDate) {
+
+		return commonOrderMapper.countByUidAndOrderStateWithOrderBalanceTime(uid, state, minDate, maxDate);
+	}
 }
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
index 90402ea..8e712c0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -758,6 +759,7 @@
 				updateHongBao.setId(hongBao.getId());
 				updateHongBao.setGetTime(new Date());
 				updateHongBao.setState(HongBaoV2.STATE_YILINGQU);
+				updateHongBao.setUpdateTime(new Date());
 				hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBao);
 				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
 				hbIdList.add(hongBao.getId());
@@ -799,6 +801,7 @@
 				updateHongBao.setId(hb.getId());
 				updateHongBao.setGetTime(new Date());
 				updateHongBao.setState(HongBaoV2.STATE_YILINGQU);
+				updateHongBao.setUpdateTime(new Date());
 				hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBao);
 				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
 				hbIdList.add(hb.getId());
@@ -819,8 +822,23 @@
 
 			// 娣诲姞鏂扮増璇︽儏璁板綍
 			try {
-				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, 0, 0, 0, invitemoney,
-						new Date());
+				// 鏌ヨ閭�璇疯禋鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
+				Calendar ca = Calendar.getInstance();
+				Date maxDate = new Date(TimeUtil
+						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
+				ca.add(Calendar.MONTH, -1);
+
+				Date minDate = new Date(TimeUtil
+						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
+				long validCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_JS,
+						minDate, maxDate);
+				long weiQuanCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_WQ,
+						minDate, maxDate);
+				long invalidCount = hongBaoV2Mapper.countInviteOrderCountByUidAndSettleTime(uid, CommonOrder.STATE_SX,
+						minDate, maxDate);
+
+				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createInvite(uid, (int) validCount,
+						(int) weiQuanCount, (int) invalidCount, invitemoney, new Date());
 				userMoneyDetail.setId(accountDetails.getId());
 				userMoneyDetailMapper.insert(userMoneyDetail);
 			} catch (UserMoneyDetailException e) {
@@ -869,6 +887,7 @@
 				updateHongBao.setId(hongBao.getId());
 				updateHongBao.setGetTime(new Date());
 				updateHongBao.setState(HongBao.STATE_YILINGQU);
+				updateHongBao.setUpdateTime(new Date());
 				hongBaoV2Mapper.updateByPrimaryKeySelective(updateHongBao);
 				// 娣诲姞鍒扮孩鍖呰繑鍒╄褰曢泦鍚�
 				hbIdList.add(hongBao.getId());
@@ -897,8 +916,24 @@
 
 			// 娣诲姞鏂扮増璇︽儏璁板綍
 			try {
-				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, 0, 0, 0, sharemoney,
-						new Date());
+				// 璁$畻鏈湀鐨勬湁鏁堣鍗曪紝澶辨晥璁㈠崟锛岀淮鏉冭鍗�
+				Calendar ca = Calendar.getInstance();
+
+				Date maxDate = new Date(TimeUtil
+						.convertToTimeTemp(ca.get(Calendar.YEAR) + "-" + (ca.get(Calendar.MONTH) + 1), "yyyy-M"));
+				ca.add(Calendar.MONTH, -1);
+
+				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);
+
+				UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createShare(uid, (int) validCount,
+						(int) weiQuanCount, (int) invalidCount, sharemoney, new Date());
 				userMoneyDetail.setId(accountDetails.getId());
 				userMoneyDetailMapper.insert(userMoneyDetail);
 			} catch (UserMoneyDetailException e) {
@@ -998,13 +1033,14 @@
 			orderMapper.updateByPrimaryKeySelective(updateOrder);
 
 			// 鐢ㄧ涓�涓瓙璁㈠崟閿佸畾鐢ㄦ埛
-			for (TaoBaoOrder taoBaoOrder : orderList) {
+			List<CommonOrder> commonOrderList = null;
+			try {
+				commonOrderList = commonOrderService.addTaoBaoOrder(orderList, uid);
+				hongBaoV2Service.addHongBao(commonOrderList, HongBaoV2.TYPE_ZIGOU);
+			} catch (CommonOrderException e) {
 				try {
-					CommonOrder commonOrder = commonOrderService.addTaoBaoOrder(taoBaoOrder, uid);
-					hongBaoV2Service.addHongBao(commonOrder, HongBaoV2.TYPE_ZIGOU);
-				} catch (CommonOrderException e) {
-					e.printStackTrace();
-				} catch (HongBaoException e1) {
+					LogHelper.errorDetailInfo(e, null, "璁㈠崟鍙�:" + orderId);
+				} catch (Exception e1) {
 					e1.printStackTrace();
 				}
 			}
@@ -1028,15 +1064,13 @@
 				return;
 
 			// 鐢ㄧ涓�涓瓙璁㈠崟閿佸畾鐢ㄦ埛
-			for (TaoBaoOrder taoBaoOrder : orderList) {
-				try {
-					CommonOrder commonOrder = commonOrderService.addTaoBaoOrder(taoBaoOrder, uid);
-					hongBaoV2Service.addHongBao(commonOrder, HongBaoV2.TYPE_SHARE_GOODS);
-				} catch (CommonOrderException e) {
-					e.printStackTrace();
-				} catch (HongBaoException e1) {
-					e1.printStackTrace();
-				}
+			try {
+				List<CommonOrder> commonOrders = commonOrderService.addTaoBaoOrder(orderList, uid);
+				hongBaoV2Service.addHongBao(commonOrders, HongBaoV2.TYPE_SHARE_GOODS);
+			} catch (CommonOrderException e) {
+				e.printStackTrace();
+			} catch (HongBaoException e1) {
+				e1.printStackTrace();
 			}
 		}
 
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
index 945f3a3..ecd5b44 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoWeiQuanDrawBackServiceImpl.java
@@ -25,6 +25,7 @@
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.money.UserMoneyDetail;
+import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.order.HongBaoOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
@@ -108,14 +109,22 @@
 		List<HongBaoV2> mainHongBaoList = new ArrayList<>();
 		if (commonOrderList != null)
 			for (CommonOrderVO vo : commonOrderList) {
+				// 淇敼璁㈠崟鐘舵�佷负缁存潈
+				CommonOrder co = new CommonOrder(vo.getId());
+				co.setState(CommonOrder.STATE_WQ);
+				co.setUpdateTime(new Date());
+				commonOrderMapper.updateByPrimaryKeySelective(co);
+
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
 				mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
 			}
 		if (mainHongBaoList == null || mainHongBaoList.size() == 0)
 			return;
 		for (int i = 0; i < mainHongBaoList.size(); i++) {
+			HongBaoV2 hb = hongBaoV2Mapper.selectByPrimaryKey(mainHongBaoList.get(i).getId());
+			mainHongBaoList.set(i, hb);
 			// 鍙鐞嗚繑鍒╄鍗�
-			if (mainHongBaoList.get(i).getType() != HongBaoV2.TYPE_ZIGOU) {
+			if (hb.getType() != HongBaoV2.TYPE_ZIGOU) {
 				mainHongBaoList.remove(i);
 				i--;
 			}
@@ -222,6 +231,12 @@
 		List<HongBaoV2> mainHongBaoList = new ArrayList<>();
 		if (commonOrderList != null)
 			for (CommonOrderVO vo : commonOrderList) {
+				// 鏇存敼璁㈠崟鐘舵��
+				CommonOrder co = new CommonOrder(vo.getId());
+				co.setState(CommonOrder.STATE_WQ);
+				co.setUpdateTime(new Date());
+				commonOrderMapper.updateByPrimaryKeySelective(co);
+
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
 				mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
 			}
@@ -344,6 +359,14 @@
 		List<HongBaoV2> mainHongBaoList = new ArrayList<>();
 		if (commonOrderList != null)
 			for (CommonOrderVO vo : commonOrderList) {
+				CommonOrder co = commonOrderMapper.selectByPrimaryKey(vo.getId());
+				if (co.getState() != CommonOrder.STATE_WQ) {
+					co = new CommonOrder(vo.getId());
+					co.setState(CommonOrder.STATE_WQ);
+					co.setUpdateTime(new Date());
+					commonOrderMapper.updateByPrimaryKeySelective(co);
+				}
+
 				HongBaoOrder hongBaoOrder = hongBaoOrderMapper.selectByCommonOrderId(vo.getId());
 				mainHongBaoList.add(hongBaoOrder.getHongBaoV2());
 			}
@@ -355,6 +378,9 @@
 
 		if (mainHongBaoList != null)
 			for (HongBaoV2 hongBao : mainHongBaoList) {
+				HongBaoV2 hb = hongBaoV2Mapper.selectByPrimaryKey(hongBao.getId());
+				hongBao = hb;
+
 				if (hongBao.getState() == HongBaoV2.STATE_SHIXIAO)
 					continue;
 				// 杩斿埄绾㈠寘涓嶈鍏�
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserNotificationServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserNotificationServiceImpl.java
index b788e80..5904c41 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserNotificationServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserNotificationServiceImpl.java
@@ -35,7 +35,7 @@
 
 	@Override
 	public void newerHongBao(Long uid, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getNewerHongbaoTitle(),
@@ -47,7 +47,7 @@
 
 	@Override
 	public void orderFanliRecieved(Long uid, String orderId, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getOrderFanliRecieveTitle(), Constant.znxConfig
@@ -59,7 +59,7 @@
 
 	@Override
 	public void tiChengRecieved(Long uid, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getShareMoneyRecieveTitle(),
@@ -71,7 +71,7 @@
 
 	@Override
 	public void orderFanliStatisticed(Long uid, String orderId) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getFanliOrderStatisticedTitle(),
@@ -83,7 +83,7 @@
 
 	@Override
 	public void tiChengStatisticed(Long uid, String orderId, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		orderId = orderId.substring(0, orderId.length() - 6) + "******";
 		try {
@@ -96,7 +96,7 @@
 
 	@Override
 	public void weiQuanFanli(Long uid, String orderId, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		// 鍙彂閫佺珯鍐呬俊
 		AccountMessage am = new AccountMessage();
@@ -111,7 +111,7 @@
 
 	@Override
 	public void weiQuanTiCheng(Long uid, String orderId, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		orderId = orderId.substring(0, orderId.length() - 6) + "******";
 		AccountMessage am = new AccountMessage();
@@ -126,7 +126,7 @@
 
 	@Override
 	public void extractApply(Long uid) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getExtractApplayTitle(),
@@ -138,7 +138,7 @@
 
 	@Override
 	public void extractTransferFail(Long uid, String time) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getExtractTransferFailTitle(),
@@ -150,7 +150,7 @@
 
 	@Override
 	public void extractWrong(Long uid, Extract extract, String time) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		// 鎻愮幇澶辫触鐭俊閫氱煡
 		// try {
@@ -177,7 +177,7 @@
 
 	@Override
 	public void extractSuccess(Long uid, Extract extract, String time) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		// 鎻愮幇鎴愬姛鐭俊閫氱煡
 		// try {
@@ -205,7 +205,7 @@
 
 	@Override
 	public void alipayAccountValidRight(Long uid, BigDecimal money, String account) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		BindingAccount ba = new BindingAccount();
 		ba.setAccount(account);
@@ -223,7 +223,7 @@
 
 	@Override
 	public void tiChengInviteRecieved(Long uid, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getInviteMoneyRecieveTitle(),
@@ -236,7 +236,7 @@
 
 	@Override
 	public void tiChengShareRecieved(Long uid, BigDecimal money) {
-		if(Constant.IS_TEST)
+		if (Constant.IS_TEST)
 			return;
 		try {
 			pushService.pushZNX(uid, Constant.znxConfig.getShareMoneyRecieveTitle(),
@@ -247,4 +247,32 @@
 
 	}
 
+	@Override
+	public void orderShareStatisticed(Long uid, String orderId, BigDecimal money) {
+		if (Constant.IS_TEST)
+			return;
+		orderId = orderId.substring(0, orderId.length() - 6) + "******";
+		try {
+			pushService.pushZNX(uid, Constant.znxConfig.getShareOrderStatisticedMsg(), Constant.znxConfig
+					.getShareOrderStatisticedMsg().replace("[璁㈠崟鍙穄", orderId).replace("[閲戦]", money.toString()));
+		} catch (PushException e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	@Override
+	public void orderInviteStatisticed(Long uid, String orderId, BigDecimal money) {
+		if (Constant.IS_TEST)
+			return;
+		orderId = orderId.substring(0, orderId.length() - 6) + "******";
+		try {
+			pushService.pushZNX(uid, Constant.znxConfig.getInviteOrderStatisticedTitle(), Constant.znxConfig
+					.getInviteOrderStatisticedMsg().replace("[璁㈠崟鍙穄", orderId).replace("[閲戦]", money.toString()));
+		} catch (PushException e) {
+			e.printStackTrace();
+		}
+
+	}
+
 }
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoV2Service.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoV2Service.java
index f018b86..1fbbb48 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoV2Service.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/inter/hongbao/HongBaoV2Service.java
@@ -32,7 +32,7 @@
 	 *            绫诲瀷
 	 * @throws HongBaoException
 	 */
-	public void addHongBao(CommonOrder commonOrder, int type) throws HongBaoException;
+	public void addHongBao(List<CommonOrder> commonOrder, int type) throws HongBaoException;
 
 	/**
 	 * 灏嗚�佺増鏈殑绾㈠寘瀵硅薄杞负鏂扮増鏈殑瀵硅薄
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java
index 4312b76..87f1f97 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/inter/order/CommonOrderService.java
@@ -1,8 +1,11 @@
 package com.yeshi.fanli.service.inter.order;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
 
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
@@ -125,10 +128,11 @@
 	 * @param uid
 	 * @return
 	 */
-	public CommonOrder addTaoBaoOrder(TaoBaoOrder taoBaoOrder, Long uid) throws CommonOrderException;
-	
+	public List<CommonOrder> addTaoBaoOrder(List<TaoBaoOrder> taoBaoOrder, Long uid) throws CommonOrderException;
+
 	/**
 	 * 鏍规嵁鎻愭潯浠剁粺璁″凡鍒拌处閲戦
+	 * 
 	 * @param uid
 	 * @param type
 	 * @param orderNo
@@ -137,7 +141,17 @@
 	 * @param day
 	 * @return
 	 */
-	public Map<String, Object> countMoneyGroupOrderNoByUid(Long uid, Integer type, String orderNo, String startTime, 
+	public Map<String, Object> countMoneyGroupOrderNoByUid(Long uid, Integer type, String orderNo, String startTime,
 			String endTime, Integer day);
 
+	/**
+	 * 鏍规嵁鐢ㄦ埛ID锛岃鍗曠姸鎬侊紝缁撶畻鏃堕棿缁熻璁㈠崟鏁伴噺
+	 * @param uid
+	 * @param state
+	 * @param minDate
+	 * @param maxDate
+	 * @return
+	 */
+	long countByUidAndOrderStateWithOrderBalanceTime(Long uid, int state, Date minDate, Date maxDate);
+
 }
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserNotificationService.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserNotificationService.java
index be1d63a..518be36 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserNotificationService.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserNotificationService.java
@@ -36,23 +36,22 @@
 	 * @param money
 	 */
 	public void tiChengRecieved(Long uid, BigDecimal money);
-	
-	
+
 	/**
 	 * 閭�璇锋彁鎴愬埌璐�
+	 * 
 	 * @param uid
 	 * @param money
 	 */
 	public void tiChengInviteRecieved(Long uid, BigDecimal money);
-	
-	
+
 	/**
 	 * 鍒嗕韩鎻愭垚鍒拌处
+	 * 
 	 * @param uid
 	 * @param money
 	 */
 	public void tiChengShareRecieved(Long uid, BigDecimal money);
-
 
 	/**
 	 * 璁㈠崟琚粺璁�
@@ -72,6 +71,24 @@
 	public void tiChengStatisticed(Long uid, String orderId, BigDecimal money);
 
 	/**
+	 * 鍒嗕韩璁㈠崟琚粺璁�
+	 * 
+	 * @param uid
+	 * @param orderId
+	 * @param money
+	 */
+	public void orderShareStatisticed(Long uid, String orderId, BigDecimal money);
+
+	/**
+	 * 閭�璇疯鍗曡缁熻
+	 * 
+	 * @param uid
+	 * @param orderId
+	 * @param money
+	 */
+	public void orderInviteStatisticed(Long uid, String orderId, BigDecimal money);
+
+	/**
 	 * 缁存潈杩斿埄璁㈠崟鎵f
 	 * 
 	 * @param uid
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java b/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
index bcdcece..600238f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
@@ -50,6 +50,17 @@
 	public static String GOODS_UPDATE = "goods_update_queue";
 
 	static {
+
+		if (Constant.IS_TEST) {
+			QUEUENAME_ORDER = "test-" + QUEUENAME_ORDER;
+			EXTRACT_RESULT = "test-" + EXTRACT_RESULT;
+			PUSH_IOS = "test-" + PUSH_IOS;
+			FANLI_ORDER = "test-" + FANLI_ORDER;
+			FANLI_ORDER_NEW = "test-" + FANLI_ORDER_NEW;
+			FANLI_TICHENG_ORDER = "test-" + FANLI_TICHENG_ORDER;
+			ORDER_WEIQUAN = "test-" + ORDER_WEIQUAN;
+		}
+
 		QUEUENAME_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
 		EXTRACT_RESULT += "-" + Constant.systemCommonConfig.getProjectName();
 		PUSH_IOS += "-" + Constant.systemCommonConfig.getProjectName();
@@ -194,8 +205,7 @@
 			}
 		return map;
 	}
-	
-	
+
 	public Map<String, HongBaoV2> consumeFanLiMsgNew(int count) {
 		List<Message> list = cmqUtil.recieveMsg(count, FANLI_ORDER_NEW);
 		Map<String, HongBaoV2> map = new HashMap<>();
@@ -209,12 +219,11 @@
 			}
 		return map;
 	}
-	
 
 	public void deleteFanLiMsg(String receiptHandle) {
 		cmqUtil.deleteMsg(FANLI_ORDER, receiptHandle);
 	}
-	
+
 	public void deleteFanLiMsgNew(String receiptHandle) {
 		cmqUtil.deleteMsg(FANLI_ORDER_NEW, receiptHandle);
 	}
diff --git a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
index 3710772..9d4eeb6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -1600,9 +1600,7 @@
 					"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
 			headers.put("Referer", "https://detail.tmall.com/item.htm?id=" + auctionId);
 			String url = String.format("https://hws.m.taobao.com/cache/desc/5.0?id=" + auctionId);
-			LogHelper.test("浠g悊IP:" + ip.getIp() + ":" + ip.getPort());
 			String result = HttpUtil.get(url, headers, ip);
-			LogHelper.test("杩斿洖鍐呭:" + result);
 			if (!StringUtil.isNullOrEmpty(result)) {
 				JSONObject data = JSONObject.fromObject(result);
 
@@ -1612,7 +1610,7 @@
 					for (int i = 0; i < array.size(); i++) {
 						String itemStr = array.optString(i).replace("<img", "<a").replace("</img>", "<a>");
 						html += itemStr;
-					}
+					}
 					Document doc = Jsoup.parse(html);
 					Elements items = doc.getElementsByTag("a");
 					for (int i = 0; i < items.size(); i++) {
@@ -1630,8 +1628,8 @@
 							img.setPicture("http:" + item.ownText().trim());
 						if (img != null && img.getPicture() != null && img.getPicture().endsWith(".jpg"))
 							imgList.add(img);
-					}
-					
+					}
+
 				}
 			}
 
diff --git a/fanli/src/main/resource/druid.properties b/fanli/src/main/resource/druid.properties
index c5e5b71..d453ca0 100644
--- a/fanli/src/main/resource/druid.properties
+++ b/fanli/src/main/resource/druid.properties
@@ -1,8 +1,8 @@
 druid.driverClassName=com.mysql.jdbc.Driver
 #鏈湴娴嬭瘯
-#druid.url=jdbc:mysql://192.168.1.122:3306/ec_quan
-#druid.username=root
-#druid.password=hexiaohui
+druid.url=jdbc:mysql://192.168.1.122:3306/ec_quan
+druid.username=root
+druid.password=hexiaohui
 
 
 #druid.url=jdbc:mysql://192.168.1.253:3306/ec_quan
@@ -22,12 +22,12 @@
 
 
 #澶栫綉姝e紡
-druid.url=jdbc:mysql://172.16.16.17:3306/ec_quan
-druid.username=root
-druid.password=Yeshi2016@
+#druid.url=jdbc:mysql://172.16.16.17:3306/ec_quan
+#druid.username=root
+#druid.password=Yeshi2016@
 
 #澶栫綉鏈湴娴嬭瘯
-#druid.url=jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ec_quan_test
+#druid.url=jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ec_quan
 #druid.username=root
 #druid.password=Yeshi2016@
 
diff --git a/fanli/src/main/resource/znx_msg.properties b/fanli/src/main/resource/znx_msg.properties
index 0cf05eb..3234ca7 100644
--- a/fanli/src/main/resource/znx_msg.properties
+++ b/fanli/src/main/resource/znx_msg.properties
@@ -19,7 +19,19 @@
 #鎻愭垚璁㈠崟琚粺璁�
 ticheng_order_statisticed_title=濂栭噾璁㈠崟宸茶缁熻
 ticheng_order_statisticed_push=鎮ㄦ湁涓�涓柊鐨勫閲戣鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑鍒嗕韩濂栭噾璁㈠崟鎴栬�呴個璇峰閲戣鍗曪紝棰勪及濂栭噾锛� 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
-ticheng_order_statisticed_msg=鎮ㄦ湁涓�涓柊鐨勫閲戣鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑鍒嗕韩濂栭噾鎴栬�呴個璇峰閲戯紝棰勪及濂栭噾锛� 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
+ticheng_order_statisticed_msg=鎮ㄦ湁涓�涓柊鐨勫閲戣鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑鍒嗕韩濂栭噾鎴栬�呴個璇峰閲戣鍗曪紝棰勪及濂栭噾锛� 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
+
+#鍒嗕韩璧氳缁熻
+share_order_statisticed_title=鍒嗕韩璁㈠崟宸茶缁熻
+share_order_statisticed_push=鎮ㄦ湁涓�涓柊鐨勫垎浜鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑鍒嗕韩濂栭噾璁㈠崟锛岄浼板閲戯細 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
+share_order_statisticed_msg=鎮ㄦ湁涓�涓柊鐨勫垎浜鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑鍒嗕韩濂栭噾璁㈠崟锛岄浼板閲戯細 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
+
+#閭�璇疯禋琚粺璁�
+invite_order_statisticed_title=閭�璇疯鍗曞凡琚粺璁�
+invite_order_statisticed_push=鎮ㄦ湁涓�涓柊鐨勯個璇疯鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑閭�璇峰閲戣鍗曪紝棰勪及濂栭噾锛� 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
+invite_order_statisticed_msg=鎮ㄦ湁涓�涓柊鐨勯個璇疯鍗曘�愯鍗曞彿锛歔璁㈠崟鍙穄銆� 锛屾潵鑷簬浣犵殑閭�璇峰閲戣鍗曪紝棰勪及濂栭噾锛� 楼[閲戦]鍏冿紙娉細璁㈠崟閫�娆惧悗鍒欒璁㈠崟澶辨晥锛屾病鏈夊閲戯級
+
+
 
 
 
diff --git a/fanli/src/test/java/org/fanli/TBImgTest.java b/fanli/src/test/java/org/fanli/TBImgTest.java
index cb09a00..cd03d51 100644
--- a/fanli/src/test/java/org/fanli/TBImgTest.java
+++ b/fanli/src/test/java/org/fanli/TBImgTest.java
@@ -4,6 +4,7 @@
 
 import org.junit.Ignore;
 import org.junit.Test;
+import org.yeshi.utils.entity.ProxyIP;
 
 import com.yeshi.fanli.entity.common.ImageInfo;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -13,7 +14,7 @@
 
 	@Test
 	public void test1() {
-		List<ImageInfo> list = TaoBaoUtil.getTBDetailImageWithSize(565204406588L);
+		List<ImageInfo> list = TaoBaoUtil.getTBDetailImageWithSizev2(565204406588L,new ProxyIP("175.25.184.247", 23128));
 		for (ImageInfo info : list)
 			System.out.println(info.getPicture());
 	}
diff --git a/fanli/src/test/java/org/fanli/TaoKeTest.java b/fanli/src/test/java/org/fanli/TaoKeTest.java
index 2ac6799..7c9b1ce 100644
--- a/fanli/src/test/java/org/fanli/TaoKeTest.java
+++ b/fanli/src/test/java/org/fanli/TaoKeTest.java
@@ -17,11 +17,10 @@
 import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService;
 import com.yeshi.fanli.util.BeanUtil;
-import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 
-//@Ignore
+@Ignore
 public class TaoKeTest {
 
 	@Test
diff --git a/utils/src/main/java/org/yeshi/utils/HttpUtil.java b/utils/src/main/java/org/yeshi/utils/HttpUtil.java
index 8f60fd8..491f9f9 100644
--- a/utils/src/main/java/org/yeshi/utils/HttpUtil.java
+++ b/utils/src/main/java/org/yeshi/utils/HttpUtil.java
@@ -9,7 +9,9 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLEncoder;
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.httpclient.Header;
@@ -24,6 +26,18 @@
 import org.apache.commons.httpclient.methods.multipart.Part;
 import org.apache.commons.httpclient.methods.multipart.StringPart;
 import org.apache.commons.io.FileUtils;
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.yeshi.utils.entity.ProxyIP;
 
 import net.sf.json.JSONArray;
@@ -100,6 +114,7 @@
 		HttpClient client = new HttpClient();
 		if (ipInfo != null)
 			client.getHostConfiguration().setProxy(ipInfo.getIp(), ipInfo.getPort());
+		client.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
 		try {
 			GetMethod method = new GetMethod(url);
 			if (headers != null) {
@@ -119,6 +134,33 @@
 		return "";
 	}
 
+	public static String get(String url, Map<String, String> headers, ProxyIP ipInfo, String userName,
+			String proxyPwd) {
+		CloseableHttpClient httpclient = null;
+		if (!StringUtil.isNullOrEmpty(userName)) {
+			CredentialsProvider credsProvider = new BasicCredentialsProvider();
+			credsProvider.setCredentials(new AuthScope(ipInfo.getIp(), ipInfo.getPort()),
+					new UsernamePasswordCredentials(userName, proxyPwd));
+			httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build();
+		} else
+			HttpClients.createDefault();
+		HttpHost proxy = null;
+		if (ipInfo.getPort() != 0 && ipInfo.getPort() != 80) {
+			proxy = new HttpHost(ipInfo.getIp(), ipInfo.getPort());
+		} else
+			proxy = new HttpHost(ipInfo.getIp());
+		RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
+		HttpPost post = new HttpPost(url);
+		try {
+			post.setConfig(config);
+			CloseableHttpResponse response = httpclient.execute(post);
+			return EntityUtils.toString(response.getEntity());
+		} catch (Exception e) {
+			return null;
+		}
+
+	}
+
 	public static String getAsString(String url, String fromCharset, String toCharset) {
 		HttpClient client = new HttpClient();
 		GetMethod method = new GetMethod(url);

--
Gitblit v1.8.0