fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
@@ -5,8 +5,10 @@ import java.io.PrintWriter; import java.math.BigDecimal; import java.security.SignatureException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; @@ -17,28 +19,48 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.wx.WXUtil; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.Producer; import com.yeshi.fanli.dto.ConfigParamsDTO; import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg; import com.yeshi.fanli.dto.push.PushContentDTO; import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState; import com.yeshi.fanli.entity.config.push.PushMsgFactory; import com.yeshi.fanli.entity.dynamic.ImgInfo; import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum; import com.yeshi.fanli.entity.dynamic.SimpleGoods; import com.yeshi.fanli.entity.goods.CommonGoods; import com.yeshi.fanli.entity.shop.BanLiShopOrder; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException; import com.yeshi.fanli.exception.push.PushException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityUserService; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService; import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; import com.yeshi.fanli.service.inter.push.PushService; import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; import com.yeshi.fanli.util.rocketmq.MQTopicName; import com.yeshi.fanli.util.shop.BanLiShopOrderUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.util.wx.BanLiShopWXPayUtil; import com.yeshi.fanli.vo.goods.CouponInfoVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** @@ -64,6 +86,15 @@ @Resource private BanLiShopOrderService banLiShopOrderService; @Resource private GoodsEvaluateService goodsEvaluateService; @Resource private HongBaoManageService hongBaoManageService; @Resource private ActivityUserService activityUserService; /** * 客服消息回调 @@ -191,7 +222,7 @@ if (order != null) {// 支付成功消息推送 BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid(), new BigDecimal(map.get("total_fee")).multiply(new BigDecimal("0.01"))); Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.banLiShopOrderPaid, msg); producer.send(message); Map<String, String> returnMap = new HashMap<>(); @@ -204,4 +235,92 @@ } } /** * 联盟好物圈 * @Title: haoWuQuan * @Description: * @param request * @param out * void 返回类型 * @throws */ @RequestMapping(value = "faquan/haowuquan") public void haoWuQuan(HttpServletRequest request, String content, String sign, PrintWriter out) { if (!sign.equalsIgnoreCase(StringUtil.Md5(content + "banliapp"))) { out.print(JsonUtil.loadFalseResult("签名错误")); return; } String contentDecode = StringUtil.getFromBase64(content); JSONObject data = JSONObject.fromObject(contentDecode); JSONArray array = data.optJSONObject("recommend").optJSONArray("resultList"); for (int i = 0; i < array.size(); i++) { JSONObject item = array.optJSONObject(i); String title = item.optString("itemName"); String doc = item.optString("cusShareText"); long itemId = item.optLong("itemId"); JSONArray imageArray = item.optJSONArray("imageList"); List<String> imgList = new ArrayList<>(); for (int j = 0; j < imageArray.size(); j++) { imgList.add(imageArray.optString(j)); } TaoBaoGoodsBrief goodsBrief = null; try { goodsBrief = TaoKeApiUtil.searchGoodsDetail(itemId); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } if (goodsBrief == null) continue; // 商品VO ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55"); paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); if (imgList.size() > 3) imgList = imgList.subList(0, 3); List<ImgInfo> imageList = new ArrayList<>(); for (int j = 0; j < imgList.size(); j++) { ImgInfo imgInfo = new ImgInfo(); imgInfo.setH(1); imgInfo.setW(1); imgInfo.setLarge(false); imgInfo.setUrl(imgList.get(j)); if (i != 0) { imgInfo.setType(ImgEnum.img); } else { imgInfo.setType(ImgEnum.goods); SimpleGoods simpleGoods = new SimpleGoods(); simpleGoods.setGoodsId(itemId); simpleGoods.setGoodsType(Constant.SOURCE_TYPE_TAOBAO); simpleGoods.setState(CommonGoods.STATE_NORMAL); CouponInfoVO couponInfo = goodsVO.getCouponInfo(); if (couponInfo == null) { simpleGoods.setPrice(goodsVO.getZkPrice()); } else { simpleGoods.setPrice(goodsVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); } imgInfo.setGoods(simpleGoods); imgInfo.setGoodsVO(goodsVO); } imageList.add(imgInfo); } List<ActivityRuleUser> ruleList = activityUserService.listByRuleCode(ActivityRuleUser.RULE_HOT, 1, 20); ruleList.get(0).getActivityUser(); ActivityUser user = ruleList.get((int) (ruleList.size() * Math.random())).getActivityUser(); try { goodsEvaluateService.addGoodsEvaluate(itemId, imageList, user, doc, null); } catch (GoodsEvaluateException e) { e.printStackTrace(); } } } } fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -735,8 +735,6 @@ } } } // 数据对比 删除图片 if (oldGoodsList != null && oldGoodsList.size() > 0) { @@ -955,14 +953,15 @@ throw new GoodsEvaluateException(1, "请填写券截止时间"); } // 均不验证 // 均不验证 /* * if (!StringUtil.isNullOrEmpty(content) && kind != 3) { try { * convertLinkManager.convertLinkFromText(content, * Constant.LINK_TOKEN_VERIFY_UID, true); } catch (ConvertLinkExceptionException * e) { if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) { throw new * GoodsEvaluateException(1, "包含不可转链的口令与链接"); } } catch (Exception e) { throw * new GoodsEvaluateException(1, "包含不可转链的口令与链接"); } } * Constant.LINK_TOKEN_VERIFY_UID, true); } catch * (ConvertLinkExceptionException e) { if * (ConvertLinkExceptionException.CODE_NONE != e.getCode()) { throw new * GoodsEvaluateException(1, "包含不可转链的口令与链接"); } } catch (Exception e) { * throw new GoodsEvaluateException(1, "包含不可转链的口令与链接"); } } */ GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); @@ -1302,7 +1301,6 @@ totalImg++; } // 清理老图片 if (listOld != null && listOld.size() > 0) { for (int j = 0; j < listOld.size(); j++) { @@ -1567,14 +1565,13 @@ e.printStackTrace(); continue; } // 按照发布显示时间段起始时间为准。 goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime()); // 按照发布显示时间段起始时间为准。 goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime()); // 按照发布显示时间段起始时间为准。 goodsEvaluate.setPublishTime(goodsEvaluate.getStartTime()); List<CommentInfo> comments = evaluateNew.getComments(); if (comments != null && comments.size() > 0) { EvaluateEnum typeEnum = evaluateNew.getType(); @@ -1855,11 +1852,12 @@ } @Override public void addGoodsEvaluate(Long goodsId, Integer cid, String title, String comment) throws GoodsEvaluateException{ if (goodsId == null || cid == null || StringUtil.isNullOrEmpty(title)) { public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment) throws GoodsEvaluateException { if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) { throw new GoodsEvaluateException(1, "相关参数不能为空"); } TaoBaoGoodsBrief goodsBrief = null; try { goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); @@ -1876,13 +1874,6 @@ throw new GoodsEvaluateException(1, "该商品无券"); } // 发布用户 ActivityUser user = activityUserService.getRandomByDaTaoKeCid(cid); if (user == null) { throw new GoodsEvaluateException(1, "未找到发布用户"); } // 白底图 List<String> imgs = new ArrayList<>(); if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { @@ -1897,36 +1888,36 @@ // 商品图片信息 int i = 0; List<ImgInfo> imgList = new ArrayList<>(); for (String img : imgs) { ImgInfo imgInfo = new ImgInfo(); imgInfo.setH(1); imgInfo.setW(1); imgInfo.setLarge(false); imgInfo.setUrl(img); imgInfo.setUrlHD(img); if (i != 0) { imgInfo.setType(ImgEnum.img); } else { imgInfo.setType(ImgEnum.goods); SimpleGoods simpleGoods = new SimpleGoods(); simpleGoods.setGoodsId(goodsVO.getGoodsId()); simpleGoods.setGoodsType(goodsVO.getGoodsType()); simpleGoods.setState(goodsVO.getState()); CouponInfoVO couponInfo = goodsVO.getCouponInfo(); if (couponInfo == null) { simpleGoods.setPrice(goodsVO.getZkPrice()); if (imgList == null || imgList.size() == 0) for (String img : imgs) { ImgInfo imgInfo = new ImgInfo(); imgInfo.setH(1); imgInfo.setW(1); imgInfo.setLarge(false); imgInfo.setUrl(img); imgInfo.setUrlHD(img); if (i != 0) { imgInfo.setType(ImgEnum.img); } else { simpleGoods.setPrice(goodsVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); imgInfo.setType(ImgEnum.goods); SimpleGoods simpleGoods = new SimpleGoods(); simpleGoods.setGoodsId(goodsVO.getGoodsId()); simpleGoods.setGoodsType(goodsVO.getGoodsType()); simpleGoods.setState(goodsVO.getState()); CouponInfoVO couponInfo = goodsVO.getCouponInfo(); if (couponInfo == null) { simpleGoods.setPrice(goodsVO.getZkPrice()); } else { simpleGoods.setPrice(goodsVO.getCouponPrice()); simpleGoods.setAmount(couponInfo.getAmount()); } imgInfo.setGoods(simpleGoods); imgInfo.setGoodsVO(goodsVO); } imgInfo.setGoods(simpleGoods); imgInfo.setGoodsVO(goodsVO); imgList.add(imgInfo); i++; } imgList.add(imgInfo); i++; } // 评论内容 CommentInfo commentInfo = new CommentInfo(); commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); @@ -1946,14 +1937,15 @@ commentText = commentText.replace("[券后价]", MoneyBigDecimalUtil.getWithNoZera(goodsVO.getCouponPrice()) + ""); } commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n","\r\n"); commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); commentInfo.setContent(commentText); commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); } List<CommentInfo> commentsNew = new ArrayList<>(); commentsNew.add(commentInfo); // 一行显示多少个图片 int lineNum = 0; if (imgs.size() > 0) { @@ -1967,7 +1959,6 @@ lineNum = 3; } } GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); @@ -2199,7 +2190,7 @@ imgList.add(imgInfo); i++; } goodsEvaluate.setGoods(goodsVO); goodsEvaluate.setImgList(imgList); goodsEvaluateDao.save(goodsEvaluate); @@ -2250,7 +2241,6 @@ } return descNew; } @Override public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) { fanli/src/main/java/com/yeshi/fanli/service/inter/dynamic/GoodsEvaluateService.java
@@ -5,7 +5,9 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import com.sun.istack.Nullable; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.entity.dynamic.CommentInfo; import com.yeshi.fanli.entity.dynamic.DynamicInfo; import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; @@ -166,7 +168,7 @@ * @param title 标题 必传 * @param comment */ public void addGoodsEvaluate(Long goodsId, Integer cid, String title, String comment) throws GoodsEvaluateException; public void addGoodsEvaluate(Long goodsId,List<ImgInfo> imgList, ActivityUser user, String title,String comment) throws GoodsEvaluateException; }