package com.yeshi.fanli.controller.h5; import java.io.PrintWriter; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; import com.yeshi.fanli.dto.taobao.api.TaoKeOfficialActivityConvertResultDTO; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisKeyEnum; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @Controller @RequestMapping("api/apph5/v1/s11") public class H5S11Controller { @Resource private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; @Resource private RedisManager redisManager; @Resource private ConfigService configService; /** * 获取超级红包分享口令 * * @param acceptData * @param uid * @param out */ @RequestMapping(value = "getSuperHongBaoToken") public void getSuperHongBaoToken(String sign, Long uid, String callback, PrintWriter out) { if (!StringUtil.Md5(uid + "@?,223Hbb88lll").equalsIgnoreCase(sign)) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1001, "签名错误"))); return; } if (uid == null || uid <= 0) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1, "请登录"))); return; } UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService.getByUid(uid); if (info == null || StringUtil.isNullOrEmpty(info.getRelationId()) || info.getRelationValid() == false) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(2, "您尚未绑定淘宝,请前往我的->个人信息 绑定淘宝账号"))); return; } String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.S11SuperHongBao, info.getRelationId() + ""); String token = null; token = redisManager.getCommonString(key); if (StringUtil.isNullOrEmpty(token)) { try { TaoKeOfficialActivityConvertResultDTO dto = TaoKeApiUtil.officialActivityConvert("19507100253", "1574926757600", info.getRelationId()); String link = dto.getShort_click_url(); if (!StringUtil.isNullOrEmpty(link)) { token = TaoKeApiUtil.getTKToken("http://img.flqapp.com/resource/s11/banner.jpg", "【天猫双12】上亿红包等你来拆!", link); if (!StringUtil.isNullOrEmpty(token)) redisManager.cacheCommonString(key, token, 60 * 60 * 24);// 缓存1天 } } catch (Exception e) { LogHelper.errorDetailInfo(e); } } if (StringUtil.isNullOrEmpty(token)) { if (!StringUtil.isNullOrEmpty(callback)) out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1, "口令生成失败,请稍后重试"))); return; } String desc = configService.get(ConfigKeyEnum.superHongBaoShareDesc.getKey()); desc = desc.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token)); try { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(StringUtil.getBase64String(desc)))); } catch (Exception e) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1002, "未知错误"))); } } @RequestMapping(value = "getYuShouToken") public void getYuShouToken(String sign, Long uid, String callback, PrintWriter out) { if (!StringUtil.Md5(uid + "@?,223Hbb88lll").equalsIgnoreCase(sign)) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1001, "签名错误"))); return; } if (uid == null || uid <= 0) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1, "请登录"))); return; } UserExtraTaoBaoInfo info = userExtraTaoBaoInfoService.getByUid(uid); if (info == null || StringUtil.isNullOrEmpty(info.getRelationId()) || info.getRelationValid() == false) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(2, "您尚未绑定淘宝,请前往我的->个人信息 绑定淘宝账号"))); return; } String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.S11YuShou, info.getRelationId() + ""); String token = null; if (Constant.IS_OUTNET) token = redisManager.getCommonString(key); if (StringUtil.isNullOrEmpty(token)) { try { TaoKeOfficialActivityConvertResultDTO dto = TaoKeApiUtil.officialActivityConvert("19507100253", "1574926757600", info.getRelationId()); String link = dto.getShort_click_url(); if (!StringUtil.isNullOrEmpty(link)) { token = TaoKeApiUtil.getTKToken("http://img.flqapp.com/resource/s11/banner.jpg", "预售商品付定金,得奖金!", link); if (Constant.IS_OUTNET) if (!StringUtil.isNullOrEmpty(token)) redisManager.cacheCommonString(key, token, 60 * 60 * 24);// 缓存1天 } } catch (Exception e) { LogHelper.errorDetailInfo(e); } } if (StringUtil.isNullOrEmpty(token)) { if (!StringUtil.isNullOrEmpty(callback)) out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1, "口令生成失败,请稍后重试"))); return; } String desc = configService.get(ConfigKeyEnum.superYuShouShareDesc.getKey()); desc = desc.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token)); try { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(StringUtil.getBase64String(desc)))); } catch (Exception e) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(1002, "未知错误"))); } } }