facade-lijin/src/main/java/com/ks/lijin/pojo/DTO/MoneyInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
facade-lijin/src/main/java/com/ks/lijin/service/LijinCreateService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
facade-lijin/src/main/java/com/ks/lijin/pojo/DTO/MoneyInfo.java
New file @@ -0,0 +1,58 @@ package com.ks.lijin.pojo.DTO; import java.io.Serializable; import java.math.BigDecimal; public class MoneyInfo implements Serializable { //商品信息 private String goodsId; private int goodsType; //返利面额 private BigDecimal fanliAmount; //礼金面额 private BigDecimal lijinAmount; //首单礼金 private BigDecimal firstOrderAmount; public String getGoodsId() { return goodsId; } public void setGoodsId(String goodsId) { this.goodsId = goodsId; } public int getGoodsType() { return goodsType; } public void setGoodsType(int goodsType) { this.goodsType = goodsType; } public BigDecimal getFanliAmount() { return fanliAmount; } public void setFanliAmount(BigDecimal fanliAmount) { this.fanliAmount = fanliAmount; } public BigDecimal getLijinAmount() { return lijinAmount; } public void setLijinAmount(BigDecimal lijinAmount) { this.lijinAmount = lijinAmount; } public BigDecimal getFirstOrderAmount() { return firstOrderAmount; } public void setFirstOrderAmount(BigDecimal firstOrderAmount) { this.firstOrderAmount = firstOrderAmount; } } facade-lijin/src/main/java/com/ks/lijin/service/LijinCreateService.java
@@ -6,14 +6,26 @@ import com.ks.lijin.exception.LiJinUserException; import com.ks.lijin.pojo.DO.LiJinExpendRecord; import com.ks.lijin.pojo.DTO.LiJinCreateParam; import com.ks.lijin.pojo.DTO.MoneyInfo; import com.ks.vip.pojo.Enums.VIPEnum; import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; import java.math.BigDecimal; import java.util.List; /** * 礼金创建服务 */ public interface LijinCreateService { /** * 获取商品的资金信息 * @param uid * @param goodsBriefList * @return */ public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList); /** * 获取商品可创建的淘礼金面额,若不能创建需要抛出相关的异常(1.商品不支持礼金创建 2.当前用户不可创建) @@ -24,6 +36,7 @@ */ public BigDecimal getTBLijinAmount(Long actionId, String uid) throws LiJinGoodsException, LiJinUserException, LiJinAmountException; /** * 获取商品可创建的淘礼金面额,若不能创建需要抛出相关的异常(1.商品不支持礼金创建) @@ -65,7 +78,7 @@ * @throws LiJinUserException * @throws LiJinAmountException */ public LiJinExpendRecord createTBLijin(String uid,Long auctionId) public LiJinExpendRecord createTBLijin(String uid, Long auctionId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException; service-lijin/src/main/java/com/ks/lijin/service/remote/LijinCreateServiceImpl.java
@@ -6,6 +6,7 @@ import com.ks.lijin.pojo.DO.LiJinProviderAccount; import com.ks.lijin.pojo.DO.LiJinProviderNotice; import com.ks.lijin.pojo.DTO.LiJinCreateParam; import com.ks.lijin.pojo.DTO.MoneyInfo; import com.ks.lijin.pojo.DTO.taobao.TaoKeAppInfo; import com.ks.lijin.pojo.DTO.taobao.TaoLiJinDTO; import com.ks.lijin.pojo.Enums.NoticeTypeEnum; @@ -20,17 +21,21 @@ import com.ks.vip.pojo.Enums.VIPEnum; import com.ks.vip.service.VipCenterService; import com.ks.vip.service.VipGradePotenceService; import com.ks.vip.service.VipGradeService; import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; import org.apache.dubbo.config.annotation.Reference; import org.apache.dubbo.config.annotation.Service; import org.springframework.core.task.TaskExecutor; import org.springframework.transaction.annotation.Transactional; import org.yeshi.utils.MoneyBigDecimalUtil; import org.yeshi.utils.StringUtil; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -56,9 +61,47 @@ @Reference(version = "1.0") private VipGradePotenceService vipGradePotenceService; @Reference(version = "1.0") private VipGradeService vipGradeService; @Resource private LiJinExpendRecordService liJinExpendRecordService; @Override public List<MoneyInfo> getMoneyInfo(String uid, List<TaoBaoGoodsBrief> goodsBriefList) { VIPEnum vipRank = null; if (!StringUtil.isNullOrEmpty(uid)) { vipRank = vipCenterService.getVIPEnumByUid(uid); } if (vipRank == null) { vipRank = vipGradeService.getDefaultGrade().getIdentity(); } VipGradePotence potence = vipGradePotenceService.getPotenceByVipEnum(vipRank); List<MoneyInfo> list = new ArrayList<>(); for (TaoBaoGoodsBrief goods : goodsBriefList) { MoneyInfo moneyInfo = new MoneyInfo(); moneyInfo.setGoodsId(goods.getAuctionId() + ""); moneyInfo.setGoodsType(1); try { moneyInfo.setLijinAmount(getTBLijinAmount(goods, vipRank)); } catch (LiJinGoodsException e) { e.printStackTrace(); } catch (LiJinAmountException e) { e.printStackTrace(); } //计算返利比例 BigDecimal rebateRate = potence.getRebatePercent(); BigDecimal couponPrice = TaoBaoUtil.getAfterUseCouplePrice(goods); BigDecimal fanliMoney = couponPrice.multiply(rebateRate).divide(new BigDecimal(100), 2, RoundingMode.FLOOR); moneyInfo.setFanliAmount(fanliMoney); moneyInfo.setFirstOrderAmount(null); list.add(moneyInfo); } //获取 return list; } @Override public BigDecimal getTBLijinAmount(Long actionId, String uid) throws LiJinGoodsException, LiJinUserException, LiJinAmountException { @@ -241,6 +284,7 @@ /** * 调用账号以及淘宝API * * @param uid * @param goodsId * @param lijinAmount @@ -274,7 +318,7 @@ LiJinProviderNotice notice = new LiJinProviderNotice(); notice.setRead(false); notice.setProviderId(account.getProviderId()); if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) { if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) { // 官方玩法钱包余额不足 notice.setTitle("玩法钱包余额不足"); notice.setContent("账号:" + account.getAccountName() + "官方玩法钱包余额不足"); @@ -296,8 +340,9 @@ /** * 获取商品可创建的礼金金额 * @param goods 商品 * @param vipRank 会员等级 * * @param goods 商品 * @param vipRank 会员等级 * @return * @throws LiJinGoodsException * @throws LiJinAmountException service-vip/src/main/java/com/ks/vip/service/remote/VipCenterServiceImpl.java
@@ -147,7 +147,7 @@ public VipGrade getVipGrade(String uid) { VipGrade vipGrade = null; VipCenter vipCenter = vipCenterMapper.getByUid(uid); if (vipCenter != null || vipCenter.getGradeId() != null) { if (vipCenter != null && vipCenter.getGradeId() != null) { long nowTime = java.lang.System.currentTimeMillis(); if (vipCenter.getStartTime().getTime() <= nowTime && vipCenter.getEndTime().getTime() >= nowTime) { vipGrade = vipGradeService.selectByPrimaryKey(vipCenter.getGradeId());