admin
2019-07-31 f253c6f0ce5e708850f8e3c84a6a9008fc37df5f
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
@@ -40,6 +40,7 @@
import com.yeshi.fanli.dto.HongBaoDTO;
import com.yeshi.fanli.dto.money.AccountDetails;
import com.yeshi.fanli.dto.order.OrderItem;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.AppVersionInfo;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.AccountMessage;
@@ -58,6 +59,7 @@
import com.yeshi.fanli.entity.common.Config;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.order.HongBaoOrder;
import com.yeshi.fanli.entity.system.BusinessSystem;
@@ -84,6 +86,7 @@
import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
import com.yeshi.fanli.service.inter.user.AccountMessageService;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.user.ExtractRecordService;
@@ -108,10 +111,13 @@
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.account.UserUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
import com.yeshi.fanli.util.email.MailSenderUtil;
import com.yeshi.fanli.util.factory.AccountDetailsFactory;
import com.yeshi.fanli.util.factory.HongBaoFactory;
import com.yeshi.fanli.util.factory.OrderItemFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.util.wx.WXLoginUtil;
@@ -205,10 +211,12 @@
   @Resource
   private AccountMessageService accountMessageService;
   @Resource
   private MaskKeyService maskKeyService;
   @Resource
   private UserTaoLiJinDetailService userTaoLiJinDetailService;
   private static final String PASSWORD_MAX_ERROR = "password_max_error";
   private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -577,7 +585,9 @@
      if (mySettings.getNoInvitationBonus() == null) {
         mySettings.setNoInvitationBonus(0);
      }
      if (mySettings.getOpenSpreadHongBao() == null) {
         mySettings.setOpenSpreadHongBao(0);
      }
      data.put("moduleState", mySettings);
      int welfareCenterNews = 0;
@@ -746,7 +756,8 @@
      data.put("error", "0");
      data.put("maxError", 1);
      String minMoney = configService.get(EXTRACT_MIN_MONEY); // 单笔提现的最小金额
      String maxMoney = configService.get("extract_money_day"); // 每日最大提现金额
      String maxMoney = configService.get(EXTRACT_MAX_MONEY); // 单笔提现的最小金额
      String maxDayMoney = configService.get("extract_money_day"); // 每日最大提现金额
      int maxDayCount = Integer.parseInt(configService.get("extract_count_day"));
      ExtractRecord extractRecord = extractRecordService.getExtractRecordByUid(uid);
      boolean canExtract = true;
@@ -755,15 +766,15 @@
         canExtract = false;
         errorMsg = String.format("每日最多提现%s次", maxDayCount + "");
      } else if (extractRecord != null
            && extractRecord.getMoney().add(new BigDecimal(minMoney)).compareTo(new BigDecimal(maxMoney)) > 0) {
            && extractRecord.getMoney().add(new BigDecimal(minMoney)).compareTo(new BigDecimal(maxDayMoney)) > 0) {
         canExtract = false;
         errorMsg = String.format("每日最多提现%s元", maxMoney);
         errorMsg = String.format("每日最多提现%s元", maxDayMoney);
      }
      data.put("canExtract", canExtract);
      data.put("extractErrorMsg", errorMsg);
      data.put("minMoney", minMoney);
      data.put("maxMoney", maxMoney);
      data.put("minMoney", minMoney);// 单笔最低
      data.put("maxMoney", maxMoney);// 单笔最高
      data.put("maxDayCount", maxDayCount);
      data.put("bindingAccountList", gson.toJson(filterBindingAccount(bindingAccountList)));
@@ -1070,6 +1081,7 @@
    * @param type
    * @param out
    */
   @RequestSerializableByKey(key = "uid")
   @RequestMapping(value = "extractmoneynew", method = RequestMethod.POST)
   public void extractMoneyNew(AcceptData acceptData, long uid, BigDecimal money, String vcode,
         HttpServletRequest request, int type, PrintWriter out) {
@@ -1186,7 +1198,7 @@
      } else if (etype == 111) {
         out.print(JsonUtil.loadFalseResult("更换了手机号后7天内不允许提现"));
      } else if (etype == 110) {
         out.print(JsonUtil.loadFalseResult(Constant.znxConfig.getExtractWrongMsg()));
         out.print(JsonUtil.loadFalseResult("有维权订单尚未扣款"));
      }
   }
