喻健
2018-12-19 9f09e749e7198051b9af6c2421336a80b58b79a4
fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
@@ -1,15 +1,16 @@
package com.yeshi.fanli.controller.client;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
@@ -39,7 +40,6 @@
import com.yeshi.fanli.entity.bus.user.ExtractRecord;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.HongBaoExtra;
import com.yeshi.fanli.entity.bus.user.HongBaoMessage;
import com.yeshi.fanli.entity.bus.user.LostOrder;
import com.yeshi.fanli.entity.bus.user.MoneyRecord;
import com.yeshi.fanli.entity.bus.user.OrderItem;
@@ -50,6 +50,8 @@
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.common.Config;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -59,11 +61,11 @@
import com.yeshi.fanli.exception.goods.CollectionGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.AdminUserService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoMessageService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleExtraInfoSerivce;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
@@ -82,6 +84,7 @@
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.WxDownService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
import com.yeshi.fanli.util.HongBaoUtil;
@@ -91,6 +94,7 @@
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.email.MailSenderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
@@ -127,9 +131,6 @@
   @Resource
   private SystemService systemService;
   @Resource
   private HongBaoMessageService hongBaoMessageService;
   @Resource
   private ShamUserService shamUserService;
@@ -172,6 +173,9 @@
   @Resource
   private CollectionGoodsV2Service collectionGoodsV2Service;
   @Resource
   private AdminUserService adminUserService;
   private static final String PASSWORD_MAX_ERROR = "password_max_error";
   private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -695,16 +699,9 @@
      JSONObject data = new JSONObject();
      data.put("user", user);
      Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
      String maxError = "5";
      maxError = configService.get(PASSWORD_MAX_ERROR); // 当日输错密码最多次数
      PassWordErrorRecord record = passWordErrorRecordService.getRecord(uid);
      int max = Integer.parseInt(maxError);
      if (record.getCount() >= max) {
         data.put("error", "1"); // 达到最多限制
      } else {
         data.put("error", "0");
      }
      data.put("maxError", maxError);
      data.put("error", "0");
      data.put("maxError", 1);
      String minMoney = configService.get(EXTRACT_MIN_MONEY); // 单笔提现的最小金额
      String maxMoney = configService.get(EXTRACT_MAX_MONEY); // 单笔提现的最大金额
      int maxDayCount = Integer.parseInt(configService.get("extract_count_day"));
@@ -773,7 +770,7 @@
      ExtractRecord extractRecord = extractRecordService.getExtractRecordByUid(uid);
      boolean canExtract = true;
      String errorMsg = "";
      if (extractRecord != null && extractRecord.getCount() + 1 >= maxDayCount) {
      if (extractRecord != null && extractRecord.getCount() + 1 > maxDayCount) {
         canExtract = false;
         errorMsg = String.format("每日最多提现%s次", maxDayCount + "");
      } else if (extractRecord != null
@@ -1236,6 +1233,30 @@
         JSONObject data = new JSONObject();
         data.put("id", extract.getId());
         out.print(JsonUtil.loadTrueResult(data));
         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();
               }
               AdminUser adminUser = adminUserService.selectByPrimaryKey(4L);
               Config config = configService.getConfig("extract_code_email_from");
               String[] sts = config.getValue().split(",");
               String account = sts[0];
               String pwd = sts[1];
               String msg = "提现审核链接:" + url;
               boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "有新的提现审核", msg);
            }
         });
         return;
      } else if (etype == 1) {
         out.print(JsonUtil.loadFalseResult("已超过当日提现次数"));
@@ -1301,14 +1322,6 @@
      data.put("hongBao", GsonUtil.toJsonExpose(hbx));
      out.print(JsonUtil.loadTrueResult(data));
      LogHelper.userInfo("[ip:" + IPUtil.getRemotIP(request) + "] 打开红包[id=" + hid + "]成功!");
   }
   @RequestMapping(value = "getHongBaoMessages", method = RequestMethod.POST)
   public void getHongBaoMessages(AcceptData acceptData, PrintWriter out) {
      List<HongBaoMessage> list = shamUserService.getManyData();
      JSONObject data = new JSONObject();
      data.put("list", list);
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping("findLostOrder")
@@ -1505,15 +1518,13 @@
      // collectionGoodsService.findCollectionGoods(uid, page + 1);
      long count = collectionGoodsV2Service.getCollectionGoodsCount(uid);
      JSONObject data = new JSONObject();
      Map<String, String> map = hongBaoManageService.convertMap();
      String proportion = map.get("hongbao_goods_proportion");
      String fcRate = map.get("hongbao_fc_ratio");
      BigDecimal proportion = hongBaoManageService.getFanLiRate();
      List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
      collectionGoodsList.parallelStream().forEachOrdered(cg -> {
         TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(cg.getCommonGoods());
         goodsBrief.setSalesCount(TaoBaoUtil.getSaleCount(goodsBrief.getBiz30day()));
         TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion,
               fcRate, "");
         TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
               proportion.toString(), "");
         taoBaoGoodsBriefExtra.setCreatetime(cg.getCreateTime());
         list.add(taoBaoGoodsBriefExtra);
      });