Administrator
2020-02-24 5b3b6de8fdd538eafa5d02cabb4d9fdff7797e1c
热销 改为 发圈
1个文件已修改
262 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -70,6 +70,7 @@
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.vo.dynamic.ArticleVO;
import com.yeshi.fanli.vo.goods.CouponInfoVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
@@ -593,9 +594,11 @@
    @RequestMapping(value = "getDynamicList", method = RequestMethod.POST)
    public void getDynamicListNew(AcceptData acceptData, Integer page, Long cid, String subId, PrintWriter out) {
        int type = 1;
        if (cid == TYPE_FAQUAN)
        if (cid == TYPE_FAQUAN){
            type = 1;
        else if (cid == TYPE_SUCAI) {
            oldDynamicInfo(acceptData, page, subId, out); // 老版动态
            return;
        } else if (cid == TYPE_SUCAI) {
            type = 2;
        }
@@ -699,6 +702,12 @@
    @RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
    public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
            PrintWriter out) {
        // 老版动态
        if (1 > 0) {
            oldDynamicShare(acceptData, uid, id, type, goodsId, goodsType, out);
            return;
        }
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
@@ -771,7 +780,6 @@
            }
        } else if (goodsEvaluate.getType() == EvaluateEnum.multiple) {
            if (type == 1) {
                for (ImgInfo imgInfo : imgs) {
                    if (imgInfo.getGoodsVO() != null)
@@ -933,4 +941,252 @@
        data.put("text", text);
        out.print(JsonUtil.loadTrueResult(data));
    }
    public void oldDynamicInfo(AcceptData acceptData, Integer page, String subId, PrintWriter out) {
        long cid = 1;
        Long sid = null;
        if (!StringUtil.isNullOrEmpty(subId)){
            sid = Long.parseLong(subId);
}
        List<DynamicInfo> listd = dynamicInfoService.queryV2(2, 74, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
                cid, sid);
        if (listd == null) {
            listd = new ArrayList<DynamicInfo>();
        }
        List<GoodsEvaluate> list = new ArrayList<>();
        for (DynamicInfo info : listd) {
            GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
            goodsEvaluate.setId(info.getId());
            ActivityUser user = info.getUser();
            goodsEvaluate.setUser(user);
            List<ClientTextStyleVO> titles = info.getTitle();
            if (titles != null) {
                goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
            } else {
                goodsEvaluate.setTitle("");
            }
            goodsEvaluate.setShareNum(info.getShareCount());
            goodsEvaluate.setPublishTime(info.getCreateTime());
            goodsEvaluate.setLineNum(2);
            List<GoodsPicture> imgs = info.getImgs();
            int i = 0;
            GoodsDetailVO goods= null;
            List<ImgInfo> imgList = new ArrayList<>();
            for (GoodsPicture goodsPicture : imgs) {
                ImgInfo imgInfo = new ImgInfo();
                imgInfo.setH(1);
                imgInfo.setW(1);
                imgInfo.setLarge(false);
                imgInfo.setUrl(goodsPicture.getUrl());
                imgInfo.setUrlHD(goodsPicture.getUrl());
                GoodsDetailVO goodsVO = goodsPicture.getGoodsVO();
                if (goodsVO == null) {
                    imgInfo.setType(ImgEnum.img);
                } else {
                    imgInfo.setType(ImgEnum.goods);
                    SimpleGoods simpleGoods = new SimpleGoods();
                    simpleGoods.setGoodsId(goodsVO.getGoodsId());
                    simpleGoods.setGoodsType(goodsVO.getGoodsType());
                    CouponInfoVO couponInfo = goodsVO.getCouponInfo();
                    if (couponInfo == null) {
                        simpleGoods.setState(0);
                        simpleGoods.setPrice(goodsVO.getZkPrice());
                    } else {
                        simpleGoods.setState(goodsVO.getState());
                        simpleGoods.setPrice(goodsVO.getCouponPrice());
                        simpleGoods.setAmount(couponInfo.getAmount());
                    }
                    imgInfo.setGoods(simpleGoods);
                    goods = goodsVO;
                    i++;
                }
                imgList.add(imgInfo);
            }
            goodsEvaluate.setImgList(imgList);
            if (i == 1) {
                goodsEvaluate.setGoods(goods);
            }
            list.add(goodsEvaluate);
        }
        GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
        gsonBuilder.registerTypeAdapter(CommentInfoEnum.class, new JsonSerializer<CommentInfoEnum>() {
            @Override
            public JsonElement serialize(CommentInfoEnum value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive(1);
                } else {
                    return new JsonPrimitive(value.getDesc());
                }
            }
        }).registerTypeAdapter(ImgEnum.class, new JsonSerializer<ImgEnum>() {
            @Override
            public JsonElement serialize(ImgEnum value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive("");
                } else {
                    return new JsonPrimitive(value.getVlaue());
                }
            }
        }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
            @Override
            public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                String desc = "";
                if (value != null) {
                    // 判断是否是同一天
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(value);
                    int y1 = calendar.get(Calendar.YEAR);// 获取年份
                    int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 获取年中第几天
                    Date nowDate = new Date();
                    Calendar calendar2 = Calendar.getInstance();
                    calendar2.setTime(nowDate);
                    int y2 = calendar2.get(Calendar.YEAR);// 获取年份
                    int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 获取年中第几天
                    long old = value.getTime();
                    long now = nowDate.getTime();
                    if (y1 == y2) {
                        if (d1 == d2) {
                            long cha = now - old;
                            if (cha < 1000 * 60 * 2L) {
                                desc = "刚刚";
                            } else if (cha < 1000 * 60 * 60L) {
                                desc = (cha / (1000 * 60)) + "分钟前";
                            } else {
                                desc = (cha / (1000 * 60 * 60)) + "小时前";
                            }
                        } else if (d2 - d1 == 1) {
                            desc = "昨天";
                        } else {
                            desc = (d2 - d1) + "天前";
                        }
                    } else {
                        int timeDistance = 0;
                        for (int i = y1; i < y2; i++) {
                            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                                timeDistance += 366; // 闰年
                            } else {
                                timeDistance += 365; // 不是闰年
                            }
                        }
                        desc = timeDistance + (d2 - d1) + "天前";
                    }
                    return new JsonPrimitive(desc);
                }
                return new JsonPrimitive("");
            }
        });
        Gson gson = gsonBuilder.create();
        JSONObject data = new JSONObject();
        data.put("list", gson.toJson(list));
        data.put("count",  dynamicInfoService.count(cid, sid));
        out.print(JsonUtil.loadTrueResult(data));
    }
    public void oldDynamicShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType,
            PrintWriter out) {
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (StringUtil.isNullOrEmpty(id) || type == null) {
            out.print(JsonUtil.loadFalseResult("传递参数不能为空"));
            return;
        }
        if (type == 1 && (goodsId == null || goodsType == null)) {
            out.print(JsonUtil.loadFalseResult("商品参数不能为空"));
            return;
        }
        DynamicInfo dynamicInfo = dynamicInfoService.getById(id);
        if (dynamicInfo == null) {
            out.print(JsonUtil.loadFalseResult("该内容已不存在"));
            return;
        }
        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
        if (user == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
            out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
            return;
        }
        UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
        String relationId = null;
        if (taoBaoInfo != null && taoBaoInfo.getRelationId() != null && taoBaoInfo.getRelationValid() != null
                && taoBaoInfo.getRelationValid() == true)
            relationId = taoBaoInfo.getRelationId();
        if (StringUtil.isNullOrEmpty(relationId)) {
            out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号"));
            return;
        }
        String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
        if (StringUtil.isNullOrEmpty(inviteCode)) {
            out.print(JsonUtil.loadFalseResult(1, "邀请码未激活"));
            return;
        }
        List<GoodsPicture> imgs = dynamicInfo.getImgs();
        if (imgs == null) {
            out.print(JsonUtil.loadFalseResult("该图片内容已不存在"));
            return;
        }
        List<String> list = new ArrayList<>();
        // 热销为单品
        for (GoodsPicture imgInfo : imgs) {
            GoodsDetailVO goodsVO = imgInfo.getGoodsVO();
            if (goodsVO == null) {
                list.add(imgInfo.getUrl());
                continue;
            }
            String jumpLink = getJumpLink(goodsVO, user, inviteCode);
            if (!StringUtil.isNullOrEmpty(jumpLink)) {
                list.add(jumpLink);
            }
        }
        Integer shareCount = dynamicInfo.getShareCount();
        if (shareCount == null) {
            shareCount = 0;
        }
        if (type == 3) {
            shareCount++;
            dynamicInfoService.updateShareCount(dynamicInfo);
        }
        if (list.size() == 0) {
            out.print(JsonUtil.loadFalseResult("该信息已下架"));
            return;
        }
        JSONObject data = new JSONObject();
        data.put("count", shareCount);
        data.put("list", list);
        out.print(JsonUtil.loadTrueResult(data));
    }
}