admin
2019-07-31 f253c6f0ce5e708850f8e3c84a6a9008fc37df5f
fanli/src/main/java/com/yeshi/fanli/controller/admin/PushGoodsController.java
@@ -1,13 +1,13 @@
package com.yeshi.fanli.controller.admin;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,21 +16,21 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.push.PushGoods;
import com.yeshi.fanli.entity.push.PushGoodsGroup;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.PushException;
import com.yeshi.fanli.exception.push.PushGoodsException;
import com.yeshi.fanli.goods.CommonGoods;
import com.yeshi.fanli.service.AdminUserService;
import com.yeshi.fanli.service.inter.push.PushGoodsGroupService;
import com.yeshi.fanli.service.inter.push.PushGoodsService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.annotation.RequestNoLogin;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/pushgoods")
@@ -52,20 +52,10 @@
    * @param special
    * @param out
    */
   @RequestNoLogin()
   @RequestMapping(value = "save")
   public void save(String callback, PushGoods pushGoods, Long editorUid, String idArray, HttpServletResponse response,
         PrintWriter out) {
      response.setHeader("Access-Control-Allow-Origin", "*");
      response.setHeader("Access-Control-Allow-Methods", "*");
      AdminUser admin = adminUserService.selectByPrimaryKey(editorUid);
      if (admin == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作用户验证失败"));
         return;
      }
   public void save(String callback, PushGoods pushGoods, String idArray, String arrayIOS,
         String arrayAndroid, PrintWriter out) {
      try {
         String alertTitle = pushGoods.getAlertTitle();
@@ -81,13 +71,15 @@
         }
         Gson gson = new Gson();
         List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {
         }.getType());
         List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {}.getType());
         convertVersion(pushGoods, arrayIOS, arrayAndroid);
         pushGoodsService.save(pushGoods, list);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("添加成功"));
      } catch (PushGoodsException e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
         e.printStackTrace();
@@ -154,10 +146,24 @@
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("数据信息已不存在"));
            return;
         }
         Date controlTime = pushGoods.getControlTime();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
         if (controlTime == null) {
            pushGoods.setTimeTask(false);
            pushGoods.setControlTime_str("");
         } else {
            pushGoods.setTimeTask(true);
            pushGoods.setControlTime_str(sdf.format(controlTime));
         }
         // 版本处理
         convertVersionList(pushGoods);
         List<TaoBaoGoodsBrief> listgoods = new ArrayList<TaoBaoGoodsBrief>();
         
         List<PushGoodsGroup> listGroup = pushGoodsGroupService.getAllInfoByPushId(pushGoods.getId());
         List<PushGoodsGroup> listGroup = pushGoodsGroupService.getAllInfoByPushId(id);
         if (listGroup == null) {
            listGroup = new ArrayList<PushGoodsGroup>();
         } else {
@@ -170,8 +176,12 @@
            }
         }
         
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("pushGoods", pushGoods);
         data.put("pushGoods", gson.toJson(pushGoods));
         data.put("listGroup", listgoods);
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
@@ -213,8 +223,22 @@
         }
         for (PushGoods pushGoods : list) {
            Date controlTime = pushGoods.getControlTime();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
            if (controlTime == null) {
               pushGoods.setTimeTask(false);
               pushGoods.setControlTime_str("");
            } else {
               pushGoods.setTimeTask(true);
               pushGoods.setControlTime_str(sdf.format(controlTime));
            }
            long countGoods = pushGoodsGroupService.countByPushId(pushGoods.getId());
            pushGoods.setCountGoods(countGoods);
            // 版本处理
            convertVersionList(pushGoods);
         }
         long count = pushGoodsService.countQuery(key, state);
@@ -240,22 +264,33 @@
   
   
   /**
    * 网页推送
    *   商品推送
    * 
    * @param id 推送id
    * @param out
    * @throws Exception
    */
   @RequestMapping(value = "push")
   public void push(String callback, Long id, PrintWriter out) throws Exception {
   public void push(String callback, String idArray, PrintWriter out) throws Exception {
      if (id == null) {
      if (idArray == null || idArray.trim().length() == 0) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不能为空"));
         return;
      }
      
      try {
         pushGoodsService.executePush(id);
         Gson gson = new Gson();
         List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {}.getType());
         if (list == null || list.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递参数不能为空"));
            return;
         }
         for (Long id: list) {
            pushGoodsService.handPush(id);
         }
         
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功"));
         
@@ -267,9 +302,85 @@
         e.printStackTrace();
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败"));
      }
   }
   /**
    * 转换json
    * @param pushGoods
    */
   public void convertVersion(PushGoods pushGoods, String arrayIOS, String arrayAndroid) {
      List<String> listIOS = convertList(arrayIOS);
      List<String> listAndroid = convertList(arrayAndroid);
      if ((listIOS == null || listIOS.size() == 0) && (listAndroid == null || listAndroid.size() == 0)) {
         return;
      }
      JSONObject json =  new JSONObject();
      if (listIOS != null && listIOS.size() > 0) {
         String versions = "";
         for (String version: listIOS) {
            versions += version + ",";
         }
         if (versions.endsWith(",")) {
            versions = versions.substring(0, versions.length() - 1);
         }
         json.put("IOS", versions);
      }
      if (listAndroid != null && listAndroid.size() > 0) {
         String versions = "";
         for (String version: listAndroid) {
            versions += version + ",";
         }
         if (versions.endsWith(",")) {
            versions = versions.substring(0, versions.length() - 1);
         }
         json.put("Android", versions);
      }
      pushGoods.setVersions(json.toString());
   }
   /**
    * 版本处理
    * @param array
    * @return
    */
   public List<String> convertList (String array) {
      Gson gson = new Gson();
      List<String> list = null;
      if (array != null && array.trim().length() > 0) {
         list = gson.fromJson(array, new TypeToken<ArrayList<String>>() {}.getType());
      }
      return list;
   }
   /**
    * 版本转换为list
    * @param pushGoods
    */
   public void convertVersionList(PushGoods pushGoods) {
     String versions = pushGoods.getVersions();
     List<String> listIOS = null;
     List<String> listAndroid = null;
     if (versions == null || versions.trim().length() == 0) {
        listIOS = new ArrayList<String>();
        listAndroid = new ArrayList<String>();
     } else {
        JSONObject json = JSONObject.fromObject(versions);
         String versionsIOS = json.getString("IOS");
         if (versionsIOS != null && versionsIOS.trim().length() > 0) {
            listIOS = Arrays.asList(versionsIOS.split(","));
         }
         String versionsAndroid  = json.getString("Android");
         if (versionsAndroid != null && versionsAndroid.trim().length() > 0) {
            listAndroid = Arrays.asList(versionsAndroid.split(","));
         }
     }
     pushGoods.setListIOS(listIOS);
     pushGoods.setListAndroid(listAndroid);
   }
}