From 4cb15e222cd7d099d533ccbeb7f9a8cd99bf180c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 十二月 2018 16:35:18 +0800
Subject: [PATCH] 替换原来老的资金详情

---
 fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java |  562 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 561 insertions(+), 1 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java b/fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java
index d2a6d67..d1d763f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java
+++ b/fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java
@@ -1,14 +1,333 @@
 package com.yeshi.fanli.util.factory;
 
 import java.math.BigDecimal;
+import java.util.Calendar;
 import java.util.Date;
 
+import com.yeshi.fanli.entity.bus.user.AccountDetails;
+import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
 import com.yeshi.fanli.entity.bus.user.Extract;
+import com.yeshi.fanli.entity.bus.user.HongBao;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
+import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
+import com.yeshi.fanli.exception.money.UserMoneyDetailException;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
 
 public class UserMoneyDetailFactory {
+
+	/**
+	 * 杩斿埄璧勯噾璁板綍
+	 * 
+	 * @param hongBaoList
+	 * @return
+	 */
+	public static UserMoneyDetail createFanLi(Long uid, String orderId, int orderType,Long hbId, BigDecimal money)
+			throws UserMoneyDetailException {
+
+		if (StringUtil.isNullOrEmpty(orderId))
+			throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂负绌�");
+
+		if (money == null)
+			throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖");
+
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(
+				StringUtil.Md5(UserMoneyDetailTypeEnum.fanli.name() + "-" + uid + "-" + orderType + "-" + orderId+"-"+hbId));
+		detail.setMoney(money);
+		detail.setTitle(UserMoneyDetailTypeEnum.fanli.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.fanli);
+		detail.setDescInfo("璁㈠崟鍙凤細" + orderId);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
+
+	/**
+	 * 鍘熸湁杩斿埄鏁版嵁鍚屾
+	 * 
+	 * @param uid
+	 * @param orderId
+	 * @param orderType
+	 * @param money
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createOldFanLi(Long uid, AccountDetails accountDetails, BigDecimal money)
+			throws UserMoneyDetailException {
+		int orderType = 1;
+		String orderId = null;
+		if (accountDetails.getOrderItem() == null)
+			orderId = accountDetails.getId() + "";
+		else
+			orderId = accountDetails.getId() + "-" + accountDetails.getOrderItem().getOrderId();
+
+		if (money == null)
+			throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖");
+
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(
+				new Date(TimeUtil.convertToTimeTemp(accountDetails.getCreateTime(), "yyyy-MM-dd HH:mm:ss")));
+		detail.setIdentifyCode(
+				StringUtil.Md5(UserMoneyDetailTypeEnum.fanli.name() + "-" + uid + "-" + orderType + "-" + orderId));
+		detail.setMoney(money);
+		detail.setTitle(UserMoneyDetailTypeEnum.fanli.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.fanli);
+		if (accountDetails.getOrderItem() != null)
+			detail.setDescInfo("璁㈠崟鍙凤細" + accountDetails.getOrderItem().getOrderId());
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
+
+	/**
+	 * 鍒嗕韩濂栭噾鍒拌处
+	 * 
+	 * @param uid
+	 * @param validCount
+	 * @param weiQuanCount
+	 * @param invalidCount
+	 * @param money
+	 * @param time
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createShare(Long uid, int validCount, int weiQuanCount, int invalidCount,
+			BigDecimal money, Date time) throws UserMoneyDetailException {
+		if (money == null)
+			throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖");
+
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		if (time == null)
+			throw new UserMoneyDetailException(1, "鍙戠敓鏃堕棿涓虹┖");
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(time);
+		ca.add(Calendar.MONTH, -1);
+
+		String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy骞碝M鏈�");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.share.name() + "-" + uid + "-" + timeF));
+		detail.setMoney(money);
+		detail.setTitle(timeF + UserMoneyDetailTypeEnum.share.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.share);
+		detail.setDescInfo(String.format("鏈夋晥璁㈠崟:%s绗�  缁存潈璁㈠崟:%s绗�  澶辨晥璁㈠崟:%s绗�", validCount, weiQuanCount, invalidCount));
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
+
+	/**
+	 * 閭�璇峰閲戝埌璐�
+	 * 
+	 * @param uid
+	 * @param validCount
+	 * @param weiQuanCount
+	 * @param invalidCount
+	 * @param money
+	 * @param time
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createInvite(Long uid, int validCount, int weiQuanCount, int invalidCount,
+			BigDecimal money, Date time) throws UserMoneyDetailException {
+		if (money == null)
+			throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖");
+
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		if (time == null)
+			throw new UserMoneyDetailException(1, "鍙戠敓鏃堕棿涓虹┖");
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(time);
+		ca.add(Calendar.MONTH, -1);
+
+		String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy骞碝M鏈�");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.invite.name() + "-" + uid + "-" + timeF));
+		detail.setMoney(money);
+		detail.setTitle(timeF + UserMoneyDetailTypeEnum.invite.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.invite);
+		if (validCount != 0 || weiQuanCount != 0 || invalidCount != 0)
+			detail.setDescInfo(String.format("鏈夋晥璁㈠崟:%s绗�   缁存潈璁㈠崟:%s绗�   澶辨晥璁㈠崟:%s绗�", validCount, weiQuanCount, invalidCount));
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
+
+	/**
+	 * 鑰佺増鏈殑鍒嗕韩鍜岄個璇疯禋鍒拌处璁板綍
+	 * 
+	 * @param uid
+	 * @param money
+	 * @param time
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createShareAndInvite(AccountDetails accountDetail) throws UserMoneyDetailException {
+		if (accountDetail.getMoney() == null)
+			throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖");
+
+		if (accountDetail.getUserInfo() == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		if (accountDetail.getCreateTime() == null)
+			throw new UserMoneyDetailException(1, "鍙戠敓鏃堕棿涓虹┖");
+
+		Date time = new Date(TimeUtil.convertToTimeTemp(accountDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(time);
+		ca.add(Calendar.MONTH, -1);
+
+		String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy骞碝M鏈�");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(
+				new Date(TimeUtil.convertToTimeTemp(accountDetail.getCreateTime(), "yyyy-MM-dd HH:mm:ss")));
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.inviteAndShare.name() + "-"
+				+ accountDetail.getUserInfo().getId() + "-" + accountDetail.getId()));
+		detail.setMoney(new BigDecimal(accountDetail.getMoney()));
+		detail.setTitle(timeF + UserMoneyDetailTypeEnum.inviteAndShare.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.inviteAndShare);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(accountDetail.getUserInfo());
+		return detail;
+	}
+
+	/**
+	 * 杩斿埄缁存潈
+	 * 
+	 * @param uid
+	 * @param drawBack
+	 * @param money
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createFanLiWeiQuan(Long uid, TaoBaoWeiQuanDrawBack drawBack, BigDecimal money)
+			throws UserMoneyDetailException {
+		if (drawBack == null)
+			throw new UserMoneyDetailException(1, "閫�娆句负绌�");
+		if (drawBack.getId() == null)
+			throw new UserMoneyDetailException(1, "閫�娆綢D涓虹┖");
+		if (StringUtil.isNullOrEmpty(drawBack.getOrderId()))
+			throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂负绌�");
+		if (StringUtil.isNullOrEmpty(drawBack.getOrderItemId()))
+			throw new UserMoneyDetailException(1, "瀛愯鍗曞彿涓虹┖");
+		if (money == null)
+			throw new UserMoneyDetailException(1, "閫�娆鹃噾棰濅负绌�");
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil
+				.Md5(UserMoneyDetailTypeEnum.fanliWeiQuan.name() + "-" + uid + "-" + drawBack.getOrderItemId()));
+		detail.setMoney(new BigDecimal("0").subtract(money));
+		detail.setTitle(UserMoneyDetailTypeEnum.fanliWeiQuan.getDesc());
+		detail.setSubTitle("璁㈠崟缁存潈");
+		detail.setType(UserMoneyDetailTypeEnum.fanliWeiQuan);
+		detail.setSourceIdentifyId(drawBack.getId());
+		detail.setDescInfo("璁㈠崟鍙凤細" + drawBack.getOrderId());
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
+
+	/**
+	 * 鍒嗕韩璧氱淮鏉�
+	 * 
+	 * @param uid
+	 * @param drawBack
+	 * @param money
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createShareWeiQuan(Long uid, TaoBaoWeiQuanDrawBack drawBack, BigDecimal money)
+			throws UserMoneyDetailException {
+		if (drawBack == null)
+			throw new UserMoneyDetailException(1, "閫�娆句负绌�");
+		if (drawBack.getId() == null)
+			throw new UserMoneyDetailException(1, "閫�娆綢D涓虹┖");
+		if (StringUtil.isNullOrEmpty(drawBack.getOrderId()))
+			throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂负绌�");
+		if (StringUtil.isNullOrEmpty(drawBack.getOrderItemId()))
+			throw new UserMoneyDetailException(1, "瀛愯鍗曞彿涓虹┖");
+		if (money == null)
+			throw new UserMoneyDetailException(1, "閫�娆鹃噾棰濅负绌�");
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil
+				.Md5(UserMoneyDetailTypeEnum.shareWeiQuan.name() + "-" + uid + "-" + drawBack.getOrderItemId()));
+		detail.setMoney(new BigDecimal("0").subtract(money));
+		detail.setTitle(UserMoneyDetailTypeEnum.shareWeiQuan.getDesc());
+		detail.setSubTitle("璁㈠崟缁存潈");
+		detail.setType(UserMoneyDetailTypeEnum.shareWeiQuan);
+		detail.setSourceIdentifyId(drawBack.getId());
+		detail.setDescInfo("璁㈠崟鍙凤細" + drawBack.getOrderId());
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
+
+	/**
+	 * 閭�璇疯禋缁存潈
+	 * 
+	 * @param uid
+	 * @param drawBack
+	 * @param money
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createInviteWeiQuan(Long uid, TaoBaoWeiQuanDrawBack drawBack, BigDecimal money)
+			throws UserMoneyDetailException {
+		if (drawBack == null)
+			throw new UserMoneyDetailException(1, "閫�娆句负绌�");
+		if (drawBack.getId() == null)
+			throw new UserMoneyDetailException(1, "閫�娆綢D涓虹┖");
+		if (StringUtil.isNullOrEmpty(drawBack.getOrderId()))
+			throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂负绌�");
+		if (StringUtil.isNullOrEmpty(drawBack.getOrderItemId()))
+			throw new UserMoneyDetailException(1, "瀛愯鍗曞彿涓虹┖");
+		if (money == null)
+			throw new UserMoneyDetailException(1, "閫�娆鹃噾棰濅负绌�");
+		if (uid == null)
+			throw new UserMoneyDetailException(1, "UID涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil
+				.Md5(UserMoneyDetailTypeEnum.inviteWeiQuan.name() + "-" + uid + "-" + drawBack.getOrderItemId()));
+		detail.setMoney(new BigDecimal("0").subtract(money));
+		detail.setTitle(UserMoneyDetailTypeEnum.inviteWeiQuan.getDesc());
+		detail.setSubTitle("璁㈠崟缁存潈");
+		detail.setType(UserMoneyDetailTypeEnum.inviteWeiQuan);
+		detail.setSourceIdentifyId(drawBack.getId());
+		detail.setDescInfo("璁㈠崟鍙凤細" + drawBack.getOrderId());
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(uid));
+		return detail;
+	}
 
 	/**
 	 * 鎻愮幇璧勯噾璁板綍
@@ -16,7 +335,16 @@
 	 * @param extract
 	 * @return
 	 */
-	public static UserMoneyDetail create(Extract extract) {
+	public static UserMoneyDetail createExtract(Extract extract) throws UserMoneyDetailException {
+		if (extract == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+		if (extract.getId() == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇璁板綍涓婚敭涓嶈兘涓虹┖");
+		if (extract.getMoney() == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇閲戦涓嶈兘涓虹┖");
+		if (extract.getUserInfo() == null || extract.getUserInfo().getId() == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇鐢ㄦ埛涓嶈兘涓虹┖");
+
 		UserMoneyDetail detail = new UserMoneyDetail();
 		detail.setCreateTime(new Date());
 		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.extract.name() + ":" + extract.getId()));
@@ -29,4 +357,236 @@
 		return detail;
 	}
 
+	/**
+	 * 鎻愮幇璐﹀彿楠岃瘉璁板綍
+	 * 
+	 * @param aa
+	 * @param money
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createExtractAccountValid(AlipayAccountValidNormalHistory aa, BigDecimal money)
+			throws UserMoneyDetailException {
+		if (aa == null)
+			throw new UserMoneyDetailException(1, "楠岃瘉璁板綍涓嶈兘涓虹┖");
+		if (aa.getUid() == null)
+			throw new UserMoneyDetailException(1, "UID涓嶈兘涓虹┖");
+		if (money == null)
+			throw new UserMoneyDetailException(1, "閲戦涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.extractVerify.name() + ":" + aa.getId()));
+		detail.setMoney(new BigDecimal("0").subtract(money));
+		detail.setSourceIdentifyId(aa.getId());
+		detail.setTitle(UserMoneyDetailTypeEnum.extractVerify.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.extractVerify);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(new UserInfo(aa.getUid()));
+		return detail;
+	}
+
+	/**
+	 * 鎻愮幇鎷掔粷
+	 * 
+	 * @param extract
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createExtractReject(Extract extract) throws UserMoneyDetailException {
+		if (extract == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇璁板綍涓嶈兘涓虹┖");
+		if (extract.getId() == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇璁板綍涓婚敭涓嶈兘涓虹┖");
+		if (extract.getMoney() == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇閲戦涓嶈兘涓虹┖");
+		if (extract.getUserInfo() == null || extract.getUserInfo().getId() == null)
+			throw new UserMoneyDetailException(1, "鎻愮幇鐢ㄦ埛涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.extractReject.name() + ":" + extract.getId()));
+		detail.setMoney(extract.getMoney());
+		detail.setSourceIdentifyId(extract.getId());
+		detail.setTitle(UserMoneyDetailTypeEnum.extractReject.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.extractReject);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(extract.getUserInfo());
+		return detail;
+	}
+
+	/**
+	 * 绯荤粺绾㈠寘
+	 * 
+	 * @param hb
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+
+	private static UserMoneyDetail createHongBao(HongBao hb, String subTitle) throws UserMoneyDetailException {
+		if (hb == null)
+			throw new UserMoneyDetailException(1, "绾㈠寘涓嶈兘涓虹┖");
+		if (hb.getUserInfo() == null)
+			throw new UserMoneyDetailException(1, "鐢ㄦ埛涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(
+				StringUtil.Md5(UserMoneyDetailTypeEnum.hongbao.name() + "-" + subTitle + "-" + hb.getId()));
+		detail.setMoney(hb.getMoney());
+		detail.setSourceIdentifyId(hb.getId());
+		detail.setTitle(UserMoneyDetailTypeEnum.hongbao.getDesc());
+		detail.setSubTitle(subTitle);
+		detail.setType(UserMoneyDetailTypeEnum.hongbao);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(hb.getUserInfo());
+		return detail;
+	}
+
+	private static UserMoneyDetail createHongBaoDeduct(HongBao hb, String subTitle) throws UserMoneyDetailException {
+		if (hb == null)
+			throw new UserMoneyDetailException(1, "绾㈠寘涓嶈兘涓虹┖");
+		if (hb.getUserInfo() == null)
+			throw new UserMoneyDetailException(1, "鐢ㄦ埛涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.hongbaoDeduct.name() + "-" + subTitle + "-"
+				+ hb.getBeizhu() + "-" + hb.getId()));
+		detail.setMoney(hb.getMoney());
+		detail.setSourceIdentifyId(hb.getId());
+		detail.setTitle(UserMoneyDetailTypeEnum.hongbaoDeduct.getDesc());
+		detail.setSubTitle(subTitle);
+		detail.setType(UserMoneyDetailTypeEnum.hongbaoDeduct);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(hb.getUserInfo());
+		return detail;
+	}
+
+	/**
+	 * 鏂颁汉绾㈠寘
+	 * 
+	 * @param hb
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createNewerHongBao(HongBao hb) throws UserMoneyDetailException {
+		return createHongBao(hb, "鏂颁汉绾㈠寘");
+	}
+
+	/**
+	 * 鏂颁汉绾㈠寘鎵i櫎
+	 * 
+	 * @param hb
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+
+	public static UserMoneyDetail createNewerHongBaoDeduct(HongBao hb) throws UserMoneyDetailException {
+		return createHongBaoDeduct(hb, "鏂颁汉绾㈠寘鎵i櫎");
+	}
+
+	/**
+	 * 鑰佺増鏈殑鏂颁汉绾㈠寘閫�娆�
+	 * 
+	 * @param hb
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createOldNewerHongBaoDeduct(AccountDetails accountDetails)
+			throws UserMoneyDetailException {
+		HongBao hb = new HongBao();
+		hb.setId(accountDetails.getId());
+		hb.setBeizhu("鑰佺増鏈�");
+		hb.setMoney(new BigDecimal(accountDetails.getMoney()));
+		hb.setUserInfo(accountDetails.getUserInfo());
+		UserMoneyDetail userMoneyDetail = createHongBaoDeduct(hb, "鏂颁汉绾㈠寘鎵i櫎");
+		userMoneyDetail.setId(accountDetails.getId());
+		return userMoneyDetail;
+	}
+
+	/**
+	 * 鑰佺増鏈敭鍚庤鍗曟墸娆�
+	 * 
+	 * @param accountDetails
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createOldWeiQuan(AccountDetails accountDetails) throws UserMoneyDetailException {
+		if (accountDetails == null)
+			throw new UserMoneyDetailException(1, "璇︽儏涓嶈兘涓虹┖");
+		if (accountDetails.getUserInfo() == null)
+			throw new UserMoneyDetailException(1, "鐢ㄦ埛涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.weiQuan.name() + "-" + accountDetails.getId()));
+		detail.setMoney(new BigDecimal(accountDetails.getMoney()));
+		detail.setTitle(UserMoneyDetailTypeEnum.weiQuan.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.weiQuan);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(accountDetails.getUserInfo());
+		detail.setId(accountDetails.getId());
+		return detail;
+	}
+
+	/**
+	 * 鏂颁汉绾㈠寘
+	 * 
+	 * @param accountDetails
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+
+	public static UserMoneyDetail createOldNewerHongBao(AccountDetails accountDetails) throws UserMoneyDetailException {
+
+		if (accountDetails == null)
+			throw new UserMoneyDetailException(1, "璇︽儏涓嶈兘涓虹┖");
+		if (accountDetails.getUserInfo() == null)
+			throw new UserMoneyDetailException(1, "鐢ㄦ埛涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil
+				.Md5(UserMoneyDetailTypeEnum.hongbao.name() + "-" + "鑰佺増鏈柊浜虹孩鍖�" + "-" + accountDetails.getId()));
+		detail.setMoney(new BigDecimal(accountDetails.getMoney()));
+		detail.setTitle(UserMoneyDetailTypeEnum.hongbao.getDesc());
+		detail.setSubTitle("鏂颁汉绾㈠寘");
+		detail.setType(UserMoneyDetailTypeEnum.hongbao);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(accountDetails.getUserInfo());
+		detail.setId(accountDetails.getId());
+		return detail;
+	}
+
+	/**
+	 * 鑰佺増鏈彁鐜拌处鍙烽獙璇�
+	 * 
+	 * @param accountDetails
+	 * @return
+	 * @throws UserMoneyDetailException
+	 */
+	public static UserMoneyDetail createOldExtractAccountValid(AccountDetails accountDetails)
+			throws UserMoneyDetailException {
+
+		if (accountDetails == null)
+			throw new UserMoneyDetailException(1, "楠岃瘉璁板綍涓嶈兘涓虹┖");
+		if (accountDetails.getUserInfo() == null)
+			throw new UserMoneyDetailException(1, "UID涓嶈兘涓虹┖");
+		if (accountDetails.getMoney() == null)
+			throw new UserMoneyDetailException(1, "閲戦涓嶈兘涓虹┖");
+
+		UserMoneyDetail detail = new UserMoneyDetail();
+		detail.setCreateTime(new Date());
+		detail.setIdentifyCode(StringUtil
+				.Md5(UserMoneyDetailTypeEnum.extractVerify.name() + "-" + "鑰佺増鏈�" + "-" + accountDetails.getId()));
+		detail.setMoney(new BigDecimal(accountDetails.getMoney()));
+		detail.setTitle(UserMoneyDetailTypeEnum.extractVerify.getDesc());
+		detail.setType(UserMoneyDetailTypeEnum.extractVerify);
+		detail.setUpdateTime(new Date());
+		detail.setUserInfo(accountDetails.getUserInfo());
+		detail.setId(accountDetails.getId());
+		return detail;
+	}
+
 }

--
Gitblit v1.8.0