package com.yeshi.fanli.controller.client.v1;
|
|
import java.io.IOException;
|
import java.io.PrintWriter;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
|
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.yeshi.fanli.dto.money.InviteGetMoney;
|
import com.yeshi.fanli.entity.accept.AcceptData;
|
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
|
import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.entity.system.BusinessSystem;
|
import com.yeshi.fanli.entity.system.SystemClientParams;
|
import com.yeshi.fanli.exception.NotExistObjectException;
|
import com.yeshi.fanli.exception.user.UserInfoExtraException;
|
import com.yeshi.fanli.service.inter.config.ConfigService;
|
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
|
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
|
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
|
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
import com.yeshi.fanli.service.inter.user.UserInfoService;
|
import com.yeshi.fanli.service.inter.user.UserRankingsService;
|
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
import com.yeshi.fanli.tag.PageEntity;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.RedisManager;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.account.UserUtil;
|
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
|
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
|
/**
|
*
|
* 类说明: 前端客户端所需接口
|
*
|
* @author mawurui
|
* @createTime 2018年4月2日 上午9:39:30
|
* @version /test/invite
|
*/
|
@Controller
|
@RequestMapping("api/v1/invite")
|
public class InviteGetMoneyController {
|
@Resource
|
private SystemClientParamsService systemClientParamsService;
|
|
@Resource
|
private SpreadUserImgService spreadUserImgService;
|
|
@Resource
|
private UserRankingsService userRankingsService;
|
|
@Resource
|
private ConfigService configService;
|
|
@Resource
|
private SwiperPictureService swiperPictureService;
|
|
@Resource
|
private UserInfoExtraService userInfoExtraService;
|
|
@Resource
|
private UserInfoService userInfoService;
|
|
@Resource
|
private ThreeSaleSerivce threeSaleSerivce;
|
|
@Resource
|
private RedisManager redisManager;
|
|
@RequestMapping(value = "/inviteGetMoney", method = RequestMethod.POST)
|
public void everyDayTaskList(AcceptData acceptData, int pageIndex, PrintWriter out, String uid)
|
throws NotExistObjectException, UserInfoExtraException {
|
// 查询商品总数
|
Integer totalCount = 0;
|
int totalPage = totalCount % Constant.PAGE_SIZE == 0 ? totalCount / Constant.PAGE_SIZE
|
: totalCount / Constant.PAGE_SIZE + 1;
|
PageEntity pageEntity = new PageEntity(pageIndex, Constant.PAGE_SIZE, totalCount, totalPage);
|
|
List<InviteGetMoney> inviteGetMoneyList = userRankingsService.getRank(0, 5);
|
|
com.alibaba.fastjson.JSONObject data = new com.alibaba.fastjson.JSONObject();
|
data.put("pageEntity", JsonUtil.getSimpleGsonWithDate().toJson(pageEntity));
|
data.put("everyDayTaskList", new JSONArray());
|
data.put("inviteGetMoneyList",
|
JSONArray.fromObject(JsonUtil.getSimpleGsonWithDate().toJson(inviteGetMoneyList)));
|
if (StringUtil.isNullOrEmpty(uid) || uid.equalsIgnoreCase("0")) {
|
data.put("myTeam", "---");
|
data.put("moneyToday", "---");
|
data.put("moneyMonth", "---");
|
data.put("moneyLastMonth", "---");
|
} else {
|
// 我的队员
|
long myFirstTeamCount = threeSaleSerivce.getFirstUsersCount(Long.parseLong(uid));
|
long mySecondTeamCount = threeSaleSerivce.getSecondUsersCount(Long.parseLong(uid));
|
long myTeamCount = myFirstTeamCount + mySecondTeamCount;
|
data.put("myTeam", myTeamCount);
|
// 1.5.0后已经不使用此字段
|
data.put("moneyToday", "0");
|
data.put("moneyMonth", "0");
|
data.put("moneyLastMonth", "0");
|
}
|
|
// 活动规则
|
String key = "activityRules"; // key值
|
BusinessSystem system = new BusinessSystem();
|
system.setCreatetime(java.lang.System.currentTimeMillis());
|
system.setPlatform(1);
|
system.setId(4L);
|
SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
|
// 转换换行符 给前端
|
String valueN = values.getValue();
|
String valueBr = valueN.replace("\n", "<br><br>");
|
|
data.put("activityRules", valueBr);
|
data.put("inviteList", String.format("http://%s/%s/client/share/friends_new.html",
|
Constant.systemCommonConfig.getProjectHost(), Constant.systemCommonConfig.getProjectName()));
|
List<SwiperPicture> pictureList = swiperPictureService.getByBannerCard("invite_top_banner");
|
if (pictureList != null && pictureList.size() > 0) {
|
SwiperPicture picture = pictureList.get(0);
|
com.alibaba.fastjson.JSONObject pictureJson = new com.alibaba.fastjson.JSONObject();
|
pictureJson.put("src", picture.getSrc());
|
pictureJson.put("jumpDetail", picture.getJumpDetail());
|
pictureJson.put("params", picture.getParams());
|
data.put("topBanner", pictureJson);
|
}
|
|
data.put("desc", configService.get("invite_desc"));
|
|
boolean hasCode = false;
|
if (uid != null && uid.trim().length() > 0) {
|
String inviteCode = userInfoExtraService.getInviteCodeByUid(Long.parseLong(uid));
|
if (inviteCode != null && inviteCode.trim().length() > 0) {
|
hasCode = true; // 已有邀请码
|
}
|
}
|
|
// 邀请激活链接
|
if (!hasCode) {
|
data.put("activationlink", configService.get("invite_activation_url"));
|
}
|
|
data.put("hasCode", hasCode);
|
|
com.alibaba.fastjson.JSONObject root = new com.alibaba.fastjson.JSONObject();
|
root.put("code", 0);
|
root.put("data", data);
|
out.print(root.toString());
|
}
|
|
/**
|
*
|
* 方法说明: 分享好友邀请图片
|
*
|
* @author mawurui createTime 2018年4月3日 下午3:49:05
|
* @param pageIndex
|
* @param out
|
* @param uid
|
* @throws NotExistObjectException
|
* @throws IOException
|
*/
|
@RequestMapping(value = "/listInviteFriendImg", method = RequestMethod.POST)
|
public void listInviteFriendImg(AcceptData acceptData, Long uid, PrintWriter out, HttpServletRequest request)
|
throws NotExistObjectException, IOException {
|
JSONObject data = new JSONObject();
|
if (uid != null && !uid.equals("0")) {
|
List<String> imgList = spreadUserImgService.getUserSpreadImg(uid, request);
|
data.put("imgUrlList", JsonUtil.getSimpleGsonWithDate().toJson(imgList));
|
}
|
|
// 邀请链接
|
// String shortLink = HttpUtil.getShortLink("http://" + Constant.wxGZConfig.getLoginHost() + "/"
|
// + Constant.systemCommonConfig.getProjectName() + "/client/threeShareNew?uid=" + uid);
|
data.put("inviteLink", "http://a.app.qq.com/o/simple.jsp?pkgname=com.yeshi.ec.rebate");
|
|
String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
if (!StringUtil.isNullOrEmpty(inviteCode)) {
|
data.put("inviteCode", inviteCode);
|
}
|
|
// 邀请规则
|
String key = "inviteRules"; // key值
|
BusinessSystem system = new BusinessSystem();
|
system.setCreatetime(java.lang.System.currentTimeMillis());
|
system.setPlatform(1);
|
system.setId(4L);
|
SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, key);
|
// 转换换行符 给前端
|
String valueN = values.getValue();
|
String valueBr = valueN.replace("\n", "<br><br>");
|
|
data.put("helpLink", configService.get("invite_help_link"));
|
|
data.put("inviteRules", valueBr);
|
out.print(JsonUtil.loadTrue(0, JsonUtil.getSimpleGson().toJson(data), "成功"));
|
}
|
|
/**
|
* 邀请激活-特别提示语
|
*
|
* @param callback
|
* @param out
|
*/
|
@RequestMapping(value = "getActivationTip")
|
public void getActivationTip(AcceptData acceptData, String callback, PrintWriter out) {
|
try {
|
String tip = configService.get("invite_activation_tip");
|
if (tip == null || tip.trim().length() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无提醒"));
|
return;
|
}
|
|
JSONObject data = new JSONObject();
|
data.put("tip", tip);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取失败"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 激活邀请
|
*
|
* @param callback
|
* @param uid
|
* 用户id
|
* @param inviteCode
|
* 邀请嘛
|
* @param out
|
*/
|
@RequestSerializableByKey(key = "'activationInvite-'+#uid")
|
@RequestMapping(value = "activationInvite")
|
public void activationInvite(AcceptData acceptData, String callback, Long uid, String inviteCode, PrintWriter out) {
|
try {
|
if (uid == null || inviteCode == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
|
return;
|
}
|
|
String newCode = userInfoExtraService.activateInviteCode(uid, inviteCode);
|
if (newCode == null || newCode.trim().length() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("激活失败"));
|
return;
|
}
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("邀请码激活成功"));
|
|
} catch (UserInfoExtraException e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("激活失败"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 激活邀请
|
*
|
* @param callback
|
* @param uid
|
* 用户id
|
* @param inviteCode
|
* 邀请嘛
|
* @param out
|
*/
|
@RequestSerializableByKey(key = "'activationInviteWX-'+#uid")
|
@RequestMapping(value = "activationInviteWX")
|
public void activationInviteWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
|
try {
|
userInfoExtraService.activationInviteWX(
|
Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion()), uid, code);
|
out.print(JsonUtil.loadTrueResult("邀请码激活成功"));
|
} catch (UserInfoExtraException e) {
|
out.print(JsonUtil.loadFalseResult(e.getMsg()));
|
} catch (Exception e) {
|
out.print(JsonUtil.loadFalseResult("邀请码激活失败"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 获取邀请码
|
*
|
* @param callback
|
* @param uid
|
* 用户id
|
* @param out
|
*/
|
@RequestMapping(value = "getInviteCode")
|
public void getInviteCode(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
|
try {
|
|
if (uid == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
|
return;
|
}
|
|
String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
if (StringUtil.isNullOrEmpty(inviteCode)) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("邀请码不存在"));
|
return;
|
}
|
String tip = configService.get("invite_activation_success_tip");
|
|
JSONObject data = new JSONObject();
|
data.put("inviteCode", inviteCode);
|
data.put("tip", tip);
|
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 获取邀请短连接
|
*
|
* @param callback
|
* @param uid
|
* 用户id
|
* @param out
|
*/
|
@RequestMapping(value = "getShortLink")
|
public void getShortLink(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
|
try {
|
|
if (uid == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
|
return;
|
}
|
|
String inviteShortLink = redisManager.getInviteShortLink(uid);
|
if (inviteShortLink != null && inviteShortLink.trim().length() > 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请1分钟后再试"));
|
return;
|
}
|
|
String shortLink = UserUtil.getInviteShortLink(uid);
|
// 缓存1分钟
|
redisManager.setInviteShortLink(uid, shortLink);
|
|
JSONObject data = new JSONObject();
|
data.put("shortLink", shortLink);
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("生成短连接失败"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 获取邀请电话号码
|
*
|
* @param callback
|
* @param uid
|
* 用户id
|
* @param out
|
*/
|
@RequestMapping(value = "getUserPhone")
|
public void getUserPhone(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
|
try {
|
|
if (uid == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
|
return;
|
}
|
|
UserInfo userInfo = userInfoService.selectByPKey(uid);
|
if (userInfo == null || userInfo.getPhone() == null || userInfo.getPhone().trim().length() == 0) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂未绑定电话号码"));
|
return;
|
}
|
JSONObject data = new JSONObject();
|
data.put("phone", userInfo.getPhone());
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
|
e.printStackTrace();
|
}
|
}
|
|
/**
|
* 获取用户邀请上级
|
*
|
* @param callback
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getUserBoss")
|
public void getUserBoss(AcceptData acceptData, String callback, Long uid, PrintWriter out) {
|
if (uid == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不正确"));
|
return;
|
}
|
|
try {
|
ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
if (threeSale == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "无上级邀请人"));
|
return;
|
}
|
|
UserInfo boss = threeSale.getBoss();
|
if (boss == null) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("上级邀请人获取失败"));
|
return;
|
}
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
|
Long createTime = threeSale.getCreateTime();
|
Date inviteTime = new Date(createTime);
|
|
JSONObject data = new JSONObject();
|
data.put("nickName", boss.getNickName());
|
data.put("portrait", boss.getPortrait());
|
data.put("inviteTime", sdf.format(inviteTime));
|
JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
|
} catch (Exception e) {
|
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("获取数据失败"));
|
e.printStackTrace();
|
}
|
}
|
}
|