admin
2020-02-23 d146365d6fdbe06f1c769ab93728d38b15fe1a49
发圈接口修改
1个文件已修改
405 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java 405 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -6,7 +6,9 @@
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -122,6 +124,64 @@
    @Resource
    private QrCodeService qrCodeService;
    private final static long TYPE_REXIAO = 1;// 热销
    private final static long TYPE_TUIJIAN = 2;// 推荐
    private final static long TYPE_HAODIAN = 3;// 好店
    private final static long TYPE_YAOQING = 4;// 邀请
    private final static long TYPE_HUODONG = 5;// 活动
    private final static long TYPE_XUEYUAN = 6;// 学院
    private final static long TYPE_FAQUAN = 7;// 发圈
    private final static long TYPE_SUCAI = 8;// 素材
    private static Map<Long, GoodsClass> classMap = null;
    private Map<Long, GoodsClass> getAllDynamicClass() {
        if (classMap != null && classMap.size() > 0)
            return classMap;
        classMap = new HashMap<Long, GoodsClass>();
        List<GoodsClass> listSub = new ArrayList<GoodsClass>();
        listSub.add(new GoodsClass(0L, "今日单品"));
        listSub.addAll(DaTaoKeUtil.goodsClasses);
        GoodsClass menu = new GoodsClass(TYPE_REXIAO, "热销");
        menu.setListSub(listSub);
        classMap.put(TYPE_REXIAO, menu);
        menu = new GoodsClass(TYPE_TUIJIAN, "推荐");
        menu.setListSub(new ArrayList<GoodsClass>());
        classMap.put(TYPE_TUIJIAN, menu);
        menu = new GoodsClass(TYPE_HAODIAN, "好店");
        menu.setListSub(new ArrayList<GoodsClass>());
        classMap.put(TYPE_HAODIAN, menu);
        menu = new GoodsClass(TYPE_YAOQING, "邀请");
        menu.setListSub(new ArrayList<GoodsClass>());
        classMap.put(TYPE_YAOQING, menu);
        menu = new GoodsClass(TYPE_HUODONG, "活动");
        List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
        sub5.add(new GoodsClass(0L, "全部"));
        sub5.add(new GoodsClass(1L, "淘宝"));
        sub5.add(new GoodsClass(2L, "京东"));
        sub5.add(new GoodsClass(3L, "拼多多"));
        menu.setListSub(sub5);
        classMap.put(TYPE_HUODONG, menu);
        menu = new GoodsClass(TYPE_XUEYUAN, "学院");
        menu.setListSub(new ArrayList<GoodsClass>());
        classMap.put(TYPE_XUEYUAN, menu);
        menu = new GoodsClass(TYPE_FAQUAN, "发圈");
        menu.setListSub(new ArrayList<GoodsClass>());
        classMap.put(TYPE_FAQUAN, menu);
        menu = new GoodsClass(TYPE_SUCAI, "素材");
        menu.setListSub(new ArrayList<GoodsClass>());
        classMap.put(TYPE_SUCAI, menu);
        return classMap;
    }
    /**
     * 查询顶部分类
     * 
@@ -131,33 +191,12 @@
     * @param out
     */
    @RequestMapping(value = "getClass", method = RequestMethod.POST)
    public void getClass(AcceptData acceptData, Integer cid, PrintWriter out) {
    public void getClass(AcceptData acceptData, Long cid, PrintWriter out) {
        // ios 只返回子集分类
        if (cid != null) {
            List<GoodsClass> list = new ArrayList<GoodsClass>();
            switch (cid) {
            case 1:
                list.add(new GoodsClass(0L, "今日单品"));
                list.addAll(DaTaoKeUtil.goodsClasses);
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                list.add(new GoodsClass(0L, "全部"));
                list.add(new GoodsClass(1L, "淘宝"));
                list.add(new GoodsClass(2L, "京东"));
                list.add(new GoodsClass(3L, "拼多多"));
                break;
            default:
                break;
            }
            Map<Long, GoodsClass> map = getAllDynamicClass();
            JSONObject data = new JSONObject();
            data.put("list", JsonUtil.getApiCommonGson().toJson(list));
            data.put("list", JsonUtil.getApiCommonGson().toJson(map.get(cid).getListSub()));
            out.print(JsonUtil.loadTrueResult(data));
            return;
        }
@@ -191,20 +230,37 @@
        menu6.setListSub(new ArrayList<GoodsClass>());
        List<GoodsClass> list = new ArrayList<GoodsClass>();
        list.add(menu1);
        list.add(menu5);
        list.add(menu2);
        // 2.0.5版本隐藏 好店栏目
        if (!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
            list.add(menu3);
        }
        Map<Long, GoodsClass> map = getAllDynamicClass();
        // 2.0.6版本增加 学院栏目
        if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
            // list.add(menu6);
        if (VersionUtil.greaterThan_2_0_7(acceptData.getPlatform(), acceptData.getVersion())) {
            // 2.0.7返回发圈+活动+学院+素材
            list.add(map.get(TYPE_FAQUAN));
            list.add(map.get(TYPE_HUODONG));
            // list.add(map.get(TYPE_XUEYUAN));
            list.add(map.get(TYPE_SUCAI));
        } else if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
            // 2.0.6返回热销+活动+推荐+学院+邀请
            list.add(map.get(TYPE_REXIAO));
            list.add(map.get(TYPE_HUODONG));
            list.add(map.get(TYPE_TUIJIAN));
            // list.add(map.get(TYPE_XUEYUAN));
            list.add(map.get(TYPE_YAOQING));
        } else if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
            // 2.0.5返回热销+活动+推荐+邀请
            list.add(map.get(TYPE_REXIAO));
            list.add(map.get(TYPE_HUODONG));
            list.add(map.get(TYPE_TUIJIAN));
            list.add(map.get(TYPE_YAOQING));
        } else {
            // 2.0.5以前的版本返回热销+活动+推荐+好店+邀请
            list.add(map.get(TYPE_REXIAO));
            list.add(map.get(TYPE_HUODONG));
            list.add(map.get(TYPE_TUIJIAN));
            list.add(map.get(TYPE_HAODIAN));
            list.add(map.get(TYPE_YAOQING));
        }
        list.add(menu4);
        JSONObject data = new JSONObject();
        data.put("list", JsonUtil.getApiCommonGson().toJson(list));
