Administrator
2020-02-18 616b119c283147deef21fbc519291221ba4897b1
fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/GoodsController.java
@@ -45,6 +45,7 @@
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
@@ -87,11 +88,8 @@
@RequestMapping("/wxmp/api/v1/goods")
public class GoodsController {
   @Resource
   private ConfigService configService;
   @Resource
   private ShamUserService shamUserService;
@@ -102,11 +100,8 @@
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private ScanHistoryV2Service scanHistoryV2Service;
@@ -141,6 +136,9 @@
   @Resource
   private SwiperPictureService swiperPictureService;
   
   @Resource
   private HongBaoV2CountService hongBaoV2CountService;
   /**
    * 一级分类
    * 
@@ -148,12 +146,37 @@
    * @param out
    */
   @RequestMapping(value = "getTopCategory", method = RequestMethod.POST)
   public void getTopCategory(WXMPAcceptData acceptData, PrintWriter out) {
   public void getTopCategory(WXMPAcceptData acceptData, Long uid, PrintWriter out) {
      JSONObject data = new JSONObject();
      data.put("list", configService.get(ConfigKeyEnum.jdWXMPClass.getKey()));
      out.print(JsonUtil.loadTrueResult(data));
      String tips = null;
      if (uid == null || uid <= 0) {
         tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
      } else {
         long rebateOrder = hongBaoV2CountService.countRebateOrder(uid);
         long shareOrInviteOrder = hongBaoV2CountService.countShareOrInviteOrder(uid);
         if (rebateOrder + shareOrInviteOrder >= 3) {
            // 熟客版
         } else if (rebateOrder <= 0 && shareOrInviteOrder <= 0) {
            // 新人版
            tips = configService.get(ConfigKeyEnum.tipGuideNewUser.getKey());
         } else if (rebateOrder > 0 && shareOrInviteOrder <= 0) {
            // 省钱版
            tips = configService.get(ConfigKeyEnum.tipGuideSaveMoney.getKey());
         } else {
            // 赚钱版
            tips = configService.get(ConfigKeyEnum.tipGuideShareInvite.getKey());
         }
   }
      if (!StringUtil.isNullOrEmpty(tips)) {
         JSONObject tipData = JSONObject.fromObject(tips);
         data.put("tipData", tipData);
      }
      out.print(JsonUtil.loadTrueResult(data));
   }
   
   /**
    * 一级分类商品
@@ -185,7 +208,6 @@
               params = JSONObject.fromObject(swiper.getParams());
            }
            swiper.setJumpDetail(JumpDetailUtil.getWXMPJumDetail(swiper.getJumpDetail()));
            swiper.setParams(null);
         }
         data.put("bannerList", JsonUtil.getApiCommonGson().toJson(picList));
      }
@@ -226,21 +248,24 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 获取商品详情
    *
    * @param acceptData
    * @param goodsId 商品id
    * @param goodsId
    *            商品id
    * @param uid 
    * @param code 邀请码
    * @param goodsType 商品类型
    * @param from 页面来源
    * @param code
    *            邀请码
    * @param goodsType
    *            商品类型
    * @param from
    *            页面来源
    * @param out
    */
   @RequestMapping(value = "getGoodsDetial", method = RequestMethod.POST)
   public void getGoodsDetial(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from,
          Long uid, PrintWriter out) {
   public void getGoodsDetial(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Long uid,
         PrintWriter out) {
      if (goodsType == null || goodsType < 2 || goodsType > 3) {
         out.print(JsonUtil.loadFalseResult(1, "请传递正确平台参数"));
         return;
@@ -320,9 +345,7 @@
               // 使用奖励券最高返
               if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
                  maxMoneyPlus = "(京东plus返¥"
                        + JDUtil.getGoodsFanLiMoneyPlus(jdGoods,
                              hongBaoManageService.getVIPFanLiRate())
                        + ")";
                        + JDUtil.getGoodsFanLiMoneyPlus(jdGoods, hongBaoManageService.getVIPFanLiRate()) + ")";
               } else
                  maxMoneyPlus = "(京东plus最高返¥"
                        + fanliMoneyPlus.add(MoneyBigDecimalUtil.mul(fanliMoneyPlus, Constant.MAX_REWARD_RATE))
@@ -657,20 +680,24 @@
      }
   }
   /**
    * 获取商品详情
    *
    * @param acceptData
    * @param goodsId 商品id
    * @param goodsId
    *            商品id
    * @param uid 
    * @param code 邀请码
    * @param goodsType 商品类型
    * @param from 页面来源
    * @param code
    *            邀请码
    * @param goodsType
    *            商品类型
    * @param from
    *            页面来源
    * @param out
    */
   @RequestMapping(value = "getBuyLink", method = RequestMethod.POST)
   public void getBuyLink(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from,
         String couponUrl, Long uid, String inviteCode, PrintWriter out) {
   public void getBuyLink(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, String couponUrl,
         Long uid, String inviteCode, PrintWriter out) {
      if (goodsId == null || goodsType == null) {
         out.print(JsonUtil.loadFalseResult(1, "商品信息传递错误"));
         return;
@@ -715,7 +742,6 @@
            }
         }
         
         long position =  JDApiUtil.POSITION_FANLI;
         if (share) {
            position = JDApiUtil.POSITION_SHARE;
@@ -754,10 +780,9 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   
   /**
    * 分享商品海报
    *
    * @param acceptData
    * @param goodsId
    * @param goodsType
@@ -784,7 +809,6 @@
         return;
      }
      
      UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
      if (user != null && user.getState() != UserInfo.STATE_NORMAL) {
         out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
@@ -806,18 +830,18 @@
      }
   }
   
   /**
    * 创建京东分享海报
    */
   private void createPosterJD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type, UserInfo user,
         String inviteCode,  PrintWriter out) {
   private void createPosterJD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
         UserInfo user, String inviteCode, PrintWriter out) {
      JDGoods jdGoods = jdGoodsCacheUtil.getGoodsInfo(goodsId);
      if (jdGoods == null) {
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
         return;
      }
      ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),acceptData.getVersion());
      ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion());
      GoodsDetailVO goods = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
      