@@ -1334,7 +1346,7 @@
      // count>0 有消息
      int count = accountMessageService.getCanOpenCount(uid);
      out.print(JsonUtil.loadTrueResult(count));
      ThreadUtil.run(new Runnable() {
         @Override
         public void run() {
@@ -1349,21 +1361,57 @@
   }
   @RequestMapping("collectionGoods")
   public void collectionGoods(AcceptData acceptData, long uid, long auctionId, int type, PrintWriter out) {
      CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId);
   public void collectionGoods(AcceptData acceptData, long uid, long auctionId, int type, Integer goodsType,
         PrintWriter out) {
      if (goodsType == null) {
         goodsType = Constant.SOURCE_TYPE_TAOBAO;
      }
      CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId, goodsType);
      if (type == 1) {
         if (find != null) {
            out.print(JsonUtil.loadFalseResult(""));
            return;
         }
         try {
            TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
            collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
            out.print(JsonUtil.loadTrueResult("收藏成功"));
         } catch (TaobaoGoodsDownException e) {
            out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
         } catch (CollectionGoodsException e1) {
            out.print(JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
         if (goodsType == Constant.SOURCE_TYPE_JD) {
            JDGoods jdGoods = JDApiUtil.queryGoodsDetail(auctionId);
            if (jdGoods == null) {
               jdGoods = JDApiUtil.getGoodsDetail(auctionId);
            }
            if (jdGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
            } else {
               try {
                  collectionGoodsV2Service.addJDCollection(uid, jdGoods);
                  out.print(JsonUtil.loadTrueResult("收藏成功"));
               } catch (CollectionGoodsException e) {
                  out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
               }
            }
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
            PDDGoodsDetail pddGoods = PinDuoDuoApiUtil.getGoodsDetail(auctionId);
            if (pddGoods == null) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
               return;
            }
            try {
               collectionGoodsV2Service.addPDDCollection(uid, pddGoods);
               out.print(JsonUtil.loadTrueResult("收藏成功"));
            } catch (CollectionGoodsException e) {
               out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
            }
         } else {
            try {
               TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
               collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
               out.print(JsonUtil.loadTrueResult("收藏成功"));
            } catch (TaobaoGoodsDownException e) {
               out.print(JsonUtil.loadFalseResult(1, "商品已下架"));
            } catch (CollectionGoodsException e1) {
               out.print(JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
            }
         }
      } else {
         if (find == null) {
@@ -1371,7 +1419,7 @@
            return;
         } else {
            try {
               collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId);
               collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId, goodsType);
               out.print(JsonUtil.loadTrueResult("取消收藏成功"));
            } catch (CollectionGoodsException e) {
               out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
@@ -1391,30 +1439,40 @@
    * @param out
    */
   @RequestMapping("collectionGoodsJp")
   public void collectionGoodsJp(String callback, AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) {
   public void collectionGoodsJp(String callback, AcceptData acceptData, Long uid, Long auctionId, Integer goodsType,
         PrintWriter out) {
      if (uid == null || auctionId == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(""));
         return;
      }
      CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId);
      if (goodsType == null) {
         goodsType = Constant.SOURCE_TYPE_TAOBAO;
      }
      CollectionGoodsV2 find = collectionGoodsV2Service.findByUidAndAuctionId(uid, auctionId, goodsType);
      if (find == null) {
         // 添加收藏
         try {
            TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
            collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(1));
         } catch (TaobaoGoodsDownException e) {
            JsonUtil.printMode(out, callback, (JsonUtil.loadFalseResult(1, "商品已下架")));
         } catch (CollectionGoodsException e1) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
         if (goodsType == Constant.SOURCE_TYPE_JD) {
         } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
         } else {
            try {
               TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
               collectionGoodsV2Service.addCollection(uid, taoBaoGoodsBrief);
               JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(1));
            } catch (TaobaoGoodsDownException e) {
               JsonUtil.printMode(out, callback, (JsonUtil.loadFalseResult(1, "商品已下架")));
            } catch (CollectionGoodsException e1) {
               JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e1.getCode(), e1.getMsg()));
            }
         }
      } else {
         // 取消收藏
         try {
            collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId);
            collectionGoodsV2Service.cancelCollectionByAuctionId(uid, auctionId, goodsType);
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("取消收藏成功"));
         } catch (CollectionGoodsException e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
@@ -1427,11 +1485,11 @@
   public void collectionGoodsList(AcceptData acceptData, long uid, int page, PrintWriter out) {
      List<CollectionGoodsV2> collectionGoodsList = collectionGoodsV2Service.getCollectionGoodsList(uid, page + 1,
            Constant.PAGE_SIZE);
            Constant.PAGE_SIZE, Constant.SOURCE_TYPE_TAOBAO);
      List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
      long count = collectionGoodsV2Service.getCollectionGoodsCount(uid);
      long count = collectionGoodsV2Service.getCollectionGoodsCount(uid, Constant.SOURCE_TYPE_TAOBAO);
      JSONObject data = new JSONObject();
      List<TaoBaoGoodsBrief> listTaoKeGoods = new ArrayList<TaoBaoGoodsBrief>();
@@ -1508,14 +1566,16 @@
   }
   @RequestMapping("deleteCollectionGoods")
   public void deleteCollectionGoods(AcceptData acceptData, String ids, Integer type, long uid, PrintWriter out) {
   public void deleteCollectionGoods(AcceptData acceptData, String ids, Integer type, long uid, Integer goodsType,
         PrintWriter out) {
      if (type != null && type == 1) {
         clearConllectionGoods(acceptData, uid, out);
      } else {
         if (!StringUtil.isNullOrEmpty(ids)) {
            Arrays.asList(ids.split(",")).parallelStream().forEach(auctionIdStr -> {
               try {
                  collectionGoodsV2Service.cancelCollectionByAuctionId(uid, Long.parseLong(auctionIdStr));
                  collectionGoodsV2Service.cancelCollectionByAuctionId(uid, Long.parseLong(auctionIdStr),
                        goodsType);
               } catch (Exception e) {
                  e.printStackTrace();
               }
@@ -2085,6 +2145,14 @@
         if (mySettings.getNoInvitationBonus() == null) {
            mySettings.setNoInvitationBonus(0);
         }
         if (mySettings.getOpenSpreadHongBao() == null) {
            if (userTaoLiJinDetailService.countDetail(uid) > 0) {
               mySettings.setOpenSpreadHongBao(1);
            } else {
               mySettings.setOpenSpreadHongBao(0);
            }
         }
         data.put("moduleState", mySettings);
         int welfareCenterNews = 0;
@@ -2167,9 +2235,9 @@
      }
   }
   /**
    * 用户更换头像
    *
    * @param acceptData
    * @param fileList
    * @param uid
@@ -2177,22 +2245,23 @@
    * @param out
    */
   @RequestMapping(value = "uploadPortrait")
   public void uploadPortrait(AcceptData acceptData, MultipartFile file, Long uid, HttpServletRequest request, PrintWriter out) {
   public void uploadPortrait(AcceptData acceptData, MultipartFile file, Long uid, HttpServletRequest request,
         PrintWriter out) {
      try {
         if (uid == null) {
            out.print(JsonUtil.loadFalseResult("用户未登录"));
            return;
         }
         if (file == null) {
            out.print(JsonUtil.loadFalseResult("上传文件不能为空"));
            return;
         }
         userInfoService.uploadPortrait(file, uid);
         out.print(JsonUtil.loadTrueResult("保存成功"));
      } catch (UserInfoException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));
         try {
@@ -2216,9 +2285,10 @@
         }
      }
   }
   /**
    * 更换昵称
    *
    * @param acceptData
    * @param nickName
    * @param uid
@@ -2239,14 +2309,14 @@
            out.print(JsonUtil.loadFalseResult("昵称过长"));
            return;
         }
         if(maskKeyService.examineContent(nickName)) {
         if (maskKeyService.examineContent(nickName)) {
            out.print(JsonUtil.loadFalseResult("不能包含敏感词汇"));
            return;
         }
         userInfoService.saveUserInfo(nickName, uid);
         out.print(JsonUtil.loadTrueResult("保存成功"));
      } catch (UserInfoException e) {
         out.print(JsonUtil.loadFalseResult(e.getMsg()));