| | |
| | | <dependency> |
| | | <groupId>com.ks</groupId> |
| | | <artifactId>facade-goods</artifactId> |
| | | <version>0.0.1</version> |
| | | <version>0.0.2</version> |
| | | </dependency> |
| | | |
| | | |
| | |
| | | private String is_lx; |
| | | private String item_category_name; |
| | | @Indexed |
| | | private long item_id; |
| | | private String item_id; |
| | | private String item_img; |
| | | private String item_link; |
| | | private int item_num; |
| | |
| | | this.item_category_name = item_category_name; |
| | | } |
| | | |
| | | public long getItem_id() { |
| | | public String getItem_id() { |
| | | return item_id; |
| | | } |
| | | |
| | | public void setItem_id(long item_id) { |
| | | public void setItem_id(String item_id) { |
| | | this.item_id = item_id; |
| | | } |
| | | |
| | |
| | | * @param pageSize |
| | | * @return |
| | | */ |
| | | public List<LiJinProviderLink> getValidLijinLink(Long auctionId, int page, int pageSize); |
| | | public List<LiJinProviderLink> getValidLijinLink(String auctionId, int page, int pageSize); |
| | | |
| | | } |
| | |
| | | * @param uid 用户ID |
| | | * @return 礼金创建的面额 |
| | | */ |
| | | public BigDecimal getTBLijinAmount(Long actionId, String uid) |
| | | public BigDecimal getTBLijinAmount(String actionId, String uid) |
| | | throws LiJinGoodsException, LiJinUserException, LiJinAmountException; |
| | | |
| | | |
| | |
| | | * @return 礼金创建的面额 |
| | | * @throws LiJinGoodsException |
| | | */ |
| | | public BigDecimal getTBLijinAmount(Long actionId, VIPEnum vipRank) throws LiJinGoodsException, LiJinAmountException; |
| | | public BigDecimal getTBLijinAmount(String actionId, VIPEnum vipRank) throws LiJinGoodsException, LiJinAmountException; |
| | | |
| | | |
| | | /** |
| | |
| | | * @throws LiJinUserException |
| | | * @throws LiJinAmountException |
| | | */ |
| | | public LiJinExpendRecord createTBLijin(String uid, Long auctionId) |
| | | public LiJinExpendRecord createTBLijin(String uid, String auctionId) |
| | | throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException; |
| | | |
| | | /** |
| | |
| | | * @throws LiJinUserException |
| | | * @throws LiJinAmountException |
| | | */ |
| | | public LiJinExpendRecord createTBLijin(String uid, Date registerDate, Long auctionId) |
| | | public LiJinExpendRecord createTBLijin(String uid, Date registerDate, String auctionId) |
| | | throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException; |
| | | |
| | | |
| | |
| | | import java.util.regex.Pattern; |
| | | |
| | | |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.stereotype.Component; |
| | | import org.yeshi.utils.*; |
| | | |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * @return boolean |
| | | * @author hxh |
| | | * @description 判断淘宝商品ID是否相等 |
| | | * @date 14:55 2022/8/24 |
| | | * @param: auctionId1 |
| | | * @param: auctionId2 |
| | | **/ |
| | | public static boolean isEqual(String auctionId1, String auctionId2) { |
| | | if (auctionId1 == null || auctionId2 == null) { |
| | | return false; |
| | | } |
| | | |
| | | if (auctionId1.indexOf("-") > 0 && auctionId2.indexOf("-") > 0) { |
| | | return auctionId1.split("-")[1].equals(auctionId2.split("-")[1]); |
| | | } |
| | | return auctionId1.equals(auctionId2); |
| | | } |
| | | |
| | | /** |
| | | * @return java.lang.String |
| | | * @author hxh |
| | | * @description 获取商品ID的后半段 |
| | | * @date 15:20 2022/8/24 |
| | | * @param: auctionId |
| | | **/ |
| | | public static String getAuctionId(String auctionId) { |
| | | if (auctionId == null) |
| | | return auctionId; |
| | | if (auctionId.indexOf("-") > 0) { |
| | | return auctionId.split("-")[1]; |
| | | } else { |
| | | return auctionId; |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * @author hxh |
| | | * @description 获取mongodb商品ID相同的条件 |
| | | * @date 16:05 2022/8/24 |
| | | * @param: key |
| | | * @param: auctionId |
| | | * @return org.springframework.data.mongodb.core.query.Criteria |
| | | **/ |
| | | public static Criteria getAuctionIdEqualCriteria(String key, String auctionId) { |
| | | if (!isNewAuctionId(auctionId)) { |
| | | return Criteria.where(key).is(auctionId); |
| | | } else { |
| | | return Criteria.where(key).regex("*-" + getAuctionId(auctionId)); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @return boolean |
| | | * @author hxh |
| | | * @description 是否为新的商品ID |
| | | * @date 15:39 2022/8/24 |
| | | * @param: auctionId |
| | | **/ |
| | | public static boolean isNewAuctionId(String auctionId) { |
| | | if (auctionId != null && auctionId.indexOf("-") > 0) |
| | | return true; |
| | | return false; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | private static Map<String, Integer> invalidMap = new HashMap<>(); |
| | | |
| | | // 淘礼金创建 |
| | | public static TaoLiJinDTO createTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum, |
| | | public static TaoLiJinDTO createTaoLiJin(String auctionId, String name, BigDecimal perface, int totalNum, |
| | | Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, TaoKeAppInfo app) |
| | | throws LiJinAccountException, LiJinAmountException, LiJinException, LiJinGoodsException { |
| | | Map<String, String> map = new HashMap<>(); |
| | |
| | | |
| | | |
| | | // 裂淘礼金创建 |
| | | public static TaoLiJinDTO createLieBianTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum, |
| | | public static TaoLiJinDTO createLieBianTaoLiJin(String auctionId, String name, BigDecimal perface, int totalNum, |
| | | Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime, TaoKeAppInfo app) |
| | | throws LiJinAccountException, LiJinAmountException, LiJinException, LiJinGoodsException { |
| | | Map<String, String> map = new HashMap<>(); |
| | |
| | | } |
| | | |
| | | |
| | | public static TaoBaoGoodsBrief searchGoodsDetail(Long id) throws TaoBaoGoodsDownException { |
| | | public static TaoBaoGoodsBrief searchGoodsDetail(String id) throws TaoBaoGoodsDownException { |
| | | return searchGoodsDetail(id, null, null); |
| | | } |
| | | |
| | |
| | | * @return |
| | | * @throws |
| | | */ |
| | | public static TaoBaoGoodsBrief searchGoodsDetail(Long id, String specialId, String relationId) throws TaoBaoGoodsDownException { |
| | | public static TaoBaoGoodsBrief searchGoodsDetail(String id, String specialId, String relationId) throws TaoBaoGoodsDownException { |
| | | TaoBaoGoodsBrief goods = getSimpleGoodsInfo(id); |
| | | if (goods == null) |
| | | return null; |
| | |
| | | if (result != null && result.getTaoBaoGoodsBriefs() != null) |
| | | for (TaoBaoGoodsBrief g : result.getTaoBaoGoodsBriefs()) { |
| | | System.out.println(goods.getAuctionId() + ":" + g.getAuctionId()); |
| | | if (goods.getAuctionId().longValue() == g.getAuctionId()) { |
| | | g.setId(goods.getAuctionId()); |
| | | if (TaoBaoUtil.isEqual(goods.getAuctionId(), g.getAuctionId())) { |
| | | //g.setId(goods.getAuctionId()); |
| | | g.setCreatetime(new Date()); |
| | | g.setMaterialLibType(goods.getMaterialLibType()); |
| | | g.setProvcity(goods.getProvcity()); |
| | |
| | | * @param id -商品AuctionId |
| | | * @return |
| | | */ |
| | | public static TaoBaoGoodsBrief getSimpleGoodsInfo(Long id) throws TaoBaoGoodsDownException { |
| | | public static TaoBaoGoodsBrief getSimpleGoodsInfo(String id) throws TaoBaoGoodsDownException { |
| | | Map<String, String> map = new HashMap<>(); |
| | | map.put("method", "taobao.tbk.item.info.get"); |
| | | map.put("num_iids", id + ""); |
| | |
| | | |
| | | private static TaoBaoGoodsBrief parseSimpleGoodsInfo(JSONObject item) { |
| | | TaoBaoGoodsBrief goods = new TaoBaoGoodsBrief(); |
| | | goods.setAuctionId(item.optLong("num_iid")); |
| | | goods.setAuctionId(item.optString("num_iid")); |
| | | goods.setAuctionUrl(item.optString("item_url")); |
| | | goods.setBiz30day(item.optInt("volume")); |
| | | if (item.optJSONObject("small_images") != null) { |
| | |
| | | goods.setPictUrlWhite(item.optString("white_image")); |
| | | } |
| | | |
| | | goods.setAuctionId(item.optLong("num_iid")); |
| | | goods.setAuctionId(item.optString("num_iid")); |
| | | goods.setAuctionUrl("https:" + item.optString("url")); |
| | | goods.setBiz30day(item.optInt("volume")); |
| | | goods.setCouponInfo(item.optString("coupon_info")); |
| | |
| | | Date useEndTime = sendEndTime; |
| | | |
| | | try { |
| | | createLieBianTaoLiJin(auctionId, name, perface, totalNum, |
| | | createLieBianTaoLiJin(auctionId+"", name, perface, totalNum, |
| | | sendStartTime, sendEndTime, useStartTime, useEndTime, app); |
| | | } catch (LiJinAccountException e) { |
| | | e.printStackTrace(); |
| | |
| | | * @param money |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void createLijinSuccess(Long accountId, Long auctionId, BigDecimal money, Date createTime) { |
| | | public void createLijinSuccess(Long accountId, String auctionId, BigDecimal money, Date createTime) { |
| | | String day = TimeUtil.getGernalTime(createTime.getTime(), "yyyyMMdd"); |
| | | String goodsKey = String.format("lijingoodsnum-%s-%s", day, accountId); |
| | | String accountMoneyKey = String.format("lijinaccountmoney-%s-%s", day, accountId); |
| | |
| | | * @param accountId |
| | | */ |
| | | public void initTodayData(Long accountId) { |
| | | createLijinSuccess(accountId, 1L, new BigDecimal(0), new Date()); |
| | | createLijinSuccess(accountId, 1L+"", new BigDecimal(0), new Date()); |
| | | } |
| | | |
| | | |
| | |
| | | * @param auctionId |
| | | * @param date |
| | | */ |
| | | public void createdFullToday(Long auctionId, Date date) { |
| | | public void createdFullToday(String auctionId, Date date) { |
| | | int expireTime = (int) ((TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd") - date.getTime()) / 1000); |
| | | String day = TimeUtil.getGernalTime(date.getTime(), "yyyyMMdd"); |
| | | String key = String.format("lijingoodslimit-%s-%s", day, auctionId); |
| | |
| | | * @param auctionId |
| | | * @return |
| | | */ |
| | | public boolean todayCanCreate(Long auctionId) { |
| | | public boolean todayCanCreate(String auctionId) { |
| | | String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd"); |
| | | String key = String.format("lijingoodslimit-%s-%s", day, auctionId); |
| | | logger.info("key值为:" + key); |
| | |
| | | @Service(version = "1.0") |
| | | public class LiJinLinkServiceImpl implements LiJinLinkService { |
| | | @Override |
| | | public List<LiJinProviderLink> getValidLijinLink(Long auctionId, int page, int pageSize) { |
| | | public List<LiJinProviderLink> getValidLijinLink(String auctionId, int page, int pageSize) { |
| | | return new ArrayList<>(); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public BigDecimal getTBLijinAmount(Long actionId, String uid) throws LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | | public BigDecimal getTBLijinAmount(String actionId, String uid) throws LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | | |
| | | if (!lijinGoodsManager.todayCanCreate(actionId)) { |
| | | throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_CREATED_FULL, "今日礼金创建次数已达上限"); |
| | |
| | | |
| | | |
| | | @Override |
| | | public BigDecimal getTBLijinAmount(Long actionId, VIPEnum vipRank) throws LiJinGoodsException, LiJinAmountException { |
| | | public BigDecimal getTBLijinAmount(String actionId, VIPEnum vipRank) throws LiJinGoodsException, LiJinAmountException { |
| | | if (!lijinGoodsManager.todayCanCreate(actionId)) { |
| | | throw new LiJinGoodsException(LiJinGoodsException.CODE_GOODS_CREATED_FULL, "今日礼金创建次数已达上限"); |
| | | } |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public LiJinExpendRecord createTBLijin(String uid, Long goodsId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | | public LiJinExpendRecord createTBLijin(String uid, String goodsId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | | return createTBLijin(uid, null, goodsId); |
| | | } |
| | | |
| | | @Override |
| | | public LiJinExpendRecord createTBLijin(String uid, Date registerDate, Long auctionId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | | public LiJinExpendRecord createTBLijin(String uid, Date registerDate, String auctionId) throws LiJinException, LiJinGoodsException, LiJinUserException, LiJinAmountException { |
| | | |
| | | //用户是否有创建权限 |
| | | userCanCreateTBLijin(uid, registerDate); |
| | |
| | | * @param num |
| | | * @param taoLiJinDTO |
| | | */ |
| | | private LiJinExpendRecord addCreateSuccessRecord(String uid, Long goodsId, BigDecimal lijinAmount, String title, int num, TaoLijinCreateResultDTO taoLiJinDTO) { |
| | | private LiJinExpendRecord addCreateSuccessRecord(String uid, String goodsId, BigDecimal lijinAmount, String title, int num, TaoLijinCreateResultDTO taoLiJinDTO) { |
| | | Date now = new Date(); |
| | | // 保存记录 |
| | | LiJinExpendRecord record = new LiJinExpendRecord(); |
| | |
| | | * @throws LiJinGoodsException |
| | | * @throws LiJinException |
| | | */ |
| | | private TaoLijinCreateResultDTO executeTaoLiJin(Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException, LiJinException, LiJinAmountException { |
| | | private TaoLijinCreateResultDTO executeTaoLiJin(String goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinGoodsException, LiJinException, LiJinAmountException { |
| | | // 查询供应商账号信息 |
| | | List<LiJinProviderTaoKeAccount> listAccount = liJinProviderAccountService.listValidByProviderId(Constant.PROVIDER_DEFAULT_ID, LiJinProviderTaoKeAccount.ERROR_CODE_NORMAL); |
| | | if (listAccount == null || listAccount.size() == 0) { |
| | |
| | | } |
| | | |
| | | |
| | | private TaoLiJinDTO executeTaoLiJinAPI(Long goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinException, LiJinGoodsException, LiJinAccountException, LiJinAmountException { |
| | | private TaoLiJinDTO executeTaoLiJinAPI(String goodsId, BigDecimal lijinAmount, LiJinCreateParam params) throws LiJinException, LiJinGoodsException, LiJinAccountException, LiJinAmountException { |
| | | 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())); |
| | |
| | | |
| | | @Test |
| | | public void redis() { |
| | | Long auctionId = 600889742753L; |
| | | String auctionId = 600889742753L+""; |
| | | String day = TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd"); |
| | | String key = String.format("lijingoodslimit-%s-%s", day, auctionId); |
| | | Boolean hasKey = redisTemplate.hasKey(key); |