      String scene = goodsType+"#"+goodsId+"#" + inviteCode;
@@ -826,7 +850,8 @@
         String erCodeUrl = "https://wxmp.banliapp.com/goods?i="+ scene;
         uploadResult = qrCodeService.drawGoodsPoster(erCodeUrl, user.getPortrait(), goods);
      } else {
         String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(), Constant.WXMP_APP_INFO.getAppSecret());
         String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(),
               Constant.WXMP_APP_INFO.getAppSecret());
         InputStream xcxCode = WXXCXUtil.getXCXCode(acessToken, "/pages/goods/goods", scene);
         uploadResult = qrCodeService.drawGoodsPosterXCX(xcxCode, user, goods);
      }
@@ -863,18 +888,18 @@
      });
   }
   
   /**
    * 创建拼多多分享海报
    */
   private void createPosterPDD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type, UserInfo user,
         String inviteCode,  PrintWriter out) {
   private void createPosterPDD(WXMPAcceptData acceptData, Long goodsId, Integer goodsType, String from, Integer type,
         UserInfo user, String inviteCode, PrintWriter out) {
      PDDGoodsDetail pddGoods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId);
      if (pddGoods == null) {
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
         return;
      }
      ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(), acceptData.getVersion());
      ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate(acceptData.getPlatform(),
            acceptData.getVersion());
      GoodsDetailVO goods = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
      
      String scene = goodsType+"#"+goodsId+"#" + inviteCode;
@@ -883,7 +908,8 @@
         String erCodeUrl = "https://wxmp.banliapp.com/goods?info="+ scene;
         uploadResult = qrCodeService.drawGoodsPoster(erCodeUrl, user.getPortrait(), goods);
      } else {
         String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(), Constant.WXMP_APP_INFO.getAppSecret());
         String acessToken = WXUtil.getAcessToken(Constant.WXMP_APP_INFO.getAppId(),
               Constant.WXMP_APP_INFO.getAppSecret());
         InputStream xcxCode = WXXCXUtil.getXCXCode(acessToken, "/pages/goods/goods", scene);
         uploadResult = qrCodeService.drawGoodsPosterXCX(xcxCode, user, goods);
      }