yujian
2019-07-12 31fcced202c78486ebc97a8ea8fb31e5866cdab7
专题
7个文件已修改
418 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConsumerControllerV2.java 302 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/JinDongControllerV2.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PinDuoDuoControllerV2.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareStorageControllerV2.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/aspect/SignValidateAspect.java
@@ -41,7 +41,7 @@
        KEY = Constant.systemCommonConfig.getSignKey();
    }
//    @Around(EDP)
    @Around(EDP)
    public Object testAround(ProceedingJoinPoint joinPoint) throws IOException {
        Object[] args = joinPoint.getArgs();
        PrintWriter out = null;
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ConsumerControllerV2.java
@@ -0,0 +1,302 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
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.entity.accept.AcceptData;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.goods.ScanHistoryV2;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CollectionGoodsException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
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.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 * 用户相关商品
 *
 * @author Administrator
 *
 */
@Controller
@RequestMapping("api/v2/consumer")
public class ConsumerControllerV2 {
    @Resource
    private BusinessSystemService businessSystemService;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private CollectionGoodsV2Service collectionGoodsV2Service;
    @Resource
    private ScanHistoryV2Service scanHistoryV2Service;
    /**
     * 删除收藏
     * @param acceptData
     * @param ids
     * @param type
     * @param uid
     * @param out
     */
    @RequestMapping("deleteCollectionGoods")
    public void deleteCollectionGoods(AcceptData acceptData, Long uid, String ids, Integer type, PrintWriter out) {
        if (uid == null || uid <= 0) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (type != null && type == 1) { // 删除全部
            try {
                collectionGoodsV2Service.cancelCollectionByUid(uid);
            } catch (CollectionGoodsException e) {
                out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
                return;
            }
        } else { // 删除部分
            if (!StringUtil.isNullOrEmpty(ids)) {
                Arrays.asList(ids.split(",")).parallelStream().forEach(idStr -> {
                    try {
                        collectionGoodsV2Service.deteleBYByUidAndCommonId(uid, Long.parseLong(idStr));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                });
            }
        }
        out.print(JsonUtil.loadTrueResult("删除成功"));
    }
    /**
     * 收藏列表
     *
     * @param acceptData
     * @param uid
     * @param page
     * @param goodsType
     * @param out
     */
    @RequestMapping("collectionGoodsList")
    public void collectionGoodsList(AcceptData acceptData, Long uid, Integer page, Integer goodsType, PrintWriter out) {
        if (uid == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        if (page < 1) {
            out.print(JsonUtil.loadFalseResult(1, "page不小于1"));
            return;
        }
        List<CollectionGoodsV2> collectionGoodsList = collectionGoodsV2Service.getCollectionGoodsList(uid, page,
                Constant.PAGE_SIZE, goodsType);
        long count = collectionGoodsV2Service.getCollectionGoodsCount(uid, goodsType);
        JSONObject data = new JSONObject();
        List<GoodsDetailVO> list = new ArrayList<GoodsDetailVO>();
        if (collectionGoodsList != null && collectionGoodsList.size() > 0) {
            List<Long> listGid = new ArrayList<Long>();
            for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) {
                CommonGoods commonGoods = collectionGoodsV2.getCommonGoods();
                if (commonGoods == null || commonGoods.getGoodsType() != Constant.SOURCE_TYPE_TAOBAO) {
                    continue;
                }
                listGid.add(commonGoods.getGoodsId());
            }
            // API网络接口验证是否在售
            List<TaoBaoGoodsBrief> listTaoKeGoods = null;
            if (listGid.size() > 0) {
                try {
                    listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
                } catch (TaoKeApiException e) {
                    e.printStackTrace();
                } catch (TaobaoGoodsDownException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) {
                CommonGoods commonGoods = collectionGoodsV2.getCommonGoods();
                if (commonGoods == null) {
                    continue;
                }
                if (listTaoKeGoods != null && listTaoKeGoods.size() > 0
                        && commonGoods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
                    int state = 1; // 默认停售
                    Long goodsId = commonGoods.getGoodsId();
                    for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
                        Long auctionId = taoKeGoods.getAuctionId();
                        if (goodsId == auctionId || goodsId.equals(auctionId)) {
                            state = 0; // 在售
                            break;
                        }
                    }
                    commonGoods.setState(state);
                }
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate,
                        shareRate);
                detailVO.setId(commonGoods.getId());
                detailVO.setCreatetime(collectionGoodsV2.getCreateTime());
                list.add(detailVO);
            }
        }
        GsonBuilder builder = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
            @Override
            public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive("");
                } else {
                    return new JsonPrimitive(value.getTime() + "");
                }
            }
        });
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(builder).excludeFieldsWithoutExposeAnnotation()
                .create();
        data.put("list", gson.toJson(list));
        data.put("count", count);
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 删除足迹
     * @param acceptData
     * @param type
     * @param uid
     * @param ids
     * @param out
     */
    @RequestMapping(value = "deleteScanhistory", method = RequestMethod.POST)
    public void deleteScanHistory(AcceptData acceptData, String type, Long uid, String ids, PrintWriter out) {
        if ("1".equals(type)) {
            // 全部删除
            scanHistoryV2Service.deleteByDeviceOrUid(uid, acceptData.getDevice());
        } else {
            // 删除部分
            if (StringUtil.isNullOrEmpty(ids)) {
                out.print(JsonUtil.loadFalseResult("ids不能为空"));
                return;
            }
            String[] idStr = ids.split(",");
            for (String id : idStr) {
                scanHistoryV2Service.deleteByAuctionIdAndDeviceOrUid(uid, acceptData.getDevice(), Long.parseLong(id));
            }
        }
        out.print(JsonUtil.loadTrueResult(""));
    }
    /**
     * 获取浏览记录
     * @param acceptData
     * @param uid
     * @param page
     * @param goodsType
     * @param out
     */
    @RequestMapping(value = "getScanHistory", method = RequestMethod.POST)
    public void getScanHistory(AcceptData acceptData, Long uid, int page, Integer goodsType, PrintWriter out) {
        if (page < 1) {
            out.print(JsonUtil.loadFalseResult(1, "page不小于1"));
            return;
        }
        List<ScanHistoryV2> list = scanHistoryV2Service.getScanHistoryByDeviceOrUid(uid, acceptData.getDevice(), page,
                20, goodsType);
        GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
        gsonBuilder.excludeFieldsWithoutExposeAnnotation();
        gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
            @Override
            public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive("");
                } else {
                    return new JsonPrimitive(value.getTime() + "");
                }
            }
        });
        long count = scanHistoryV2Service.getCountByDeviceOrUid(uid, acceptData.getDevice(), goodsType);
        JSONArray array = new JSONArray();
        if (list != null && list.size() > 0) {
            Gson gson = gsonBuilder.create();
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            for (ScanHistoryV2 sh : list) {
                CommonGoods commonGoods = sh.getCommonGoods();
                if (commonGoods == null) {
                    continue;
                }
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate,
                        shareRate);
                detailVO.setId(commonGoods.getId());
                detailVO.setCreatetime(sh.getCreateTime());
                array.add(gson.toJson(detailVO));
            }
        }
        JSONObject data = new JSONObject();
        data.put("count", count);
        data.put("data", array);
        out.print(JsonUtil.loadTrueResult(data));
        return;
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -794,6 +794,9 @@
            extraVO.setStorage(userGoodsStorageService.isExistStorage(uid, id, Constant.SOURCE_TYPE_JD));
        }
        // 图文详情
        extraVO.setDetailUrl("https://in.m.jd.com/product/jieshao/video/"+ id +".html");
        // 测试
        SystemClientParams params = systemClientParamsService.getSystemClientParamsBySystemAndKey(system,
                "goods_detail_jump_taobao");
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/JinDongControllerV2.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -10,15 +11,22 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
@@ -45,7 +53,10 @@
    
    @Resource
    private SwiperPictureService swiperPictureService;
    @Resource
    private QualityGoodsService qualityGoodsService;
    
    /**
     * 京东专题分类
@@ -83,12 +94,31 @@
            root.put("listPic", JsonUtil.getApiCommonGson().toJson(topPicList));
        }
        
        // TODO
        List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * 20, 20);
        if (listQuery == null) {
            listQuery = new ArrayList<QualityFactory>();
        }
        JSONArray array = new JSONArray();
        if (listQuery.size() > 0) {
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                    .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            for (QualityFactory qualityFactory : listQuery) {
                TaoBaoGoodsBrief goods = qualityFactory.getTaoBaoGoodsBrief();
                if (goods == null) {
                    continue;
                }
                array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate)));
            }
        }
        long count = qualityGoodsService.countFreeGoods();
        
        root.put("count", count);
        root.put("list", array);
        out.print(JsonUtil.loadTrueResult(root));
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/PinDuoDuoControllerV2.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -10,15 +11,24 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
@@ -45,6 +55,13 @@
    
    @Resource
    private SwiperPictureService swiperPictureService;
    @Resource
    private QualityGoodsService qualityGoodsService;
    @Resource
    private SpecialService specialService;
    
    /**
@@ -81,11 +98,38 @@
                topPicList = new ArrayList<SwiperPicture>();
            }
            root.put("listPic", JsonUtil.getApiCommonGson().toJson(topPicList));
            List<Special> listSpecial = specialService.listByPlaceKey("index_block");
            if (listSpecial == null) {
                listSpecial = new ArrayList<Special>();
            }
            root.put("listSpe", JsonUtil.getApiCommonGson().toJson(listSpecial));
        }
        
        // TODO
        List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * 20, 20);
        if (listQuery == null) {
            listQuery = new ArrayList<QualityFactory>();
        }
        JSONArray array = new JSONArray();
        if (listQuery.size() > 0) {
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                    .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            for (QualityFactory qualityFactory : listQuery) {
                TaoBaoGoodsBrief goods = qualityFactory.getTaoBaoGoodsBrief();
                if (goods == null) {
                    continue;
                }
                array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate)));
            }
        }
        long count = qualityGoodsService.countFreeGoods();
        
        root.put("count", count);
        root.put("list", array);
        out.print(JsonUtil.loadTrueResult(root));
    }
    
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -103,7 +103,7 @@
            JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex);
            // 2、顶部轮播图
            List<SwiperPicture> topPicList = getSwiperByCard("index_top");
            List<SwiperPicture> topPicList = swiperPictureService.getByBannerCard("index_top");
            if (topPicList == null) {
                topPicList = new ArrayList<SwiperPicture>();
            }
@@ -115,7 +115,7 @@
                    && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
                // 如果IOS当前版本处于审核状态就不返回
            } else {
                invitePicList = getSwiperByCard("index_invite");
                invitePicList = swiperPictureService.getByBannerCard("index_invite");
            }
            if (invitePicList == null) {
@@ -143,21 +143,6 @@
    }
    
    
    public List<SwiperPicture> getSwiperByCard(String card) {
        List<SwiperPicture> swiperList = null;
        try {
            swiperList = swiperPictureService.getByBannerCard(card);
        } catch (Exception e) {
            try {
                LogHelper.errorDetailInfo(e);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        }
        return swiperList;
    }
    
    
    /**
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/ShareStorageControllerV2.java
@@ -194,7 +194,9 @@
                }
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, null, fanLiRate, shareRate);
                detailVO.setId(commonGoods.getId());
                JSONObject dataObject = new JSONObject();
                dataObject.put("storageId", userGoodsStorage.getId());
                dataObject.put("goods", gson.toJson(detailVO));