@@ -521,18 +577,25 @@
    }
    /**
     * 发圈列表
     * 2.0.7版本后调用 动态列表(适用于发圈与素材)
     * 
     * @param acceptData
     * @param page
     * @param cid
     * @param subId
     * @param out
     */
    @RequestMapping(value = "evaluate2", method = RequestMethod.POST)
    public void evaluate2(AcceptData acceptData, Integer page,Integer type, PrintWriter out) {
        if(type == null) {
    @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)
            type = 1;
        else if (cid == TYPE_SUCAI) {
            type = 2;
        }
        List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, type);
        List<GoodsEvaluate> list = goodsEvaluateService.queryMaterialsCache((page - 1) * Constant.PAGE_SIZE,
                Constant.PAGE_SIZE, type);
        if (list == null) {
            list = new ArrayList<>();
        }
@@ -610,213 +673,6 @@
        });
        Gson gson = gsonBuilder.create();
        long count = goodsEvaluateService.countValidMaterials(type);
        JSONObject data = new JSONObject();
        data.put("count", count);
        data.put("list", gson.toJson(list));
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 发圈列表
     *
     * @param acceptData
     * @param page
     * @param out
     */
    @RequestMapping(value = "evaluate", method = RequestMethod.POST)
    public void evaluate(AcceptData acceptData, Integer page, Integer type, PrintWriter out) {
        long cid = 1;
        long subId = 1;
        List<DynamicInfo> listd = dynamicInfoService.queryV2(2, 74, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
                cid, subId);
        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();
            user.setTag("烧烤达人");
            goodsEvaluate.setUser(user);
            goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
            goodsEvaluate.setShareNum(info.getShareCount());
            goodsEvaluate.setPublishTime(info.getCreateTime());
            goodsEvaluate.setLineNum(2);
            List<GoodsPicture> imgs = info.getImgs();
            List<ImgInfo> imgList = new ArrayList<>();
            int i = 0;
            for (GoodsPicture goodsPicture : imgs) {
                ImgInfo imgInfo = new ImgInfo();
                GoodsDetailVO goodsVO = goodsPicture.getGoodsVO();
                imgInfo.setH(100);
                imgInfo.setW(100);
                if (goodsVO != null) {
                    imgInfo.setType(ImgEnum.goods);
                    SimpleGoods simpleGoods = new SimpleGoods();
                    simpleGoods.setPrice(goodsVO.getZkPrice());
                    simpleGoods.setAmount(new BigDecimal(115));
                    simpleGoods.setGoodsId(goodsVO.getGoodsId());
                    simpleGoods.setGoodsType(1);
                    simpleGoods.setState(1);
                    imgInfo.setGoods(simpleGoods);
                    goodsEvaluate.setGoods(goodsVO);
                } else {
                    imgInfo.setType(ImgEnum.img);
                }
                imgInfo.setLarge(false);
                imgInfo.setUrl(goodsPicture.getUrl());
                imgInfo.setUrlHD(goodsPicture.getUrl());
//                if (i == 0) {
//                    imgInfo.setUrl(goodsPicture.getUrl());
//                    imgInfo.setType(ImgEnum.video);
//                    imgInfo.setLarge(true);
//                    imgInfo.setVideoUrl(
//                            "http://pgcvideo.cdn.xiaodutv.com/754825344_367171606_2020010816001720200108174342.mp4?Cache-Control=max-age%3D8640000&responseExpires=Fri%2C+17+Apr+2020+18%3A11%3A55+GMT&xcode=0b0f3962eddaf66837d4af61a22c57bae3a5055540c75232&time=1579077845&_=1578992502888");
//                } else {
//                    imgInfo.setType(ImgEnum.img);
//                    imgInfo.setLarge(true);
//                    imgInfo.setUrl(goodsPicture.getUrl());
//                }
//                i++;
                imgList.add(imgInfo);
            }
            goodsEvaluate.setImgList(imgList);
            CommentInfo commentInfo = new CommentInfo();
            commentInfo.setId(info.getId() + "09");
            commentInfo.setContent("😆7.9元🉐1只儿童牙刷!!安妮贝拉卡通版儿童牙⭕PBT材质,毛刷细腻柔⭕外观卡通人物造型设计");
            commentInfo.setType(CommentInfoEnum.goodsCoupon);
//            ClientTextStyleVO text1 = new ClientTextStyleVO();
//            text1.setContent("猫超");
//            text1.setColor("#1D9B31");
//
//            ClientTextStyleVO text2 = new ClientTextStyleVO();
//            text2.setContent("满150减15");
//            text2.setColor("#E5005C");
//            List<ClientTextStyleVO> tagList = new ArrayList<>();
//            tagList.add(text1);
//            tagList.add(text2);
//            commentInfo.setTagList(tagList);
//            commentInfo.setTagDesc("除生鲜及部分酒水除生鲜及除生鲜及");
            CommentInfo commentInfo2 = new CommentInfo();
            commentInfo2.setContent("😆7.9元🉐1只儿童牙刷!!安妮贝拉卡通版儿童牙⭕PBT材质,毛刷细腻柔⭕外观卡通人物造型设计");
            commentInfo2.setType(CommentInfoEnum.goodsCoupon);
            ClientTextStyleVO text1 = new ClientTextStyleVO();
            text1.setContent("猫超");
            text1.setColor("#1D9B31");
            ClientTextStyleVO text2 = new ClientTextStyleVO();
            text2.setContent("满150减15");
            text2.setColor("#E5005C");
            List<ClientTextStyleVO> tagList = new ArrayList<>();
            tagList.add(text1);
            tagList.add(text2);
            commentInfo2.setTagList(tagList);
            commentInfo2.setTagDesc("除生鲜及部分酒水除生鲜及除生鲜及");
            commentInfo.setTagUrl("http://www.baidu.com");
            List<CommentInfo> commentList = new ArrayList<>();
            commentList.add(commentInfo);
            commentList.add(commentInfo2);
            goodsEvaluate.setComments(commentList);
            list.add(goodsEvaluate);
        }
