package com.yeshi.fanli.controller; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; 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.mybatis.help.HelpCenterMapper; import com.yeshi.fanli.entity.bus.activity.ActivityShareResult; import com.yeshi.fanli.entity.bus.activity.RecommendActivity; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; 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.goods.TaoBaoGoodsBriefService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.FileUtil; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.db.MongoDBManager; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @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; @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 = "testConfig") public void getTestConfig(PrintWriter pw) { pw.print(configService.get("test")); } @RequestMapping(value = "testDaTaoKe") public void getTestDaTaoKe(PrintWriter pw) { try { Document doc = Jsoup.connect("http://www.dataoke.com/brandFeature").get(); Elements els = doc.getElementsByTag("script"); for (int i = 0; i < els.size(); i++) { if (els.get(i).html().contains("var brandData")) { pw.print(els.get(i).html().replace("var brandData =", "").trim().split("};")[0] + "}"); } } } catch (IOException e) { e.printStackTrace(); } } @RequestMapping(value = "insetDynamicInfo") public void insetDynamicInfo(PrintWriter out) { String content= "emoji六一儿童节来了\r\n" + "老少儿童们到快活起来吧:用童真憧憬人生\r\n" + "emoji用童趣装点人生emoji\r\n" + "用童话描绘人生emoji\r\n" + "用童心度过人生 emoji \r\n" + "--------------------- \r\n今天 : 6月1日 ️ 星期四\r\n" + "天气 : 晴转多云 15-24℃\r\n" + "各位亲爱的你 早安~\r\n" + "购物省钱返利券App:【邀请链接】\r\n" + "我的邀请码:【邀请码】" ; dynamicInfoService.insertInviteMaterial(content, null, null, null); String content2= "emoji六一儿童节来了\r\n" + "老少儿童们到快活起来吧:用童真憧憬人生\r\n" + "emoji用童趣装点人生emoji\r\n" + "用童话描绘人生emoji\r\n" + "用童心度过人生 emoji \r\n" + "--------------------- \r\n今天 : 6月1日 ️ 星期四\r\n" + "天气 : 晴转多云 15-24℃\r\n" + "各位亲爱的你 早安~\r\n" + "购物省钱返利券App:【邀请链接】\r\n" + "我的邀请码:【邀请码】" ; dynamicInfoService.insertInviteMaterial(content2, "http://ec-1255749512.file.myqcloud.com/img/invite/53420a05de1644bd947fa23800ab0131.jpeg", null, null); } @RequestMapping(value = "insertShop") public void insertShop(PrintWriter out) { try { dynamicInfoService.insertShopInfo(); dynamicInfoService.insertTimeHotSale(); dynamicInfoService.insertTimeRecommend(); } catch (Exception e) { e.printStackTrace(); } } }