From 7912a94e5de72b628bde39b16e6c7b21172910eb Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 08 六月 2020 17:15:39 +0800 Subject: [PATCH] 2.1.2bug --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java | 136 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 109 insertions(+), 27 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java index b18deb6..7807105 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java @@ -32,6 +32,7 @@ import com.yeshi.fanli.entity.bus.user.cloud.UserCloud; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGoods; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGroup; +import com.yeshi.fanli.entity.bus.user.cloud.UserCloudManage; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudSendContent; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudSendRecord; import com.yeshi.fanli.entity.dynamic.CommentInfo; @@ -47,6 +48,7 @@ import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException; import com.yeshi.fanli.exception.share.ShareGoodsException; import com.yeshi.fanli.exception.user.cloud.UserCloudException; +import com.yeshi.fanli.exception.user.cloud.UserCloudGoodsException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; @@ -60,6 +62,7 @@ import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudGoodsService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService; +import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudSendContentService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudSendRecordService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudService; @@ -149,6 +152,9 @@ @Resource private UserCloudSendContentService userCloudSendContentService; + @Resource + private UserCloudManageService userCloudManageService; + @Resource(name = "producer") private Producer producer; @@ -182,9 +188,6 @@ count = 0L; return count; } - - - @Override @Transactional(rollbackFor = Exception.class) @@ -228,7 +231,7 @@ renew = true; // 楠岃瘉濂楅鏄惁鐩稿悓 if (renew && userCloud.getRobotType() != menuEnum.getType()) { - LogHelper.error("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�"); + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�"); throw new UserCloudException(1, "宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�"); } } @@ -241,13 +244,13 @@ } if (dto == null) { - LogHelper.error("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 杩斿洖绌哄��"); + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 杩斿洖绌哄��"); throw new UserCloudException(1, "鏈哄櫒浜鸿幏鍙栧け璐�"); } String endTimeStr = dto.getEndTime(); if (StringUtil.isNullOrEmpty(endTimeStr)) { - LogHelper.error("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 杩斿洖鏃堕棿涓虹┖"); + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 杩斿洖鏃堕棿涓虹┖"); throw new UserCloudException(1, "鏈哄櫒浜鸿繑鍥炴椂闂翠负绌�"); } @@ -255,19 +258,19 @@ try { endTime = Long.parseLong(endTimeStr); } catch (Exception e) { - LogHelper.error("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 杩斿洖鏃堕棿鏍煎紡涓嶆纭�"); + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 杩斿洖鏃堕棿鏍煎紡涓嶆纭�"); throw new UserCloudException(1, "鏈哄櫒浜鸿繑鍥炴椂闂存牸寮忎笉姝g‘"); } Integer robotId = dto.getId(); if (robotId == null) { - LogHelper.error("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 鏈哄櫒浜篒D杩斿洖涓虹┖"); + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 鏈哄櫒浜篒D杩斿洖涓虹┖"); throw new UserCloudException(1, "鏈哄櫒浜篒D杩斿洖涓虹┖"); } Integer groupNum = dto.getGroupNum(); if (groupNum == null) { - LogHelper.error("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 groupNum杩斿洖涓虹┖"); + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "][璁㈠崟ID=" + orderId + "]鏈哄櫒浜哄け璐ワ細 groupNum杩斿洖涓虹┖"); throw new UserCloudException(1, "groupNum杩斿洖涓虹┖"); } @@ -277,10 +280,17 @@ newCloud.setGroupNum(groupNum); newCloud.setRobotId(robotId); newCloud.setRobotType(menuEnum.getType()); - newCloud.setStartTime(new Date()); + if (renew) { + newCloud.setStartTime(userCloud.getStartTime()); + } else { + newCloud.setStartTime(new Date()); + } newCloud.setEndTime(new Date(endTime * 1000)); // Unix 杞崲 鏅�氭椂闂� newCloud.setCreateTime(new Date()); userCloudMapper.insertSelective(newCloud); + + // 寮�鍚彂鍦堝姛鑳� + userCloudManageService.save(uid, null, null); } @Override @@ -309,7 +319,18 @@ @Override + @Transactional(rollbackFor = Exception.class) public void autoSendByDynamic(Long uid, String id) { + boolean official = false; + UserCloudManage cloudManage = userCloudManageService.selectByPrimaryKey(uid); + if (cloudManage != null) { + if (cloudManage.getOfficial() != null) + official = cloudManage.getOfficial(); + } + + if (!official) + return; + try { sendCircleByDynamic(uid, id, UserCloudSendRecord.SEND_WAY_AUTO); } catch (UserCloudException e) { @@ -382,6 +403,11 @@ if (comments == null || comments.size() == 0) throw new UserCloudException(1, "璇ュ唴瀹逛笉鑳借浆閾�"); + // 妫�娴嬪井淇℃槸鍚︾櫥褰曠姸鎬� + if (!AitaokerApiUtil.onlineCheck(robotId)) { + throw new UserCloudException(1003, "璇烽噸鏂扮櫥褰曞井淇�"); + } + boolean hasToken = false; List<String> listComment = new ArrayList<>(); @@ -554,14 +580,26 @@ } - @Override + @Transactional(rollbackFor = Exception.class) public void sendCustomGoods(Long uid, Long goodsId, Integer goodsType, Long sellerId) throws UserCloudException{ sendCircleByGoods(uid, goodsId, goodsType, null, sellerId); } @Override + @Transactional(rollbackFor = Exception.class) public void autoSendCustomGoods(Long uid, Long id) { + boolean custom = false; + UserCloudManage cloudManage = userCloudManageService.selectByPrimaryKey(uid); + if (cloudManage != null) { + if (cloudManage.getCustom() != null) + custom = cloudManage.getCustom(); + } + + if (!custom) { + return; + } + UserCloudGoods cloudGoods = userCloudGoodsService.selectByPrimaryKey(id); if (cloudGoods == null) { return; @@ -573,12 +611,6 @@ try { // 鍙戦�佸晢鍝� sendCircleByGoods(uid, cgoods.getGoodsId(), cgoods.getGoodsType(), id, cgoods.getSellerId()); - - UserCloudGoods record = new UserCloudGoods(); - record.setId(id); - record.setState(UserCloudGoods.STATE_SHARED); - record.setUpdateTime(new Date()); - userCloudGoodsService.updateByPrimaryKeySelective(record); } catch (UserCloudException e) { LogHelper.cloudInfo("autoSendCustomGoods - [uid:" +uid + " 搴搃d:"+ id + "]鍘熷洜锛�"+ e.getMsg()); } @@ -612,6 +644,30 @@ if (userCloud == null) throw new UserCloudException(1001, "浜戝彂鍗曞凡杩囨湡"); + + // 鍔犲叆鎴戠殑澶囬�夊簱 + if (storeId == null) { + try { + UserCloudGoods cloudGoods = userCloudGoodsService.addGoods(uid, goodsId, goodsType, sellerId); + if (cloudGoods != null) + storeId =cloudGoods.getId(); + } catch (UserCloudGoodsException e) { + LogHelper.cloudInfo("sendCustomGoods - [uid:" +uid + "goodsId:"+ goodsId + "goodsType" + goodsType +"]鍘熷洜锛�"+ e.getMsg()); + throw new UserCloudException(1, "鍔犲叆浜戝彂鍗曞閫夊簱澶辫触"); + } + } + + // 鑷�夊簱鍟嗗搧鏄惁鎵撳紑 + boolean custom = false; + UserCloudManage cloudManage = userCloudManageService.selectByPrimaryKey(uid); + if (cloudManage != null) { + if (cloudManage.getCustom() != null) + custom = cloudManage.getCustom(); + } + if (!custom) { + throw new UserCloudException(0, "鎴愬姛鍔犲叆浜戝彂鍗曞簱"); + } + Integer robotId = userCloud.getRobotId(); if (robotId == null) throw new UserCloudException(1, "浜戝彂鍗曟満鍣ㄤ汉涓嶅瓨鍦�"); @@ -634,6 +690,13 @@ if (listOpen.size() == 0) throw new UserCloudException(1004, "璇峰厛寮�鍚簯鍙戝崟缇ゅ姛鑳�"); + + + // 妫�娴嬪井淇℃槸鍚︾櫥褰曠姸鎬� + if (!AitaokerApiUtil.onlineCheck(robotId)) { + throw new UserCloudException(1003, "璇烽噸鏂扮櫥褰曞井淇�"); + } + // 淇濆瓨鍙戦�佽褰� UserCloudSendRecord sendRecord = new UserCloudSendRecord(); @@ -662,6 +725,16 @@ sendVIPGoods(user, robotId, wxId, goodsId, relationId, listOpen, result.getId()); } else if (goodsType == Constant.SOURCE_TYPE_SUNING) { sendSuNingGoods(user, robotId, wxId, goodsId, sellerId, relationId, listOpen, result.getId()); + } + + // 鏇存柊鍙戝崟璁板綍 + if (storeId != null) { + UserCloudGoods record = new UserCloudGoods(); + record.setId(storeId); + record.setState(UserCloudGoods.STATE_SHARED); + record.setSendTime(new Date()); + record.setUpdateTime(new Date()); + userCloudGoodsService.updateByPrimaryKeySelective(record); } } @@ -857,7 +930,7 @@ couponAmount, null); // 鑾峰彇璇勮璇� String commentText = shareGoodsTextTemplateService.getCommentTextByLink(coupon, jumpLink, goods.getMarketPrice(), - quanPrice, ConfigKeyEnum.quickShareJDCommentText); + quanPrice, ConfigKeyEnum.quickShareVIPCommentText); // 浜戝彂鍗� sendGoods(robotId, wxId, listOpen, recommendText, commentText, goods.getGoodsDetailPictures(), user.getId(), pid); @@ -887,17 +960,21 @@ boolean coupon = false; - String quanPrice = ""; String couponAmount = ""; String sales = null; + if (goods.getCouponInfo() != null && !StringUtil.isNullOrEmpty(goods.getCouponInfo().getCouponUrl())) {// 鏈夊埜 + couponAmount = new BigDecimal(goods.getCouponInfo().getCouponValue()).toString(); + coupon = true; + } + // 鑾峰彇鎺ㄨ崘璇� String recommendText = shareGoodsTextTemplateService.getRecommendText(coupon, goods.getCommodityInfo().getCommodityName(), sales, couponAmount, null); - // 鑾峰彇璇勮璇� - String zkPrice = goods.getCommodityInfo().getCommodityPrice().toString(); - String commentText = shareGoodsTextTemplateService.getCommentTextByLink(coupon, jumpLink, zkPrice, quanPrice, - ConfigKeyEnum.quickShareJDCommentText); + // 鐢熸垚蹇嵎鍒嗕韩鍐呭 + String template = configService.get(ConfigKeyEnum.quickShareSuNingCommentText.getKey()); + String commentText = shareGoodsTextTemplateService.createQuickShareTextSuNing(template, goods, jumpLink); + List<String> imgList = new ArrayList<>(); for (SuningGoodsImg img : goods.getCommodityInfo().getPictureUrl()) { @@ -991,10 +1068,8 @@ return; // 涓�涓皬鏃朵箣鍓� - long rand = 1000 * 60 * 60 ; - long time = java.lang.System.currentTimeMillis() - rand; + long time = java.lang.System.currentTimeMillis() - 1000 * 60 * 60 ; Date lastTime = new Date(time); - for (int i = 0; i < 1000; i ++) { List<Long> list = userCloudMapper.listValidUid((i-1)*1000, 1000); @@ -1012,7 +1087,14 @@ if (last != null) continue; - if (!Constant.IS_TEST) { + boolean official = false; + UserCloudManage cloudManage = userCloudManageService.selectByPrimaryKey(uid); + if (cloudManage != null) { + if (cloudManage.getOfficial() != null) + official = cloudManage.getOfficial(); + } + + if (!Constant.IS_TEST && official) { UserCloudMQMsg msg = new UserCloudMQMsg(uid, id, UserCloudMQMsg.TYPE_EVALUATE); Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userCloud, msg); producer.send(message); -- Gitblit v1.8.0