fanli/src/main/java/com/yeshi/fanli/dao/taobao/ShareHotGoodsDao.java
@@ -22,4 +22,19 @@ return mongoTemplate.find(query, ShareHotGoods.class); } public void deleteByGoodsId(Long goodsId) { Query query = new Query(); Criteria ca = Criteria.where("goods.auctionId").is(goodsId); query.addCriteria(ca); List<ShareHotGoods> list = mongoTemplate.find(query, ShareHotGoods.class); if (list == null || list.size() == 0) { return; } for (ShareHotGoods shareHotGoods: list) { mongoTemplate.remove(shareHotGoods); } } } fanli/src/main/java/com/yeshi/fanli/exception/taobao/TaoKeApiException.java
@@ -17,6 +17,12 @@ public static final int CODE_API_ERROR = 3; // 其他错误 public static final int CODE_OTHER = 4; // 商品支持创建红包 public static final int CODE_TLJ_FORBIDDEN = 101; // 官方账户余额不足 public static final int CODE_TLJ_NO_MONEY = 102; private int code; private String msg; fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/ShareHotGoodsServiceImpl.java
@@ -43,7 +43,7 @@ @Override public void deleteById(String id) { shareHotGoodsDao.delete(id); } } @Override public List<TaoBaoGoodsBrief> listPreGoods() { @@ -54,5 +54,10 @@ goodsList.add(TaoBaoUtil.convert(v2)); } return goodsList; } } @Override public void deleteByGoodsId(Long goodsId) { shareHotGoodsDao.deleteByGoodsId(goodsId); } } fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinRecordServiceImpl.java
@@ -24,11 +24,13 @@ import com.yeshi.fanli.entity.bus.user.UserMoneyExtra; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService; import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService; import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService; import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService; import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService; @@ -93,6 +95,9 @@ @Resource private TaoBaoBuyRelationMapService taoBaoBuyRelationMapService; @Resource private ShareHotGoodsService shareHotGoodsService; @Override public UserTaoLiJinRecord selectByPrimaryKey(Long id) { return userTaoLiJinRecordMapper.selectByPrimaryKey(id); @@ -232,22 +237,39 @@ if (origin == 1) { BigDecimal tljSelf = userMoneyExtra.getTljSelf(); if (tljSelf == null || tljSelf.compareTo(totalMoney) < 0) { throw new UserTaoLiJinRecordException(101, "红包余额不足"); throw new UserTaoLiJinRecordException(101, "自购红包余额不足"); } } // 分享时的红包余额 BigDecimal tlj = userMoneyExtra.getTlj(); if (tlj == null || tlj.compareTo(totalMoney) < 0) { throw new UserTaoLiJinRecordException(101, "红包余额不足"); throw new UserTaoLiJinRecordException(101, "分享红包余额不足"); } // 创建淘礼金红包 TaoLiJinDTO taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, pid); TaoLiJinDTO taoLiJinDTO = null; try { taoLiJinDTO = TaoKeApiUtil.createTaoLiJin(auctionId, name, perface, totalNum, sendStartTime, sendEndTime, useStartTime, useEndTime, pid); } catch (TaoKeApiException e) { LogHelper.errorDetailInfo(e); executor.execute(new Runnable() { @Override public void run() { if (e.getCode() == TaoKeApiException.CODE_TLJ_FORBIDDEN) { // 该商品不支持创建淘礼金红包 shareHotGoodsService.deleteByGoodsId(auctionId); } else if (e.getCode() == TaoKeApiException.CODE_TLJ_NO_MONEY) { // 官方玩法钱包余额不足 TODO } } }); } if (taoLiJinDTO == null) { throw new UserTaoLiJinRecordException(101, "红包创建失败"); throw new UserTaoLiJinRecordException(101, "淘宝API推广红包创建失败"); } // 保存记录 fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/ShareHotGoodsService.java
@@ -36,4 +36,11 @@ */ public List<TaoBaoGoodsBrief> listPreGoods(); /** * 根据商品id删除 * * @param goodsId */ public void deleteByGoodsId(Long goodsId); } fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -1948,7 +1948,7 @@ // 淘礼金创建 public static TaoLiJinDTO createTaoLiJin(Long auctionId, String name, BigDecimal perface, int totalNum, Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime,String pid) { Date sendStartTime, Date sendEndTime, Date useStartTime, Date useEndTime,String pid) throws TaoKeApiException{ Map<String, String> map = new HashMap<>(); map.put("method", "taobao.tbk.dg.vegas.tlj.create"); map.put("adzone_id", pid.split("_")[3]); @@ -1981,6 +1981,7 @@ System.out.println(json); JSONObject root = json.optJSONObject("tbk_dg_vegas_tlj_create_response"); if (root != null && root.optJSONObject("result") != null) { if (root.optJSONObject("result").optBoolean("success")) { JSONObject modelJson = root.optJSONObject("result").optJSONObject("model"); TaoLiJinDTO dto = new TaoLiJinDTO(); @@ -1988,7 +1989,22 @@ dto.setSendUrl(modelJson.optString("send_url")); return dto; } // 接口返回异常 String msgCode = root.optJSONObject("result").optString("msg_code"); if (!StringUtil.isNullOrEmpty(msgCode)) { switch(msgCode){ case "FAIL_BIZ_ITEM_FORBIDDEN": throw new TaoKeApiException(TaoKeApiException.CODE_TLJ_FORBIDDEN, "该商品不支持创建淘礼金红包"); case "2": throw new TaoKeApiException(TaoKeApiException.CODE_TLJ_NO_MONEY, "官方玩法钱包余额不足"); default: return null; } } } } catch (TaoKeApiException e) { throw e; } catch (Exception e) { LogHelper.errorDetailInfo(e); } fanli/src/main/resource/env-dev/mongo.properties
@@ -1,14 +1,17 @@ mongo.dbname=flq mongo.port=27017 mongo.port=27016 #开发环境 mongo.host=192.168.1.253 mongo.username=admin mongo.password=123456 #mongo.host=192.168.1.253 #mongo.username=admin #mongo.password=123456 mongo.host=193.112.35.168 mongo.username=yeshi mongo.password=Yeshi2016@ mongo.connectionsPerHost=8 mongo.threadsAllowedToBlockForConnectionMultiplier=4 mongo.connectTimeout=1000 mongo.connectTimeout=10000 mongo.maxWaitTime=1500 mongo.autoConnectRetry=true mongo.socketKeepAlive=true fanli/src/test/java/org/fanli/DeviceTokenTest.java
@@ -5,8 +5,9 @@ import com.yeshi.fanli.dao.mybatis.push.DeviceTokenIOSMapper; import com.yeshi.fanli.entity.push.DeviceTokenIOS; import com.yeshi.fanli.service.inter.push.DeviceTokenHWService; @Ignore //@Ignore public class DeviceTokenTest { @Test @@ -16,4 +17,14 @@ System.out.println(ios); } @Test public void test2() { DeviceTokenHWService deviceTokenHWService = com.yeshi.fanli.util.BeanUtil.getBean(DeviceTokenHWService.class); // deviceTokenHWService.addDeviceToken("05566411asdasdasdadas--0000000000000000000000000-", "test------------", // 437032L); // deviceTokenHWService.unBindDeviceToken("test------------"); deviceTokenHWService.bindUid("test------------", 437032L); } } fanli/src/test/java/org/fanli/MyBatisProduce.java
@@ -1,27 +1,26 @@ package org.fanli; import org.junit.Ignore; import org.junit.Test; import org.yeshi.utils.mybatis.ColumnParseUtil; import org.yeshi.utils.mybatis.MyBatisMapperUtil; import com.yeshi.fanli.entity.bus.user.ExtractAuditRecord; import com.yeshi.fanli.entity.goods.recommend.RecommendGoodsDeleteHistory; import com.yeshi.fanli.entity.order.CommonOrderTradeIdMap; import com.yeshi.fanli.entity.jd.JDOrderItem; import com.yeshi.fanli.entity.push.DeviceTokenHW; //@Ignore public class MyBatisProduce { @Test public void test3() { MyBatisMapperUtil.createMapper(RecommendGoodsDeleteHistory.class); // MyBatisMapperUtil.createMapper(JDOrder.class); MyBatisMapperUtil.createMapper(JDOrderItem.class); // MyBatisMapperUtil.createMapper(UserMoneyDebtReturnHistory.class); } @Test public void test1() { ColumnParseUtil.parseColumn(ExtractAuditRecord.class, "D:\\workspace\\fanli\\fanli-server\\fanli\\src\\main\\java\\com\\yeshi\\fanli\\mapping\\ExtractAuditRecordMapper.xml"); ColumnParseUtil.parseColumn(DeviceTokenHW.class, "D:\\workspace\\fanli\\fanli-server\\fanli\\src\\main\\java\\com\\yeshi\\fanli\\mapping\\push\\DeviceTokenHWMapper.xml"); } } fanli/src/test/java/org/fanli/TaoKeTest.java
@@ -1,3 +1,4 @@ package org.fanli; import java.io.File; @@ -5,12 +6,10 @@ import java.io.FileNotFoundException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Ignore; import org.junit.Test; import org.yeshi.utils.HttpUtil; @@ -22,18 +21,16 @@ import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoLink; import com.yeshi.fanli.entity.taobao.TaoBaoOrder; import com.yeshi.fanli.entity.taobao.TaoKeAppInfo; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.job.UpdateRelationAndSpecialOrderJob; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.taobao.TaoBaoBuyRelationMapService; import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsActivityService; import com.yeshi.fanli.service.inter.taobao.TaoBaoOrderService; import com.yeshi.fanli.service.inter.user.TBPidService; import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.BeanUtil; import com.yeshi.fanli.util.SpringContext; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; @@ -49,24 +46,21 @@ @Test public void test1() { UpdateRelationAndSpecialOrderJob updateRelationAndSpecialOrderJob= BeanUtil.getBean(UpdateRelationAndSpecialOrderJob.class); SpringContext.initCOS(); updateRelationAndSpecialOrderJob.doJob2(); try { TaoBaoGoodsBrief goods = TaoKeApiUtil.getSimpleGoodsInfo(575733104503L); System.out.println(goods); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } } @Test public void test2() { TaoKeAppInfo app = new TaoKeAppInfo(); app.setAdzoneId("44841750025"); app.setAppKey("25070111"); app.setAppSecret("c7809ad9cd926fc45199d1d3ab7fe2eb"); app.setPid("mm_124933865_113050446_44841750025"); try { TaoBaoGoodsBrief goods = TaoKeApiUtil.searchGoodsDetail(527893773636L, app); System.out.println(goods.getId()); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } System.out.println(HttpUtil.getShortLink("http://h5.flq001.com")); System.out.println(HttpUtil.getShortLink("http://h5.flq002.com")); System.out.println(HttpUtil.getShortLink("http://h5.flq003.com")); System.out.println(HttpUtil.getShortLink("http://h5.flq004.com")); System.out.println(HttpUtil.getShortLink("http://h5.flq005.com")); } @Test @@ -82,9 +76,6 @@ Long[] auctionIds = new Long[] { 528561708277L, 563689377074L, 570752677800L, 569281626446L, 567165767332L, 555437572417L, 534857332052L, 565233575889L, 565536124572L }; for (Long auctionId : auctionIds) TaoKeApiUtil.createTaoLiJin(auctionId, "返利券新人淘礼金红包", new BigDecimal("1.00"), 1, 1, new Date(), new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24L), new Date()); // TaoKeApiUtil.getLiJinXG(); // String // url="https://uland.taobao.com/taolijin/edetail?eh=aIrBfHZGd4iZuQF0XRz0iAXoB+DaBK5LQS0Flu/fbSp4QsdWMikAalrisGmre1Id0BFAqRODu114yl7QZ1qFyc7LbOC0oAuo+MUwzxYlSKECGml30RY8PBx5jSVkulpmRQIlrKaDNziGVmobyGguP+jgTFwOoHsRe9593cvcC9QGQASttHIRqdGO5qxVOPQ2buEoHk5wx6hxhsv5QYr1rbcOQrCzclRfPTIk7Z0myMWxZvcNeMU+E+L71lQF+6uZp7DLcYmoygrjfjYOW9fVleIg09jheaZgonv6QcvcARY=&union_lens=lensId:0b0b4505_0c2a_16af789993f_0880;traffic_flag=lm"; pom.xml
@@ -560,7 +560,7 @@ <modules> <module>utils</module> <module>fanli</module> <module>test1</module> <module>test12</module> </modules> </project>