admin
2018-12-04 62fbd9f556d6b114415ef48b4ed9d6dcde01b139
Merge branch 'dev-goods'

Conflicts:
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
2个文件已删除
21个文件已修改
1个文件已添加
1168 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java 333 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/web/WebRecommendController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/xcx/XcxRecommendController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/xcx/XcxUserInfoController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/goods/CollectionGoodsV2Mapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/goods/CollectionGoodsV2Mapper.xml 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CollectionGoodsServiceImpl.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CollectionGoodsV2ServiceImpl.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonGoodsServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/CollectionGoodsService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/CollectionGoodsV2Service.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/CommonGoodsService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/Constant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/factory/CollectionGoodsFactory.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/druid.properties 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/uml/模块划分.acd 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/test/java/org/fanli/TBImgTest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5QualityGoodsController.java
@@ -6,12 +6,11 @@
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
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 org.yeshi.utils.taobao.TbImgUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -19,13 +18,13 @@
import com.yeshi.fanli.entity.bus.lable.Label;
import com.yeshi.fanli.entity.bus.lable.MergeClass;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.bus.user.CollectionGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaobaoMeterial;
import com.yeshi.fanli.goods.CollectionGoodsV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.GoodsClassService;
import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
@@ -39,12 +38,13 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/apph5/v1/quality")
public class  AppH5QualityGoodsController {
public class AppH5QualityGoodsController {
    @Resource
    private LabelService labelService;
@@ -66,25 +66,22 @@
    @Resource
    private MergeClassService mergeClassService;
    @Resource
    private TaoBaoClassService taoBaoClassService;
    @Resource
    private SystemService systemService;
    @Resource
    private QualityGoodsService qualityGoodsService;
    @Resource
    private QualityFlashSaleService qualityFlashSaleService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    private CollectionGoodsV2Service collectionGoodsV2Service;
    /**
     * 9.9商品
     * 
@@ -95,7 +92,6 @@
    public void get9k9(String callback, Integer page, Long mcid, PrintWriter out) {
        get9k9ClassGoods("9.9", callback, page, mcid, out);
    }
    /**
     * 19.9商品
@@ -130,13 +126,15 @@
        get9k9ClassGoods("49.9", callback, page, mcid, out);
    }
    /**
     *  9k9类型的商品查询
     * @param labName æ ‡ç­¾åç§°
     * 9k9类型的商品查询
     *
     * @param labName
     *            æ ‡ç­¾åç§°
     * @param callback
     * @param page
     * @param mcid å¯¹åº”类目id
     * @param mcid
     *            å¯¹åº”类目id
     * @param out
     */
    public void get9k9ClassGoods(String labName, String callback, Integer page, Long mcid, PrintWriter out) {
@@ -148,14 +146,14 @@
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
                return;
            }
            Long labId = labs.get(0).getId();
            if (page == null)
                page = 1;
            int pageSize = Constant.PAGE_SIZE;
            JSONObject jsonGoods = queryGoodsSmallAmount(page, pageSize, mcid, labId);
            if (jsonGoods == null) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
@@ -173,7 +171,7 @@
            }
        }
    }
    /**
     * èŽ·å–å•†å“
     * 
@@ -196,7 +194,8 @@
        }
        // æ ¹æ®æ ‡ç­¾id æŸ¥è¯¢æ•°æ®
        List<QualityFactory> listQuery = qualityGoodsService.listQuerySmallAmount((page - 1) * pageSize, pageSize, null, labId, mergeCids);
        List<QualityFactory> listQuery = qualityGoodsService.listQuerySmallAmount((page - 1) * pageSize, pageSize, null,
                labId, mergeCids);
        // æ€»æ¡æ•°
        long count = qualityGoodsService.countQuerySmallAmount(null, labId, mergeCids);
@@ -205,7 +204,8 @@
        }
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
@@ -227,8 +227,8 @@
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            String pictUrl = taoBaoGoodsBrief.getPictUrl();
            if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
@@ -244,11 +244,7 @@
        return data;
    }
    /**
     * 9.9商品-每日必抢
     * 
@@ -293,9 +289,9 @@
        get9k9ClassToDayRob("49.9", callback, page, mcid, out, 1.0, 50.0);
    }
    /**
     * 9k9类型商品对应的每日必抢
     *
     * @param labName
     * @param callback
     * @param page
@@ -334,8 +330,7 @@
            }
        }
    }
    /**
     * æ¯æ—¥å¿…抢
     * 
@@ -345,32 +340,35 @@
     * @return
     * @throws Exception
     */
    public JSONObject queryEverydayRob(Integer page, Long labId, int sortField, Double startCouponAmount, Double endCouponAmount) throws Exception {
    public JSONObject queryEverydayRob(Integer page, Long labId, int sortField, Double startCouponAmount,
            Double endCouponAmount) throws Exception {
        if (page == null)
            page = 1;
        int pageSize = Constant.PAGE_SIZE;
        if (page > 3 ) {
        if (page > 3) {
            return null;// 20 æ¡ä¸€é¡µè¯·æ±‚到3页结束今日新品
        }
        // æ ¹æ®æ ‡ç­¾id æŸ¥è¯¢æ•°æ®
        List<QualityFactory> listQuery = qualityGoodsService.listQueryEverydayRob((page - 1) * pageSize, pageSize, null, labId, sortField, startCouponAmount, endCouponAmount);
        //  åªå–前50条数
        // æ ¹æ®æ ‡ç­¾id æŸ¥è¯¢æ•°æ®
        List<QualityFactory> listQuery = qualityGoodsService.listQueryEverydayRob((page - 1) * pageSize, pageSize, null,
                labId, sortField, startCouponAmount, endCouponAmount);
        // åªå–前50条数
        long count = 50;
        //long count = qualityGoodsService.countQueryEverydayRob(null, labId, startCouponAmount, endCouponAmount);
        // long count = qualityGoodsService.countQueryEverydayRob(null, labId,
        // startCouponAmount, endCouponAmount);
        if (listQuery == null || listQuery.size() == 0) {
            return null;
        }
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
@@ -392,13 +390,13 @@
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            String pictUrl = taoBaoGoodsBrief.getPictUrl();
            if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
            }
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
        }
@@ -409,7 +407,6 @@
        return data;
    }
    /**
     * å“ç‰Œè´­ ï¼ˆå®˜æ–¹æŽ¨èã€å“ç‰Œåˆ¸ã€‘接口)
@@ -440,19 +437,18 @@
                page = 1;
            int pageSize = Constant.PAGE_SIZE;
            JSONObject jsonObject = taoKeGoodsService.getBrandsGoods(materialId, page, pageSize);
            if (jsonObject == null) {
                JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(2, "没有更多了"));
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
                return;
            }
            JsonUtil.printMode(out, callback,JsonUtil.loadTrueResult(jsonObject));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(jsonObject));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("查询失败"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
            try {
                LogHelper.errorDetailInfo(e);
            } catch (Exception e1) {
@@ -460,7 +456,7 @@
            }
        }
    }
    /**
     * å“ç‰Œè´­ ï¼ˆå®˜æ–¹æŽ¨èã€å“ç‰Œåˆ¸ã€‘接口)
     * 
@@ -490,19 +486,18 @@
                page = 1;
            int pageSize = Constant.PAGE_SIZE;
            JSONObject jsonObject = taoKeGoodsService.getBrandsShops(materialId, page, pageSize);
            if (jsonObject == null) {
                JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(2, "没有更多了"));
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
                return;
            }
            JsonUtil.printMode(out, callback,JsonUtil.loadTrueResult(jsonObject));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(jsonObject));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("查询失败"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
            try {
                LogHelper.errorDetailInfo(e);
            } catch (Exception e1) {
@@ -570,7 +565,8 @@
        try {
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache(null, "有好货");
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache(null,
                    "有好货");
            if (taobaoMeterials == null || taobaoMeterials.size() == 0) {
                out.print(JsonUtil.loadFalseResult("暂无数据"));
@@ -606,13 +602,13 @@
            }
        }
    }
    /**
     * ä»Šæ—¥æ–°å“ã€ï¼ˆå®˜æ–¹æŽ¨èã€å¥½åˆ¸ç›´æ’­ã€‘接口)
     * 
     * @param page
     * @param subName å­ç±»åç§°
     * @param subName
     *            å­ç±»åç§°
     */
    @RequestMapping(value = "todayNew")
    public void todayNew(String callback, Integer page, String subName, String uid, PrintWriter out) {
@@ -638,16 +634,16 @@
            int pageSize = Constant.PAGE_SIZE;
            List<TaoBaoGoodsBrief> listMaterial = taoKeGoodsService.listByMaterial(materialId, page, pageSize);
            if (listMaterial == null || listMaterial.size() == 0) {
                JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult(2,"没有更多了"));
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
                return;
            }
            JSONArray array = new JSONArray();
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                    .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
            Map<String, String> map = manageService.convertMap();
            String proportion = map.get("hongbao_goods_proportion");
