Administrator
2020-02-24 09417e97672be66c5e312b10f23a9e30da3acb97
热销转换发圈
4个文件已修改
377 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | 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/client/v2/DynamicControllerV2.java
@@ -2,7 +2,6 @@
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -27,7 +26,6 @@
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dto.jd.JDCouponInfo;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
@@ -40,10 +38,8 @@
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum;
import com.yeshi.fanli.entity.dynamic.GoodsPicture;
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.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
@@ -70,7 +66,6 @@
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;
@@ -596,8 +591,6 @@
        int type = 1;
        if (cid == TYPE_FAQUAN){
            type = 1;
            oldDynamicInfo(acceptData, page, subId, out); // 老版动态
            return;
        } else if (cid == TYPE_SUCAI) {
            type = 2;
        }
@@ -702,14 +695,6 @@
    @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;
@@ -941,252 +926,6 @@
        JSONObject data = new JSONObject();
        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));
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/DynamicInfoServiceImpl.java
@@ -44,6 +44,7 @@
import com.yeshi.fanli.service.inter.activity.ActivityUserService;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
@@ -103,6 +104,9 @@
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    @Resource
    private GoodsEvaluateService goodsEvaluateService;
    @Override
    public void insert(DynamicInfo record) {
@@ -566,6 +570,14 @@
        // 保存信息
        dynamicInfoDao.insert(dynamicInfo);
        // 更新商品信息
        executor.execute(new Runnable() {
            @Override
            public void run() {
                goodsEvaluateService.addGoodsEvaluateByDynamicInfo(dynamicInfo);
            }
        });
        addSuccess = true;
        return addSuccess;
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -2,8 +2,11 @@
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
@@ -18,15 +21,29 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.tencentcloud.COSManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.dynamic.CommentInfo;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum;
import com.yeshi.fanli.entity.dynamic.GoodsPicture;
import com.yeshi.fanli.entity.dynamic.ImgInfo;
import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
import com.yeshi.fanli.entity.dynamic.SimpleGoods;
@@ -49,6 +66,8 @@
import com.yeshi.fanli.vo.goods.CouponInfoVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import net.sf.json.JSONObject;
@Service
public class GoodsEvaluateServiceImpl implements GoodsEvaluateService {
@@ -279,7 +298,8 @@
            picNum = 1;
        }
        GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType);;
        GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType);
        ;
        if (goodsDetailVO == null) {
            throw new GoodsEvaluateException(1, "该商品信息不存在");
        }
@@ -800,8 +820,8 @@
    }
    @Override
    public void saveSuCai(String pid, String videoUrl, String picUrls,
            MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception {
    public void saveSuCai(String pid, String videoUrl, String picUrls, MultipartHttpServletRequest fileRequest)
            throws GoodsEvaluateException, Exception {
        if (StringUtil.isNullOrEmpty(pid)) {
            throw new GoodsEvaluateException(1, "请保存第一部分信息");
        }
@@ -871,7 +891,6 @@
                imgVideo.setH(height);
            }
            
            activityFile = fileRequest.getFile("activityFile");
        }
@@ -914,8 +933,6 @@
        } else if (imgActivity != null) {
            listImg.add(imgActivity);
        }
        // 编辑图片
        if (!StringUtil.isNullOrEmpty(picUrls)) {
@@ -1067,7 +1084,6 @@
        goodsEvaluateDao.save(goodsEvaluate);
    }
    @Override
    public void deleteComment(String pid, List<String> list) throws GoodsEvaluateException {
        if (list == null || list.size() == 0) {
@@ -1216,7 +1232,8 @@
                        continue;
                    }
                    
                    GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(), paramsDTO);
                    GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(),
                            paramsDTO);
                    if (goodsDetailVO != null) {
                        simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
                        CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
@@ -1258,5 +1275,72 @@
        return vo;
    }
    @Override
    public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) {
        try {
            GoodsEvaluate goodsEvaluate = new GoodsEvaluate();
            goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", ""));
            ActivityUser user = info.getUser();
            goodsEvaluate.setUser(user);
            goodsEvaluate.setState(1);
            goodsEvaluate.setDynamicType(1);
            goodsEvaluate.setType(EvaluateEnum.single);
            goodsEvaluate.setLineNum(2);
            goodsEvaluate.setShareNum(info.getShareCount());
            goodsEvaluate.setShareNumReal(0);
            goodsEvaluate.setPublishTime(info.getCreateTime());
            goodsEvaluate.setCreateTime(new Date());
            goodsEvaluate.setUpdateTime(new Date());
            goodsEvaluate.setWeight(0.0);
            goodsEvaluate.setStartTime(new Date());
            goodsEvaluate.setEndTime(DateUtil.plusYears(new Date(), 100));
            List<ClientTextStyleVO> titles = info.getTitle();
            if (titles != null) {
                goodsEvaluate.setTitle(info.getTitle().get(0).getContent());
            } else {
                goodsEvaluate.setTitle("");
}
            List<ImgInfo> imgList = new ArrayList<>();
            List<GoodsPicture> imgs = info.getImgs();
            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);
                    goodsEvaluate.setGoods(goodsVO);
                }
                imgList.add(imgInfo);
            }
            goodsEvaluate.setImgList(imgList);
            goodsEvaluateDao.save(goodsEvaluate);
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/dynamic/GoodsEvaluateService.java
@@ -6,6 +6,7 @@
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.yeshi.fanli.entity.dynamic.CommentInfo;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.entity.dynamic.ImgInfo;
import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
@@ -134,4 +135,7 @@
    public void release(String id) throws GoodsEvaluateException;
    public void addGoodsEvaluateByDynamicInfo(DynamicInfo info);
}