admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/controller/web/WebRecommendController.java
@@ -1,226 +1,223 @@
package com.yeshi.fanli.controller.web;
import java.io.PrintWriter;
import java.util.ArrayList;
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.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.system.BusinessSystem;
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.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/web/v1/webRecommend")
public class WebRecommendController {
   @Resource
   private WebControllerUtil webControllerUtil;
   @Resource
   private SuperRecommendBannerService superRecommendBannerService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private RedisManager redisManager;
   @Resource
   private BusinessSystemService businessSystemService;
   @Resource
   private CollectionGoodsV2Service collectionGoodsV2Service;
   @Resource
   private ConfigService configService;
   @Resource
   private SystemConfigService systemConfigService;
   @Resource
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
   /**
    *
    * 方法说明: 推荐轮播商品信息
    *
    * @author mawurui createTime 2018年5月11日 上午11:13:47
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
   public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
      BusinessSystem system = businessSystemService.getBusinessSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
      JSONObject json = new JSONObject();
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
         return;
      }
      List<SuperRecommendBanner> superRecommendBanners = superRecommendBannerService
            .getSuperRecommendBannersBySystem(system);
      List<RecommendBanner> list = null;
      for (SuperRecommendBanner superRecommendBanner : superRecommendBanners) {
         if (list == null) {
            list = new ArrayList<RecommendBanner>();
         }
         RecommendBanner recommendBanner = superRecommendBanner.getRecommendBanner();
         // 淘特价暂时修改
         if (system.getId() == 7) {
            recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
                  .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
         }
         list.add(recommendBanner);
      }
      if (list == null) {
         json.put("code", "1");
         json.put("msg", WebControllerUtil.NODATA);
         out.print(json);
         java.lang.System.out.println("json-" + json);
         return;
      }
      json.put("code", 0);
      JSONObject data = new JSONObject();
      data.put("count", list.size());
      Gson gson = new Gson();
      data.put("data", gson.toJson(list));
      json.put("data", data);
      // jsonp方式返回
      out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(json)));
      return;
   }
   /**
    *
    * 方法说明: 获取商品详情
    *
    * @author mawurui createTime 2018年5月11日 上午11:37:02
    * @param acceptData
    * @param id
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
   public void getGoodsDetail(final AcceptData acceptData, final String id, final String uid, String callback,
         PrintWriter out) {
      long begin = java.lang.System.currentTimeMillis();
      if (StringUtil.isNullOrEmpty(id)) {
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
         return;
      }
      BusinessSystem system = webControllerUtil.getSystem(acceptData);
      // 淘特价
      if (system.getId() == 7) {
         system = businessSystemService.getBusinessSystem("ANDROID", Constant.systemCommonConfig.getAndroidPackageName());
      }
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
         return;
      }
      TaoBaoGoodsBrief tb = null;
      try {
         tb = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id));
      } catch (NumberFormatException e1) {
         e1.printStackTrace();
      } catch (TaobaoGoodsDownException e1) {
         e1.printStackTrace();
      }
      if (tb != null) {
         tb.setAuctionUrl(null);
         tb.setId(null);
         Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
         JSONObject data = new JSONObject();
         // 获取默认PID信息
         int type = 0;
         if ("android".equalsIgnoreCase(acceptData.getPlatform()))
            type = 1;
         else
            type = 2;
         List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(type);
         TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(tb, config.get(0));
         if (!StringUtil.isNullOrEmpty(tb.getCouponLink()) && taoBaoGoodsBriefExtra.getTaoBaoQuanInfo() != null)
            taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(tb.getCouponLink());
         if (uid != null && !"".equals(uid.trim())) {
            CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                  Long.parseLong(id));
            data.put("collection", collectionGoods != null ? true : false);
         }
         taoBaoGoodsBriefExtra.setAuctionUrl(null);
         data.put("taobao", gson.toJson(taoBaoGoodsBriefExtra));
         String info = configService.get("detail_prompt");
         data.put("info", info);
         String onlyInfo = configService.get("only_info");
         data.put("only", onlyInfo);
         int showType = taoBaoGoodsBriefExtra.getShowType();
         String price = "";
         if (showType == 1 || showType == 3) {
            price = taoBaoGoodsBriefExtra.getQuanPrice() + "";
         } else {
            price = taoBaoGoodsBriefExtra.getZkPrice() + "";
         }
         String appName = systemConfigService.get("appName", system);
         data.put("sharePrice", "¥" + price + "元      送" + appName + "红包¥"
               + taoBaoGoodsBriefExtra.getTaoBaoHongBaoInfo().getHongbao() + "元 ");
         data.put("shareTitle", taoBaoGoodsBriefExtra.getTitle());
         data.put("shareContent", "¥" + price + "元");
         data.put("shareImg", taoBaoGoodsBriefExtra.getPictUrl());
         String html = configService.get("downAPP");
         data.put("downAPP", html);
         String shareSinaContent = configService.get("shareSinaContent");
         data.put("shareSina",
               "¥" + price + "元      送" + appName + "红包¥"
                     + taoBaoGoodsBriefExtra.getTaoBaoHongBaoInfo().getHongbao() + "元    "
                     + taoBaoGoodsBriefExtra.getTitle() + shareSinaContent);
         data.put("sharemoney", "分享奖金 ¥" + taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb) + "元");
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
         final TaoBaoGoodsBrief tbb=tb;
      } else {
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
      }
      long end = java.lang.System.currentTimeMillis();
      java.lang.System.out.println("耗时:" + (end - begin));
      return;
   }
}
package com.yeshi.fanli.controller.web;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import com.yeshi.fanli.entity.config.SystemConfigKeyEnum;
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.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/web/v1/webRecommend")
public class WebRecommendController {
    @Resource
    private WebControllerUtil webControllerUtil;
    @Resource
    private SuperRecommendBannerService superRecommendBannerService;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private RedisManager redisManager;
    @Resource
    private BusinessSystemService businessSystemService;
    @Resource
    private CollectionGoodsV2Service collectionGoodsV2Service;
    @Resource
    private ConfigService configService;
    @Resource
    private SystemConfigService systemConfigService;
    @Resource
    private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
    @Resource
    private TaoBaoUnionConfigService taoBaoUnionConfigService;
    /**
     * 方法说明: 推荐轮播商品信息
     *
     * @param acceptData
     * @param out
     * @author mawurui createTime 2018年5月11日 上午11:13:47
     */
    @RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
    public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
        BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
                systemConfigService.getValueCache(SystemConfigKeyEnum.h5PackageName, acceptData.getSystem()), acceptData.getSystem());
        JSONObject json = new JSONObject();
        if (system == null) {
            out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
            return;
        }
        List<SuperRecommendBanner> superRecommendBanners = superRecommendBannerService
                .getSuperRecommendBannersBySystem(system);
        List<RecommendBanner> list = null;
        for (SuperRecommendBanner superRecommendBanner : superRecommendBanners) {
            if (list == null) {
                list = new ArrayList<RecommendBanner>();
            }
            RecommendBanner recommendBanner = superRecommendBanner.getRecommendBanner();
            // 淘特价暂时修改
            if (system.getId() == 7) {
                recommendBanner.getJumpDetail().setActivity(recommendBanner.getJumpDetail().getActivity()
                        .replace("com.yeshi.ec.rebate.myapplication", "com.yeshi.ec.taospecial"));
            }
            list.add(recommendBanner);
        }
        if (list == null) {
            json.put("code", "1");
            json.put("msg", WebControllerUtil.NODATA);
            out.print(json);
            java.lang.System.out.println("json-" + json);
            return;
        }
        json.put("code", 0);
        JSONObject data = new JSONObject();
        data.put("count", list.size());
        Gson gson = new Gson();
        data.put("data", gson.toJson(list));
        json.put("data", data);
        // jsonp方式返回
        out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(json)));
        return;
    }
    /**
     * 方法说明: 获取商品详情
     *
     * @param acceptData
     * @param id
     * @param uid
     * @param out
     * @author mawurui createTime 2018年5月11日 上午11:37:02
     */
    @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
    public void getGoodsDetail(final AcceptData acceptData, final String id, final String uid, Integer goodsType,
                               String callback, PrintWriter out) {
        long begin = java.lang.System.currentTimeMillis();
        if (StringUtil.isNullOrEmpty(id)) {
            out.print(JsonUtil.loadFalseResult(1, "请上传id"));
            return;
        }
        BusinessSystem system = webControllerUtil.getSystem(acceptData);
        if (system == null) {
            out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
            return;
        }
        TaoBaoGoodsBrief tb = null;
        try {
            tb = redisManager.getTaoBaoGoodsBrief(id);
        } catch (NumberFormatException e1) {
            e1.printStackTrace();
        } catch (TaobaoGoodsDownException e1) {
            e1.printStackTrace();
        }
        if (tb != null) {
            tb.setAuctionUrl(null);
            tb.setId(null);
            Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
            JSONObject data = new JSONObject();
            // 获取默认PID信息
            int type = 0;
            if ("android".equalsIgnoreCase(acceptData.getPlatform()))
                type = 1;
            else
                type = 2;
            List<TaoBaoUnionConfig> config = taoBaoUnionConfigService.getConfigByTypeCache(type);
            TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(tb, config.get(0), acceptData.getSystem());
            if (!StringUtil.isNullOrEmpty(tb.getCouponLink()) && taoBaoGoodsBriefExtra.getTaoBaoQuanInfo() != null)
                taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(tb.getCouponLink());
            if (uid != null && !"".equals(uid.trim())) {
                CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                        id, goodsType);
                data.put("collection", collectionGoods != null ? true : false);
            }
            taoBaoGoodsBriefExtra.setAuctionUrl(null);
            data.put("taobao", gson.toJson(taoBaoGoodsBriefExtra));
            String info = configService.getValue(ConfigKeyEnum.detailPrompt.getKey(), acceptData.getSystem());
            data.put("info", info);
            String onlyInfo = configService.getValue(ConfigKeyEnum.onlyInfo.getKey(), acceptData.getSystem());
            data.put("only", onlyInfo);
            int showType = taoBaoGoodsBriefExtra.getShowType();
            String price = "";
            if (showType == 1 || showType == 3) {
                price = taoBaoGoodsBriefExtra.getQuanPrice() + "";
            } else {
                price = taoBaoGoodsBriefExtra.getZkPrice() + "";
            }
            String appName = systemConfigService.getValueCache(SystemConfigKeyEnum.appName, acceptData.getSystem());
            data.put("sharePrice", "¥" + price + "元      送" + appName + "红包¥"
                    + taoBaoGoodsBriefExtra.getTaoBaoHongBaoInfo().getHongbao() + "元 ");
            data.put("shareTitle", taoBaoGoodsBriefExtra.getTitle());
            data.put("shareContent", "¥" + price + "元");
            data.put("shareImg", taoBaoGoodsBriefExtra.getPictUrl());
            String html = configService.getValue(ConfigKeyEnum.downAPP.getKey(), acceptData.getSystem());
            data.put("downAPP", html);
            String shareSinaContent = configService.getValue("shareSinaContent", acceptData.getSystem());
            data.put("shareSina",
                    "¥" + price + "元      送" + appName + "红包¥"
                            + taoBaoGoodsBriefExtra.getTaoBaoHongBaoInfo().getHongbao() + "元    "
                            + taoBaoGoodsBriefExtra.getTitle() + shareSinaContent);
            data.put("sharemoney", "分享奖金 ¥" + taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb, acceptData.getSystem()) + "元");
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
            final TaoBaoGoodsBrief tbb = tb;
        } else {
            out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
        }
        long end = java.lang.System.currentTimeMillis();
        java.lang.System.out.println("耗时:" + (end - begin));
        return;
    }
}