@@ -655,7 +651,7 @@
            /* éåŽ†åˆ—è¡¨æ•°æ® */
            for (TaoBaoGoodsBrief taoBaoGoodsBrief : listMaterial) {
                int biz30day = taoBaoGoodsBrief.getBiz30day();
                if (biz30day >= 10000) {
                    double sales = biz30day;
@@ -664,25 +660,26 @@
                } else {
                    taoBaoGoodsBrief.setSalesCount(biz30day + "");
                }
                // æ”¹å˜å›¾ç‰‡å°ºå¯¸  å¤§å›¾æ›´æ¸…æ™°
                // æ”¹å˜å›¾ç‰‡å°ºå¯¸ å¤§å›¾æ›´æ¸…æ™°
                String pictUrl = taoBaoGoodsBrief.getPictUrl();
                pictUrl = pictUrl.replaceAll("320x320", "640x640");
                taoBaoGoodsBrief.setPictUrl(pictUrl);
                int collected = 0;
                // åˆ¤æ–­æ”¶è—
                if (!StringUtil.isNullOrEmpty(uid)) {
                    CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid),
                            taoBaoGoodsBrief.getAuctionId());
                    CollectionGoodsV2 collectionGoods = collectionGoodsV2Service
                            .findByUidAndAuctionId(Long.parseLong(uid), taoBaoGoodsBrief.getAuctionId());
                    if (collectionGoods != null) {
                        collected = 1;
                    }
                }
                TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null);
                TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
                        proportion, fcRate, null);
                taoBaoGoodsBriefExtra.setCollected(collected);
                array.add(gson.toJson(taoBaoGoodsBriefExtra));
            }
@@ -690,11 +687,10 @@
            data.put("result_list", array);
            data.put("count", 1000);
            JsonUtil.printMode(out, callback,JsonUtil.loadTrueResult(data));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback,JsonUtil.loadFalseResult("查询失败"));
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
            try {
                LogHelper.errorDetailInfo(e);
            } catch (Exception e1) {
@@ -703,9 +699,6 @@
        }
    }
    /**
     * æ½®å“çƒ­å–(官方推荐中的【潮流范】)
     * 
@@ -717,8 +710,8 @@
        try {
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache(null, "潮流范");
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache(null,
                    "潮流范");
            if (taobaoMeterials == null || taobaoMeterials.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
@@ -735,7 +728,7 @@
            if (page == null) {
                page = 1;
            }
            int pageSize = Constant.PAGE_SIZE;
            JSONObject jsonObject = queryMaterialGoods(page, pageSize, materialId);
@@ -768,8 +761,9 @@
    public void getPregnantBaby(AcceptData acceptData, String callback, Integer page, String subName, PrintWriter out) {
        try {
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache(subName, "母婴主题");
            List<TaobaoMeterial> taobaoMeterials = taobaoMeterialService.selectByClassNameAndSuperNameCache(subName,
                    "母婴主题");
            if (taobaoMeterials == null || taobaoMeterials.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
@@ -825,7 +819,8 @@
        }
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
@@ -842,8 +837,8 @@
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            String pictUrl = taoBaoGoodsBrief.getPictUrl();
            if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
@@ -860,42 +855,42 @@
    }
    /**
     * é™æ—¶æŠ¢è´­
     *
     * @param callback
     * @param page
     * @param out
     */
    @RequestMapping("getFlashSale")
    public void getFlashSale(String callback, Integer page, PrintWriter out) {
        if (page == null)
            page = 1;
        int pageSize = Constant.PAGE_SIZE;
        int type = qualityFlashSaleService.getNowType();
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByFlashSale((page - 1) * pageSize, pageSize);
         //精选库数据为空
        // ç²¾é€‰åº“数据为空
        if (listQuery == null || listQuery.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
        }
        long count = 3000;
         // ç²¾é€‰åº“数据处理返回 å‰ç«¯
        // ç²¾é€‰åº“数据处理返回 å‰ç«¯
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
        String fcRate = map.get("hongbao_fc_ratio");
         //遍历列表数据
        // éåŽ†åˆ—è¡¨æ•°æ®
        for (QualityFactory quality : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
@@ -912,13 +907,13 @@
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            String pictUrl = taoBaoGoodsBrief.getPictUrl();
            if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
            }
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
        }
@@ -926,13 +921,13 @@
        data.put("count", count);
        data.put("type", type);
        data.put("result_list", array);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
    /**
     * å¤§é¢åˆ¸ï¼ˆåˆ¸é¢å€¼èŒƒå›´ï¼‰
     *
     * @param callback
     * @param amount
     * @param page
@@ -940,17 +935,15 @@
     */
    @RequestMapping("choiceCouponAmount")
    public void choiceCouponAmount(String callback, Integer amount, Integer page, PrintWriter out) {
        if (page == null)
            page = 1;
        int pageSize = Constant.PAGE_SIZE;
        Integer startAmount = null;
        Integer endAmount =  null ;
        Integer endAmount = null;
        if (amount.equals(1)) {
            startAmount = 5;
            endAmount = 10;
@@ -963,29 +956,29 @@
        } else if (amount.equals(4)) {
            startAmount = 50;
        }
        Integer startPropor = 20;
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByCouponAmount((page - 1) * pageSize,
                pageSize, startAmount, endAmount, startPropor);
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByCouponAmount((page - 1) * pageSize, pageSize,
                startAmount, endAmount, startPropor);
        if (listQuery == null || listQuery.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
        }
        long count = qualityGoodsService.countQueryByCouponAmount(startAmount, endAmount, startPropor);
         // ç²¾é€‰åº“数据处理返回 å‰ç«¯
        // ç²¾é€‰åº“数据处理返回 å‰ç«¯
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
        String fcRate = map.get("hongbao_fc_ratio");
         //遍历列表数据
        // éåŽ†åˆ—è¡¨æ•°æ®
        for (QualityFactory selectionGoods : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
@@ -1002,13 +995,13 @@
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            String pictUrl = taoBaoGoodsBrief.getPictUrl();
            if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
            }
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
        }
