package com.yeshi.fanli.controller.xcx; import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.yeshi.fanli.controller.client.SearchController; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.clazz.ClassRecommendGoods; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.entity.bus.clazz.GoodsSecondClass; import com.yeshi.fanli.entity.bus.su.clazz.SuperGoodsClass; import com.yeshi.fanli.entity.system.System; import com.yeshi.fanli.entity.taobao.TaoBaoCoupon; import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.goods.ClassRecommendGoodsService; import com.yeshi.fanli.service.inter.goods.GoodsClassService; import com.yeshi.fanli.service.inter.goods.GoodsSecondClassService; import com.yeshi.fanli.service.inter.goods.SuperGoodsClassService; import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.GsonUtil; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.Utils; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import org.yeshi.utils.JsonUtil; @Controller @RequestMapping("api/xcx/v1/XcxClass") public class XcxGoodsClassController { @Resource private SuperGoodsClassService superGoodsClassService; @Resource private GoodsSecondClassService goodsSecondClassService; @Resource private ClassRecommendGoodsService classRecommendGoodsService; @Resource private GoodsClassService goodsClassService; @Resource private XcxMiniControllerUtil xcxMiniControllerUtil; @Resource private SearchController searchController; @Resource private TaoBaoCouponService taoBaoCouponService; @Resource private HongBaoManageService hongBaoManageService; @Resource private ConfigService configService; /** * * 方法说明: 首页获取商品类别 * * @author mawurui createTime 2018年4月26日 下午12:22:19 * @param acceptData * @param out */ @RequestMapping(value = "getGoodsType", method = RequestMethod.POST) public void getGoodsType(String appid, Integer version, PrintWriter out) { if (!configService.xcxShow(appid, version)) { getGoodsTypeTest(null, out); return; } List goodsTypeList = goodsClassService.getGoodsClassAll(); // 测试 // DaTaoKeUtil.getGoodsType(); // goodsClassService.getGoodsClassAll(); JSONObject data = new JSONObject(); data.put("goodsTypeList", goodsTypeList); out.print(JsonUtil.loadTrueResult(data)); } public void getGoodsTypeTest(AcceptData acceptData, PrintWriter out) { List goodsTypeList = DaTaoKeUtil.getGoodsType(); JSONObject data = new JSONObject(); data.put("goodsTypeList", goodsTypeList); out.print(JsonUtil.loadTrueResult(data)); } /** * * 方法说明: 获取首页商品列表 * * @author mawurui createTime 2018年4月25日 下午5:20:34 * @param acceptData * @param out */ @RequestMapping(value = "getgoodsclass", method = RequestMethod.POST) public void getGoodsClass(AcceptData acceptData, PrintWriter out) { System system = xcxMiniControllerUtil.getSystem(acceptData); if (system == null) { out.print(JsonUtil.loadFalseResult(XcxMiniControllerUtil.NOSYSTEM)); return; } List superGoodsClassList = superGoodsClassService.getSuperGoodsClassBySystemId(system.getId()); if (superGoodsClassList == null || superGoodsClassList.size() == 0) { out.print(JsonUtil.loadFalseResult(XcxMiniControllerUtil.NODATA)); return; } List goodsClassList = new ArrayList(); for (SuperGoodsClass superGoodsClass : superGoodsClassList) { GoodsClass goodsClass = superGoodsClass.getGoodsClass(); goodsClassList.add(goodsClass); } int count = goodsClassList.size(); JSONObject data = new JSONObject(); data.put("count", count); data.put("goodsClassList", goodsClassList); String result = JsonUtil.loadTrueResult(data); out.print(result); } /** * * 方法说明: 二级分类商品 * * @author mawurui createTime 2018年4月25日 下午5:24:57 * @param acceptData * @param gcid * @param out */ @RequestMapping(value = "getgoodssecondclass", method = RequestMethod.POST) public void getGoodsSecondClass(AcceptData acceptData, long gcid, PrintWriter out) { List goodsSecondClassList = goodsSecondClassService.getGoodsSecondClassByGoodsClassId(gcid); if (goodsSecondClassList == null || goodsSecondClassList.size() == 0) { out.print(JsonUtil.loadFalseResult(XcxMiniControllerUtil.NODATA)); return; } JSONObject data = new JSONObject(); data.put("count", goodsSecondClassList.size()); data.put("goodsSecondClassList", GsonUtil.toJsonExpose(goodsSecondClassList)); String result = JsonUtil.loadTrueResult(data); out.print(result); } /** * * 方法说明: 推荐商品获取 * * @author mawurui createTime 2018年4月25日 下午5:25:34 * @param acceptData * @param goodsClassId * @param out */ @RequestMapping(value = "getclassrecommendgoods", method = RequestMethod.POST) public void getClassRecommendGoods(AcceptData acceptData, long goodsClassId, PrintWriter out) { List classRecommendGoodsList = classRecommendGoodsService .getClassRecommendGoodsByGoodsClassId(goodsClassId); if (classRecommendGoodsList == null) { out.print(JsonUtil.loadFalseResult(XcxMiniControllerUtil.NODATA)); return; } JSONObject data = new JSONObject(); data.put("count", classRecommendGoodsList.size()); Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); data.put("classRecommendGoodsList", gson.toJson(classRecommendGoodsList)); String result = JsonUtil.loadTrueResult(data); out.print(result); } /** * * 方法说明: 获得优惠券商品 * * @author mawurui createTime 2018年4月25日 下午5:26:07 * @param acceptData * @param page * @param gcid * @param out */ @RequestMapping(value = "getCouponGoods", method = RequestMethod.POST) public void getCouponGoods(AcceptData acceptData, int page, long gcid, PrintWriter out) { // GoodsClass goodsClass = goodsClassService.getGoodsClass(gcid); List secondClassList = goodsSecondClassService.getGoodsSecondClassByGoodsClassId(gcid); List searchKeys = new ArrayList(); for (GoodsSecondClass secondClass : secondClassList) { String key = secondClass.getKey(); if (key == null || "".equals(key.trim())) { searchKeys.add(secondClass.getName()); } else { searchKeys.add(secondClass.getKey()); } } List taoBaoCoupons = taoBaoCouponService.getTaoBaoCouponListBykeys(searchKeys, page); int count = taoBaoCouponService.getCount(searchKeys); setTaoBaoCouponHongBao(taoBaoCoupons); JSONObject data = new JSONObject(); long currentTimeMillis = java.lang.System.currentTimeMillis(); String time = TimeUtil.getGernalTime(currentTimeMillis); data.put("time", time); data.put("count", count); data.put("taoBaoCoupons", Utils.imgListSize(GsonUtil.toJsonExpose(TaoBaoUtil.getTaoBaoGoodsBriefExtraList(taoBaoCoupons)))); out.print(JsonUtil.loadTrueResult(data)); } @RequestMapping(value = "getgoods", method = RequestMethod.POST) public void getGoods(AcceptData acceptData, int page, long scid, String filter, String order, String startprice, String endprice, String fastFilter, PrintWriter out) { System system = xcxMiniControllerUtil.getSystem(acceptData); if (system == null) { out.print(JsonUtil.loadFalseResult(XcxMiniControllerUtil.NOSYSTEM)); return; } GoodsSecondClass secondClass = goodsSecondClassService.getSecondClass(scid); String name2 = secondClass.getName(); String name1 = secondClass.getKey(); if (name1 != null && !"".equals(name1.trim())) { name2 = name1; } if (!StringUtil.isNullOrEmpty(fastFilter)) { if (!StringUtil.isNullOrEmpty(filter)) { JSONArray filterArray = JSONArray.fromObject(filter); JSONArray fastFilterArray = JSONArray.fromObject(fastFilter); filterArray.addAll(fastFilterArray); filter = filterArray.toString(); } else { filter = fastFilter; } } StringBuffer sb = new StringBuffer(); sb.append(name2); sb.append(page + ""); sb.append(filter); sb.append(order); sb.append(startprice); sb.append(endprice); String md5 = StringUtil.Md5(sb.toString()); JSONObject data = searchController.searchClass(acceptData, name2, page, filter, order, startprice, endprice, md5); out.print(JsonUtil.loadTrueResult(data)); } /** * �?��分类下的精�? */ @RequestMapping("choiceGoods") public void choiceGoods(AcceptData acceptData, long gcid, int page, PrintWriter out) { GoodsClass goodsClass = goodsClassService.getGoodsClass(gcid); if (goodsClass == null) { out.append(JsonUtil.loadFalseResult("不存在该分类")); return; } StringBuffer sb = new StringBuffer(); String key = goodsClass.getKey(); sb.append(key); sb.append(page); String md5 = StringUtil.Md5(sb.toString()); // 现在默认的是“销量�? JSONObject data = searchController.searchClass(acceptData, key, page, null, "1", null, null, md5); out.print(JsonUtil.loadTrueResult(data)); } /** * * 方法说明: 获取优惠券列表 * * @author mawurui createTime 2018年4月25日 下午5:22:55 * @param acceptData * @param page * @param out */ public void getCouponListTest(AcceptData acceptData, int page, PrintWriter out) { List taoBaoCoupons = DaTaoKeUtil.getRecommendCouple(); int count = taoBaoCouponService.getCount(""); setTaoBaoCouponHongBao(taoBaoCoupons); JSONObject data = new JSONObject(); data.put("taoBaoCoupons", Utils.imgListSize(GsonUtil.toJsonExpose(TaoBaoUtil.getTaoBaoGoodsBriefExtraList(taoBaoCoupons)))); data.put("count", count); out.print(JsonUtil.loadTrueResult(data)); } // 上线注释 @RequestMapping("getCouponList") public void getCouponList(String appid, Integer version, int page, PrintWriter out) { // 上线版本 if (!configService.xcxShow(appid, version)) { getCouponListTest(null, page, out); return; } List taoBaoCoupons = taoBaoCouponService.getTaoBaoCouponListBykeys(null, page); int count = taoBaoCouponService.getCount(""); setTaoBaoCouponHongBao(taoBaoCoupons); JSONObject data = new JSONObject(); data.put("taoBaoCoupons", Utils.imgListSize(GsonUtil.toJsonExpose(TaoBaoUtil.getTaoBaoGoodsBriefExtraList(taoBaoCoupons)))); data.put("count", count); out.print(JsonUtil.loadTrueResult(data)); } /** * 设置红包进去 * * @param taoBaoCoupons */ private void setTaoBaoCouponHongBao(List taoBaoCoupons) { if (taoBaoCoupons.size() > 0) { BigDecimal proportion = hongBaoManageService.getFanLiRate(); for (TaoBaoCoupon taoBaoCoupon : taoBaoCoupons) { BigDecimal hb = TaoBaoUtil.getCouponHongBaoInfo(taoBaoCoupon, proportion); taoBaoCoupon.setHongbao(hb); } } } }