admin
2020-04-02 b47fb09eaffa4a13c0d63e823cb9319bcb775249
发圈修改
3个文件已修改
225 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/dynamic/GoodsEvaluateService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}