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.ConfigParamsDTO; 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.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.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; 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; @Resource private IntegralGetService integralGetService; @Resource private UserMoneyExtraService userMoneyExtraService; @RequestMapping(value = "testimg") public void testImg(HttpServletRequest request, PrintWriter out) { long startTime = System.currentTimeMillis(); List 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 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 jobList = scheduler.getCurrentlyExecutingJobs(); out.print("running job:" + jobList.size()); } catch (SchedulerException e) { e.printStackTrace(); } } @RequestMapping(value = "testhtml") public void testhtml(PrintWriter out) { out.print(""); 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(); } } @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 sets = jedis.keys("rs-*"); for (Iterator its = sets.iterator(); its.hasNext();) array.add(its.next()); } finally { jedis.close(); } out.println(array.toString()); } @RequestMapping(value = "pushOppo") public void pushOppo(String registerId, PrintWriter out) { List registerIds = new ArrayList<>(); registerIds.add(registerId); try { OPPOPushUtil.pushUrl(registerIds, "测试网页推送", "测试网页推送内容", "http://www.baidu.com"); } catch (PushException e) { e.printStackTrace(); } try { OPPOPushUtil.pushGoods(registerIds, "测试商品网页推送", "测试商品推送内容", 1, 577628549116L); } catch (PushException e) { e.printStackTrace(); } try { OPPOPushUtil.pushUserSignInNotification(registerIds, "测试签到推送", "测试签到推送"); } catch (PushException e) { e.printStackTrace(); } try { OPPOPushUtil.pushWelfareCenter(registerIds, "测试福利中心推送", "测试福利中心推送"); } 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) { } } }