admin
2018-12-10 5f01b1bf63bd3dd242fc29e012e15c37fc03a190
fanli/src/main/java/com/yeshi/fanli/controller/client/ShareController.java
@@ -7,29 +7,38 @@
import java.util.List;
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 com.mongodb.util.ThreadUtil;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
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.service.impl.goods.ShareGoodsServiceImpl;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
import net.sf.json.JSONObject;
import com.yeshi.fanli.entity.accept.AcceptData;
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.share.UserShareGoodsRecord.ShareSourceTypeEnum;
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.ShareGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.MonitorFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@Controller(value = "ShareController1")
@RequestMapping("api/v1/share")
@@ -43,6 +52,15 @@
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private MonitorService monitorService;
   @Resource
   private UserShareGoodsRecordService userShareGoodsRecordService;
   @Resource
   private UserShareGoodsGroupService userShareGoodsGroupService;
   // 获取商品分享链接
   @RequestMapping(value = "getGoodsShareUrl")
@@ -61,7 +79,8 @@
    * @param out
    */
   @RequestMapping(value = "gettaobaosharelink")
   public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) {
   public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, HttpServletRequest request,
         PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空"));
         return;
@@ -87,7 +106,8 @@
         data.put("clickUrl", url);
         data.put("token", taoBaoLink.getTaoToken());
         data.put("rule", "http://flq.yeshitv.com/fanli/client/html/help_item.html?id=8");
         data.put("rule",
               "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0");
         data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500));
         String shareText = "";
@@ -107,9 +127,20 @@
         }
         shareText = shareText.replace("[价格类型]", shopType);
         data.put("shareText", shareText);
         String descText = shareText.replace(taoBaoLink.getGoods().getTitle() + "\r\n", "");
         if (descText.startsWith("\\r\\n"))
            descText = descText.substring(0);
         data.put("descText", descText);
         //
         String imgs = configService.get("goods_share_notify_imgs");
         JSONArray array = JSONArray.fromObject(imgs);
         int p = (int) (array.size() * Math.random());
         if (p < array.size())
            data.put("notifyPicture", array.optString(p));
         data.put("notifyDesc", configService.get("goods_share_notify"));
         // 添加分享记录
         BigDecimal rate = new BigDecimal(hongBaoManageService.get("hongbao_goods_proportion"));
         BigDecimal rate = hongBaoManageService.getFanLiRate();
         UserShareGoodsHistory history = new UserShareGoodsHistory();
         history.setTkCode(taoBaoLink.getTaoToken());
         history.setLink(taoBaoLink.getClickUrl());
@@ -135,13 +166,120 @@
            @Override
            public void run() {
               shareGoodsService.addShareGoodsHistory(history);
               try {
                  userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.goodsDetail, taoBaoLink.getGoods());
               } catch (UserShareGoodsRecordException e) {
                  e.printStackTrace();
               }
            }
         });
         return;
      } catch (ShareGoodsException e) {
         try {
            monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, e.getCode(), 0, "分享出错"));
         } catch (Exception e1) {
         }
         out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
      }
   }
   /**
    * 分享记录统计列表
    *
    * @param acceptData
    * @param page
    *            初始1
    * @param uid
    * @param source
    * @param out
    */
   @RequestMapping(value = "getlistrecord", method = RequestMethod.POST)
   public void getListRecord(AcceptData acceptData, Integer page, Long uid, String source, PrintWriter out) {
      if (page == null || page < 1) {
         out.print(JsonUtil.loadFalseResult("页码不正确"));
      }
      if (uid == null) {
         out.print(JsonUtil.loadFalseResult("用户未登录"));
      }
      try {
         int pageSize = Constant.PAGE_SIZE;
         JSONObject data = new JSONObject();
         List<UserShareGoodsRecord> list = new ArrayList<UserShareGoodsRecord>();
         long count = userShareGoodsRecordService.countQueryByUid(uid, source);
         if (count > 0) {
            list = userShareGoodsRecordService.getMyShareGoodsRecords((page - 1) * pageSize, pageSize, uid, source);
         }
         data.put("count", count);
         data.put("result_list", list);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("加载失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取分享商品
    *
    * @param acceptData
    * @param recordId
    * @param out
    */
   @RequestMapping(value = "getrecordgoods", method = RequestMethod.POST)
   public void getRecordGoods(AcceptData acceptData, Long recordId, PrintWriter out) {
      if (recordId == null) {
         out.print(JsonUtil.loadFalseResult("参数不正确"));
      }
      try {
         JSONObject data = userShareGoodsGroupService.getGoodsGroup(recordId);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("加载失败"));
         e.printStackTrace();
      }
   }
   /**
    * 获取分享商品单个统计信息
    *
    * @param acceptData
    * @param groupId
    * @param out
    */
   @RequestMapping(value = "getgoodsdata", method = RequestMethod.POST)
   public void getGoodsData(AcceptData acceptData, Long groupId, PrintWriter out) {
      if (groupId == null) {
         out.print(JsonUtil.loadFalseResult("参数不正确"));
      }
      try {
         UserShareGoodsGroup userShareGoodsGroup = userShareGoodsGroupService.selectByPrimaryKey(groupId);
         if (userShareGoodsGroup != null) {
            userShareGoodsGroup.setBrowseTime(null);
            userShareGoodsGroup.setCreateTime(null);
            userShareGoodsGroup.setUpdateTime(null);
            userShareGoodsGroup.setRecordId(null);
         }
         JSONObject data = new JSONObject();
         data.put("goodsData", userShareGoodsGroup);
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult("加载失败"));
         e.printStackTrace();
      }
   }
}