//        List<GoodsEvaluate> list = goodsEvaluateService.queryValidEvaluateCache((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE);
//        if (list == null) {
//            list = new ArrayList<>();
//        }
        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();
        long count = dynamicInfoService.count(cid, subId); // goodsEvaluateService.countValid()
        JSONObject data = new JSONObject();
        data.put("count", count);
@@ -825,17 +681,18 @@
    }
    @RequestMapping(value = "evaluateShare", method = RequestMethod.POST)
    public void evaluateShare(AcceptData acceptData, Long uid, String id, Integer type, Long goodsId, Integer goodsType, PrintWriter out) {
    public void evaluateShare(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;
@@ -874,18 +731,18 @@
            out.print(JsonUtil.loadFalseResult(1, "邀请码未激活"));
            return;
        }
        List<ImgInfo> imgs = goodsEvaluate.getImgList();
        if (imgs == null) {
            out.print(JsonUtil.loadFalseResult("该图片内容已不存在"));
            return;
        }
        int total = 0;
        for (ImgInfo imgInfo : imgs) {
            SimpleGoods goods = imgInfo.getGoods();
            if (goods != null) {
                total ++;
                total++;
            }
        }
@@ -896,10 +753,10 @@
                list.add(imgInfo.getUrl());
                continue;
            }
            if (type == 1) {
                if (goodsVO.getGoodsId().longValue() == goodsId.longValue() && goodsVO.getGoodsType() == goodsType.intValue()) {
                if (goodsVO.getGoodsId().longValue() == goodsId.longValue()
                        && goodsVO.getGoodsType() == goodsType.intValue()) {
                    String jumpLink = getJumpLink(goodsVO, user, inviteCode);
                    if (!StringUtil.isNullOrEmpty(jumpLink)) {
                        list.add(jumpLink);
@@ -927,7 +784,7 @@
            out.print(JsonUtil.loadFalseResult("该信息已下架"));
            return;
        }
        JSONObject data = new JSONObject();
        data.put("count", shareCount);
        data.put("list", list);
@@ -939,17 +796,17 @@
        if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
            String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
                    Constant.systemCommonConfig.getShareGoodsPagePath(),
                    AESUtil.encrypt(user.getId() + "", Constant.UIDAESKEY),goodsVO.getGoodsId() + "");
                    AESUtil.encrypt(user.getId() + "", Constant.UIDAESKEY), goodsVO.getGoodsId() + "");
            String shortLink = HttpUtil.getShortLink(url);
            if (!StringUtil.isNullOrEmpty(shortLink)) {
                url = shortLink;
            }
        } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_JD) {
            JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsVO.getGoodsId());
            if (jdGoods == null ) {
            if (jdGoods == null) {
                return null;
            }
            String couponUrl = null;
            JDCouponInfo couponInfo = JDUtil.getShowCouponInfo(jdGoods);
            if (couponInfo != null) {
@@ -959,23 +816,25 @@
            jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
                    user.getId() + "");
        } else if (goodsVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
            jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "", user.getId() + "");
            jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsVO.getGoodsId(), PinDuoDuoApiUtil.PID_SHARE + "",
                    user.getId() + "");
        }
        FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode, goodsVO);
        FileUploadResult uploadResult = qrCodeService.drawDynamicGoodsPoster(jumpLink, user.getPortrait(), inviteCode,
                goodsVO);
        if (uploadResult != null) {
            return uploadResult.getUrl();
        }
        return null;
    }
    /**
     *  评论复制
     * 评论复制
     *
     * @param acceptData
     * @param id
     * @param cid 评论id
     * @param cid
     *            评论id
     * @param out
     */
    @RequestMapping(value = "evaluateComment", method = RequestMethod.POST)
@@ -984,7 +843,7 @@
            out.print(JsonUtil.loadFalseResult("id不能为空"));
            return;
        }
        GoodsEvaluate goodsEvaluate = goodsEvaluateService.getById(id);
        if (goodsEvaluate == null) {
            out.print(JsonUtil.loadFalseResult("该内容已不存在"));
@@ -1001,7 +860,7 @@
            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
@@ -1012,17 +871,17 @@
            out.print(JsonUtil.loadFalseResult(2, "淘宝未授权,请前往\"我的\"绑定淘宝账号"));
            return;
        }
        String text = "";
        List<CommentInfo> comments = goodsEvaluate.getComments();
        if (comments != null) {
            for (CommentInfo commentInfo: comments){
            for (CommentInfo commentInfo : comments) {
                if (cid.equals(commentInfo.getId())) {
                    text = commentInfo.getContent();
                }
            }
        }
        JSONObject data = new JSONObject();
        data.put("text", text);
        out.print(JsonUtil.loadTrueResult(data));