| | |
| | | import com.ks.lijin.service.LiJinProviderAccountService; |
| | | import com.ks.lijin.service.LiJinProviderNoticeService; |
| | | import com.ks.lijin.service.LijinCreateService; |
| | | import com.ks.lijin.util.Constant; |
| | | import com.ks.lijin.utils.taobao.TaoBaoUtil; |
| | | import com.ks.lijin.utils.taobao.TaoKeApiUtil; |
| | | import com.ks.vip.pojo.DO.VipGradePotence; |
| | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | |
| | | @Service(version = "1.0") |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public boolean userCanCreateTBLijin(String uid, BigDecimal money) throws LiJinUserException { |
| | | VipGradePotence potence = vipCenterService.getVipPotence(uid); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public LiJinExpendRecord createTBLijin(String uid, Long goodsId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | |
| | | // 执行创建淘礼金 |
| | | LiJinCreateParam params = getLiJinCreateParam(); |
| | | |
| | | // TODO |
| | | // params.setAppkey(); |
| | | // params.setAppsecret(); |
| | | |
| | | |
| | | TaoLiJinDTO taoLiJinDTO = executeTaoLiJinAPI(uid, goodsId, lijinAmount, params); |
| | | if (taoLiJinDTO == null) { |
| | | throw new LiJinException(1, "淘宝API推广红包创建失败"); |
| | | } |
| | | |
| | | |
| | | // 保存记录 |
| | | LiJinExpendRecord record = new LiJinExpendRecord(); |
| | |
| | | } |
| | | |
| | | |
| | | // 创建淘礼金 |
| | | private TaoLiJinDTO executeTaoLiJinAPI(String uid, Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException { |
| | | String appkey =params.getAppkey(); |
| | | String appsecret = params.getAppsecret(); |
| | | /** |
| | | * 调用账号以及淘宝API |
| | | * @param uid |
| | | * @param goodsId |
| | | * @param lijinAmount |
| | | * @param params |
| | | * @return |
| | | * @throws LiJinGoodsException |
| | | * @throws LiJinException |
| | | */ |
| | | private TaoLiJinDTO executeTaoLiJinAPI(String uid, Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException, LiJinException { |
| | | // 查询供应商账号信息 |
| | | List<LiJinProviderAccount> listAccount = liJinProviderAccountService.listByProviderId(Constant.PROVIDER_DEFAULT_ID); |
| | | if (listAccount == null || listAccount.size() == 0) { |
| | | throw new LiJinException(1, "供应商账号不存在"); |
| | | } |
| | | |
| | | // 创建淘礼金红包 |
| | | TaoLiJinDTO taoLiJinDTO = null; |
| | | // 遍历账号 用可使用账号 |
| | | for (LiJinProviderAccount account : listAccount) { |
| | | params.setAppkey(account.getAppKey()); |
| | | params.setAppsecret(account.getAppSecret()); |
| | | try { |
| | | taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(goodsId, params.getTitle(), lijinAmount, |
| | | params.getNum(), params.getSendStartTime(), params.getSendEndTime(), |
| | | params.getUseStartTime(), params.getUseEndTime(), new TaoKeAppInfo(appkey, appsecret, params.getPid())); |
| | | taoLiJinDTO = executeTaoLiJinAPI(uid, goodsId, lijinAmount, params); |
| | | if (taoLiJinDTO != null) { |
| | | break; |
| | | } |
| | | } catch (LiJinException e) { |
| | | // 通知相应供应商 TODO |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | LiJinProviderAccount account = liJinProviderAccountService.getByAppInfo(appkey, appsecret); |
| | | if (account == null) { |
| | | return; |
| | | } |
| | | LiJinProviderNotice notice = new LiJinProviderNotice(); |
| | | notice.setRead(false); |
| | | notice.setProviderId(account.getProviderId()); |
| | | |
| | | if (e.getCode() == LiJinException.CODE_TLJ_FORBIDDEN) { |
| | | // 该商品不支持创建淘礼金红包 |
| | | } else if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) { |
| | | if (e.getCode() == LiJinException.CODE_TLJ_NO_MONEY) { |
| | | // 官方玩法钱包余额不足 |
| | | notice.setTitle("玩法钱包余额不足"); |
| | | notice.setContent("账号:"+ appkey +"官方玩法钱包余额不足"); |
| | | notice.setContent("账号:" + account.getAccountName() + "官方玩法钱包余额不足"); |
| | | notice.setType(NoticeTypeEnum.noMoney.name()); |
| | | liJinProviderNoticeService.save(notice); |
| | | } else if (e.getCode() == LiJinException.CODE_TLJ_UN_PAID) { |
| | |
| | | } |
| | | }); |
| | | } |
| | | return taoLiJinDTO; |
| | | } |
| | | |
| | | // 创建淘礼金红包 |
| | | return TaoKeApiUtil.createTaoLiJin(goodsId, params.getTitle(), lijinAmount, |
| | | params.getNum(), params.getSendStartTime(), params.getSendEndTime(), |
| | | params.getUseStartTime(), params.getUseEndTime(), new TaoKeAppInfo(params.getAppkey(), params.getAppsecret(), params.getPid())); |
| | | } |
| | | |
| | | private BigDecimal getTBLijinAmount(TaoBaoGoodsBrief goods, VIPEnum vipRank) throws LiJinGoodsException,LiJinAmountException { |
| | | /** |
| | | * 获取商品可创建的礼金金额 |
| | | * @param goods 商品 |
| | | * @param vipRank 会员等级 |
| | | * @return |
| | | * @throws LiJinGoodsException |
| | | * @throws LiJinAmountException |
| | | */ |
| | | private BigDecimal getTBLijinAmount(TaoBaoGoodsBrief goods, VIPEnum vipRank) throws |
| | | LiJinGoodsException, LiJinAmountException { |
| | | //获取商品可创建的淘礼金面额,若不能创建需要抛出相关的异常(1.商品不支持礼金创建) |
| | | BigDecimal money = null; |
| | | |
| | |
| | | |
| | | /** |
| | | * 创建淘礼金基本参数 |
| | | * |
| | | * @return |
| | | */ |
| | | private LiJinCreateParam getLiJinCreateParam() { |