admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/util/factory/HongBaoFactory.java
@@ -1,76 +1,80 @@
package com.yeshi.fanli.util.factory;
import java.math.BigDecimal;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.dto.HongBao;
import com.yeshi.fanli.dto.HongBaoDTO;
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.util.Constant;
@Component
public class HongBaoFactory {
   @Resource
   private HongBaoManageService hongBaoManageService;
   private static HongBaoFactory hongBaoFactory;
   @PostConstruct
   public void init(){
   public void init() {
      hongBaoFactory = this;
      hongBaoFactory.hongBaoManageService = this.hongBaoManageService;
   }
   /**
    * 
    * @param money 金额
    * @param orderId 系统的订单ID
    * @param parent
    * @param userInfo
    * @param money
    *            金额
    * @param orderId
    *            系统的订单ID
    * @param parent
    * @param userInfo
    * @return
    */
   public static HongBao createHongBao(BigDecimal money,Long orderId,HongBao parent,UserInfo userInfo,int type) {
      return createHongBao(money, null,orderId, parent, userInfo, null, type,null,null);
   public static HongBao createHongBao(BigDecimal money, Long orderId, HongBao parent, UserInfo userInfo, int type) {
      return createHongBao(money, null, orderId, parent, userInfo, null, type, null, null);
   }
   public static HongBao createHongBao(BigDecimal money,String param,Long orderId,HongBao parent,UserInfo userInfo,int type) {
      return createHongBao(money, param,orderId, parent, userInfo, null, type,null,null);
   public static HongBao createHongBao(BigDecimal money, String param, Long orderId, HongBao parent, UserInfo userInfo,
         int type) {
      return createHongBao(money, param, orderId, parent, userInfo, null, type, null, null);
   }
   public static HongBao createHongBao(BigDecimal money,String param,Long orderId,HongBao parent,UserInfo userInfo,int type,BigDecimal payMoney,Long auctionId) {
      return createHongBao(money, param,orderId, parent, userInfo, null, type,payMoney,auctionId);
   public static HongBao createHongBao(BigDecimal money, String param, Long orderId, HongBao parent, UserInfo userInfo,
         int type, BigDecimal payMoney, Long auctionId) {
      return createHongBao(money, param, orderId, parent, userInfo, null, type, payMoney, auctionId);
   }
   public static HongBao createHongBao(BigDecimal money,String param,Long orderId,HongBao parent,UserInfo userInfo,Long preGettime,int type,BigDecimal payMoney,Long auctionId) {
   public static HongBao createHongBao(BigDecimal money, String param, Long orderId, HongBao parent, UserInfo userInfo,
         Long preGettime, int type, BigDecimal payMoney, Long auctionId) {
      HongBao hongBao = new HongBao();
      long timeMillis = System.currentTimeMillis();
      hongBao.setCreatetime(timeMillis);
      hongBao.setMoney(money);
      hongBao.setState(Constant.HB_NOTIME);
      if(param==null){
         param="{\"picture\":\"\"}";
      if (param == null) {
         param = "{\"picture\":\"\"}";
      }
      hongBao.setParam(param);
      if(orderId != null){
      if (orderId != null) {
         Order order = new Order();
         order.setId(orderId);
         hongBao.setOrder(order);
      }
      hongBao.setParent(parent);
//      if(preGettime==null){
//         preGettime = preGettime(timeMillis,type);
//      }
//      if(timeMillis >= preGettime){
//         hongBao.setState(Constant.HB_GET);
//      }
      // if(preGettime==null){
      // preGettime = preGettime(timeMillis,type);
      // }
      // if(timeMillis >= preGettime){
      // hongBao.setState(Constant.HB_GET);
      // }
      hongBao.setPreGettime(0L);
      hongBao.setUrank(userInfo.getRank());
      hongBao.setUserInfo(userInfo);
@@ -82,27 +86,23 @@
      hongBao.setHasChild(false);
      return hongBao;
   }
   /**
    * 获取红包可打开时间
    * @param timeMillis
    * @param type 红包类型
    * @return
    */
   private static long preGettime(long timeMillis,int type){
      Map<String, String> map = hongBaoFactory.hongBaoManageService.convertMap();
      String day = null;
      String hour = null;
      if(type != Constant.HB_NEWUSER){
         day = map.get("hongbao_goods_unlock_day");
         hour = map.get("hongbao_goods_unlock_hour");
      }else{
         day = map.get("hongbao_new_user_unlock_day");
         hour = map.get("hongbao_new_user_unlock_hour");
      }
      long dayms =(long) (Double.parseDouble(day) * Constant.DAYMS);
      long hourms =(long)(Double.parseDouble(hour) * Constant.HOURMS);
      return timeMillis+dayms+hourms;
   public static HongBao createHongBao(HongBaoDTO hongBaoDTO) {
      HongBao hongBao = new HongBao();
      hongBao.setId(hongBaoDTO.getId());
      hongBao.setOrderId(hongBaoDTO.getOrderId());
      if (hongBaoDTO.getSettlement() != null&&hongBaoDTO.getSettlement().compareTo(new BigDecimal(0))>0)
         hongBao.setPayMoney(hongBaoDTO.getSettlement());
      else
         hongBao.setPayMoney(hongBaoDTO.getPayMoney());
      hongBao.setCreatetime(hongBaoDTO.getCreateTime().getTime());
      hongBao.setMoney(hongBaoDTO.getMoney());
      hongBao.setState(hongBaoDTO.getState());
      hongBao.setType(hongBaoDTO.getType());
      hongBao.setUserInfo(hongBaoDTO.getUserInfo());
      return hongBao;
   }
}