admin
2019-08-26 d28bed1a1275131a5ca37f7da37961e2b518ac07
fanli/src/main/java/com/yeshi/fanli/util/factory/UserMoneyDetailFactory.java
@@ -12,6 +12,7 @@
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,7 +24,7 @@
    * @param hongBaoList
    * @return
    */
   public static UserMoneyDetail createFanLi(Long uid, String orderId, int orderType, Long hbId, BigDecimal money)
   public static UserMoneyDetail createFanLi(Long uid, String orderId, int orderType, String hbIds, BigDecimal money)
         throws UserMoneyDetailException {
      if (StringUtil.isNullOrEmpty(orderId))
@@ -38,13 +39,14 @@
      UserMoneyDetail detail = new UserMoneyDetail();
      detail.setCreateTime(new Date());
      detail.setIdentifyCode(StringUtil
            .Md5(UserMoneyDetailTypeEnum.fanli.name() + "-" + uid + "-" + orderType + "-" + orderId + "-" + hbId));
            .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;
   }
@@ -60,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, "返利金额为空");
@@ -75,7 +77,7 @@
      ca.setTime(time);
      ca.add(Calendar.MONTH, -1);
      String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy年MM月");
      String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy.M");
      UserMoneyDetail detail = new UserMoneyDetail();
      detail.setCreateTime(new Date());
@@ -86,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;
   }
@@ -101,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, "返利金额为空");
@@ -116,7 +119,7 @@
      ca.setTime(time);
      ca.add(Calendar.MONTH, -1);
      String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy年MM月");
      String timeF = TimeUtil.getGernalTime(ca.getTimeInMillis(), "yyyy.M");
      UserMoneyDetail detail = new UserMoneyDetail();
      detail.setCreateTime(new Date());
@@ -128,9 +131,9 @@
         detail.setDescInfo(String.format("有效订单:%s笔   维权订单:%s笔   失效订单:%s笔", validCount, weiQuanCount, invalidCount));
      detail.setUpdateTime(new Date());
      detail.setUserInfo(new UserInfo(uid));
      detail.setOrderType(orderType);
      return detail;
   }
   /**
    * 返利维权
@@ -168,6 +171,7 @@
      detail.setDescInfo("订单号:" + drawBack.getOrderId());
      detail.setUpdateTime(new Date());
      detail.setUserInfo(new UserInfo(uid));
      detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
      return detail;
   }
@@ -207,6 +211,7 @@
      detail.setDescInfo("订单号:" + drawBack.getOrderId());
      detail.setUpdateTime(new Date());
      detail.setUserInfo(new UserInfo(uid));
      detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
      return detail;
   }
@@ -246,6 +251,7 @@
      detail.setDescInfo("订单号:" + drawBack.getOrderId());
      detail.setUpdateTime(new Date());
      detail.setUserInfo(new UserInfo(uid));
      detail.setOrderType(Constant.SOURCE_TYPE_TAOBAO);
      return detail;
   }
@@ -407,8 +413,6 @@
      return createHongBaoDeduct(hb, "新人红包扣除");
   }
   /**
    * 返利奖励
    * 
@@ -418,7 +422,7 @@
    * @return
    * @throws UserMoneyDetailException
    */
   public static UserMoneyDetail createOrderReward(String orderId, BigDecimal money, UserInfo user)
   public static UserMoneyDetail createOrderReward(String orderId,int orderType, BigDecimal money, UserInfo user)
         throws UserMoneyDetailException {
      if (StringUtil.isNullOrEmpty(orderId))
         throw new UserMoneyDetailException(1, "订单号不能为空");
@@ -435,7 +439,62 @@
      detail.setType(UserMoneyDetailTypeEnum.orderReward);
      detail.setUpdateTime(new Date());
      detail.setUserInfo(user);
//      detail.setDescInfo("订单号:" + orderId);
      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;
   }