admin
2024-10-16 62a447d89331aee1feae7724c7616aa1bb2cfe79
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -1,541 +1,496 @@
package com.yeshi.fanli.controller;
import java.io.BufferedReader;
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;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import javax.annotation.Resource;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.servlet.http.HttpServletRequest;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.quartz.JobExecutionContext;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
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.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.exception.ActivityException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
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.hongbao.HongBaoManageService;
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.db.MongoDBManager;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
@Controller
@RequestMapping("test")
public class TestController {
   @Resource
   private RedisManager redisManager;
   @Resource
   private ActivityService activityService;
   @Resource
   private MongoDBManager mongoDBManager;
   @Resource
   private HelpCenterMapper helpCenterMapper;
   @Resource
   private Scheduler scheduler;
   @Resource
   private DynamicInfoService dynamicInfoService;
   @Resource
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Resource
   private EhCacheCacheManager ehCacheCacheManager;
   @Resource
   private ConfigService configService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private InviteMaterialService inviteMaterialService;
   @Resource
   private DynamicInfoDao dynamicInfoDao;
   @Resource
   private JedisPool jedisPool;
   @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));
   }
   @RequestMapping(value = "kefu")
   public void kefu(HttpServletRequest request, PrintWriter out) {
      String content = WXUtil.getContent(request);
      LogHelper.test(content);
      return;
   }
   @RequestMapping(value = "testactivity")
   public void test2(PrintWriter out) {
      List<RecommendActivity> list = activityService.getRecommendActivityList(1, Constant.PAGE_SIZE);
      long count = activityService.getRecommendActivityCount(null);
      JSONObject data = new JSONObject();
      data.put("data", getGson().toJson(list));
      data.put("count", count);
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "testactivitysharegoods")
   public void test3(PrintWriter out) {
      try {
         ActivityShareResult result = activityService.shareActivityGoods(343448L, 1L);
         out.print(JsonUtil.getSimpleGson().toJson(result));
      } catch (UserShareGoodsRecordException e) {
         e.printStackTrace();
      } catch (ActivityException e) {
         e.printStackTrace();
      }
   }
   @RequestMapping(value = "testactivityshareinvite")
   public void test4(PrintWriter out) {
      try {
         ActivityShareResult result = activityService.shareInviteImg(343448L, 2L);
         out.print(JsonUtil.getSimpleGson().toJson(result));
      } catch (ActivityException e) {
         e.printStackTrace();
      }
   }
   @RequestMapping(value = "testnumber")
   public void test5(PrintWriter out) {
      JSONArray array = new JSONArray();
      for (int i = 0; i < 1000; i++) {
         JSONObject data = new JSONObject();
         data.put("number", new BigDecimal("10").add(new BigDecimal("0.1").multiply(new BigDecimal(i))));
         array.add(data);
      }
      out.print(array.toString());
   }
   private Gson getGson() {
      GsonBuilder gb = new GsonBuilder();
      gb.setDateFormat("MM-dd HH:mm");
      gb.excludeFieldsWithoutExposeAnnotation();
      Gson gson = gb.create();
      return gson;
   }
   @RequestMapping(value = "scheduler")
   public void test8(PrintWriter out) {
      try {
         List<JobExecutionContext> jobList = scheduler.getCurrentlyExecutingJobs();
         out.print("running job:" + jobList.size());
      } catch (SchedulerException e) {
         e.printStackTrace();
      }
   }
   @RequestMapping(value = "testhtml")
   public void testhtml(PrintWriter out) {
      out.print("<script>yestv.finishPage();</script>");
      out.close();
   }
   /**
    * 清除缓存
    *
    * @param out
    */
   @RequestMapping(value = "removeCache")
   public void removeCache(PrintWriter out) {
      ehCacheCacheManager.getCacheManager().clearAll();
   }
   @RequestMapping(value = "removeRedisCache")
   public void removeRedisCache(String key, PrintWriter out) {
      redisManager.removeCommonString(key);
   }
   @RequestMapping(value = "testConfig")
   public void getTestConfig(PrintWriter pw) {
      pw.print(configService.get("test"));
   }
   @RequestMapping(value = "testDaTaoKe")
   public void getTestDaTaoKe(PrintWriter pw) {
      Document doc = null;
      try {
         doc = Jsoup.connect("http://www.dataoke.com/ddq").get();
      } catch (IOException e1) {
         e1.printStackTrace();
      }
      Elements els = doc.getElementsByTag("script");
      for (int i = 0; i < els.size(); i++) {
         String content = els.get(i).html();
         if (content.indexOf("var dataDef") > -1) {
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("javascript");
            try {
               String js = "function getData(){return  JSON.stringify(dataDef);}" + content;
               engine.eval(js);
               if (engine instanceof Invocable) {
                  Invocable in = (Invocable) engine;
                  pw.print(in.invokeFunction("getData"));
               }
            } catch (Exception e) {
               e.printStackTrace();
            }
         }
      }
   }
   @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();
      }
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "uploadInviteMaterial2")
   public void uploadInviteMaterial2(PrintWriter out) {
      try {
         List<InviteMaterial> list = new ArrayList<InviteMaterial>();
         File picfile = new File("E:\\Invite\\pic.txt");// Text文件
         BufferedReader brp = new BufferedReader(new FileReader(picfile));// 构造一个BufferedReader类来读取文件
         String fileUrl = "";
         while ((fileUrl = brp.readLine()) != null) {// 使用readLine方法,一次读一行
            if (StringUtil.isNullOrEmpty(fileUrl)) {
               continue;
            }
            InviteMaterial inviteMaterial = new InviteMaterial();
            inviteMaterial.setId(UUID.randomUUID().toString().replace("-", ""));
            inviteMaterial.setState(0);
            inviteMaterial.setPicture(fileUrl);
            list.add(inviteMaterial);
         }
         brp.close();
         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();
      }
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "saveInvite")
   public void saveInvite(InviteMaterial inviteMaterial, PrintWriter out) {
      try {
         inviteMaterial.setState(0);
         inviteMaterialService.insert(inviteMaterial);
         JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("上传成功"));
      } catch (Exception e) {
         JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("上传失败"));
         e.printStackTrace();
      }
   }
   /**
    * 插入邀请素材
    *
    * @param out
    */
   @RequestMapping(value = "insertTimeInvite")
   public void insertTimeInvite(PrintWriter out) {
      try {
         dynamicInfoService.insertTimeInvite();
         JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("操作成功"));
      } catch (Exception e) {
         JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("操作失败"));
         e.printStackTrace();
      }
   }
   /**
    * 插入邀请素材
    *
    * @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());
   }
   @RequestMapping(value = "getBinFaRedisKey")
   public void getPinFaRedisKey(PrintWriter out) {
      JSONArray array = new JSONArray();
      Jedis jedis = jedisPool.getResource();
      try {
         Set<String> sets = jedis.keys("rs-*");
         for (Iterator<String> its = sets.iterator(); its.hasNext();)
            array.add(its.next());
      } finally {
         jedisPool.returnResource(jedis);
      }
      out.println(array.toString());
   }
}
package com.yeshi.fanli.controller;
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.push.PushContentDTO;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.entity.bus.activity.ActivityShareResult;
import com.yeshi.fanli.entity.bus.activity.RecommendActivity;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.config.push.PushMsgFactory;
import com.yeshi.fanli.entity.dynamic.InviteMaterial;
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.exception.user.UserInfoException;
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.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.db.MongoDBManager;
import com.yeshi.fanli.util.email.MailSenderUtil;
import com.yeshi.fanli.util.push.OPPOPushUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.goods.facade.entity.taobao.TaoBaoCouponCache;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.goods.facade.service.TaoBaoCouponCacheService;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.quartz.JobExecutionContext;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.TimeUtil;
import org.yeshi.utils.wx.WXUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import javax.annotation.Resource;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.*;
@Controller
@RequestMapping("test")
public class TestController {
    @Resource
    private RedisManager redisManager;
    @Resource
    private ActivityService activityService;
    @Resource
    private MongoDBManager mongoDBManager;
    @Resource
    private HelpCenterMapper helpCenterMapper;
    @Resource
    private Scheduler scheduler;
    @Resource
    private DynamicInfoService dynamicInfoService;
    @Resource
    private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
    @Resource
    private EhCacheCacheManager ehCacheCacheManager;
    @Resource
    private ConfigService configService;
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private InviteMaterialService inviteMaterialService;
    @Resource
    private DynamicInfoDao dynamicInfoDao;
    @Resource
    private JedisPool jedisPool;
    @Resource
    private TaoBaoCouponCacheService taoBaoCouponCacheService;
    @Resource
    private RabbitTemplate rabbitTemplate;
    @RequestMapping(value = "kefu")
    public void kefu(HttpServletRequest request, PrintWriter out) {
        String content = WXUtil.getContent(request);
        LogHelper.test(content);
        return;
    }
    @RequestMapping(value = "testactivity")
    public void test2(PrintWriter out) {
        List<RecommendActivity> list = activityService.getRecommendActivityList(1, Constant.PAGE_SIZE);
        long count = activityService.getRecommendActivityCount(null);
        JSONObject data = new JSONObject();
        data.put("data", getGson().toJson(list));
        data.put("count", count);
        out.print(JsonUtil.loadTrueResult(data));
    }
    @RequestMapping(value = "testactivitysharegoods")
    public void test3(PrintWriter out) {
        try {
            ActivityShareResult result = activityService.shareActivityGoods(343448L, 1L);
            out.print(JsonUtil.getSimpleGson().toJson(result));
        } catch (UserShareGoodsRecordException e) {
            e.printStackTrace();
        } catch (ActivityException e) {
            e.printStackTrace();
        }
    }
    @RequestMapping(value = "testactivityshareinvite")
    public void test4(PrintWriter out) {
        try {
            ActivityShareResult result = activityService.shareInviteImg(343448L, 2L);
            out.print(JsonUtil.getSimpleGson().toJson(result));
        } catch (ActivityException e) {
            e.printStackTrace();
        }
    }
    @RequestMapping(value = "testnumber")
    public void test5(PrintWriter out) {
        JSONArray array = new JSONArray();
        for (int i = 0; i < 1000; i++) {
            JSONObject data = new JSONObject();
            data.put("number", new BigDecimal("10").add(new BigDecimal("0.1").multiply(new BigDecimal(i))));
            array.add(data);
        }
        out.print(array.toString());
    }
    private Gson getGson() {
        GsonBuilder gb = new GsonBuilder();
        gb.setDateFormat("MM-dd HH:mm");
        gb.excludeFieldsWithoutExposeAnnotation();
        Gson gson = gb.create();
        return gson;
    }
    @RequestMapping(value = "scheduler")
    public void test8(PrintWriter out) {
        try {
            List<JobExecutionContext> jobList = scheduler.getCurrentlyExecutingJobs();
            out.print("running job:" + jobList.size());
        } catch (SchedulerException e) {
            e.printStackTrace();
        }
    }
    @RequestMapping(value = "testhtml")
    public void testhtml(PrintWriter out) {
        out.print("<script>yestv.finishPage();</script>");
        out.close();
    }
    /**
     * 清除缓存
     *
     * @param out
     */
    @RequestMapping(value = "removeCache")
    public void removeCache(PrintWriter out) {
        ehCacheCacheManager.getCacheManager().clearAll();
    }
    @RequestMapping(value = "removeRedisCache")
    public void removeRedisCache(String key, PrintWriter out) {
        redisManager.removeCommonString(key);
    }
    @RequestMapping(value = "testConfig")
    public void getTestConfig(PrintWriter pw) {
        pw.print(configService.getValue("test", SystemEnum.blks));
    }
    @RequestMapping(value = "testDaTaoKe")
    public void getTestDaTaoKe(PrintWriter pw) {
        Document doc = null;
        try {
            doc = Jsoup.connect("http://www.dataoke.com/ddq").get();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        Elements els = doc.getElementsByTag("script");
        for (int i = 0; i < els.size(); i++) {
            String content = els.get(i).html();
            if (content.indexOf("var dataDef") > -1) {
                ScriptEngineManager manager = new ScriptEngineManager();
                ScriptEngine engine = manager.getEngineByName("javascript");
                try {
                    String js = "function getData(){return  JSON.stringify(dataDef);}" + content;
                    engine.eval(js);
                    if (engine instanceof Invocable) {
                        Invocable in = (Invocable) engine;
                        pw.print(in.invokeFunction("getData"));
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * 插入邀请素材
     *
     * @param out
     */
    @RequestMapping(value = "uploadInviteMaterial2")
    public void uploadInviteMaterial2(PrintWriter out) {
        try {
            List<InviteMaterial> list = new ArrayList<InviteMaterial>();
            File picfile = new File("E:\\Invite\\pic.txt");// Text文件
            BufferedReader brp = new BufferedReader(new FileReader(picfile));// 构造一个BufferedReader类来读取文件
            String fileUrl = "";
            while ((fileUrl = brp.readLine()) != null) {// 使用readLine方法,一次读一行
                if (StringUtil.isNullOrEmpty(fileUrl)) {
                    continue;
                }
                InviteMaterial inviteMaterial = new InviteMaterial();
                inviteMaterial.setId(UUID.randomUUID().toString().replace("-", ""));
                inviteMaterial.setState(0);
                inviteMaterial.setPicture(fileUrl);
                list.add(inviteMaterial);
            }
            brp.close();
            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();
        }
    }
    /**
     * 插入邀请素材
     *
     * @param out
     */
    @RequestMapping(value = "saveInvite")
    public void saveInvite(InviteMaterial inviteMaterial, PrintWriter out) {
        try {
            inviteMaterial.setState(0);
            inviteMaterialService.insert(inviteMaterial);
            JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("上传成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("上传失败"));
            e.printStackTrace();
        }
    }
    /**
     * 插入邀请素材
     *
     * @param out
     */
    @RequestMapping(value = "insertTimeInvite")
    public void insertTimeInvite(PrintWriter out) {
        try {
            dynamicInfoService.insertTimeInvite();
            JsonUtil.printMode(out, null, JsonUtil.loadTrueResult("操作成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, null, JsonUtil.loadFalseResult("操作失败"));
            e.printStackTrace();
        }
    }
    @RequestMapping(value = "getWaitingThreadsCount")
    public void getWaitingThreadsCount(PrintWriter out) {
        out.print(Constant.waitingThreadSet.size());
    }
    @RequestMapping(value = "getBinFaRedisKey")
    public void getPinFaRedisKey(PrintWriter out) {
        JSONArray array = new JSONArray();
        Jedis jedis = redisManager.getJedis();
        try {
            Set<String> sets = jedis.keys("rs-*");
            for (Iterator<String> its = sets.iterator(); its.hasNext(); )
                array.add(its.next());
        } finally {
            jedis.close();
        }
        out.println(array.toString());
    }
    @Resource
    private MsgOrderDetailService msgOrderDetailService;
    @Resource
    private PushService pushService;
    @Resource
    private UserInfoService userInfoService;
    @RequestMapping(value = "pushOrderMsg")
    public void pushOrderMsg(String id, PrintWriter out) throws UserInfoException, PushException {
        MsgOrderDetail msgOrderDetail = msgOrderDetailService.selectByPrimaryKey(Long.parseLong(id));
        if (msgOrderDetail == null) {
            out.print("ID不存在");
            return;
        }
        UserInfo userInfo = userInfoService.getUserInfo(msgOrderDetail.getUser().getId());
        PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(msgOrderDetail.getOrderType(), msgOrderDetail.getOrderId(), msgOrderDetail.getHongBaoMoney());
        pushService.pushZNX(userInfo.getId(), dto.getTitle(), dto.getContent(), null, null, userInfo.getSystem());
    }
    @RequestMapping(value = "pushOppo")
    public void pushOppo(String registerId, PrintWriter out) {
        List<String> registerIds = new ArrayList<>();
        registerIds.add(registerId);
        String androidBaseActivity = "";
        try {
            OPPOPushUtil.pushUrl(registerIds, "测试网页推送", "测试网页推送内容", "http://www.baidu.com", androidBaseActivity);
        } catch (PushException e) {
            e.printStackTrace();
        }
        try {
            OPPOPushUtil.pushGoods(registerIds, "测试商品网页推送", "测试商品推送内容", 1, 577628549116L+"", androidBaseActivity);
        } catch (PushException e) {
            e.printStackTrace();
        }
        try {
            OPPOPushUtil.pushUserSignInNotification(registerIds, "测试签到推送", "测试签到推送", androidBaseActivity);
        } catch (PushException e) {
            e.printStackTrace();
        }
        try {
            OPPOPushUtil.pushWelfareCenter(registerIds, "测试福利中心推送", "测试福利中心推送", androidBaseActivity);
        } catch (PushException e) {
            e.printStackTrace();
        }
        try {
            OPPOPushUtil.pushZNX(registerIds, "测试站内信推送", "测试站内信推送");
        } catch (PushException e) {
            e.printStackTrace();
        }
        out.print("success");
    }
    @RequestMapping("getLocalTime")
    public void getLocalTime(PrintWriter out) {
        out.print(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
    }
    @RequestMapping("getSchedulerList")
    public void getSchedulerList(PrintWriter out) {
        try {
            for (String groupName : scheduler.getJobGroupNames()) {
                System.out.println(groupName);
            }
        } catch (Exception e) {
        }
    }
    @RequestMapping("getTBGoodsCate")
    public void getTaoBaoGoodsCat(String 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());
    }
    Logger testLogger= LoggerFactory.getLogger("testLog");
    @RequestMapping("wx")
    public void log(HttpServletRequest request, PrintWriter out) {
        LogManager.getLogger(LogType.taobaoAuth).info("123123123");
        String content = WXUtil.getContent(request);
        testLogger.info("wx: "+content);
    }
    @RequestMapping("dubbo")
    public void testDubbo() {
        TaoBaoCouponCache cache = new TaoBaoCouponCache();
        cache.setActivityId("123123123");
        cache.setPid("mm_12_12_12");
        cache.setAuctionId(123123L+"");
        taoBaoCouponCacheService.save(cache);
    }
    @RequestMapping("email")
    public void testEmail(PrintWriter out) {
        MailSenderUtil.sendEmail("1101184511@qq.com", "kuaisheng110@163.com", "CMZASWUPTJSFXCNP", "测试", "测试内容:" + System.currentTimeMillis());
        out.print("success");
    }
    @RequestMapping("testRabbit")
    public void testRabbit(){
        String msg = "你好:"+TimeUtil.getGernalTime(System.currentTimeMillis(),"yyyy-MM-dd HH:mm:ss");
 // 向队列发送消息
//        rabbitTemplate.convertAndSend("order-all-fanli",msg);
    // 向exchange发送消息
//        rabbitTemplate.convertAndSend("topic_place_order", "*", msg);
//        Message message = MessageBuilder.withBody(msg.getBytes()).setDeliveryMode(MessageDeliveryMode.PERSISTENT).setExpiration("10000").build();
        rabbitTemplate.convertAndSend("test_queue",msg);
    }
    @RequestMapping("testRabbitDelay")
    public void testRabbitDelay(){
        String msg = "这是测试的一条延时消息";
        int time = 5;
        MessageProperties messageProperties = new MessageProperties();
        messageProperties.setHeader("x-delay", 1000 * time);//延迟5秒被删除
        Message message = new Message(msg.getBytes(StandardCharsets.UTF_8), messageProperties);
        rabbitTemplate.convertAndSend("delay_exchange", "delay", message);//交换机和路由键必须和配置文件类中保持一致
        System.out.println(TimeUtil.getGernalTime(System.currentTimeMillis(),"yyyy-MM-dd HH:mm:ss") + " 发送一条消息");
    }
}