package com.yeshi.fanli.controller.h5;
|
|
import java.io.PrintWriter;
|
|
import javax.annotation.Resource;
|
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.exception.goods.ConvertLinkException;
|
import com.yeshi.fanli.service.inter.user.UserInfoService;
|
import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
|
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;
|
|
@Resource
|
private UserInfoService userInfoService;
|
|
@Resource
|
private ConvertLinkManager convertLinkManager;
|
|
/**
|
* 获取超级红包分享口令
|
*
|
* @param sign
|
* @param uid
|
* @param callback
|
* @param out
|
*/
|
@RequestMapping(value = "getSuperHongBaoToken")
|
public void getSuperHongBaoToken(String sign, Long uid, String callback, String sceneId, 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 = null;
|
try {
|
dto = convertLinkManager.taobaoOfficialActivityConvert(uid, "mm_124933865_56750082_19507100253", sceneId, info.getRelationId(), false);
|
} catch (ConvertLinkException e) {
|
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(e.getCode(), e.getMessage())));
|
return;
|
}
|
String link = dto.getClick_url();
|
|
if (!StringUtil.isNullOrEmpty(link)) {
|
token = TaoKeApiUtil.getTKToken("http://img.flqapp.com/resource/s11/banner.jpg", "【年货节】上亿红包等你来拆!",
|
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;
|
}
|
|
UserInfo user = userInfoService.selectByPKey(uid);
|
String desc = configService.getValue(ConfigKeyEnum.superHongBaoShareDesc.getKey(), user.getSystem());
|
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, String sceneId, 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 = null;
|
try {
|
dto = convertLinkManager.taobaoOfficialActivityConvert(uid, "mm_124933865_56750082_19507100253",
|
sceneId, info.getRelationId(), true);
|
} catch (ConvertLinkException e) {
|
out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(e.getCode(), e.getMessage())));
|
return;
|
}
|
String link = dto.getClick_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;
|
}
|
UserInfo user = userInfoService.selectByPKey(uid);
|
String desc = configService.getValue(ConfigKeyEnum.superYuShouShareDesc.getKey(), user.getSystem());
|
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, "未知错误")));
|
}
|
}
|
|
}
|