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.List; import java.util.UUID; 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.dynamic.InviteMaterial; 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.dynamic.InviteMaterialService; 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.StringUtil; 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; @Resource private InviteMaterialService inviteMaterialService; @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) { 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 = "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 list = new ArrayList(); // 图片文件 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 listTxt = new ArrayList(); 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 list = new ArrayList(); 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 listTxt = new ArrayList(); 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(); } } }