@@ -1017,11 +1010,10 @@
        data.put("result", array);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
    /**
     * è¶…高奖金
     *
     * @param callback
     * @param page
     * @param type
@@ -1029,16 +1021,15 @@
     */
    @RequestMapping("choiceRebate")
    public void choiceRebate(String callback, Integer page, Integer type, PrintWriter out) {
        if (page == null)
            page = 1;
        int pageSize = Constant.PAGE_SIZE;
        Integer startAmount = null;
        Integer endAmount =  null ;
        Integer endAmount = null;
        if (type.equals(1)) {
            startAmount = 1;
            endAmount = 5;
@@ -1051,30 +1042,29 @@
        } else if (type.equals(4)) {
            startAmount = 15;
        }
        double tkRate = 20.00;
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
        String fcRate = map.get("hongbao_fc_ratio");
        List<QualityFactory> listQuery = qualityGoodsService.listQueryByRebateAmount((page - 1) * pageSize, pageSize,
                proportion, startAmount, endAmount, tkRate);
        if (listQuery == null || listQuery.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
        }
        long count = qualityGoodsService.countQueryByRebateAmount(proportion, startAmount, endAmount, tkRate);
         // ç²¾é€‰åº“数据处理返回 å‰ç«¯
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
         //遍历列表数据
        long count = qualityGoodsService.countQueryByRebateAmount(proportion, startAmount, endAmount, tkRate);
        // ç²¾é€‰åº“数据处理返回 å‰ç«¯
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        // éåŽ†åˆ—è¡¨æ•°æ®
        for (QualityFactory quality : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
@@ -1091,25 +1081,26 @@
            } else {
                taoBaoGoodsBrief.setSalesCount(biz30day + "");
            }
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            // æ”¹å˜å›¾ç‰‡å°ºå¯¸
            String pictUrl = taoBaoGoodsBrief.getPictUrl();
            if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
                taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
            }
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null)));
        }
        JSONObject data = new JSONObject();
        data.put("count", count);
        data.put("result_list", array);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
    /**
     * è¶…高奖金
     *
     * @param callback
     * @param page
     * @param type
@@ -1117,31 +1108,29 @@
     */
    @RequestMapping("recommendToIndex")
    public void recommendToIndex(String callback, Integer page, PrintWriter out) {
        if (page == null)
            page = 1;
        int pageSize = Constant.PAGE_SIZE;
        Map<String, String> map = manageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
        String fcRate = map.get("hongbao_fc_ratio");
        JSONArray array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize,
                proportion, fcRate);
        JSONArray array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize, proportion, fcRate);
        if (array == null) {
            out.print(JsonUtil.loadFalseResult("没有更多了"));
            return;
        }
        long count = qualityGoodsService.countRecommendToIndex(proportion);
        JSONObject data = new JSONObject();
        data.put("count", count);
        data.put("result_list", array);
        out.print(JsonUtil.loadTrueResult(data));
        return;
    }
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -12,9 +12,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -62,13 +59,16 @@
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
import com.yeshi.fanli.goods.CollectionGoodsV2;
import com.yeshi.fanli.goods.CommonGoods;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.JumpDetailService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.HonestService;
import com.yeshi.fanli.service.inter.goods.RecommendBannerService;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
@@ -103,6 +103,9 @@
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/v1/user")
@@ -160,7 +163,7 @@
    private HonestService honestService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    private CollectionGoodsV2Service collectionGoodsV2Service;
    @Resource
    private HongBaoManageMapper hongBaoManageMapper;
@@ -206,6 +209,9 @@
    @Resource
    private MonitorService monitorService;
    @Resource
    private CommonGoodsService commonGoodsService;
    @RequestMapping(value = "getrecommendsection")
    public void getRecommendSection(AcceptData acceptData, int index, PrintWriter out) {
@@ -689,7 +695,7 @@
                taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(tb.getCouponLink());
            taoBaoGoodsBriefExtra.setAuctionUrl(tb.getAuctionUrl());
            if (uid != null && !"".equals(uid.trim())) {
                CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid),
                CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                        Long.parseLong(id));
                data.put("collection", collectionGoods != null ? true : false);
            }
@@ -977,7 +983,7 @@
        // åˆ¤æ–­æ”¶è—
        if (!StringUtil.isNullOrEmpty(uid)) {
            CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid),
            CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                    Long.parseLong(id));
            data.put("collected", collectionGoods != null ? true : false);
        } else
@@ -1169,7 +1175,9 @@
            if (goods == null)// å•†å“ä¸‹çº¿
            {
                // ä»Žæˆ‘们的商品库搜索
                CollectionGoods cgoods = collectionGoodsService.findByAuctionId(id);
                CommonGoods cgoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(id,
                        CommonGoods.GOODS_TYPE_TB);
                if (cgoods != null) {// å•†å“æœ‰æœ¬åœ°ç¼“å­˜
                    // æŒ‰åå­—搜索商品
                    SearchFilter sf = new SearchFilter();
@@ -1890,7 +1898,7 @@
        if (StringUtil.isNullOrEmpty(uid)) {
            data.put("collected", false);
        } else {
            CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid),
            CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                    Long.parseLong(id));
            data.put("collected", collectionGoods != null ? true : false);
        }
@@ -2082,8 +2090,8 @@
            if (goods == null) {
                // ä»Žæˆ‘们的商品库搜索
                CollectionGoods cgoods = collectionGoodsService.findByAuctionId(id);
                CommonGoods cgoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(id,
                        CommonGoods.GOODS_TYPE_TB);
                // å•†å“æœ‰æœ¬åœ°ç¼“å­˜
                if (cgoods != null) {
                    // æŒ‰åå­—搜索商品
@@ -2101,9 +2109,7 @@
                            }
                            goodsList.add(gds);
                        }
                    }
                }
            }
fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java
@@ -9,6 +9,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.alipay.api.AlipayApiException;
import com.yeshi.fanli.entity.accept.AcceptData;
@@ -29,7 +30,6 @@
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.InviteGetMoneyService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoMessageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
@@ -49,13 +49,11 @@
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.WxDownService;
import com.yeshi.fanli.util.GsonUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONObject;
@@ -118,12 +116,7 @@
    private AccountMessageService accountMessageService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private WxDownService wxDownService;
    @Resource
    private UserAccountService userAccountService;
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
@@ -15,9 +15,6 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.beanutils.PropertyUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -38,7 +35,6 @@
import com.yeshi.fanli.entity.bus.user.AccountDetails;
import com.yeshi.fanli.entity.bus.user.AccountMessage;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
import com.yeshi.fanli.entity.bus.user.CollectionGoods;
import com.yeshi.fanli.entity.bus.user.Extract;
import com.yeshi.fanli.entity.bus.user.ExtractRecord;
import com.yeshi.fanli.entity.bus.user.HongBao;
@@ -59,10 +55,13 @@
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.exception.BindingAccountException;
import com.yeshi.fanli.exception.ObjectStateException;
import com.yeshi.fanli.exception.goods.CollectionGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.goods.CollectionGoodsV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoMessageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
@@ -94,6 +93,9 @@
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/v1/customer")
@@ -134,7 +136,7 @@
    @Resource
    private ThreeSaleSerivce threeSaleSerivce;
    @Resource
    private ThreeSaleExtraInfoSerivce threeSaleExtraInfoSerivce;
@@ -150,8 +152,6 @@
    @Resource
    private AccountMessageService accountMessageService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    @Resource
    private HongBaoManageService hongBaoManageService;
@@ -169,6 +169,9 @@
    @Resource
    private UserActiveLogService userActiveLogService;
    @Resource
    private CollectionGoodsV2Service collectionGoodsV2Service;
    private static final String PASSWORD_MAX_ERROR = "password_max_error";
    private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -1419,24 +1422,32 @@
    @RequestMapping("collectionGoods")
    public void collectionGoods(AcceptData acceptData, long uid, long auctionId, int type, PrintWriter out) {
        CollectionGoods find = collectionGoodsService.findByUidAndAuctionId(uid, auctionId);
        CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId);
        if (type == 1) {
            if (find != null) {
                out.print(JsonUtil.loadFalseResult(""));
                return;
            }
            CollectionGoods cg = TaoBaoUtil.getCollectionGoods(auctionId, new UserInfo(uid));
            collectionGoodsService.save(cg);
            out.print(JsonUtil.loadTrueResult("收藏成功"));
            return;
            try {
                TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
                collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
                out.print(JsonUtil.loadTrueResult("收藏成功"));
            } catch (TaobaoGoodsDownException e) {
                out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
            } catch (CollectionGoodsException e1) {
                out.print(JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
            }
        } else {
            if (find == null) {
                out.print(JsonUtil.loadTrueResult("取消收藏成功"));
                return;
            } else {
                collectionGoodsService.delete(find);
                out.print(JsonUtil.loadTrueResult("取消收藏成功"));
                return;
                try {
                    collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId);
                    out.print(JsonUtil.loadTrueResult("取消收藏成功"));
                } catch (CollectionGoodsException e) {
                    out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
                }
            }
        }
