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.entity.bus.user.Order;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
|
import com.yeshi.fanli.util.Constant;
|
|
@Component
|
public class HongBaoFactory {
|
|
|
@Resource
|
private HongBaoManageService hongBaoManageService;
|
|
private static HongBaoFactory hongBaoFactory;
|
|
@PostConstruct
|
public void init(){
|
hongBaoFactory = this;
|
hongBaoFactory.hongBaoManageService = this.hongBaoManageService;
|
}
|
|
/**
|
*
|
* @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,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,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\":\"\"}";
|
}
|
hongBao.setParam(param);
|
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);
|
// }
|
hongBao.setPreGettime(0L);
|
hongBao.setUrank(userInfo.getRank());
|
hongBao.setUserInfo(userInfo);
|
hongBao.setType(type);
|
hongBao.setAuctionId(auctionId);
|
hongBao.setPayMoney(payMoney);
|
hongBao.setVersion(2);
|
hongBao.setGetTime(0L);
|
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;
|
}
|
|
}
|