yujian
2019-03-25 31f64845425a6ca1b6003ba77d01bafdbdacb8e2
fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
@@ -9,12 +9,10 @@
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;
import org.yeshi.utils.BigDecimalUtil;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
@@ -23,13 +21,18 @@
import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.util.AESUtil;
@@ -37,6 +40,9 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.MonitorFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller(value = "ShareController1")
@RequestMapping("api/v1/share")
@@ -53,12 +59,21 @@
   @Resource
   private MonitorService monitorService;
   @Resource
   private UserShareGoodsRecordService userShareGoodsRecordService;
   @Resource
   private UserShareGoodsGroupService userShareGoodsGroupService;
   @Resource
   private CommonGoodsService commonGoodsService;
   @Resource
   private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
   @Resource
   private UserInfoService userInfoService;
   // 获取商品分享链接
   @RequestMapping(value = "getGoodsShareUrl")
@@ -84,16 +99,27 @@
         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));
         return;
      }
      if (auctionId == null || auctionId <= 0) {
         out.print(JsonUtil.loadFalseResult(2, "商品ID不能为空"));
         return;
      }
      UserExtraTaoBaoInfo extraInfo = userExtraTaoBaoInfoService.getByUid(uid);
      try {
         TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId);
         String relationId = null;
         if (extraInfo != null && extraInfo.getRelationId() != null && extraInfo.getRelationValid() != null
               && extraInfo.getRelationValid() == true)
            relationId = extraInfo.getRelationId();
         TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId, relationId);
         JSONObject data = new JSONObject();
         String url = String.format("http://%s%s?uid=%s&id=%s", configService.getH5Host(),
         String url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
               Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
               auctionId + "");
@@ -121,11 +147,13 @@
            String text = configService.get("goods_share_text_coupon");
            shareText = text.replace("[标题]", taoBaoLink.getGoods().getTitle())
                  .replace("[在售价]", "¥" + taoBaoLink.getGoods().getZkPrice())
                  .replace("[优惠券金额]",
                        "¥" + BigDecimalUtil.getWithNoZera(taoBaoLink.getGoods().getCouponAmount()).toString())
                  .replace("[券后价]", "¥" + TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()));
         }
         shareText = shareText.replace("[价格类型]", shopType);
         data.put("shareText", shareText);
         String descText = shareText.replace(taoBaoLink.getGoods().getTitle() + "\r\n", "");
         String descText = shareText.replace(taoBaoLink.getGoods().getTitle(), "").trim();
         if (descText.startsWith("\\r\\n"))
            descText = descText.substring(0);
         data.put("descText", descText);
@@ -138,7 +166,7 @@
         data.put("notifyDesc", configService.get("goods_share_notify"));
         // 添加分享记录
         BigDecimal rate =hongBaoManageService.getFanLiRate();
         BigDecimal rate = hongBaoManageService.getShareRate();
         UserShareGoodsHistory history = new UserShareGoodsHistory();
         history.setTkCode(taoBaoLink.getTaoToken());
         history.setLink(taoBaoLink.getClickUrl());
@@ -155,6 +183,8 @@
         history.setPictures(JsonUtil.getGson().toJson(imgList));
         history.setUser(new UserInfo(uid));
         history.setPostPicture(taoBaoLink.getGoods().getPictUrl());
         data.put("shareMoney", "¥" + history.getHongbao().toString());
         out.print(JsonUtil.loadTrueResult(data));
@@ -176,11 +206,13 @@
      }
   }
   /**
    * 分享记录统计列表
    *
    * @param acceptData
    * @param page 初始1
    * @param page
    *            初始1
    * @param uid
    * @param source
    * @param out
@@ -196,6 +228,10 @@
         out.print(JsonUtil.loadFalseResult("用户未登录"));
      }
      if ("all".equals(source)) {
         source = null;// 查询全部
      }
      try {
         int pageSize = Constant.PAGE_SIZE;
@@ -203,7 +239,7 @@
         List<UserShareGoodsRecord> list = new ArrayList<UserShareGoodsRecord>();
         long count = userShareGoodsRecordService.countQueryByUid(uid, source);
         if (count > 0) {
            list = userShareGoodsRecordService.getMyShareGoodsRecords((page - 1) * pageSize, pageSize, uid, source);
         }
@@ -218,9 +254,9 @@
      }
   }
   /**
    * 获取分享商品
    *
    * @param acceptData
    * @param recordId
    * @param out
@@ -233,16 +269,17 @@
      }
      try {
         JSONObject data = userShareGoodsGroupService.getGoodsGroup(recordId);
         JSONObject data = userShareGoodsRecordService.getGoodsGroup(recordId);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("加载失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取分享商品单个统计信息
    *
    * @param acceptData
    * @param groupId
    * @param out
@@ -262,7 +299,7 @@
            userShareGoodsGroup.setUpdateTime(null);
            userShareGoodsGroup.setRecordId(null);
         }
         JSONObject data = new JSONObject();
         data.put("goodsData", userShareGoodsGroup);
         out.print(JsonUtil.loadTrueResult(data));
@@ -271,6 +308,56 @@
         e.printStackTrace();
      }
   }
   /**
    * 商品详情分享
    *
    * @param acceptData
    * @param uid
    *            用户id
    * @param auctionId
    *            商品id
    * @param type
    *            图片分享类型 单图single 多图many
    * @param out
    */
   @RequestMapping(value = "sharedetail", method = RequestMethod.POST)
   public void shareDetail(AcceptData acceptData, Long uid, Long auctionId, String type, PrintWriter out) {
      try {
         userShareGoodsRecordService.saveDetail(uid, auctionId, type);
         out.print(JsonUtil.loadTrueResult("分享成功"));
      } catch (UserShareGoodsRecordException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
         e.printStackTrace();
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("加载失败"));
         e.printStackTrace();
      }
   }
   /**
    * 更新分享记录
    *
    * @param acceptData
    * @param shareId
    * @param out
    */
   @RequestMapping(value = "updaterecord", method = RequestMethod.POST)
   public void updateRecord(AcceptData acceptData, Long shareId, PrintWriter out) {
      if (shareId == null) {
         out.print(JsonUtil.loadFalseResult("参数不正确"));
      }
      try {
         userShareGoodsRecordService.updateShareRecord(shareId);
         out.print(JsonUtil.loadTrueResult(""));
      } catch (UserShareGoodsRecordException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
         e.printStackTrace();
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("加载失败"));
         e.printStackTrace();
      }
   }
}