@@ -1459,37 +1470,51 @@
            return;
        }
        CollectionGoods find = collectionGoodsService.findByUidAndAuctionId(uid, auctionId);
        CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId);
        if (find == null) {
            // æ·»åŠ æ”¶è—
            CollectionGoods cg = TaoBaoUtil.getCollectionGoods(auctionId, new UserInfo(uid));
            collectionGoodsService.save(cg);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(1));
            try {
                TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
                collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
                JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(1));
            } catch (TaobaoGoodsDownException e) {
                JsonUtil.printMode(out, callback, (JsonUtil.loadFalseResult(1, "商品已下架")));
            } catch (CollectionGoodsException e1) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
            }
        } else {
            // å–消收藏
            collectionGoodsService.delete(find);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(0));
            try {
                collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId);
                JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("取消收藏成功"));
            } catch (CollectionGoodsException e) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
            }
        }
    }
    @RequestMapping("collectionGoodsList")
    public void collectionGoodsList(AcceptData acceptData, long uid, int page, PrintWriter out) {
        List<CollectionGoods> coList = collectionGoodsService.findCollectionGoods(uid, page + 1);
        int count = collectionGoodsService.getCount(uid);
        List<CollectionGoodsV2> collectionGoodsList = collectionGoodsV2Service.getCollectionGoodsList(uid, page + 1,
                Constant.PAGE_SIZE);
        // List<CollectionGoods> coList =
        // collectionGoodsService.findCollectionGoods(uid, page + 1);
        long count = collectionGoodsV2Service.getCollectionGoodsCount(uid);
        JSONObject data = new JSONObject();
        Map<String, String> map = hongBaoManageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
        String fcRate = map.get("hongbao_fc_ratio");
        List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
        coList.parallelStream().forEachOrdered(cg -> {
            TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.getTaoBaoGoodsBrief(cg);
        collectionGoodsList.parallelStream().forEachOrdered(cg -> {
            TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(cg.getCommonGoods());
            goodsBrief.setSalesCount(TaoBaoUtil.getSaleCount(goodsBrief.getBiz30day()));
            TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion,
                    fcRate, "");
            taoBaoGoodsBriefExtra.setCreatetime(new Date(cg.getCreateTime()));
            taoBaoGoodsBriefExtra.setCreatetime(cg.getCreateTime());
            list.add(taoBaoGoodsBriefExtra);
        });
        GsonBuilder builder = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
@@ -1517,7 +1542,11 @@
        } else {
            if (!StringUtil.isNullOrEmpty(ids)) {
                Arrays.asList(ids.split(",")).parallelStream().forEach(auctionIdStr -> {
                    collectionGoodsService.delete(Long.parseLong(auctionIdStr), uid);
                    try {
                        collectionGoodsV2Service.cancelCollectionByAuctionId(uid, Long.parseLong(auctionIdStr));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                });
            }
        }
@@ -1526,7 +1555,12 @@
    @RequestMapping("clearConllectionGoods")
    public void clearConllectionGoods(AcceptData acceptData, long uid, PrintWriter out) {
        collectionGoodsService.clear(uid);
        try {
            collectionGoodsV2Service.cancelCollectionByUid(uid);
        } catch (CollectionGoodsException e) {
            e.printStackTrace();
            out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
        }
        out.print(JsonUtil.loadTrueResult("删除成功"));
    }
@@ -1590,34 +1624,34 @@
                .loadTrueResult(String.format("%s?id=" + id, Constant.systemCommonConfig.getAppShareInfoUrl())));
    }
    /**
     * ç”¨æˆ·é˜Ÿå‘˜åˆ—表查询 1.4.1
     *
     * @param acceptData
     * @param id
     * @param out
     */
    @RequestMapping(value = "getMyTeam", method = RequestMethod.POST)
    public void getMyTeam(AcceptData acceptData, long page, long uid, long type, PrintWriter out) {
        int pageSize = Constant.PAGE_SIZE;
        JSONObject resultData = new JSONObject();
        if (type == 1) {
            resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid);
        } else if (type == 2) {
            resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid);
        }
        }
        // å®‰å“系统返回所有数据
        String platform = acceptData.getPlatform();
        if ("android".equalsIgnoreCase(platform)) {
            long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
            long firstTeamTotal = threeSaleSerivce.countFirstTeam(uid, null);
            long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
            long secondTeamTotal = threeSaleSerivce.countSecondTeam(uid, null);
            JSONObject bossData = null;
            ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
            if (threeSale != null) {
@@ -1627,13 +1661,13 @@
                    bossData.put("nickName", boss.getNickName());
                    bossData.put("portrait", boss.getPortrait());
                }
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
                Long createTime = threeSale.getCreateTime();
                Date inviteTime = new Date(createTime);
                bossData.put("inviteTime", "邀请时间: " + sdf.format(inviteTime));
            }
            String helpLink = configService.get("team_help_url");
            if (helpLink == null) {
                helpLink = "";
@@ -1645,44 +1679,41 @@
            resultData.put("secondTeamTotal", secondTeamTotal);
            resultData.put("boss", bossData);
        }
        out.print(JsonUtil.loadTrueResult(resultData));
    }
    /**
     * ç”¨æˆ·é˜Ÿå‘˜ç»Ÿè®¡ 1.4.1
     *
     * @param acceptData
     * @param id
     * @param out
     */
    @RequestMapping(value = "countMyTeam", method = RequestMethod.POST)
    public void countMyTeam(AcceptData acceptData, long uid, PrintWriter out) {
        long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
        long firstTeamTotal = threeSaleSerivce.countFirstTeam(uid, null);
        long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
        long secondTeamTotal = threeSaleSerivce.countSecondTeam(uid, null);
        JSONObject bossData = null;
        JSONObject bossData = new JSONObject();
        ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
        if (threeSale != null) {
            bossData = new JSONObject();
            UserInfo boss = threeSale.getBoss();
            if (boss != null) {
                bossData.put("nickName", boss.getNickName());
                bossData.put("portrait", boss.getPortrait());
            }
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
            Long createTime = threeSale.getCreateTime();
            Date inviteTime = new Date(createTime);
            bossData.put("inviteTime", "邀请时间: " + sdf.format(inviteTime));
        }
        JSONObject resultData = new JSONObject();
        String helpLink = configService.get("team_help_url");
        if (helpLink == null) {
            helpLink = "";
@@ -1693,69 +1724,73 @@
        resultData.put("secondTeam", secondTeam);
        resultData.put("secondTeamTotal", secondTeamTotal);
        resultData.put("boss", bossData);
        out.print(JsonUtil.loadTrueResult(resultData));
    }
    /**
     * ç”¨æˆ·é˜Ÿå‘˜ä¿¡æ¯ä¿å­˜ 1.4.1
     *
     * @param acceptData
     * @param uid
     * @param inviteId é‚€è¯·id
     * @param inviteId
     *            é‚€è¯·id
     * @param nickname
     * @param out
     */
    @RequestMapping(value = "setextrainfo", method = RequestMethod.POST)
    public void setExtraInfo(AcceptData acceptData, long uid, long inviteId, String memoName, PrintWriter out) {
        try {
            List<ThreeSale> listThreeSale = threeSaleSerivce.listbyIdAndBossId(inviteId, uid, null);
            if (listThreeSale == null || listThreeSale.size() == 0) {
                out.print(JsonUtil.loadFalseResult("该记录不存在"));
                return;
            }
            UserInfo worker = listThreeSale.get(0).getWorker();
            if (worker == null) {
                out.print(JsonUtil.loadFalseResult("该记录不存在"));
                return;
            }
            List<ThreeSaleExtraInfo> list = threeSaleExtraInfoSerivce.listbyBossIdAndWorkerId(uid, worker.getId());
            if (list == null || list.size() == 0) {
                ThreeSaleExtraInfo extraInfo = new ThreeSaleExtraInfo();
                extraInfo.setWorker(worker);
                extraInfo.setNickname(memoName);
                extraInfo.setCreateTime(new Date());
                extraInfo.setUpdateTime(new Date());
                UserInfo boss = new UserInfo(uid);
                extraInfo.setBoss(boss);
                threeSaleExtraInfoSerivce.insert(extraInfo);
            } else {
                ThreeSaleExtraInfo extraInfo = list.get(0);
                extraInfo.setNickname(memoName);
                extraInfo.setUpdateTime(new Date());
                threeSaleExtraInfoSerivce.updateByPrimaryKey(extraInfo);
            }
            out.print(JsonUtil.loadTrueResult("保存成功"));
        } catch (Exception e) {
            out.print(JsonUtil.loadFalseResult("保存失败"));
            e.printStackTrace();
        }
    }
    /**
     * åˆ é™¤é˜Ÿå‘˜å…³ç³»
     *
     * @param acceptData
     * @param uid
     * @param inviteId é‚€è¯·id
     * @param inviteId
     *            é‚€è¯·id
     * @param out
     */
    @RequestMapping(value = "removethreesale", method = RequestMethod.POST)
@@ -1766,24 +1801,24 @@
                out.print(JsonUtil.loadFalseResult("操作数据无效"));
                return;
            }
            UserInfo worker = listThreeSale.get(0).getWorker();
            if (worker == null) {
                out.print(JsonUtil.loadFalseResult("操作数据无效"));
                return;
            }
            // åˆ é™¤å…³ç³»
            threeSaleSerivce.deleteByPrimaryKey(inviteId);
            // åˆ é™¤å¤‡æ³¨
            threeSaleExtraInfoSerivce.deleteByBossIdAndWorkerId(uid, worker.getId());
            out.print(JsonUtil.loadTrueResult("删除成功"));
        } catch (Exception e) {
            out.print(JsonUtil.loadFalseResult("删除失败"));
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/h5/H5RecommendController.java
@@ -11,6 +11,7 @@
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;
@@ -32,7 +33,6 @@
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
@@ -49,7 +49,6 @@
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -78,9 +77,6 @@
    @Resource
    private SystemService systemService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    @Resource
    private ConfigService configService;
fanli/src/main/java/com/yeshi/fanli/controller/web/WebRecommendController.java
@@ -11,6 +11,7 @@
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;
@@ -20,17 +21,17 @@
import com.yeshi.fanli.entity.bus.recommend.RecommendSectionGoods;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendSection;
import com.yeshi.fanli.entity.bus.user.CollectionGoods;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.entity.taobao.ScanHistory;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.goods.CollectionGoodsV2;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendSectionService;
@@ -44,7 +45,6 @@
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -75,7 +75,7 @@
    private SystemService systemService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    private CollectionGoodsV2Service collectionGoodsV2Service;
    @Resource
    private ConfigService configService;
@@ -290,7 +290,7 @@
                taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(tb.getCouponLink());
            if (uid != null && !"".equals(uid.trim())) {
                CollectionGoods collectionGoods = collectionGoodsService.findByUidAndAuctionId(Long.parseLong(uid),
                CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                        Long.parseLong(id));
                data.put("collection", collectionGoods != null ? true : false);
            }
fanli/src/main/java/com/yeshi/fanli/controller/xcx/XcxRecommendController.java
@@ -8,6 +8,7 @@
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;
@@ -21,7 +22,6 @@
import com.yeshi.fanli.service.inter.config.JumpDetailService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.HonestService;
import com.yeshi.fanli.service.inter.goods.RecommendBannerService;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
@@ -43,7 +43,6 @@
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONObject;
@@ -108,8 +107,7 @@
    @Resource
    private HonestService honestService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    @Resource
    private HongBaoManageMapper hongBaoManageMapper;
fanli/src/main/java/com/yeshi/fanli/controller/xcx/XcxUserInfoController.java
@@ -11,22 +11,26 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.IPUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.tencentcloud.COSManager;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.CollectionGoods;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.exception.goods.CollectionGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.goods.CollectionGoodsV2;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoMessageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
@@ -45,14 +49,13 @@
import com.yeshi.fanli.service.inter.user.WxDownService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.IPUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.tencentcloud.COSManager;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/xcx/v1/XcxCustomer")
@@ -107,12 +110,15 @@
    private AccountMessageService accountMessageService;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    private CollectionGoodsV2Service collectionGoodsV2Service;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private WxDownService wxDownService;
    @Resource
    private RedisManager redisManager;
    /**
     * èŽ·å–ç”¨æˆ·ä¿¡æ¯
@@ -194,9 +200,10 @@
            // æŸ¥è¯¢åˆ°çš„用户信息为空,那么需要填充一些用户信息
            if (loginType == Constant.WEIXIN) {
                form.setPortrait(weiXinUser.getHeadimgurl());
                String wxHeadImg = COSManager.getInstance().uploadFile(
                        HttpUtil.getAsInputStream(weiXinUser.getHeadimgurl()),
                        Constant.WXHEADURL + UUID.randomUUID().toString()).getUrl();
                String wxHeadImg = COSManager.getInstance()
                        .uploadFile(HttpUtil.getAsInputStream(weiXinUser.getHeadimgurl()),
                                Constant.WXHEADURL + UUID.randomUUID().toString())
                        .getUrl();
                form.setWxPic(wxHeadImg);
                form.setNickName(weiXinUser.getNickname());
                form.setWxName(weiXinUser.getNickname());
@@ -259,9 +266,10 @@
                form.setPortrait(xinUser.getHeadimgurl());
                form.setNickName(xinUser.getNickname());
                form.setWxName(xinUser.getNickname());
                String wxHeadImg = COSManager.getInstance().uploadFile(
                        HttpUtil.getAsInputStream(xinUser.getHeadimgurl()),
                        Constant.WXHEADURL + UUID.randomUUID().toString()).getUrl();
                String wxHeadImg = COSManager.getInstance()
                        .uploadFile(HttpUtil.getAsInputStream(xinUser.getHeadimgurl()),
                                Constant.WXHEADURL + UUID.randomUUID().toString())
                        .getUrl();
                form.setWxPic(wxHeadImg);
            } else if (formLoginType == Constant.TAOBAO) {
                form.setTbName(form.getNickName());
@@ -348,24 +356,32 @@
     */
    @RequestMapping("collectionGoods")
    public void collectionGoods(long uid, long auctionId, int type, PrintWriter out) {
        CollectionGoods find = collectionGoodsService.findByUidAndAuctionId(uid, auctionId);
        CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId);
        if (type == 1) {
            if (find != null) {
                out.print(JsonUtil.loadFalseResult("您已收藏"));
                out.print(JsonUtil.loadFalseResult(""));
                return;
            }
            CollectionGoods cg = TaoBaoUtil.getCollectionGoods(auctionId, new UserInfo(uid));
            collectionGoodsService.save(cg);
            out.print(JsonUtil.loadTrueResult("收藏成功"));
            return;
            try {
                TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
                collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
                out.print(JsonUtil.loadTrueResult("收藏成功"));
            } catch (TaobaoGoodsDownException e) {
                out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
            } catch (CollectionGoodsException e1) {
                out.print(JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
            }
        } else {
            if (find == null) {
                out.print(JsonUtil.loadTrueResult("取消收藏成功"));
                return;
            } else {
                collectionGoodsService.delete(find);
                out.print(JsonUtil.loadTrueResult("取消收藏成功"));
                return;
                try {
                    collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId);
                    out.print(JsonUtil.loadTrueResult("取消收藏成功"));
                } catch (CollectionGoodsException e) {
                    out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
                }
            }
        }
    }
