package com.yeshi.fanli.controller.xcx; import java.io.PrintWriter; 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.dao.mybatis.HongBaoManageMapper; import com.yeshi.fanli.entity.taobao.PidUser; 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.ConfigService; 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.RecommendBannerService; import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService; import com.yeshi.fanli.service.inter.goods.ShareGoodsService; import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService; import com.yeshi.fanli.service.inter.goods.SuperRecommendSectionService; import com.yeshi.fanli.service.inter.goods.SuperRecommendSpecialService; import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.user.ScanHistoryService; import com.yeshi.fanli.service.inter.user.ShareManageService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import net.sf.json.JSONObject; @Controller @RequestMapping("api/xcx/v1/XcxUser") public class XcxRecommendController { @Resource private RecommendBannerService recommendService; @Resource private SystemService systemService; @Resource private ShareGoodsService shareGoodsService; @Resource private SuperRecommendBannerService superRecommendBannerService; @Resource private SuperRecommendSectionService superRecommendSectionService; @Resource private SuperRecommendSpecialService superRecommendSpecialService; @Resource private RecommendSectionGoodsService recommendSectionGoodsService; @Resource private XcxMiniControllerUtil xcxMiniControllerUtil; @Resource private OrderService orderService; @Resource private ScanHistoryService scanHistoryService; @Resource private ShareManageService shareManageService; @Resource private ConfigService configService; @Resource private HongBaoManageService hongBaoManageService; @Resource private UserInfoService userInfoService; @Resource private TaoBaoOrderUtil taoBaoOrderUtil; @Resource private TaoBaoCouponService taoBaoCouponService; @Resource private JumpDetailService jumpDetailService; @Resource private SystemConfigService systemConfigService; @Resource private HongBaoManageMapper hongBaoManageMapper; @Resource private TaoBaoGoodsBriefService taoBaoGoodsBriefService; @Resource private RedisManager redisManager; @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; /** * * 方法说明: 获取商品详情 * * @author mawurui createTime 2018年4月25日 下午5:03:50 * @param acceptData * @param id * @param uid * @param out */ @SuppressWarnings("unused") @RequestMapping(value = "getgoodsdetail", method = RequestMethod.POST) public void getGoodsDetail(String appid, Integer version, String id, PrintWriter out) { if (!configService.xcxShow(appid, version)) id = DaTaoKeUtil.getAuctionId(Long.parseLong(id)) + ""; // id=DaTaoKeUtil.getAuctionId(Long.parseLong(id))+""; long begin = java.lang.System.currentTimeMillis(); if (StringUtil.isNullOrEmpty(id)) { out.print(JsonUtil.loadFalseResult(1, "请上传id")); return; } /* * System system = xcxMiniControllerUtil.getSystem(acceptData); // 淘特价 * if (system.getId() == 7) { system = * systemService.getSystem("ANDROID", "com.yeshi.ec.rebate"); } * * if (system == null) { out.print(JsonUtil.loadFalseResult(1, * XcxMiniControllerUtil.NOSYSTEM)); return; } */ TaoBaoGoodsBrief tb = null; try { tb = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id)); } catch (NumberFormatException e) { e.printStackTrace(); } catch (TaobaoGoodsDownException e) { e.printStackTrace(); } if (tb != null) { tb.setAuctionUrl(null); tb.setId(0l); List config = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_SHARE_GOODS); Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); JSONObject data = new JSONObject(); TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(tb, config.get(0)); if (!StringUtil.isNullOrEmpty(tb.getCouponLink()) && taoBaoGoodsBriefExtra.getTaoBaoQuanInfo() != null) taoBaoGoodsBriefExtra.getTaoBaoQuanInfo().setCouponLink(tb.getCouponLink()); taoBaoGoodsBriefExtra.setAuctionUrl(null); // 设置淘口令 taoBaoGoodsBriefExtra.setTbToken(redisManager.getXCXCouponToken(tb)); // 去掉pritUrl后面的尺寸 String pictUrl = taoBaoGoodsBriefExtra.getPictUrl(); String newUrl = pictUrl.substring(0, pictUrl.indexOf("_200x200")); taoBaoGoodsBriefExtra.setPictUrl(newUrl); 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", null); 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) + "元"); // 图文详情 Long idL = Long.parseLong(id); List goodsTextAndImageDetails = TaoBaoUtil.getGoodsTextAndImageDetails(idL); data.put("goodsTextAndImageDetails", goodsTextAndImageDetails); out.print(JsonUtil.loadTrueResult(data)); } else { final String aid = id; out.print(JsonUtil.loadFalseResult(2, "商品已下架")); ThreadUtil.run(new Runnable() { public void run() { recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(Long.parseLong(aid)); } }); } long end = java.lang.System.currentTimeMillis(); java.lang.System.out.println("耗时:" + (end - begin)); return; } }