admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -4,7 +4,6 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
@@ -28,52 +27,39 @@
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.QRCodeUtil;
import org.yeshi.utils.tencentcloud.COSManager;
import org.yeshi.utils.wx.WXUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dao.dynamic.DynamicInfoDao;
import com.yeshi.fanli.dao.mybatis.help.HelpCenterMapper;
import com.yeshi.fanli.dto.jd.JDSearchResult;
import com.yeshi.fanli.entity.bus.activity.ActivityShareResult;
import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.entity.dynamic.GoodsPicture;
import com.yeshi.fanli.entity.dynamic.InviteMaterial;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.SearchFilter;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.exception.ActivityException;
import com.yeshi.fanli.exception.push.PushException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.log.LogManager;
import com.yeshi.fanli.log.LogType;
import com.yeshi.fanli.service.inter.activity.ActivityService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.dynamic.InviteMaterialService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.user.integral.IntegralGetService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.FileUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.db.MongoDBManager;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.push.OPPOPushUtil;
import com.yeshi.fanli.util.push.VIVOPushUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -125,52 +111,8 @@
   @Resource
   private IntegralGetService integralGetService;
   @RequestMapping(value = "testimg")
   public void testImg(HttpServletRequest request, PrintWriter out) {
      long startTime = System.currentTimeMillis();
      List<String> list = new ArrayList<>();
      for (int i = 0; i < 10; i++) {
         list.add("i" + i);
      }
      try {
         final TaoBaoGoodsBrief goods = redisManager.getTaoBaoGoodsBrief(569823237075L);
      } catch (TaobaoGoodsDownException e1) {
         e1.printStackTrace();
      }
      String url = "http://www.baidu.com";
      list.parallelStream().forEach(ids -> {
         InputStream portrait = HttpUtil.getAsInputStream(
               "https://wwc.alicdn.com/avatar/getAvatar.do?userId=1889722423&width=160&height=160&type=sns");
         System.out.println(ids + "开始时间:" + System.currentTimeMillis());
         String uid = "123";
         String auctionId = "test-" + ids;
         String destPath = FileUtil.getCacheDir() + "/" + auctionId + ".jpg";
         String shareImgPath = FileUtil.getCacheDir() + "/share_" + uid + "_" + auctionId + ".png";
         try {
            QRCodeUtil.getInstance(500).encode(url, destPath);
         } catch (Exception e) {
            e.printStackTrace();
         }
         long startDTime = System.currentTimeMillis();
         /*
          * try { //ImageUtil.drawGoodsShareImg(new FileInputStream(new
          * File(destPath)), portrait, goods, shareImgPath); } catch
          * (FileNotFoundException e) { e.printStackTrace(); }
          */
         System.out.println(System.currentTimeMillis() - startDTime);
         String shareImgUrl = COSManager.getInstance()
               .uploadFile(new File(shareImgPath), "share_" + uid + "_" + auctionId + ".png").getUrl();
         System.out.println(ids + "结束时间:" + System.currentTimeMillis());
      });
      System.out.println("整体耗时:" + (System.currentTimeMillis() - startTime));
   }
   @Resource
   private UserMoneyExtraService userMoneyExtraService;
   @RequestMapping(value = "kefu")
   public void kefu(HttpServletRequest request, PrintWriter out) {
@@ -294,76 +236,6 @@
      }
   }
   @RequestMapping(value = "insertShop")
   public void insertShop(PrintWriter out) {
      try {
         dynamicInfoService.insertShopInfo();
         dynamicInfoService.insertTimeHotSale();
         dynamicInfoService.insertTimeRecommend();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "uploadInviteMaterial")
   public void uploadInviteMaterial(PrintWriter out) {
      try {
         List<InviteMaterial> list = new ArrayList<InviteMaterial>();
         // 图片文件
         File file = new File("E:\\Invite\\Picture");
         File[] files = file.listFiles();
         for (File filePic : files) {// 遍历这个数组
            String name = filePic.getName();
            String prefix = name.substring(name.lastIndexOf(".") + 1);
            // 上传文件相对位置
            String filePath = "/resource/invite/everyday/" + UUID.randomUUID().toString().replace("-", "") + "."
                  + prefix;
            String fileUrl = COSManager.getInstance().uploadFile(filePic, filePath).getUrl();
            System.out.println("FileName:" + name);
            System.out.println("url:" + fileUrl);
            InviteMaterial inviteMaterial = new InviteMaterial();
            inviteMaterial.setState(0);
            inviteMaterial.setPicture(fileUrl);
            list.add(inviteMaterial);
         }
         List<String> listTxt = new ArrayList<String>();
         File textfile = new File("E:\\Invite\\content.txt");// Text文件
         BufferedReader br = new BufferedReader(new FileReader(textfile));// 构造一个BufferedReader类来读取文件
         String s = "";
         while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行
            if (StringUtil.isNullOrEmpty(s)) {
               continue;
            }
            listTxt.add(s);
         }
         br.close();
         if (list.size() == 0 || listTxt.size() == 0 || listTxt.size() < list.size()) {
            return;
         }
         for (int i = 0; i < list.size(); i++) {
            InviteMaterial invite = list.get(i);
            invite.setText(listTxt.get(i));
            inviteMaterialService.insert(invite);
         }
         JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("上传成功"));
      } catch (Exception e) {
         JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("上传失败"));
         e.printStackTrace();
      }
   }
   /**
    * 插入邀请素材
    * 
@@ -449,88 +321,6 @@
      }
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "getJingFenList")
   public void getJingFenList(String callback, Integer page, Integer eliteId, PrintWriter out) {
      try {
         JDSearchResult result = JDApiUtil.getJingFenGoods(page, eliteId);
         long count = 0;
         JSONObject data = new JSONObject();
         JSONArray array = new JSONArray();
         if (result != null) {
            PageEntity pageEntity = result.getPageEntity();
            if (pageEntity != null) {
               count = pageEntity.getTotalCount();
            }
            List<JDGoods> goodsList = result.getGoodsList();
            if (goodsList != null && goodsList.size() > 0) {
               BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
               BigDecimal shareRate = hongBaoManageService.getShareRate();
               Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                     .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
               for (JDGoods goods : goodsList) {
                  GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate);
                  array.add(gson.toJson(goodsDetailVO));
               }
            }
         }
         data.put("count", count);
         data.put("list", array);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
         e.printStackTrace();
      }
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "queryExistsId")
   public void queryExistsAuctionId(PrintWriter out) {
      try {
         List<DynamicInfo> list = dynamicInfoDao.queryExistsAuctionId();
         for (DynamicInfo dynamicInfo : list) {
            List<GoodsPicture> imgs = dynamicInfo.getImgs();
            if (imgs == null || imgs.size() == 0) {
               continue;
            }
            boolean update = false;
            for (GoodsPicture goodsPicture : imgs) {
               TaoBaoGoodsBriefExtra goods = goodsPicture.getGoods();
               if (goods == null) {
                  continue;
               }
               if (goods.getAuctionId() == null) {
                  update = true;
                  goods.setAuctionId(goods.getId());
               }
            }
            if (update) {
               dynamicInfo.setImgs(imgs);
               dynamicInfoDao.updateGoodInfo(dynamicInfo);
            }
         }
         JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("操作成功"));
         // JsonUtil.printMode(out, null,
         // JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(list)));
      } catch (Exception e) {
         JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("操作失败"));
         e.printStackTrace();
      }
   }
   @RequestMapping(value = "getWaitingThreadsCount")
   public void getWaitingThreadsCount(PrintWriter out) {
      out.print(Constant.waitingThreadSet.size());
@@ -545,7 +335,7 @@
         for (Iterator<String> its = sets.iterator(); its.hasNext();)
            array.add(its.next());
      } finally {
         jedisPool.returnResource(jedis);
         jedis.close();
      }
      out.println(array.toString());
   }
@@ -585,61 +375,9 @@
      out.print("success");
   }
   @RequestMapping(value = "testListTLJGoods")
   public void getGoodsList(String callback, PrintWriter out) {
      SearchFilter sf = new SearchFilter();
      sf.setQuan(1);
      sf.setTmall(true);
      // sf.setEndPrice(new BigDecimal(1000));
      sf.setPage(1);
      sf.setPage(100);
      sf.setCateIds("16");
      sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
      TaoBaoSearchResult result = TaoKeApiUtil.searchWuLiao(sf);
      Gson gson = new Gson();
      JSONArray array = new JSONArray();
      for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) {
         array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, "100", null)));
      }
      out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(array)));
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "addInviteOrderLevelOne")
   public void addInviteOrderLevelOne(PrintWriter out) {
      try {
         System.out.println("-------------请求---------------");
         integralGetService.addShareSingleGoods(974767L);
         JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("操作成功"));
      } catch (Exception e) {
         JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("操作失败"));
         e.printStackTrace();
      }
   }
   @RequestMapping("pushVIVO")
   public void pushVIVO(PrintWriter out) {
      List<String> regList = new ArrayList<>();
      regList.add("15710270630271520610033");
      // regList.add("15711218630321520681531");
      // try {
      // VIVOPushUtil.pushUrl(regList, "标题", "网页内容", "http://www.baidu.com");
      // } catch (Exception e) {
      // }
      try {
         VIVOPushUtil.pushBaiChuanUrl(regList, "标题", "百川内容", "http://www.taobao.com");// 有bug
         // VIVOPushUtil.pushGoods(regList, "标题", "商品内容", 2, 100005625634L);
         // VIVOPushUtil.pushUserSignInNotification(regList, "标题", "签到");
         // VIVOPushUtil.pushWelfareCenter(regList,"标题", "福利中心");
      } catch (PushException e) {
         e.printStackTrace();
      }
   @RequestMapping("getLocalTime")
   public void getLocalTime(PrintWriter out) {
      out.print(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
   }
   @RequestMapping("getSchedulerList")
@@ -652,4 +390,34 @@
      }
   }
   @RequestMapping("getTBGoodsCate")
   public void getTaoBaoGoodsCat(Long id, PrintWriter out) {
      TaoBaoGoodsBrief goods = null;
      try {
         goods = TaoKeApiUtil.getSimpleGoodsInfo(id);
      } catch (TaobaoGoodsDownException e) {
         e.printStackTrace();
      }
      if (goods == null)
         out.println("商品已下架");
      else
         out.println(
               "<html><head><meta charset=utf-8></head><body>" + String.format("cat_name:%s <br> cat_leaf_name:%s",
                     goods.getRootCategoryName(), goods.getLeafName()) + "</body></html>");
   }
   @RequestMapping("getJedisInfo")
   public void getJedisInfo(PrintWriter out) {
      JSONObject data = new JSONObject();
      data.put("active", jedisPool.getNumActive());
      data.put("idle", jedisPool.getNumIdle());
      data.put("waiters", jedisPool.getNumWaiters());
      out.print(data.toString());
   }
   @RequestMapping("log")
   public void log(PrintWriter out) {
      LogManager.getLogger(LogType.taobaoAuth).info("123123123");
   }
}