@@ -381,20 +397,20 @@
     */
    @RequestMapping("collectionGoodsList")
    public void collectionGoodsList(long uid, int page, int pageSize, PrintWriter out) {
        List<CollectionGoods> coList = collectionGoodsService.findCollectionGoods(uid, page);
        int count = collectionGoodsService.getCount(uid);
        List<CollectionGoodsV2> coList = collectionGoodsV2Service.getCollectionGoodsList(uid, page, pageSize);
        long count = collectionGoodsV2Service.getCollectionGoodsCount(uid);
        JSONObject data = new JSONObject();
        Map<String, String> map = hongBaoManageService.convertMap();
        String proportion = map.get("hongbao_goods_proportion");
        String fcRate = map.get("hongbao_fc_ratio");
        List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
        coList.parallelStream().forEachOrdered(cg -> {
            TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.getTaoBaoGoodsBrief(cg);
            TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(cg.getCommonGoods());
            TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion,
                    fcRate,"");
                    fcRate, "");
            list.add(taoBaoGoodsBriefExtra);
        });
        int totalPage = count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
        int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
        data.put("totalPage", totalPage);
        data.put("list", GsonUtil.toJsonExpose(list));
        data.put("count", count);
@@ -414,7 +430,11 @@
    public void deleteCollectionGoods(String ids, long uid, PrintWriter out) {
        if (ids != null) {
            Arrays.asList(ids.split(",")).parallelStream().forEach(auctionIdStr -> {
                collectionGoodsService.delete(Long.parseLong(auctionIdStr), uid);
                try {
                    collectionGoodsV2Service.cancelCollection(uid, Long.parseLong(auctionIdStr));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            });
        }
@@ -431,7 +451,11 @@
     */
    @RequestMapping("clearConllectionGoods")
    public void clearConllectionGoods(long uid, PrintWriter out) {
        collectionGoodsService.clear(uid);
        try {
            collectionGoodsV2Service.cancelCollectionByUid(uid);
        } catch (CollectionGoodsException e) {
            e.printStackTrace();
        }
        out.print(JsonUtil.loadTrueResult("删除成功"));
    }
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/goods/CollectionGoodsV2Mapper.java
@@ -46,6 +46,25 @@
     * @param uid
     * @return
     */
    List<CollectionGoodsV2> selectCountByUid(@Param("uid") Long uid);
    long selectCountByUid(@Param("uid") Long uid);
    /**
     * æ ¹æ®ç”¨æˆ·ID,商品ID,商品类型查询商品
     *
     * @param id
     * @param goodsType
     * @param goodsId
     * @return
     */
    CollectionGoodsV2 selectByUidAndGoodsTypeAndGoodsId(@Param("uid") Long uid, @Param("goodsType") int goodsType,
            @Param("goodsId") Long goodsId);
    /**
     * æ ¹æ®UID删除收藏
     *
     * @param uid
     * @return
     */
    int deleteByUid(@Param("uid") Long uid);
}
fanli/src/main/java/com/yeshi/fanli/mapping/goods/CollectionGoodsV2Mapper.xml
@@ -12,8 +12,7 @@
        </association>
        <association property="commonGoods" column="cg_common_goods_id"
            javaType="com.yeshi.fanli.goods.CommonGoods"
            resultMap="com.yeshi.fanli.dao.mybatis.goods.CommonGoodsMapper.BaseResultMap">
            select="com.yeshi.fanli.dao.mybatis.goods.CommonGoodsMapper.selectByPrimaryKey">
        </association>
    </resultMap>
@@ -47,7 +46,7 @@
    <!-- èŽ·å–æ”¶è—çš„æ•°é‡ -->
    <select id="selectCountByUid" resultMap="BaseResultMap"
    <select id="selectCountByUid" resultType="java.lang.Long"
        parameterType="java.lang.Long">
        select
        count(cg_id)
@@ -55,6 +54,26 @@
        where cg_uid = #{uid}
    </select>
    <select id="selectByUidAndGoodsTypeAndGoodsId" resultMap="BaseResultMap">
        select
        v2.*
        from yeshi_ec_collection_goods_v2 v2 left join
        yeshi_ec_common_goods g
        on g.cg_id=v2.cg_common_goods_id
        where v2.cg_uid
        = #{uid} and
        g.cg_goods_id=#{goodsId} and g.cg_goods_type=#{goodsType}
        limit 1
    </select>
    <!-- æ ¹æ®UID删除收藏 -->
    <delete id="deleteByUid" parameterType="java.lang.Long">delete from
        yeshi_ec_collection_goods_v2 where cg_uid = #{uid}
    </delete>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
        yeshi_ec_collection_goods_v2 where cg_id = #{id,jdbcType=BIGINT}
    </delete>
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CollectionGoodsServiceImpl.java
File was deleted
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CollectionGoodsV2ServiceImpl.java
@@ -62,7 +62,27 @@
        collectionGoodsV2Mapper.insertSelective(collectionGoodsV2);
    }
    @Override
    public void addCollection(CollectionGoodsV2 goods) throws CollectionGoodsException {
        if (goods.getUserInfo() == null || goods.getCommonGoods() == null)
            throw new CollectionGoodsException(1, "数据不完整");
        try {
            CommonGoods commonGoods = commonGoodsService.addOrUpdateCommonGoods(goods.getCommonGoods());
            goods.setCommonGoods(commonGoods);
        } catch (CommonGoodsException e) {
            goods.setCommonGoods(null);
        }
        if (goods.getCommonGoods() == null)
            throw new CollectionGoodsException(3, "商品信息添加失败");
        CollectionGoodsV2 collectionGoodsV2 = collectionGoodsV2Mapper
                .selectByUidAndCommonGoodsId(goods.getUserInfo().getId(), goods.getCommonGoods().getId());
        if (collectionGoodsV2 != null)
            throw new CollectionGoodsException(4, "商品已被收藏");
        collectionGoodsV2Mapper.insertSelective(goods);
    }
    @Transactional
    @Override
    public void cancelCollection(Long uid, Long id) throws CollectionGoodsException {
@@ -82,12 +102,33 @@
    @Override
    public List<CollectionGoodsV2> getCollectionGoodsList(Long uid, int page, int pageSize) {
        return null;
        return collectionGoodsV2Mapper.selectByUidOrderByCreateTimeDesc(uid, (page - 1) * pageSize, pageSize);
    }
    @Override
    public long getCollectionGoodsCount(Long uid) {
        return 0;
        return collectionGoodsV2Mapper.selectCountByUid(uid);
    }
    @Override
    public void cancelCollectionByAuctionId(Long uid, Long auctionId) throws CollectionGoodsException {
        CollectionGoodsV2 goodsV2 = collectionGoodsV2Mapper.selectByUidAndGoodsTypeAndGoodsId(uid,
                CommonGoods.GOODS_TYPE_TB, auctionId);
        if (goodsV2 == null)
            throw new CollectionGoodsException(1, "无收藏");
        collectionGoodsV2Mapper.deleteByPrimaryKey(goodsV2.getId());
    }
    @Override
    public void cancelCollectionByUid(Long uid) throws CollectionGoodsException {
        collectionGoodsV2Mapper.deleteByUid(uid);
    }
    @Override
    public CollectionGoodsV2 findByUidAndAuctionId(Long uid, Long actionId) {
        CollectionGoodsV2 v2 = collectionGoodsV2Mapper.selectByUidAndGoodsTypeAndGoodsId(uid, CommonGoods.GOODS_TYPE_TB,
                actionId);
        return v2;
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/CommonGoodsServiceImpl.java
@@ -94,4 +94,9 @@
        commonGoodsMapper.updateByPrimaryKeySelective(update);
    }
    @Override
    public CommonGoods getCommonGoodsByGoodsIdAndGoodsType(Long goodsId, int goodsType) {
        return commonGoodsMapper.selectByGoodsIdAndGoodsType(goodsId, goodsType);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java
@@ -13,15 +13,18 @@
import com.google.gson.Gson;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CommonGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
import com.yeshi.fanli.goods.CommonGoods;
import com.yeshi.fanli.service.inter.activity.ActivityService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.util.BeanUtil;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.CommonGoodsFactory;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@Service
@@ -39,7 +42,7 @@
    private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper;
    @Resource
    private CollectionGoodsService collectionGoodsService;
    private CommonGoodsService commonGoodsService;
    @Override
    public void startUpdate() {
@@ -103,7 +106,11 @@
            throw new TaobaoGoodsUpdateException(2, "商品ID为空");
        // æ›´æ–°æ”¶è—ä¿¡æ¯
        collectionGoodsService.updateCollectionGoods(goods);
        try {
            commonGoodsService.updateCommonGoods(CommonGoodsFactory.create(goods));
        } catch (CommonGoodsException e) {
            e.printStackTrace();
        }
        List<TaoBaoGoodsBrief> goodsList = taoBaoGoodsBriefMapper.queryByAuctionId(goods.getAuctionId());
        if (goodsList != null)
fanli/src/main/java/com/yeshi/fanli/service/impl/user/BindingAccountServiceImpl.java
@@ -246,7 +246,7 @@
    public boolean canVerifyAlipayAccount(Long uid) throws BindingAccountException {
        UserInfo userInfo = userInfoMapper.selectByPrimaryKeyForUpdate(uid);
        if (userInfo.getMyHongBao().compareTo(new BigDecimal("0")) <= 0)
            throw new BindingAccountException(1, "账户无余额");
            throw new BindingAccountException(1, "你的账户目前没有余额,无需绑定提现帐号。");
        AlipayAccountValidNormalHistory latest = alipayAccountValidNormalHistoryMapper.selectLatestByUid(uid);
        if (latest != null) {
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/CollectionGoodsService.java
File was deleted
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/CollectionGoodsV2Service.java
@@ -9,6 +9,7 @@
public interface CollectionGoodsV2Service {
    /**
     * æ·»åŠ æ”¶è—
     * 
     * @param uid
     *            ç”¨æˆ·ID
@@ -17,6 +18,14 @@
     * @throws CollectionGoodsException
     */
    public void addCollection(Long uid, TaoBaoGoodsBrief goods) throws CollectionGoodsException;
    /**
     * æ·»åŠ æ”¶è—
     *
     * @param goods
     * @throws CollectionGoodsException
     */
    public void addCollection(CollectionGoodsV2 goods) throws CollectionGoodsException;
    /**
     * å–消收藏
@@ -28,6 +37,25 @@
     * @throws CollectionGoodsException
     */
    public void cancelCollection(Long uid, Long id) throws CollectionGoodsException;
    /**
     * å–消收藏
     *
     * @param uid
     *            -用户编号
     * @param auctionId
     *            -商品ID
     * @throws CollectionGoodsException
     */
    public void cancelCollectionByAuctionId(Long uid, Long auctionId) throws CollectionGoodsException;
    /**
     * å–消收藏
     *
     * @param uid
     * @throws CollectionGoodsException
     */
    public void cancelCollectionByUid(Long uid) throws CollectionGoodsException;
    /**
     * èŽ·å–æ”¶è—è®°å½•
@@ -47,4 +75,13 @@
     */
    public long getCollectionGoodsCount(Long uid);
    /**
     * æ ¹æ®ç”¨æˆ·ID和淘宝商品ID查询是否收藏
     *
     * @param uid
     * @param actionId
     * @return
     */
    public CollectionGoodsV2 findByUidAndAuctionId(Long uid, Long actionId);
}
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/CommonGoodsService.java
@@ -36,4 +36,13 @@
     */
    public void offlineCommonGoods(Long goodsId, int goodsType);
    /**
     * æ ¹æ®å•†å“ID和商品类型查询库商品
     *
     * @param goodsId
     * @param goodsType
     * @return
     */
    CommonGoods getCommonGoodsByGoodsIdAndGoodsType(Long goodsId, int goodsType);
}
fanli/src/main/java/com/yeshi/fanli/util/Constant.java
@@ -14,9 +14,9 @@
    public static boolean IS_TASK = false;
    // å¤–网环境
    public static boolean IS_OUTNET = true;
    public static boolean IS_OUTNET = false;
    public static boolean IS_TEST = false;
    public static boolean IS_TEST = true;
    public static int PAGE_SIZE = 20;
    public static int[] TASK_TYPE = { 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008// å¾®ä¿¡ä»»åŠ¡ç±»åž‹ç¼–å·
fanli/src/main/java/com/yeshi/fanli/util/factory/CollectionGoodsFactory.java
New file
@@ -0,0 +1,23 @@
package com.yeshi.fanli.util.factory;
import com.yeshi.fanli.entity.bus.user.CollectionGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.goods.CollectionGoodsV2;
import com.yeshi.fanli.goods.CommonGoods;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
public class CollectionGoodsFactory {
    public static CollectionGoods create(CollectionGoodsV2 collectionGoods) {
        if (collectionGoods == null)
            return null;
        CollectionGoods cg = null;
        CommonGoods commnonGoods = collectionGoods.getCommonGoods();
        TaoBaoGoodsBrief taoBaoGoods = TaoBaoUtil.convert(commnonGoods);
        cg = TaoBaoUtil.getCollectionGoods(taoBaoGoods, collectionGoods.getUserInfo());
        if (cg != null)
            cg.setId(collectionGoods.getId());
        return cg;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -1425,6 +1425,35 @@
        return collectionGoods;
    }
    public static CollectionGoods getCollectionGoods(TaoBaoGoodsBrief taoBaoGoodsBrief, UserInfo userInfo) {
        if (taoBaoGoodsBrief == null)
            return null;
        CollectionGoods collectionGoods = new CollectionGoods();
        Field[] fields = taoBaoGoodsBrief.getClass().getDeclaredFields();
        Field[] shFields = collectionGoods.getClass().getDeclaredFields();
        for (int i = 0; i < fields.length; i++) {
            Field field = fields[i];
            field.setAccessible(true);
            try {
                for (Field target : shFields) {
                    target.setAccessible(true);
                    if (target.getName().equalsIgnoreCase(field.getName())) {
                        if (!field.getName().equalsIgnoreCase("createTime"))
                            target.set(collectionGoods, field.get(taoBaoGoodsBrief));
                        break;
                    }
                }
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        collectionGoods.setUserInfo(userInfo);
        return collectionGoods;
    }
    /**
     * èŽ·å–å•†å“çš„ç”¨æˆ·åˆ†æˆæ¯”ä¾‹
     * 
fanli/src/main/resource/druid.properties
@@ -22,15 +22,15 @@
#外网正式
druid.url=jdbc:mysql://172.16.16.17:3306/ec_quan
druid.username=root
druid.password=Yeshi2016@
#外网本地测试
#druid.url=jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ec_quan
#druid.url=jdbc:mysql://172.16.16.17:3306/ec_quan
#druid.username=root
#druid.password=Yeshi2016@
#外网本地测试
druid.url=jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ec_quan
druid.username=root
druid.password=Yeshi2016@
druid.initialSize=10
druid.minIdle=6
druid.maxActive=100
fanli/src/main/resource/uml/Ä£¿é»®·Ö.acd
@@ -925,8 +925,8 @@
                                                <constraint>
                                                  <height>-1</height>
                                                  <width>-1</width>
                                                  <x>1133</x>
                                                  <y>336</y>
                                                  <x>1107</x>
                                                  <y>155</y>
                                                </constraint>
                                                <sourceConnections>
                                                  <net.java.amateras.uml.activitydiagram.model.FlowModel>
@@ -1049,8 +1049,8 @@
                                                                  <constraint>
                                                                    <height>-1</height>
                                                                    <width>-1</width>
                                                                    <x>771</x>
                                                                    <y>42</y>
                                                                    <x>541</x>
                                                                    <y>44</y>
                                                                  </constraint>
                                                                  <sourceConnections/>
                                                                  <targetConnections>
@@ -1092,8 +1092,8 @@
                                                                  <constraint>
                                                                    <height>-1</height>
                                                                    <width>-1</width>
                                                                    <x>884</x>
                                                                    <y>50</y>
                                                                    <x>654</x>
                                                                    <y>52</y>
                                                                  </constraint>
                                                                  <sourceConnections/>
                                                                  <targetConnections>
@@ -1135,8 +1135,8 @@
                                                                  <constraint>
                                                                    <height>-1</height>
                                                                    <width>-1</width>
                                                                    <x>963</x>
                                                                    <y>122</y>
                                                                    <x>733</x>
                                                                    <y>124</y>
                                                                  </constraint>
                                                                  <sourceConnections/>
                                                                  <targetConnections>
@@ -1178,8 +1178,8 @@
                                                                  <constraint>
                                                                    <height>-1</height>
                                                                    <width>-1</width>
                                                                    <x>948</x>
                                                                    <y>197</y>
                                                                    <x>718</x>
                                                                    <y>199</y>
                                                                  </constraint>
                                                                  <sourceConnections/>
                                                                  <targetConnections>
@@ -1221,8 +1221,8 @@
                                                                  <constraint>
                                                                    <height>-1</height>
                                                                    <width>-1</width>
                                                                    <x>807</x>
                                                                    <y>223</y>
                                                                    <x>577</x>
                                                                    <y>225</y>
                                                                  </constraint>
                                                                  <sourceConnections/>
                                                                  <targetConnections>
@@ -1316,8 +1316,8 @@
                                                                        <constraint>
                                                                          <height>-1</height>
                                                                          <width>-1</width>
                                                                          <x>1172</x>
                                                                          <y>249</y>
                                                                          <x>1146</x>
                                                                          <y>68</y>
                                                                        </constraint>
                                                                        <sourceConnections/>
                                                                        <targetConnections>
@@ -1359,8 +1359,8 @@
                                                                        <constraint>
                                                                          <height>-1</height>
                                                                          <width>-1</width>
                                                                          <x>1136</x>
                                                                          <y>438</y>
                                                                          <x>1110</x>
                                                                          <y>257</y>
                                                                        </constraint>
                                                                        <sourceConnections/>
                                                                        <targetConnections>
@@ -2110,8 +2110,8 @@
                                                            <constraint>
                                                              <height>-1</height>
                                                              <width>-1</width>
                                                              <x>812</x>
                                                              <y>128</y>
                                                              <x>582</x>
                                                              <y>130</y>
                                                            </constraint>
                                                            <sourceConnections>
                                                              <net.java.amateras.uml.activitydiagram.model.FlowModel reference="../../parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel[14]/targetConnections/net.java.amateras.uml.activitydiagram.model.FlowModel"/>
@@ -2148,8 +2148,8 @@
                                                                  <constraint>
                                                                    <height>-1</height>
                                                                    <width>-1</width>
                                                                    <x>694</x>
                                                                    <y>133</y>
                                                                    <x>464</x>
                                                                    <y>135</y>
                                                                  </constraint>
                                                                  <sourceConnections/>
                                                                  <targetConnections>
@@ -2194,8 +2194,8 @@
                                                      <constraint>
                                                        <height>-1</height>
                                                        <width>-1</width>
                                                        <x>924</x>
                                                        <y>328</y>
                                                        <x>898</x>
                                                        <y>147</y>
                                                      </constraint>
                                                      <sourceConnections/>
                                                      <targetConnections>
@@ -2449,6 +2449,62 @@
    <net.java.amateras.uml.activitydiagram.model.ActionModel reference="../net.java.amateras.uml.activitydiagram.model.ObjectModel/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel/targetConnections/net.java.amateras.uml.activitydiagram.model.FlowModel/source/sourceConnections/net.java.amateras.uml.activitydiagram.model.FlowModel[4]/target/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel[2]/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[3]/sourceConnections/net.java.amateras.uml.model.AnchorModel/target/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[4]/sourceConnections/net.java.amateras.uml.activitydiagram.model.FlowModel/target/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[5]/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[6]/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[6]/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel[31]"/>
    <net.java.amateras.uml.model.NoteModel reference="../net.java.amateras.uml.activitydiagram.model.ObjectModel/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel/targetConnections/net.java.amateras.uml.activitydiagram.model.FlowModel/source/sourceConnections/net.java.amateras.uml.activitydiagram.model.FlowModel[4]/target/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel[2]/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[3]/sourceConnections/net.java.amateras.uml.model.AnchorModel/target"/>
    <net.java.amateras.uml.activitydiagram.model.ActionModel reference="../net.java.amateras.uml.activitydiagram.model.ObjectModel/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel/targetConnections/net.java.amateras.uml.activitydiagram.model.FlowModel/source/sourceConnections/net.java.amateras.uml.activitydiagram.model.FlowModel[4]/target/parent/children/net.java.amateras.uml.activitydiagram.model.ActionModel[2]/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[3]/sourceConnections/net.java.amateras.uml.model.AnchorModel/target/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[4]/sourceConnections/net.java.amateras.uml.activitydiagram.model.FlowModel/target/parent/children/net.java.amateras.uml.activitydiagram.model.ObjectModel[5]/sourceConnections/net.java.amateras.uml.activitydiagram.model.FlowModel[6]/target"/>
    <net.java.amateras.uml.activitydiagram.model.ObjectModel>
      <backgroundColor reference="../../../backgroundColor"/>
      <foregroundColor reference="../../../foregroundColor"/>
      <showIcon>true</showIcon>
      <parent class="net.java.amateras.uml.activitydiagram.model.ActivityModel" reference="../../.."/>
      <listeners serialization="custom">
        <java.beans.PropertyChangeSupport>
          <default>
            <source class="net.java.amateras.uml.activitydiagram.model.ObjectModel" reference="../../../.."/>
            <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
          </default>
          <null/>
        </java.beans.PropertyChangeSupport>
      </listeners>
      <constraint>
        <height>-1</height>
        <width>-1</width>
        <x>543</x>
        <y>508</y>
      </constraint>
      <sourceConnections/>
      <targetConnections/>
      <children/>
      <filterProperty/>
      <stereoType></stereoType>
      <objectName>消息服务</objectName>
      <objectState></objectState>
    </net.java.amateras.uml.activitydiagram.model.ObjectModel>
    <net.java.amateras.uml.activitydiagram.model.ObjectModel>
      <backgroundColor reference="../../../backgroundColor"/>
      <foregroundColor reference="../../../foregroundColor"/>
      <showIcon>true</showIcon>
      <parent class="net.java.amateras.uml.activitydiagram.model.ActivityModel" reference="../../.."/>
      <listeners serialization="custom">
        <java.beans.PropertyChangeSupport>
          <default>
            <source class="net.java.amateras.uml.activitydiagram.model.ObjectModel" reference="../../../.."/>
            <propertyChangeSupportSerializedDataVersion>2</propertyChangeSupportSerializedDataVersion>
          </default>
          <null/>
        </java.beans.PropertyChangeSupport>
      </listeners>
      <constraint>
        <height>-1</height>
        <width>-1</width>
        <x>856</x>
        <y>345</y>
      </constraint>
      <sourceConnections/>
      <targetConnections/>
      <children/>
      <filterProperty/>
      <stereoType></stereoType>
      <objectName>缓存服务</objectName>
      <objectState></objectState>
    </net.java.amateras.uml.activitydiagram.model.ObjectModel>
  </children>
  <filterProperty/>
</net.java.amateras.uml.activitydiagram.model.ActivityModel>
fanli/src/test/java/org/fanli/TBImgTest.java
@@ -13,7 +13,7 @@
import com.yeshi.fanli.util.ImageUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
//@Ignore
@Ignore
public class TBImgTest {
    @Test