admin
2019-08-26 d28bed1a1275131a5ca37f7da37961e2b518ac07
fanli/src/main/java/com/yeshi/fanli/controller/TestController.java
@@ -12,6 +12,9 @@
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;
@@ -32,9 +35,11 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
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.InviteMaterial;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.ActivityException;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
@@ -45,14 +50,22 @@
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.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.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")
@@ -71,13 +84,12 @@
   private HelpCenterMapper helpCenterMapper;
   @Resource
   private Scheduler scheduler;
   @Resource
   private DynamicInfoService dynamicInfoService;
   @Resource
   private  TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Resource
   private EhCacheCacheManager ehCacheCacheManager;
@@ -85,12 +97,15 @@
   @Resource
   private ConfigService configService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private InviteMaterialService inviteMaterialService;
   @Resource
   private JedisPool jedisPool;
   @RequestMapping(value = "testimg")
   public void testImg(HttpServletRequest request, PrintWriter out) {
      long startTime = System.currentTimeMillis();
@@ -125,9 +140,9 @@
         long startDTime = System.currentTimeMillis();
         /*
          * try { //ImageUtil.drawGoodsShareImg(new FileInputStream(new File(destPath)),
          * portrait, goods, shareImgPath); } catch (FileNotFoundException e) {
          * e.printStackTrace(); }
          * try { //ImageUtil.drawGoodsShareImg(new FileInputStream(new
          * File(destPath)), portrait, goods, shareImgPath); } catch
          * (FileNotFoundException e) { e.printStackTrace(); }
          */
         System.out.println(System.currentTimeMillis() - startDTime);
@@ -211,8 +226,7 @@
      out.print("<script>yestv.finishPage();</script>");
      out.close();
   }
   /**
    * 清除缓存
    * 
@@ -223,6 +237,11 @@
      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"));
@@ -230,45 +249,53 @@
   @RequestMapping(value = "testDaTaoKe")
   public void getTestDaTaoKe(PrintWriter pw) {
      Document doc = null;
      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] + "}");
         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();
            }
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
   @RequestMapping(value = "insetDynamicInfoInvite")
   public void insetDynamicInfo(String content, String url,PrintWriter out) {
      dynamicInfoService.insertInviteMaterial(content, url, null, null);
   }
   @RequestMapping(value = "insertShop")
   public void insertShop(PrintWriter out) {
        try {
           dynamicInfoService.insertShopInfo();
           dynamicInfoService.insertTimeHotSale();
           dynamicInfoService.insertTimeRecommend();
      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();
@@ -276,22 +303,22 @@
            String name = filePic.getName();
            String prefix = name.substring(name.lastIndexOf(".") + 1);
            // 上传文件相对位置
            String filePath = "/resource/invite/everyday/" + UUID.randomUUID().toString().replace("-", "") + "." + prefix;
            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);
            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文件
         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方法,一次读一行
@@ -305,9 +332,9 @@
         if (list.size() == 0 || listTxt.size() == 0 || listTxt.size() < list.size()) {
            return;
         }
         for (int i = 0; i < list.size(); i++) {
            InviteMaterial invite = list.get(0);
            InviteMaterial invite = list.get(i);
            invite.setText(listTxt.get(i));
            inviteMaterialService.insert(invite);
         }
@@ -317,17 +344,17 @@
         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文件
         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方法,一次读一行
@@ -335,15 +362,15 @@
               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文件
         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方法,一次读一行
@@ -357,9 +384,9 @@
         if (list.size() == 0 || listTxt.size() == 0 || listTxt.size() < list.size()) {
            return;
         }
         for (int i = 0; i < list.size(); i++) {
            InviteMaterial invite = list.get(0);
            InviteMaterial invite = list.get(i);
            invite.setText(listTxt.get(i));
            inviteMaterialService.insert(invite);
         }
@@ -369,4 +396,82 @@
         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();
      }
   }
   @RequestMapping(value = "getWaitingThreadsCount")
   public void getWaitingThreadsCount(PrintWriter out) {
      out.print(Constant.waitingThreadSet.size());
   }
}