From d28bed1a1275131a5ca37f7da37961e2b518ac07 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 26 八月 2019 13:44:00 +0800 Subject: [PATCH] 淘礼金创建异常处理 --- fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java | 148 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 139 insertions(+), 9 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 f55bda5..3ebda64 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 @@ -4,14 +4,15 @@ import java.util.Calendar; import java.util.Date; +import com.yeshi.fanli.dto.HongBao; 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.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; @@ -23,10 +24,12 @@ * @param hongBaoList * @return */ - public static UserMoneyDetail createFanLi(Long uid, String orderId, BigDecimal money) + public static UserMoneyDetail createFanLi(Long uid, String orderId, int orderType, String hbIds, BigDecimal money) throws UserMoneyDetailException { + if (StringUtil.isNullOrEmpty(orderId)) throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂负绌�"); + if (money == null) throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖"); @@ -35,13 +38,15 @@ UserMoneyDetail detail = new UserMoneyDetail(); detail.setCreateTime(new Date()); - detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.fanli.name() + ":" + orderId)); + detail.setIdentifyCode(StringUtil + .Md5(UserMoneyDetailTypeEnum.fanli.name() + "-" + uid + "-" + orderType + "-" + orderId + "-" + hbIds)); detail.setMoney(money); detail.setTitle(UserMoneyDetailTypeEnum.fanli.getDesc()); detail.setType(UserMoneyDetailTypeEnum.fanli); detail.setDescInfo("璁㈠崟鍙凤細" + orderId); detail.setUpdateTime(new Date()); detail.setUserInfo(new UserInfo(uid)); + detail.setOrderType(orderType); return detail; } @@ -57,7 +62,7 @@ * @return * @throws UserMoneyDetailException */ - public static UserMoneyDetail createShare(Long uid, int validCount, int weiQuanCount, int invalidCount, + public static UserMoneyDetail createShare(Long uid,int orderType, int validCount, int weiQuanCount, int invalidCount, BigDecimal money, Date time) throws UserMoneyDetailException { if (money == null) throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖"); @@ -72,7 +77,7 @@ ca.setTime(time); ca.add(Calendar.MONTH, -1); - String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy骞碝M鏈�"); + String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy.M"); UserMoneyDetail detail = new UserMoneyDetail(); detail.setCreateTime(new Date()); @@ -83,6 +88,7 @@ detail.setDescInfo(String.format("鏈夋晥璁㈠崟:%s绗� 缁存潈璁㈠崟:%s绗� 澶辨晥璁㈠崟:%s绗�", validCount, weiQuanCount, invalidCount)); detail.setUpdateTime(new Date()); detail.setUserInfo(new UserInfo(uid)); + detail.setOrderType(orderType); return detail; } @@ -98,7 +104,7 @@ * @return * @throws UserMoneyDetailException */ - public static UserMoneyDetail createInvite(Long uid, int validCount, int weiQuanCount, int invalidCount, + public static UserMoneyDetail createInvite(Long uid,int orderType, int validCount, int weiQuanCount, int invalidCount, BigDecimal money, Date time) throws UserMoneyDetailException { if (money == null) throw new UserMoneyDetailException(1, "杩斿埄閲戦涓虹┖"); @@ -113,7 +119,7 @@ ca.setTime(time); ca.add(Calendar.MONTH, -1); - String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy骞碝M鏈�"); + String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy.M"); UserMoneyDetail detail = new UserMoneyDetail(); detail.setCreateTime(new Date()); @@ -121,9 +127,11 @@ detail.setMoney(money); detail.setTitle(timeF + UserMoneyDetailTypeEnum.invite.getDesc()); detail.setType(UserMoneyDetailTypeEnum.invite); - detail.setDescInfo(String.format("鏈夋晥璁㈠崟:%s绗� 缁存潈璁㈠崟:%s绗� 澶辨晥璁㈠崟:%s绗�", validCount, weiQuanCount, invalidCount)); + 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)); + detail.setOrderType(orderType); return detail; } @@ -163,6 +171,7 @@ detail.setDescInfo("璁㈠崟鍙凤細" + drawBack.getOrderId()); detail.setUpdateTime(new Date()); detail.setUserInfo(new UserInfo(uid)); + detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO); return detail; } @@ -202,6 +211,7 @@ detail.setDescInfo("璁㈠崟鍙凤細" + drawBack.getOrderId()); detail.setUpdateTime(new Date()); detail.setUserInfo(new UserInfo(uid)); + detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO); return detail; } @@ -241,6 +251,7 @@ detail.setDescInfo("璁㈠崟鍙凤細" + drawBack.getOrderId()); detail.setUpdateTime(new Date()); detail.setUserInfo(new UserInfo(uid)); + detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO); return detail; } @@ -323,6 +334,7 @@ detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.extractReject.name() + ":" + extract.getId())); detail.setMoney(extract.getMoney()); detail.setSourceIdentifyId(extract.getId()); + detail.setSubTitle("鍘熻矾閫�鍥�"); detail.setTitle(UserMoneyDetailTypeEnum.extractReject.getDesc()); detail.setType(UserMoneyDetailTypeEnum.extractReject); detail.setUpdateTime(new Date()); @@ -346,12 +358,33 @@ UserMoneyDetail detail = new UserMoneyDetail(); detail.setCreateTime(new Date()); - detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.hongbao.name() + ":" + hb.getId())); + 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; @@ -368,4 +401,101 @@ return createHongBao(hb, "鏂颁汉绾㈠寘"); } + /** + * 鏂颁汉绾㈠寘鎵i櫎 + * + * @param hb + * @return + * @throws UserMoneyDetailException + */ + + public static UserMoneyDetail createNewerHongBaoDeduct(HongBao hb) throws UserMoneyDetailException { + return createHongBaoDeduct(hb, "鏂颁汉绾㈠寘鎵i櫎"); + } + + /** + * 杩斿埄濂栧姳 + * + * @param orderId + * @param money + * @param user + * @return + * @throws UserMoneyDetailException + */ + public static UserMoneyDetail createOrderReward(String orderId,int orderType, BigDecimal money, UserInfo user) + throws UserMoneyDetailException { + if (StringUtil.isNullOrEmpty(orderId)) + throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂笉鑳戒负绌�"); + if (user == 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.hongbao.name() + "-" + "鑰佺増鏈�" + "-" + orderId)); + detail.setMoney(money); + detail.setTitle(UserMoneyDetailTypeEnum.orderReward.getDesc()); + detail.setType(UserMoneyDetailTypeEnum.orderReward); + detail.setUpdateTime(new Date()); + detail.setUserInfo(user); + detail.setOrderType(orderType); + // detail.setDescInfo("璁㈠崟鍙�:" + orderId); + return detail; + } + + /** + * 璁㈠崟閲嶅缁熻閫�娆� + * + * @param orderId + * @param money + * @param user + * @return + * @throws UserMoneyDetailException + */ + public static UserMoneyDetail createRepeatStatistic(String orderId,int orderType, BigDecimal money, UserInfo user) + throws UserMoneyDetailException { + if (StringUtil.isNullOrEmpty(orderId)) + throw new UserMoneyDetailException(1, "璁㈠崟鍙蜂笉鑳戒负绌�"); + if (user == 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.repeatStatistic.name() + "-" + orderId + "-" + user.getId())); + detail.setMoney(money); + detail.setTitle(UserMoneyDetailTypeEnum.repeatStatistic.getDesc()); + detail.setType(UserMoneyDetailTypeEnum.repeatStatistic); + detail.setUpdateTime(new Date()); + detail.setUserInfo(user); + detail.setDescInfo("璁㈠崟鍙�:" + orderId); + detail.setOrderType(orderType); + return detail; + } + + public static UserMoneyDetail createSystemEqualize(String desc, BigDecimal money, UserInfo user) + throws UserMoneyDetailException { + if (user == 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.systemEqualize.name() + "-" + System.currentTimeMillis() + "-" + user.getId())); + detail.setMoney(money); + detail.setTitle(UserMoneyDetailTypeEnum.systemEqualize.getDesc()); + detail.setType(UserMoneyDetailTypeEnum.systemEqualize); + detail.setUpdateTime(new Date()); + detail.setUserInfo(user); + if (!StringUtil.isNullOrEmpty(desc)) { + detail.setDescInfo(desc); + } + return detail; + } + } -- Gitblit v1.8.0