| | |
| | |
|
| | | import java.io.IOException;
|
| | | import java.io.PrintWriter;
|
| | | import java.io.UnsupportedEncodingException;
|
| | | import java.lang.reflect.Type;
|
| | | import java.math.BigDecimal;
|
| | | import java.net.URLEncoder;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Calendar;
|
| | | import java.util.Date;
|
| | |
| | | import com.google.gson.stream.JsonReader;
|
| | | import com.google.gson.stream.JsonWriter;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.common.AdminUser;
|
| | | import com.yeshi.fanli.entity.common.Config;
|
| | | import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
|
| | | import com.yeshi.fanli.entity.redpack.RedPackExchange;
|
| | | import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
|
| | | import com.yeshi.fanli.entity.redpack.RedPackWinInvite.RedPackWinInviteTypeEnum;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.exception.redpack.RedPackExchangeException;
|
| | | import com.yeshi.fanli.exception.redpack.RedPackGiveRecordException;
|
| | | import com.yeshi.fanli.service.AdminUserService;
|
| | | import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackConfigService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackExchangeService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackForbidService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.util.AESUtil;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.ThreadUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.UserInviteUtil;
|
| | | import com.yeshi.fanli.util.email.MailSenderUtil;
|
| | | import com.yeshi.fanli.vo.redpack.RedPackDetailVO;
|
| | | import com.yeshi.fanli.vo.redpack.RedPackGiveVO;
|
| | | import com.yeshi.fanli.vo.redpack.RedPackWinInviteVO;
|
| | | import com.yeshi.fanli.vo.redpack.RedPackWinProgressVO;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | |
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | |
|
| | | @Resource
|
| | | private JumpDetailV2Service jumpDetailV2Service;
|
| | |
|
| | | @Resource
|
| | | private SwiperPictureService swiperPictureService;
|
| | |
|
| | | @Resource
|
| | | private UserSystemCouponService userSystemCouponService;
|
| | |
|
| | | @Resource
|
| | | private RedPackForbidService redPackForbidService;
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleSerivce threeSaleSerivce;
|
| | | |
| | | @Resource
|
| | | private ConfigService configService;
|
| | | |
| | | @Resource
|
| | | private AdminUserService adminUserService;
|
| | |
|
| | | /**
|
| | | * 统计
|
| | | *
|
| | |
| | | BigDecimal thisMonthUse = zero;
|
| | | BigDecimal lastMonthUse = zero;
|
| | | BigDecimal balance = redPackBalanceService.getBalance(uid);
|
| | | ;
|
| | | if (balance == null) {
|
| | | balance = zero;
|
| | | } else {
|
| | |
| | | data.put("extractMax", redPackConfigService.getValueByKey("extract_money_max"));
|
| | | data.put("extractBanlenMin", redPackConfigService.getValueByKey("extract_banlen_min"));
|
| | | data.put("extractDesc", "注:3个工作日内完成审核,红包提现成功后将会进入到余额。");
|
| | |
|
| | | data.put("giveTotal", redPackGiveRecordService.countGiveList(uid));
|
| | | data.put("useLink", redPackConfigService.getValueByKey("use_link"));
|
| | | data.put("winLink", redPackConfigService.getValueByKey("invite_win_redpack_link"));
|
| | |
|
| | | data.put("todayWin", todayWin.setScale(2).toString());
|
| | | data.put("yesterdayWin", yesterdayWin.setScale(2).toString());
|
| | |
| | | *
|
| | | * @param acceptData
|
| | | * @param uid
|
| | | * @param index
|
| | | * List最末的主键ID
|
| | | * @param year
|
| | | * 年份
|
| | | * @param month
|
| | | * 月份
|
| | | * @param index List最末的主键ID
|
| | | * @param year 年份
|
| | | * @param month 月份
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getMoneyDetails")
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @RequestMapping(value = "getGiveList", method = RequestMethod.POST)
|
| | | public void getGiveList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
|
| | | if (uid == null || uid <= 0) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (page == null || page <= 0)
|
| | | page = 1;
|
| | |
|
| | | try {
|
| | | List<RedPackGiveVO> list = redPackGiveRecordService.getGiveList(page, Constant.PAGE_SIZE, uid);
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder();
|
| | | Gson gson = gsonBuilder.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy.MM.dd HH:mm").create();
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", gson.toJson(list));
|
| | | data.put("count", redPackGiveRecordService.countGiveList(uid));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | out.print(JsonUtil.loadFalseResult(1, "查询失败"));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 转换红包为真实金钱
|
| | | *
|
| | |
| | | try {
|
| | | redPackExchangeService.exchangeCash(uid, amount);
|
| | | out.print(JsonUtil.loadTrueResult("提现申请成功"));
|
| | |
|
| | | ThreadUtil.run(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | JSONObject json = new JSONObject();
|
| | | json.put("timeStamp", java.lang.System.currentTimeMillis());
|
| | | json.put("adminId", 4L);
|
| | | String sign = AESUtil.encrypt(json.toString(), Constant.ADMINH5_AESKEY);
|
| | | String url = "";
|
| | | try {
|
| | | url = String.format("%s?from=emailh5&sign=%s",
|
| | | Constant.systemCommonConfig.getExtractNotifyUrl(), URLEncoder.encode(sign, "UTF-8"));
|
| | | } catch (UnsupportedEncodingException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | long[] targetUids = new long[] { 3L, 4L };
|
| | | Config config = configService.getConfig(ConfigKeyEnum.extractCodeEmailFrom.getKey());
|
| | | String[] sts = config.getValue().split(",");
|
| | | String account = sts[0];
|
| | | String pwd = sts[1];
|
| | | for (long adminId : targetUids) {
|
| | | AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId);
|
| | | String msg = "有用户采用红包兑换现金";
|
| | | boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "红包兑换现金提醒", msg);
|
| | | }
|
| | | }
|
| | | });
|
| | |
|
| | | } catch (RedPackExchangeException e) {
|
| | | out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("winMoney", redPackWinInviteService.getRewardMoney(uid).setScale(2));
|
| | | data.put("count", redPackWinInviteService.countRewardRecord(uid));
|
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(list));
|
| | | if (!StringUtil.isNullOrEmpty(callback)) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | } else
|
| | | } else {
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | @RequestMapping(value = "getBasicInfo")
|
| | | public void getBasicInfo(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
|
| | | if (uid == null || uid <= 0) {
|
| | | out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("balance", redPackBalanceService.getBalance(uid));
|
| | | data.put("ruleLink", redPackConfigService.getValueByKey("invite_reward_rule_link"));
|
| | | data.put("shareLink", UserInviteUtil.getShareUrl(uid));
|
| | | data.put("redPackLock", redPackForbidService.verifyForbid(uid));
|
| | |
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
| | | if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
|
| | | data.put("inviteCode", userInfoExtra.getInviteCode());
|
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
| | | if (!StringUtil.isNullOrEmpty(inviteCode)) {
|
| | | data.put("inviteCode", inviteCode);
|
| | | } else {
|
| | | data.put("inviteCode", "");
|
| | | }
|
| | |
|
| | | // 赠送免单券
|
| | | long freeCouponCount = userSystemCouponService.countGiveFreeCoupon(uid);
|
| | | // 奖励券
|
| | | long rewardCouponCount = userSystemCouponService.countUsableRewardCoupon(uid);
|
| | |
|
| | | data.put("freeCouponCount", freeCouponCount);
|
| | | data.put("rewardCouponCount", rewardCouponCount);
|
| | |
|
| | | if (!StringUtil.isNullOrEmpty(callback)) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | } else
|
| | | } else {
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 该用户邀请奖金榜
|
| | | * |
| | | * @param acceptData
|
| | | * @param uid 下线UID
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getInviteReward")
|
| | | public void getInviteReward(AcceptData acceptData, Integer page, Long uid, String callback, PrintWriter out) {
|
| | | if (uid == null || uid <= 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
|
| | | return;
|
| | | }
|
| | |
|
| | | if (page == null || page < 1)
|
| | | page = 1;
|
| | |
|
| | | List<RedPackWinProgressVO> listVO = new ArrayList<RedPackWinProgressVO>();
|
| | | List<RedPackWinInvite> list = redPackWinInviteService.getWinTopListByBossId(page, Constant.PAGE_SIZE, uid);
|
| | | if (list != null) {
|
| | | for (RedPackWinInvite win : list) {
|
| | | ThreeSale threeSale = threeSaleSerivce.getNearRelationByBossIdAndWorkerId(uid, win.getTeamUid());
|
| | | if (threeSale == null)
|
| | | continue;
|
| | |
|
| | | UserInfo userInfo = userInfoService.selectByPKey(win.getTeamUid());
|
| | | if (userInfo == null)
|
| | | continue;
|
| | |
|
| | | RedPackWinProgressVO progressVO = new RedPackWinProgressVO();
|
| | | progressVO.setUid(userInfo.getId());
|
| | | progressVO.setName(userInfo.getNickName());
|
| | | progressVO.setPortrait(userInfo.getPortrait());
|
| | | progressVO.setMoney(win.getMoney().setScale(2).toString());
|
| | | progressVO.setTime("邀请:" + TimeUtil.formatDate(threeSale.getSucceedTime()));
|
| | | listVO.add(progressVO);
|
| | | }
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", listVO);
|
| | | data.put("count", redPackWinInviteService.countWinTopListByBossId(uid));
|
| | | if (!StringUtil.isNullOrEmpty(callback)) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | } else {
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 该用户邀请进度
|
| | | * |
| | | * @param acceptData
|
| | | * @param tid 下线UID
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getInviteProgress")
|
| | | public void getInviteProgress(AcceptData acceptData, Long uid, Long tid, String callback, PrintWriter out) {
|
| | | if (uid == null || uid <= 0 || tid == null || tid <= 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "传递参数缺失"));
|
| | | return;
|
| | | }
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", redPackWinInviteService.getInviteProgressByWorkerId(uid, tid));
|
| | | data.put("num", redPackWinInviteService.countTeamNumByTid(uid, tid));
|
| | | if (!StringUtil.isNullOrEmpty(callback)) {
|
| | | out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
|
| | | } else {
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | }
|
| | | }
|