package com.yeshi.fanli.util.factory; import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; import com.yeshi.fanli.entity.bus.user.AccountDetails; import com.yeshi.fanli.entity.bus.user.Extract; import com.yeshi.fanli.entity.bus.user.HongBao; import com.yeshi.fanli.entity.bus.user.OrderItem; 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.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.TimeUtil; public class AccountDetailsFactory { private static final Map map = new HashMap(); /** * 提现 */ public static final int TIXIAN = 1; /** * 返利 */ public static final int FANLI = 2; /** * 分销提成 */ public static final int TICHENG = 3; /** * 退款 */ public static final int TUIKUAN = 4; /** * 新人红包 */ public static final int XINREN = 5; /** * 回款(提现失败时) */ public static final int HUIKUAN = 6; /** * 其他 */ public static final int QITA = 7; /** * 商品分销 */ public static final int SHARE_GOODS = 8; // 商品分销维权 public static final int SHARE_GOODS_DRAWBACK = 9; /** * */ public static final int VALID_ALIPAY_ACCOUNT = 10; public static final int XINREN_DEDUCT = 11; static { map.put(TIXIAN, "提现"); map.put(FANLI, "订单返利"); map.put(TICHENG, "奖金收入"); map.put(TUIKUAN, "售后订单扣款"); map.put(XINREN, "新人红包"); map.put(HUIKUAN, "提现被拒"); map.put(QITA, "其他"); map.put(SHARE_GOODS, "提成收入"); map.put(SHARE_GOODS_DRAWBACK, "售后订单扣款"); map.put(VALID_ALIPAY_ACCOUNT, "支付宝账号验证打款"); map.put(XINREN_DEDUCT, "新人红包扣除"); } public static AccountDetails create(String money, int type, OrderItem orderItem, Extract extract, UserInfo userInfo) { AccountDetails ad = new AccountDetails(); ad.setCreateTime(TimeUtil.getWholeTime(System.currentTimeMillis())); ad.setExtract(extract); ad.setMoney(money); ad.setType(type); ad.setOrderItem(orderItem); ad.setUserInfo(userInfo); String title = map.get(type); ad.setTitle(title); return ad; } public static AccountDetails create(HongBao hb, OrderItem orderItem) { int type = hb.getType(); if (type == Constant.TAOBAO) { return create("+" + hb.getMoney(), FANLI, orderItem, null, hb.getUserInfo()); } else if (type == Constant.ONESALE || type == Constant.TAOBAO) { return create("+" + hb.getMoney(), TICHENG, null, null, hb.getUserInfo()); } else if (type == Constant.HB_NEWUSER) { return create("+" + hb.getMoney(), XINREN, null, null, hb.getUserInfo()); } return null; } public static AccountDetails create(UserMoneyDetail userMoneyDetail) { AccountDetails accountDetails = new AccountDetails(userMoneyDetail.getId()); accountDetails.setCreateTime( TimeUtil.getGernalTime(userMoneyDetail.getCreateTime().getTime(), "yyyy-MM-dd HH:mm:ss")); if (userMoneyDetail.getMoney().compareTo(new BigDecimal("0")) >= 0) accountDetails.setMoney("+" + MoneyBigDecimalUtil.getWithNoZera(userMoneyDetail.getMoney())); else accountDetails.setMoney( MoneyBigDecimalUtil.getWithNoZera(userMoneyDetail.getMoney()) + ""); accountDetails.setState(userMoneyDetail.getState()); String typeName = userMoneyDetail.getType().name(); if (UserMoneyDetailTypeEnum.extract.name().equalsIgnoreCase(typeName)) accountDetails.setType(TIXIAN); else if (UserMoneyDetailTypeEnum.extractReject.name().equalsIgnoreCase(typeName)) accountDetails.setType(HUIKUAN); else if (UserMoneyDetailTypeEnum.extractVerify.name().equalsIgnoreCase(typeName)) accountDetails.setType(VALID_ALIPAY_ACCOUNT); else if (UserMoneyDetailTypeEnum.fanli.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.FANLI); else if (UserMoneyDetailTypeEnum.fanliWeiQuan.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.TUIKUAN); else if (UserMoneyDetailTypeEnum.hongbao.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.XINREN); else if (UserMoneyDetailTypeEnum.hongbaoDeduct.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.XINREN_DEDUCT); else if (UserMoneyDetailTypeEnum.invite.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.SHARE_GOODS); else if (UserMoneyDetailTypeEnum.inviteAndShare.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.SHARE_GOODS); else if (UserMoneyDetailTypeEnum.inviteWeiQuan.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.TUIKUAN); else if (UserMoneyDetailTypeEnum.share.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.SHARE_GOODS); else if (UserMoneyDetailTypeEnum.shareWeiQuan.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.TUIKUAN); else if (UserMoneyDetailTypeEnum.weiQuan.name().equalsIgnoreCase(typeName)) accountDetails.setType(AccountDetailsFactory.TUIKUAN); else accountDetails.setType(AccountDetailsFactory.QITA); accountDetails.setTitle(map.get(accountDetails.getType())); accountDetails.setUserInfo(userMoneyDetail.getUserInfo()); return accountDetails; } }