package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass; import com.yeshi.fanli.entity.bus.clazz.GoodsSubClassLabelMap; import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass; import com.yeshi.fanli.exception.homemodule.FloatADException; import com.yeshi.fanli.service.inter.clazz.GoodsSubClassLabelService; import com.yeshi.fanli.service.inter.goods.GoodsSubClassService; import com.yeshi.fanli.service.inter.goods.TaoBaoClassService; import com.yeshi.fanli.service.inter.lable.LabelClassService; import com.yeshi.fanli.util.StringUtil; import net.sf.json.JSONObject; @Controller @RequestMapping("admin/new/api/v1/goodsSubClass") public class GoodsSubClassAdminController { @Resource private GoodsSubClassService goodsSubClassService; @Resource private LabelClassService labelClassService; @Resource private TaoBaoClassService taoBaoClassService; @Resource private GoodsSubClassLabelService goodsSubClassLabelService; /** * 保存信息 * * @param callback * @param special * @param out */ @RequestMapping(value = "save") public void save(String callback, GoodsSubClass goodsSubClass, Long pid, Integer type, Long labelId, HttpServletRequest request, PrintWriter out) { if (goodsSubClass.getTaobaoCids() != null) goodsSubClass.setTaobaoCids(goodsSubClass.getTaobaoCids().replace(",", ",")); try { // 1. 先判断httpRequest 是否含有文件类型 if (request instanceof MultipartHttpServletRequest) { MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request; goodsSubClassService.saveObject(fileRequest.getFile("file"), fileRequest.getFile("file2"), goodsSubClass, type, pid, labelId); } else { goodsSubClassService.saveObject(null, null, goodsSubClass, type, pid, labelId); } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("保存成功")); } catch (FloatADException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("保存失败")); e.printStackTrace(); } } /** * 批量删除 * * @param callback * @param ids * @param out */ @RequestMapping(value = "deleteBatch") public void deleteBatch(String callback, String ids, PrintWriter out) { Gson gson = new Gson(); try { List recordIds = gson.fromJson(ids, new TypeToken>() { }.getType()); if (recordIds == null || recordIds.size() == 0) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("请选择需删除数据"))); } else { goodsSubClassService.deleteByPrimaryKeyBatch(recordIds); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("删除成功"))); } } catch (Exception e) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("操作异常"))); e.printStackTrace(); } } /** * 删除图片 * * @param callback * @param file * @param out * @param response */ @RequestMapping(value = "removePicture") public void removePicture(String callback, Long id, PrintWriter out) { try { GoodsSubClass goodsSubClass = goodsSubClassService.selectByPrimaryKey(id); if (goodsSubClass == null) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("该类别不存在或已被删除"))); return; } int result = goodsSubClassService.removePicture(goodsSubClass); if (result == -2) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("该类别无图片可供操作"))); } else if (result == 1) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("图片删除成功"))); } else { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("图片删除成功,数据更新失败"))); } } catch (Exception e) { e.printStackTrace(); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("操作异常"))); } } /** * 查询一级下的所有二级类别 * * @param callback * @param rootId * @param out */ @RequestMapping(value = "querySub") public void querySub(String callback, Long pid, Integer type, PrintWriter out) { try { if (pid == null) { out.print(JsonUtil.loadFalseResult("上级id为空")); return; } if (type == null) { out.print(JsonUtil.loadFalseResult("等级不能为空")); return; } Integer state = null; List goodsSubClassList = new ArrayList(); if (type == 2) { goodsSubClassList = goodsSubClassService.queryByRootId(pid, state); } else { goodsSubClassList = goodsSubClassService.queryByPid(pid, state); } if (goodsSubClassList == null || goodsSubClassList.size() == 0) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无数据"))); return; } for (GoodsSubClass goodsSubClass : goodsSubClassList) { Long iosClick = goodsSubClass.getIosClick(); Long androidClick = goodsSubClass.getAndroidClick(); if (iosClick != null && androidClick != null) { goodsSubClass.setCountClick(iosClick + androidClick); } else if (androidClick != null) { goodsSubClass.setCountClick(androidClick); } else if (iosClick != null) { goodsSubClass.setCountClick(iosClick); } else { goodsSubClass.setCountClick(0l); } String searchJson = goodsSubClass.getSearchJson(); if (searchJson == null) { goodsSubClass.setSearchParam(""); } else { goodsSubClass.setSearchParam(searchJson); } int countlabel = labelClassService.getCountQueryBySubClassId(goodsSubClass.getId()); goodsSubClass.setCountlabel(countlabel); // 查询淘宝分类 List listTB = taoBaoClassService.listBySystemSubCid(0, 10000, goodsSubClass.getId()); if (listTB == null || listTB.size() == 0) { goodsSubClass.setTaobaoCids(""); } else { String taobaoCids = ""; for (TaoBaoClass taoBaoClass : listTB) { taobaoCids = taobaoCids + taoBaoClass.getCategoryName() + "-" + taoBaoClass.getCategoryId() + ","; } if (!StringUtil.isNullOrEmpty(taobaoCids)) { taobaoCids = taobaoCids.substring(0, taobaoCids.length() - 1); } goodsSubClass.setTaobaoCids(taobaoCids); } // 查询标签 GoodsSubClassLabelMap map = goodsSubClassLabelService.selectBySubClassId(goodsSubClass.getId()); if (map != null) goodsSubClass.setClassLabel(map.getLabel()); } GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.serializeNulls(); // 重点 Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create(); JSONObject data = new JSONObject(); data.put("subClassList", gson.toJson(goodsSubClassList)); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); } catch (Exception e) { e.printStackTrace(); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("操作异常"))); } } /** * 查找二级下的其他级分类 * * @param callback * @param out */ @RequestMapping(value = "queryOverSecond") public void queryOverSecond(String callback, Long pid, PrintWriter out) { try { Integer state = null; List goodsSubClassList = goodsSubClassService.queryByPid(pid, state); if (goodsSubClassList == null || goodsSubClassList.size() == 0) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无数据"))); return; } GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.serializeNulls(); // 重点 Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create(); JSONObject data = new JSONObject(); data.put("subClassList", gson.toJson(goodsSubClassList)); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); } catch (Exception e) { e.printStackTrace(); out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("操作异常"))); } } /** * 修改排序 * * @param callback * @param goodsClass * @param out */ @RequestMapping(value = "saveOrder") public void saveOrder(String callback, Long id, Integer type, Integer moveType, PrintWriter out) { try { if (moveType == null || (!moveType.equals(1) && !moveType.equals(-1))) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传递的类型不正确")); return; } GoodsSubClass resultObj = goodsSubClassService.selectByPrimaryKey(id); if (resultObj == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("不存在该类别")); return; } int resultWeight = resultObj.getWeight(); List list = null; if (type == 2) { GoodsClass rootClass = resultObj.getRootClass(); list = goodsSubClassService.queryByRootIdAndWeight(rootClass.getId(), moveType, resultWeight); } else { GoodsSubClass parent = resultObj.getParent(); list = goodsSubClassService.queryByPidAndWeight(parent.getId(), moveType, resultWeight); } if (list != null && list.size() > 0) { GoodsSubClass changeObj = list.get(0); // 交换排序序号 resultObj.setWeight(changeObj.getWeight()); changeObj.setWeight(resultWeight); changeObj.setUpdatetime(new Date()); goodsSubClassService.updateByPrimaryKeySelective(changeObj); } resultObj.setUpdatetime(new Date()); goodsSubClassService.updateByPrimaryKeySelective(resultObj); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功")); } catch (Exception e) { e.printStackTrace(); JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常")); } } }