From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/util/factory/RedPackDetailFactory.java |  691 +++++++++++++++++++++++++++++++-------------------------
 1 files changed, 381 insertions(+), 310 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/factory/RedPackDetailFactory.java b/fanli/src/main/java/com/yeshi/fanli/util/factory/RedPackDetailFactory.java
index 0966a61..71454cf 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/factory/RedPackDetailFactory.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/factory/RedPackDetailFactory.java
@@ -1,310 +1,381 @@
-package com.yeshi.fanli.util.factory;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-import com.yeshi.fanli.entity.redpack.RedPackDetail;
-import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
-import com.yeshi.fanli.entity.redpack.RedPackExchange;
-import com.yeshi.fanli.entity.redpack.RedPackGiveRecord;
-import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
-import com.yeshi.fanli.exception.redpack.RedPackDetailException;
-import com.yeshi.fanli.util.StringUtil;
-
-public class RedPackDetailFactory {
-
-	/**
-	 * 绾㈠寘鎻愮幇
-	 * 
-	 * @param extract
-	 * @return
-	 */
-	public static RedPackDetail createExchange(RedPackExchange exchange) throws RedPackDetailException {
-		if (exchange == null)
-			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
-
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(false);
-		detail.setDescInfo("绛夊緟浜哄伐瀹℃牳");
-		detail.setUid(exchange.getUid());
-		detail.setMoney(new BigDecimal("-" + exchange.getMoney()));
-		detail.setType(RedPackDetailTypeEnum.redExchange);
-		detail.setTitle(RedPackDetailTypeEnum.redExchange.getDesc());
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redExchange.name() + ":" + exchange.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 绾㈠寘鎻愮幇閫氳繃
-	 * 
-	 * @param extract
-	 * @return
-	 */
-	public static RedPackDetail updateExchangePass(Long id, RedPackExchange exchange) throws RedPackDetailException {
-		if (id == null)
-			throw new RedPackDetailException(1, "鏄庣粏ID涓嶈兘涓虹┖");
-
-		if (exchange == null)
-			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
-
-		RedPackDetail detail = new RedPackDetail();
-		detail.setId(id);
-		detail.setDisplay(true);
-		detail.setDescInfo("璇峰埌璐︽埛浣欓涓煡鐪�");
-		detail.setType(RedPackDetailTypeEnum.redExchangePass);
-		detail.setTitle(RedPackDetailTypeEnum.redExchangePass.getDesc());
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redExchangePass.name() + ":" + exchange.getId()));
-		return detail;
-	}
-
-	/**
-	 * 绾㈠寘鎻愮幇鎷掔粷
-	 * 
-	 * @param extract
-	 * @return
-	 */
-	public static RedPackDetail createExchangeReject(RedPackExchange exchange) throws RedPackDetailException {
-		if (exchange == null)
-			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
-
-		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(false);
-		detail.setUid(exchange.getUid());
-		detail.setMoney(exchange.getMoney());
-		detail.setDescInfo("绾㈠寘浜х敓杩囩▼涓秹瀚岃繚瑙�");
-		detail.setTitle(RedPackDetailTypeEnum.redExchangeReject.getDesc());
-		detail.setType(RedPackDetailTypeEnum.redExchangeReject);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redExchangeReject.name() + ":" + exchange.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 璧犻�佸ソ鍙嬫槑缁�
-	 * 
-	 * @param giveRecord
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createGiveOthers(RedPackGiveRecord giveRecord) throws RedPackDetailException {
-		if (giveRecord == null)
-			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(giveRecord.getGiveUid());
-		detail.setMoney(new BigDecimal("-" + giveRecord.getAmount()));
-		detail.setType(RedPackDetailTypeEnum.giveOthers);
-		detail.setTitle(RedPackDetailTypeEnum.giveOthers.getDesc());
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.giveOthers.name() + ":" + giveRecord.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 璧犻�佹垚鍔�
-	 * 
-	 * @param id
-	 * @param giveRecord
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createGiveOthersSucceed(Long id, RedPackGiveRecord giveRecord)
-			throws RedPackDetailException {
-		if (giveRecord == null)
-			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
-		RedPackDetail detail = new RedPackDetail();
-		detail.setId(id);
-		detail.setDisplay(true);
-		detail.setType(RedPackDetailTypeEnum.giveOthersSucceed);
-		detail.setTitle(RedPackDetailTypeEnum.giveOthersSucceed.getDesc());
-		detail.setIdentifyCode(
-				StringUtil.Md5(RedPackDetailTypeEnum.giveOthersSucceed.name() + ":" + giveRecord.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 璧犻�佸け璐�
-	 * 
-	 * @param giveRecord
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createGiveOthersFail(RedPackGiveRecord giveRecord) throws RedPackDetailException {
-		if (giveRecord == null)
-			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(giveRecord.getGiveUid());
-		detail.setMoney(giveRecord.getAmount());
-		detail.setType(RedPackDetailTypeEnum.giveOthersFail);
-		detail.setTitle(RedPackDetailTypeEnum.giveOthersFail.getDesc());
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.giveOthersFail.name() + ":" + giveRecord.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 璧犻�佸け璐�
-	 * 
-	 * @param giveRecord
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createGiveOthersReceive(RedPackGiveRecord giveRecord) throws RedPackDetailException {
-		if (giveRecord == null)
-			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(giveRecord.getReceiveUid());
-		detail.setMoney(giveRecord.getAmount());
-		detail.setType(RedPackDetailTypeEnum.giveOthersReceive);
-		detail.setTitle(RedPackDetailTypeEnum.giveOthersReceive.getDesc());
-		detail.setIdentifyCode(
-				StringUtil.Md5(RedPackDetailTypeEnum.giveOthersReceive.name() + ":" + giveRecord.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 鏉挎牀鍟嗗煄浣跨敤
-	 * 
-	 * @param giveRecord
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createUseByShopOrder(Long orderId, Long uid, String title, String setName,
-			BigDecimal money) throws RedPackDetailException {
-		if (orderId == null)
-			throw new RedPackDetailException(1, "璁㈠崟ID涓嶈兘涓虹┖");
-		if (uid == null)
-			throw new RedPackDetailException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(false);
-		detail.setUid(uid);
-		detail.setMoney(new BigDecimal(0).subtract(money));
-		detail.setType(RedPackDetailTypeEnum.useByShopOrder);
-		detail.setTitle(title);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.useByShopOrder.name() + "-" + orderId));
-		detail.setCreateTime(new Date());
-		detail.setDescInfo(setName);
-		return detail;
-	}
-
-	/**
-	 * 鏂颁汉濂栧姳
-	 * 
-	 * @param winInvite
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createNewUserReward(RedPackWinInvite winInvite) throws RedPackDetailException {
-		if (winInvite == null)
-			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
-
-		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(winInvite.getUid());
-		detail.setMoney(winInvite.getMoney());
-		detail.setDescInfo("瀹屾垚棣栫瑪璁㈠崟");
-		detail.setTitle(RedPackDetailTypeEnum.newUserReward.getDesc());
-		detail.setType(RedPackDetailTypeEnum.newUserReward);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.newUserReward.name() + ":" + winInvite.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 绔嬪緱鐜伴噾
-	 * 
-	 * @param winInvite
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createInvite(RedPackWinInvite winInvite) throws RedPackDetailException {
-		if (winInvite == null)
-			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
-
-		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(winInvite.getUid());
-		detail.setMoney(winInvite.getMoney());
-		detail.setDescInfo("鎴愬姛閭�璇峰ソ鍙�");
-		detail.setTitle(RedPackDetailTypeEnum.invite.getDesc());
-		detail.setType(RedPackDetailTypeEnum.invite);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.invite.name() + ":" + winInvite.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 閫掑濂栧姳 + 濂藉弸瀹屾垚鍒嗕韩璁㈠崟
-	 * 
-	 * @param winInvite
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createIncreaseReward(RedPackWinInvite winInvite) throws RedPackDetailException {
-		if (winInvite == null)
-			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
-
-		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(winInvite.getUid());
-		detail.setMoney(winInvite.getMoney());
-		detail.setDescInfo("濂藉弸瀹屾垚璁㈠崟");
-		detail.setTitle(RedPackDetailTypeEnum.increaseReward.getDesc());
-		detail.setType(RedPackDetailTypeEnum.increaseReward);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.increaseReward.name() + ":" + winInvite.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	/**
-	 * 杩炵画濂栧姳 + 濂藉弸瀹屾垚鍒嗕韩璁㈠崟
-	 * 
-	 * @param winInvite
-	 * @return
-	 * @throws RedPackDetailException
-	 */
-	public static RedPackDetail createSeriesReward(RedPackWinInvite winInvite) throws RedPackDetailException {
-		if (winInvite == null)
-			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
-
-		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(true);
-		detail.setUid(winInvite.getUid());
-		detail.setMoney(winInvite.getMoney());
-		detail.setDescInfo("濂藉弸瀹屾垚璁㈠崟");
-		detail.setTitle(RedPackDetailTypeEnum.seriesReward.getDesc());
-		detail.setType(RedPackDetailTypeEnum.seriesReward);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.seriesReward.name() + ":" + winInvite.getId()));
-		detail.setCreateTime(new Date());
-		return detail;
-	}
-
-	public static RedPackDetail createShopOrderDrawBack(Long orderId, Long uid, String title, String setName,
-			BigDecimal money) throws RedPackDetailException {
-		if (orderId == null)
-			throw new RedPackDetailException(1, "璁㈠崟ID涓嶈兘涓虹┖");
-		if (uid == null)
-			throw new RedPackDetailException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
-		RedPackDetail detail = new RedPackDetail();
-		detail.setDisplay(false);
-		detail.setUid(uid);
-		detail.setMoney(money);
-		detail.setType(RedPackDetailTypeEnum.shopOrderDrawBack);
-		detail.setTitle(title);
-		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.shopOrderDrawBack.name() + "-" + orderId));
-		detail.setCreateTime(new Date());
-		detail.setDescInfo(setName);
-		return detail;
-	}
-
-}
+package com.yeshi.fanli.util.factory;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import com.yeshi.fanli.entity.redpack.RedPackDetail;
+import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
+import com.yeshi.fanli.entity.redpack.RedPackExchange;
+import com.yeshi.fanli.entity.redpack.RedPackForbidRecord;
+import com.yeshi.fanli.entity.redpack.RedPackGiveRecord;
+import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
+import com.yeshi.fanli.exception.redpack.RedPackDetailException;
+import com.yeshi.fanli.util.StringUtil;
+
+public class RedPackDetailFactory {
+
+	/**
+	 * 绾㈠寘鎻愮幇
+	 * 
+	 * @param extract
+	 * @return
+	 */
+	public static RedPackDetail createExchange(RedPackExchange exchange) throws RedPackDetailException {
+		if (exchange == null)
+			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(false);
+		detail.setDescInfo("绛夊緟浜哄伐瀹℃牳");
+		detail.setUid(exchange.getUid());
+		detail.setMoney(new BigDecimal("-" + exchange.getMoney()));
+		detail.setType(RedPackDetailTypeEnum.redExchange);
+		detail.setTitle(RedPackDetailTypeEnum.redExchange.getDesc());
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redExchange.name() + ":" + exchange.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 绾㈠寘鎻愮幇閫氳繃
+	 * 
+	 * @param extract
+	 * @return
+	 */
+	public static RedPackDetail updateExchangePass(Long id, RedPackExchange exchange) throws RedPackDetailException {
+		if (id == null)
+			throw new RedPackDetailException(1, "鏄庣粏ID涓嶈兘涓虹┖");
+
+		if (exchange == null)
+			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+
+		RedPackDetail detail = new RedPackDetail();
+		detail.setId(id);
+		detail.setDisplay(true);
+		detail.setDescInfo("璇峰埌璐︽埛浣欓涓煡鐪�");
+		detail.setType(RedPackDetailTypeEnum.redExchangePass);
+		detail.setTitle(RedPackDetailTypeEnum.redExchangePass.getDesc());
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redExchangePass.name() + ":" + exchange.getId()));
+		return detail;
+	}
+
+	/**
+	 * 绾㈠寘鎻愮幇鎷掔粷
+	 * 
+	 * @param extract
+	 * @return
+	 */
+	public static RedPackDetail createExchangeReject(RedPackExchange exchange) throws RedPackDetailException {
+		if (exchange == null)
+			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+
+		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(false);
+		detail.setUid(exchange.getUid());
+		detail.setMoney(exchange.getMoney());
+		detail.setDescInfo("绾㈠寘浜х敓杩囩▼涓秹瀚岃繚瑙�");
+		detail.setTitle(RedPackDetailTypeEnum.redExchangeReject.getDesc());
+		detail.setType(RedPackDetailTypeEnum.redExchangeReject);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redExchangeReject.name() + ":" + exchange.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+	
+	
+	/**
+	 * 绾㈠寘灏佺
+	 * 
+	 * @param extract
+	 * @return
+	 */
+	public static RedPackDetail createForbid(RedPackForbidRecord record) throws RedPackDetailException {
+		if (record == null)
+			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(record.getUid());
+		detail.setDescInfo(record.getReason());
+		detail.setMoney(new BigDecimal("-" + record.getMoney()));
+		detail.setType(RedPackDetailTypeEnum.forbid);
+		detail.setTitle(RedPackDetailTypeEnum.forbid.getDesc());
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.forbid.name() + ":" + record.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	
+	/**
+	 * 绾㈠寘鎵i櫎
+	 * 
+	 * @param extract
+	 * @return
+	 */
+	public static RedPackDetail createDeduct(RedPackForbidRecord record) throws RedPackDetailException {
+		if (record == null)
+			throw new RedPackDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(record.getUid());
+		detail.setDescInfo(record.getReason());
+		detail.setMoney(new BigDecimal("-" + record.getMoney()));
+		detail.setType(RedPackDetailTypeEnum.deduct);
+		detail.setTitle(RedPackDetailTypeEnum.deduct.getDesc());
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.deduct.name() + ":" + record.getUid() + format.format(new Date())));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+	/**
+	 * 璧犻�佸ソ鍙嬫槑缁�
+	 * 
+	 * @param giveRecord
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createGiveOthers(RedPackGiveRecord giveRecord) throws RedPackDetailException {
+		if (giveRecord == null)
+			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(giveRecord.getGiveUid());
+		detail.setMoney(new BigDecimal("-" + giveRecord.getAmount()));
+		detail.setType(RedPackDetailTypeEnum.giveOthers);
+		detail.setTitle(RedPackDetailTypeEnum.giveOthers.getDesc());
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.giveOthers.name() + ":" + giveRecord.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 璧犻�佹垚鍔�
+	 * 
+	 * @param id
+	 * @param giveRecord
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createGiveOthersSucceed(Long id, RedPackGiveRecord giveRecord)
+			throws RedPackDetailException {
+		if (giveRecord == null)
+			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setId(id);
+		detail.setDisplay(true);
+		detail.setRemark("棰嗗彇浜篒D:" + giveRecord.getReceiveUid());
+		detail.setType(RedPackDetailTypeEnum.giveOthersSucceed);
+		detail.setTitle(RedPackDetailTypeEnum.giveOthersSucceed.getDesc());
+		detail.setIdentifyCode(
+				StringUtil.Md5(RedPackDetailTypeEnum.giveOthersSucceed.name() + ":" + giveRecord.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 璧犻�佸け璐�
+	 * 
+	 * @param giveRecord
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createGiveOthersFail(RedPackGiveRecord giveRecord) throws RedPackDetailException {
+		if (giveRecord == null)
+			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(giveRecord.getGiveUid());
+		detail.setMoney(giveRecord.getAmount());
+		detail.setType(RedPackDetailTypeEnum.giveOthersFail);
+		detail.setTitle(RedPackDetailTypeEnum.giveOthersFail.getDesc());
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.giveOthersFail.name() + ":" + giveRecord.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 璧犻�佸け璐�
+	 * 
+	 * @param giveRecord
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createGiveOthersReceive(RedPackGiveRecord giveRecord) throws RedPackDetailException {
+		if (giveRecord == null)
+			throw new RedPackDetailException(1, "璧犻�佽褰曚笉鑳戒负绌�");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(giveRecord.getReceiveUid());
+		detail.setMoney(giveRecord.getAmount());
+		detail.setType(RedPackDetailTypeEnum.giveOthersReceive);
+		detail.setTitle(RedPackDetailTypeEnum.giveOthersReceive.getDesc());
+		detail.setIdentifyCode(
+				StringUtil.Md5(RedPackDetailTypeEnum.giveOthersReceive.name() + ":" + giveRecord.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 鏉挎牀鍟嗗煄浣跨敤
+	 * 
+	 * @param giveRecord
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createUseByShopOrder(Long orderId, Long uid, String title, String setName,
+			BigDecimal money) throws RedPackDetailException {
+		if (orderId == null)
+			throw new RedPackDetailException(1, "璁㈠崟ID涓嶈兘涓虹┖");
+		if (uid == null)
+			throw new RedPackDetailException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(false);
+		detail.setUid(uid);
+		detail.setMoney(new BigDecimal(0).subtract(money));
+		detail.setType(RedPackDetailTypeEnum.useByShopOrder);
+		detail.setTitle(title);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.useByShopOrder.name() + "-" + orderId));
+		detail.setCreateTime(new Date());
+		detail.setDescInfo(setName);
+		return detail;
+	}
+
+	/**
+	 * 鏂颁汉濂栧姳
+	 * 
+	 * @param winInvite
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createNewUserReward(Long uid, Integer num, BigDecimal money) throws RedPackDetailException {
+		if (uid == null || num == null || money == null)
+			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
+		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(uid);
+		detail.setMoney(money);
+		detail.setDescInfo("绛惧埌绾㈠寘");
+		detail.setTitle(RedPackDetailTypeEnum.newUserReward.getDesc());
+		detail.setType(RedPackDetailTypeEnum.newUserReward);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.newUserReward.name() + ":" + uid +"_" + num));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 绔嬪緱鐜伴噾
+	 * 
+	 * @param winInvite
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createInvite(RedPackWinInvite winInvite) throws RedPackDetailException {
+		if (winInvite == null)
+			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
+
+		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(winInvite.getUid());
+		detail.setMoney(winInvite.getMoney());
+		detail.setDescInfo("鎴愬姛閭�璇峰ソ鍙�");
+		detail.setTitle(RedPackDetailTypeEnum.invite.getDesc());
+		detail.setType(RedPackDetailTypeEnum.invite);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.invite.name() + ":" + winInvite.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 閫掑濂栧姳 + 濂藉弸瀹屾垚鍒嗕韩璁㈠崟
+	 * 
+	 * @param winInvite
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createIncreaseReward(RedPackWinInvite winInvite) throws RedPackDetailException {
+		if (winInvite == null)
+			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
+
+		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(winInvite.getUid());
+		detail.setMoney(winInvite.getMoney());
+		detail.setDescInfo("濂藉弸瀹屾垚璁㈠崟");
+		detail.setTitle(RedPackDetailTypeEnum.increaseReward.getDesc());
+		detail.setType(RedPackDetailTypeEnum.increaseReward);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.increaseReward.name() + ":" + winInvite.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	/**
+	 * 杩炵画濂栧姳 + 濂藉弸瀹屾垚鍒嗕韩璁㈠崟
+	 * 
+	 * @param winInvite
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createSeriesReward(RedPackWinInvite winInvite) throws RedPackDetailException {
+		if (winInvite == null)
+			throw new RedPackDetailException(1, "鑾峰緱璁板綍涓嶈兘涓虹┖");
+
+		// 绾㈠寘鏄庣粏- 閫�鍥炵孩鍖�
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(winInvite.getUid());
+		detail.setMoney(winInvite.getMoney());
+		detail.setDescInfo("濂藉弸瀹屾垚璁㈠崟");
+		detail.setTitle(RedPackDetailTypeEnum.seriesReward.getDesc());
+		detail.setType(RedPackDetailTypeEnum.seriesReward);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.seriesReward.name() + ":" + winInvite.getId()));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+
+	public static RedPackDetail createShopOrderDrawBack(Long orderId, Long uid, String title, String setName,
+			BigDecimal money) throws RedPackDetailException {
+		if (orderId == null)
+			throw new RedPackDetailException(1, "璁㈠崟ID涓嶈兘涓虹┖");
+		if (uid == null)
+			throw new RedPackDetailException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(false);
+		detail.setUid(uid);
+		detail.setMoney(money);
+		detail.setType(RedPackDetailTypeEnum.shopOrderDrawBack);
+		detail.setTitle(title);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.shopOrderDrawBack.name() + "-" + orderId));
+		detail.setCreateTime(new Date());
+		detail.setDescInfo(setName);
+		return detail;
+	}
+
+	/**
+	 * 
+	 * @param uid
+	 * @param money
+	 * @param date
+	 * @return
+	 * @throws RedPackDetailException
+	 */
+	public static RedPackDetail createByMonth(Long uid, BigDecimal money, Date date) throws RedPackDetailException {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
+		String time = sdf.format(date);
+		
+		String title = sdf.format(date) + "閭�璇风孩鍖�";
+		RedPackDetail detail = new RedPackDetail();
+		detail.setDisplay(true);
+		detail.setUid(uid);
+		detail.setMoney(money);
+		detail.setTitle(title);
+		detail.setType(RedPackDetailTypeEnum.redMonthly);
+		detail.setIdentifyCode(StringUtil.Md5(RedPackDetailTypeEnum.redMonthly.name() + ":" + time));
+		detail.setCreateTime(new Date());
+		return detail;
+	}
+}

--
Gitblit v1.8.0