| | |
| | | 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.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, 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() + ":" + orderId));
|
| | | 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 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年MM月");
|
| | |
|
| | | 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年MM月");
|
| | |
|
| | | 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);
|
| | | detail.setDescInfo(String.format("有效订单:%s笔 维权订单:%s笔 失效订单:%s笔", validCount, weiQuanCount, invalidCount));
|
| | | detail.setUpdateTime(new Date());
|
| | | detail.setUserInfo(new UserInfo(uid));
|
| | | 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, "退款ID为空");
|
| | | 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, "退款ID为空");
|
| | | 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, "退款ID为空");
|
| | | 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;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 提现资金记录
|
| | | * |
| | | * @param extract
|
| | | * @return
|
| | | */
|
| | | 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()));
|
| | | detail.setMoney(new BigDecimal("0").subtract(extract.getMoney()));
|
| | | detail.setSourceIdentifyId(extract.getId());
|
| | | detail.setTitle(UserMoneyDetailTypeEnum.extract.getDesc());
|
| | | detail.setType(UserMoneyDetailTypeEnum.extract);
|
| | | detail.setUpdateTime(new Date());
|
| | | detail.setUserInfo(extract.getUserInfo());
|
| | | 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() + ":" + 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;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 新人红包
|
| | | * |
| | | * @param hb
|
| | | * @return
|
| | | * @throws UserMoneyDetailException
|
| | | */
|
| | | public static UserMoneyDetail createNewerHongBao(HongBao hb) throws UserMoneyDetailException {
|
| | | return createHongBao(hb, "新人红包");
|
| | | }
|
| | |
|
| | | }
|
| | | package com.yeshi.fanli.util.factory; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | | 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.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 org.yeshi.utils.TimeUtil; |
| | | import com.yeshi.fanli.util.account.UserUtil; |
| | | |
| | | public class UserMoneyDetailFactory { |
| | | |
| | | /** |
| | | * 返利资金记录 |
| | | * |
| | | * @param hongBaoList |
| | | * @return |
| | | */ |
| | | 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, "返利金额为空"); |
| | | |
| | | 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 + "-" + hbIds)); |
| | | detail.setMoney(money); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.fanliNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.fanliNew); |
| | | detail.setDescInfo(Constant.getSourceName(orderType) + ":" + orderId); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(orderType); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 饿了么返利 |
| | | * |
| | | * @param uid |
| | | * @param orderId |
| | | * @param hbId |
| | | * @param money |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | public static UserMoneyDetail createElmeFanLi(Long uid, String orderId, 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.elmeFanli.name() + "-" + hbId)); |
| | | detail.setMoney(money); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.elmeFanli.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.elmeFanli); |
| | | detail.setDescInfo("订单号:" + orderId); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(Constant.SOURCE_TYPE_ELME); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 分享奖金到账 |
| | | * |
| | | * @param uid |
| | | * @param money |
| | | * @param month 月份 |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | public static UserMoneyDetail createShare(Long uid, int orderType, BigDecimal money, Date recieveMonth) |
| | | throws UserMoneyDetailException { |
| | | if (money == null) |
| | | throw new UserMoneyDetailException(1, "返利金额为空"); |
| | | |
| | | if (uid == null) |
| | | throw new UserMoneyDetailException(1, "UID为空"); |
| | | |
| | | if (recieveMonth == null) |
| | | throw new UserMoneyDetailException(1, "发生时间为空"); |
| | | |
| | | Calendar ca = Calendar.getInstance(); |
| | | ca.setTime(recieveMonth); |
| | | 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() + "-" + orderType + "-" + uid + "-" + TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy年M月d日"))); |
| | | |
| | | detail.setIdentifyCode( |
| | | StringUtil.Md5(UserMoneyDetailTypeEnum.share.name() + "-" + orderType + "-" + uid + "-" + timeF)); |
| | | detail.setMoney(money); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.shareNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.shareNew); |
| | | detail.setDescInfo(Constant.getSourceName(orderType) + ":" + timeF); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(orderType); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 邀请奖金到账 |
| | | * |
| | | * @param uid |
| | | * @param validCount |
| | | * @param weiQuanCount |
| | | * @param invalidCount |
| | | * @param money |
| | | * @param time |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | public static UserMoneyDetail createInvite(Long uid, int orderType, int validCount, int weiQuanCount, |
| | | 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() + "-" + orderType + "-" + uid + "-" + timeF)); |
| | | detail.setMoney(money); |
| | | detail.setTitle(timeF + UserMoneyDetailTypeEnum.invite.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.invite); |
| | | if (validCount != 0 || weiQuanCount != 0) |
| | | detail.setDescInfo(String.format("有效订单:%s笔 维权订单:%s笔", validCount, weiQuanCount)); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(orderType); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 返利维权 |
| | | * |
| | | * @param uid |
| | | * @param drawBack |
| | | * @param money |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | public static UserMoneyDetail createFanLiWeiQuan(Long uid, TaoBaoWeiQuanDrawBack drawBack, BigDecimal money) |
| | | throws UserMoneyDetailException { |
| | | return createFanLiWeiQuan(uid, drawBack.getOrderId(), Arrays.asList(new TaoBaoWeiQuanDrawBack[]{drawBack}), money); |
| | | } |
| | | |
| | | |
| | | public static UserMoneyDetail createFanLiWeiQuan(Long uid, String orderId, List<TaoBaoWeiQuanDrawBack> drawBackList, BigDecimal money) |
| | | throws UserMoneyDetailException { |
| | | if (drawBackList == null || drawBackList.size() == 0) |
| | | throw new UserMoneyDetailException(1, "退款为空"); |
| | | for (TaoBaoWeiQuanDrawBack drawBack : drawBackList) { |
| | | if (drawBack.getId() == null) |
| | | throw new UserMoneyDetailException(1, "退款ID为空"); |
| | | 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为空"); |
| | | |
| | | Comparator<TaoBaoWeiQuanDrawBack> cm = (o1, o2) -> |
| | | o1.getId() - o2.getId() > 0 ? 1 : -1; |
| | | List<TaoBaoWeiQuanDrawBack> tempList = new ArrayList<>(); |
| | | tempList.addAll(drawBackList); |
| | | |
| | | List<String> orderItemIdList = new ArrayList<>(); |
| | | for (TaoBaoWeiQuanDrawBack drawBack : tempList) { |
| | | orderItemIdList.add(drawBack.getOrderItemId()); |
| | | } |
| | | |
| | | |
| | | UserMoneyDetail detail = new UserMoneyDetail(); |
| | | detail.setCreateTime(new Date()); |
| | | detail.setIdentifyCode(StringUtil |
| | | .Md5(UserMoneyDetailTypeEnum.fanliWeiQuan.name() + "-" + uid + "-" + StringUtil.concat(orderItemIdList, "#"))); |
| | | detail.setMoney(new BigDecimal("0").subtract(money)); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.fanliWeiQuanNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.fanliWeiQuanNew); |
| | | //暂时只能写入第一个的id |
| | | detail.setSourceIdentifyId(tempList.get(0).getId()); |
| | | detail.setDescInfo( |
| | | Constant.getSourceName(Constant.SOURCE_TYPE_TAOBAO) + ":" + orderId + "-部分商品售后"); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO); |
| | | 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, "退款ID为空"); |
| | | 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)); |
| | | detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO); |
| | | 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, "退款ID为空"); |
| | | 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("订单号:" + UserUtil.filterOrderId(drawBack.getOrderId())); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 提现资金记录 |
| | | * |
| | | * @param extract |
| | | * @return |
| | | */ |
| | | public static UserMoneyDetail createExtract(Extract extract, String alipayNo) 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, "提现用户不能为空"); |
| | | |
| | | if (alipayNo != null && alipayNo.length() > 10) |
| | | alipayNo = "*" + alipayNo.substring(alipayNo.length() - 10, alipayNo.length()); |
| | | |
| | | UserMoneyDetail detail = new UserMoneyDetail(); |
| | | detail.setCreateTime(new Date()); |
| | | detail.setIdentifyCode(StringUtil.Md5(UserMoneyDetailTypeEnum.extract.name() + ":" + extract.getId())); |
| | | detail.setMoney(new BigDecimal("0").subtract(extract.getMoney())); |
| | | detail.setSourceIdentifyId(extract.getId()); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.extractNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.extractNew); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setDescInfo("支付宝订单号:" + alipayNo); |
| | | detail.setUserInfo(extract.getUserInfo()); |
| | | detail.setShow(false); |
| | | 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.extractVerifyNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.extractVerifyNew); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(aa.getUid())); |
| | | detail.setDescInfo(String.format("支付宝:%s -姓名-%s", UserUtil.filterAlipayAccount(aa.getAccount()), |
| | | UserUtil.filterAlipayName(aa.getName()))); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 系统扣除 |
| | | * |
| | | * @param uid |
| | | * @param money |
| | | * @param desc |
| | | * @return |
| | | * @throws UserMoneyDetailException UserMoneyDetail 返回类型 |
| | | * @throws |
| | | * @Title: createSystemTakeOff |
| | | * @Description: |
| | | */ |
| | | public static UserMoneyDetail createSystemTakeOff(Long uid, BigDecimal money, String desc) |
| | | throws UserMoneyDetailException { |
| | | if (uid == 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(uid + "-" + UserMoneyDetailTypeEnum.systemTakeOff.name() + System.currentTimeMillis())); |
| | | detail.setMoney(new BigDecimal("0").subtract(money)); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.systemTakeOff.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.systemTakeOff); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setDescInfo(desc); |
| | | 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.setSubTitle("原路退回"); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.extractReject.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.extractReject); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(extract.getUserInfo()); |
| | | detail.setShow(false);// 隐藏提现失败记录 |
| | | 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, "新人红包"); |
| | | } |
| | | |
| | | /** |
| | | * 新人红包扣除 |
| | | * |
| | | * @param hb |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | |
| | | public static UserMoneyDetail createNewerHongBaoDeduct(HongBao hb) throws UserMoneyDetailException { |
| | | return createHongBaoDeduct(hb, "新人红包扣除"); |
| | | } |
| | | |
| | | /** |
| | | * 返利奖励 |
| | | * |
| | | * @param orderId |
| | | * @param money |
| | | * @param user |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | public static UserMoneyDetail createOrderReward(String orderId, int orderType, BigDecimal money, |
| | | BigDecimal originalMoney, 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.orderRewardNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.orderRewardNew); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(user); |
| | | detail.setOrderType(orderType); |
| | | detail.setDescInfo(Constant.getSourceName(orderType) + ":" + orderId + "-原返利:" + originalMoney); |
| | | 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.systemEqualizeNew.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.systemEqualizeNew); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(user); |
| | | if (!StringUtil.isNullOrEmpty(desc)) { |
| | | detail.setDescInfo(desc); |
| | | } |
| | | return detail; |
| | | } |
| | | |
| | | public static UserMoneyDetail createScoreConvert(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.scoreConvert.name() + "-" + System.currentTimeMillis() + "-" + user.getId())); |
| | | detail.setMoney(money); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.scoreConvert.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.scoreConvert); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(user); |
| | | |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 邀请奖金到账 |
| | | * |
| | | * @param uid |
| | | * @param money |
| | | * @param time |
| | | * @return |
| | | * @throws UserMoneyDetailException |
| | | */ |
| | | public static UserMoneyDetail createInviteSubsidy(Long uid, int orderType, 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.subsidy.name() + "-" + orderType + "-" + uid + "-" + timeF)); |
| | | detail.setMoney(money); |
| | | detail.setTitle( |
| | | timeF + UserMoneyDetailTypeEnum.subsidy.getDesc() + "【" + Constant.getSourceName(orderType) + "】"); |
| | | detail.setType(UserMoneyDetailTypeEnum.subsidy); |
| | | detail.setDescInfo("邀请订单补贴"); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | detail.setOrderType(orderType); |
| | | return detail; |
| | | } |
| | | |
| | | /** |
| | | * 团队收益 |
| | | * |
| | | * @param uid |
| | | * @param money |
| | | * @param time |
| | | * @return |
| | | * @throws UserMoneyDetailException UserMoneyDetail 返回类型 |
| | | * @throws |
| | | * @Title: createTeamReward |
| | | * @Description: |
| | | */ |
| | | |
| | | public static UserMoneyDetail createTeamReward(Long uid, 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.teamReward.name() + "-" + uid + "-" + timeF)); |
| | | detail.setMoney(money); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.teamReward.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.teamReward); |
| | | detail.setDescInfo(timeF); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | return detail; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 团队分红 |
| | | * |
| | | * @param uid |
| | | * @param money |
| | | * @param time |
| | | * @return |
| | | * @throws UserMoneyDetailException UserMoneyDetail 返回类型 |
| | | * @throws |
| | | * @Title: createTeamDividents |
| | | * @Description: |
| | | */ |
| | | public static UserMoneyDetail createTeamDividents(Long uid, 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.teamDividents.name() + "-" + uid + "-" + timeF)); |
| | | detail.setMoney(money); |
| | | detail.setTitle(UserMoneyDetailTypeEnum.teamDividents.getDesc()); |
| | | detail.setType(UserMoneyDetailTypeEnum.teamDividents); |
| | | detail.setDescInfo(timeF); |
| | | detail.setUpdateTime(new Date()); |
| | | detail.setUserInfo(new UserInfo(uid)); |
| | | return detail; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | |
| | | } |
| | | |
| | | } |