| | |
| | | import com.google.gson.JsonSerializationContext;
|
| | | import com.google.gson.JsonSerializer;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
|
| | | import com.yeshi.fanli.entity.bus.homemodule.Special;
|
| | | import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
|
| | | import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
|
| | | import com.yeshi.fanli.entity.common.JumpDetailV2;
|
| | | import com.yeshi.fanli.entity.dynamic.DynamicInfo;
|
| | | import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.dynamic.ArticleOfficialService;
|
| | | import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
|
| | | import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
|
| | | import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.SpecialService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
|
| | | import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
|
| | | import com.yeshi.fanli.vo.dynamic.ArticleVO;
|
| | | import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | |
| | | @Resource
|
| | | private DynamicInfoService dynamicInfoService;
|
| | |
|
| | | @Resource
|
| | | private SpecialService specialService;
|
| | |
|
| | | @Resource
|
| | | private ArticleOfficialService articleOfficialService;
|
| | | |
| | | @Resource
|
| | | private SwiperPictureService swiperPictureService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | | |
| | |
|
| | | /**
|
| | | * 查询顶部分类
|
| | | * |
| | | * @param acceptData
|
| | | * @param page
|
| | | * @param cid
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getClass", method = RequestMethod.POST)
|
| | | public void getClass(AcceptData acceptData, Integer cid, PrintWriter out) {
|
| | | // ios 只返回子集分类
|
| | | if (cid != null) {
|
| | | List<GoodsClass> list = new ArrayList<GoodsClass>();
|
| | |
|
| | | switch (cid) {
|
| | | case 1:
|
| | | list.add(new GoodsClass(0L, "今日单品"));
|
| | | list.addAll(DaTaoKeUtil.goodsClasses);
|
| | | break;
|
| | | case 2:
|
| | | break;
|
| | | case 3:
|
| | | break;
|
| | | case 4:
|
| | | break;
|
| | | case 5:
|
| | | list.add(new GoodsClass(0L, "全部"));
|
| | | list.add(new GoodsClass(1L, "淘宝"));
|
| | | list.add(new GoodsClass(2L, "京东"));
|
| | | list.add(new GoodsClass(3L, "拼多多"));
|
| | | break;
|
| | | default:
|
| | | break;
|
| | | }
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(list));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | return;
|
| | | }
|
| | |
|
| | | // Android 返回分类以及顶部数据
|
| | | List<GoodsClass> listSub = new ArrayList<GoodsClass>();
|
| | | listSub.add(new GoodsClass(0L, "今日单品"));
|
| | | listSub.addAll(DaTaoKeUtil.goodsClasses);
|
| | |
|
| | | GoodsClass menu1 = new GoodsClass(1L, "热销");
|
| | | menu1.setListSub(listSub);
|
| | |
|
| | | GoodsClass menu2 = new GoodsClass(2L, "推荐");
|
| | | menu2.setListSub(new ArrayList<GoodsClass>());
|
| | |
|
| | | GoodsClass menu3 = new GoodsClass(3L, "好店");
|
| | | menu3.setListSub(new ArrayList<GoodsClass>());
|
| | |
|
| | | GoodsClass menu4 = new GoodsClass(4L, "邀请");
|
| | | menu4.setListSub(new ArrayList<GoodsClass>());
|
| | |
|
| | | GoodsClass menu5 = new GoodsClass(5L, "活动");
|
| | | List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
|
| | | sub5.add(new GoodsClass(0L, "全部"));
|
| | | sub5.add(new GoodsClass(1L, "淘宝"));
|
| | | sub5.add(new GoodsClass(2L, "京东"));
|
| | | sub5.add(new GoodsClass(3L, "拼多多"));
|
| | | menu5.setListSub(sub5);
|
| | |
|
| | | GoodsClass menu6 = new GoodsClass(6L, "学院");
|
| | | menu6.setListSub(new ArrayList<GoodsClass>());
|
| | |
|
| | | List<GoodsClass> list = new ArrayList<GoodsClass>();
|
| | | list.add(menu1);
|
| | | list.add(menu5);
|
| | | list.add(menu2);
|
| | |
|
| | | // 2.0.5版本隐藏 好店栏目
|
| | | if (!VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | list.add(menu3);
|
| | | }
|
| | |
|
| | | // 2.0.6版本增加 学院栏目
|
| | | if (VersionUtil.greaterThan_2_0_6(acceptData.getPlatform(), acceptData.getVersion())) {
|
| | | list.add(menu6);
|
| | | }
|
| | | list.add(menu4);
|
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("list", JsonUtil.getApiCommonGson().toJson(list));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | | /**
|
| | | * 动态商品列表
|
| | | * |
| | | * @param acceptData
|
| | | * @param page
|
| | | * @param cid
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | if (cid != null) {
|
| | | if (cid == 5) { // 活动主题
|
| | | getSpecialList(acceptData, page, subId, out);
|
| | | return;
|
| | | } else if (cid == 6) { // 学院
|
| | | getArticleList(acceptData, page, null, false, out);
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | long count = 0;
|
| | | |
| | |
|
| | | int platform = 1;
|
| | | if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
|
| | | platform = 2;
|
| | | }
|
| | |
|
| | | int version = Integer.parseInt(acceptData.getVersion());
|
| | | List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, cid,
|
| | | subId);
|
| | | List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE,
|
| | | Constant.PAGE_SIZE, cid, subId);
|
| | | if (list == null) {
|
| | | list = new ArrayList<DynamicInfo>();
|
| | | } else {
|
| | |
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | /**
|
| | | * 活动列表
|
| | | * |
| | | * @param acceptData
|
| | | * @param out
|
| | | */
|
| | | private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) {
|
| | | if (subId == null) {
|
| | | out.print(JsonUtil.loadFalseResult("分类id不能为空"));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 平台区分
|
| | | int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
|
| | | List<String> listKey = new ArrayList<String>();
|
| | |
|
| | | if (subId == 1) { // 淘宝
|
| | | listKey.add("special_channel_tb");
|
| | | } else if (subId == 2) { // 京东
|
| | | listKey.add("special_channel_jd");
|
| | | } else if (subId == 3) { // 拼多多
|
| | | listKey.add("special_channel_pdd");
|
| | | } else { // 全部
|
| | | listKey.add("special_channel_tb");
|
| | | listKey.add("special_channel_jd");
|
| | | listKey.add("special_channel_pdd");
|
| | | }
|
| | |
|
| | | List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE,
|
| | | listKey, platformCode, Integer.parseInt(acceptData.getVersion()));
|
| | |
|
| | | long time = System.currentTimeMillis();
|
| | |
|
| | | // 删除尚未启用的过期的
|
| | | for (int i = 0; i < list.size(); i++) {
|
| | | Special special = list.get(i);
|
| | | if (special.getState() == 1L) {
|
| | | list.remove(i--);
|
| | | } else {
|
| | | if (special.getStartTime() != null && special.getEndTime() != null)
|
| | | special.setTimeTask(true);
|
| | | else
|
| | | special.setTimeTask(false);
|
| | |
|
| | | if (special.isTimeTask()) {
|
| | | if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
|
| | | list.remove(i--);
|
| | | } else// 设置倒计时
|
| | | {
|
| | | special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
|
| | | }
|
| | | }
|
| | |
|
| | | List<SpecialLabel> listLabels = special.getListLabels();
|
| | | if (listLabels != null && !listLabels.isEmpty()) {
|
| | | List<ClientTextStyleVO> labels = new ArrayList<>();
|
| | | for (SpecialLabel specialLabel : listLabels) {
|
| | | labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
|
| | | }
|
| | | special.setLabels(labels);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | long count = specialService.countByPlaceKeyList(listKey, platformCode,
|
| | | Integer.parseInt(acceptData.getVersion()));
|
| | |
|
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | Gson gson = gsonBuilder.create();
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("count", count);
|
| | | data.put("list", gson.toJson(list));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | |
|
| | | |
| | |
|
| | | /**
|
| | | * 时间处理
|
| | | * |
| | | * @return
|
| | | */
|
| | | private Gson getGson() {
|
| | |
| | | String desc = "";
|
| | | if (value != null) {
|
| | | // 判断是否是同一天
|
| | | |
| | |
|
| | | Calendar calendar = Calendar.getInstance();
|
| | | calendar.setTime(value);
|
| | | int y1 = calendar.get(Calendar.YEAR);//获取年份
|
| | | int d1 = calendar.get(Calendar.DAY_OF_YEAR);//获取年中第几天
|
| | | int y1 = calendar.get(Calendar.YEAR);// 获取年份
|
| | | int d1 = calendar.get(Calendar.DAY_OF_YEAR);// 获取年中第几天
|
| | |
|
| | | Date nowDate = new Date();
|
| | | Calendar calendar2 = Calendar.getInstance();
|
| | | calendar2.setTime(nowDate);
|
| | | int y2 = calendar2.get(Calendar.YEAR);//获取年份
|
| | | int d2 = calendar2.get(Calendar.DAY_OF_YEAR);//获取年中第几天
|
| | | |
| | | int y2 = calendar2.get(Calendar.YEAR);// 获取年份
|
| | | int d2 = calendar2.get(Calendar.DAY_OF_YEAR);// 获取年中第几天
|
| | |
|
| | | long old = value.getTime();
|
| | | long now = nowDate.getTime();
|
| | | if (y1 == y2) {
|
| | |
| | | long cha = now - old;
|
| | | if (cha < 1000 * 60 * 2L) {
|
| | | desc = "刚刚";
|
| | | }else if (cha < 1000 * 60 * 60L) {
|
| | | } else if (cha < 1000 * 60 * 60L) {
|
| | | desc = (cha / (1000 * 60)) + "分钟前";
|
| | | }else {
|
| | | } else {
|
| | | desc = (cha / (1000 * 60 * 60)) + "小时前";
|
| | | }
|
| | | } else if (d2 - d1 == 1) {
|
| | |
| | | Gson gson = gb.create();
|
| | | return gson;
|
| | | }
|
| | | |
| | | /**
|
| | | * 活动列表
|
| | | * |
| | | * @param acceptData
|
| | | * @param out
|
| | | */
|
| | | private void getArticleList(AcceptData acceptData, Integer page, String key, boolean search, PrintWriter out) {
|
| | | List<ArticleVO> list = articleOfficialService.queryValid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, key);
|
| | | if (list != null) {
|
| | | for (ArticleVO article: list) {
|
| | | String tags = article.getTags();
|
| | | if (StringUtil.isNullOrEmpty(tags)) {
|
| | | continue;
|
| | | }
|
| | | |
| | | String[] arrayTags = tags.split("\\s+");
|
| | | if (arrayTags == null || arrayTags.length == 0) {
|
| | | continue;
|
| | | }
|
| | | |
| | | String[] arrayTagsColour = null;
|
| | | String tagsColour = article.getTagsColour();
|
| | | if (!StringUtil.isNullOrEmpty(tagsColour)) {
|
| | | arrayTagsColour = tagsColour.split("\\s+");
|
| | | }
|
| | | |
| | | String color = "#FE0014";
|
| | | List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
|
| | | for (int i = 0; i < arrayTags.length;i ++) {
|
| | | String tag = arrayTags[i];
|
| | | if (arrayTagsColour != null && arrayTagsColour.length == arrayTags.length) {
|
| | | color = arrayTagsColour[i];
|
| | | }
|
| | | ClientTextStyleVO styleVO = new ClientTextStyleVO();
|
| | | styleVO.setColor(color);
|
| | | styleVO.setContent(tag);
|
| | | labels.add(styleVO);
|
| | | }
|
| | | article.setLabels(labels);
|
| | | }
|
| | | }
|
| | | |
| | | GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
|
| | | Gson gson = gsonBuilder.create();
|
| | | |
| | | JSONObject data = new JSONObject();
|
| | | if (page == 1 && !search) {
|
| | | List<SwiperPicture> banners = swiperPictureService.getByBannerCardAndVersion("article_banners",acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
|
| | | if (banners == null)
|
| | | banners = new ArrayList<>();
|
| | | data.put("banners", gson.toJson(banners));
|
| | | |
| | | List<Special> listSpecial = specialService.listByVersion(0, Integer.MAX_VALUE, "article_specials",
|
| | | acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
|
| | | if (listSpecial == null)
|
| | | listSpecial = new ArrayList<>();
|
| | | |
| | | for (Special special : listSpecial) {
|
| | | boolean needLogin = special.isJumpLogin();
|
| | | JumpDetailV2 jumpDetail = special.getJumpDetail();
|
| | | if (jumpDetail != null) {
|
| | | jumpDetail.setNeedLogin(needLogin);
|
| | | special.setJumpDetail(jumpDetail);
|
| | | }
|
| | | }
|
| | | data.put("specials", gson.toJson(listSpecial));
|
| | | }
|
| | | data.put("count", articleOfficialService.countValid(key));
|
| | | data.put("list", gson.toJson(list));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | | /**
|
| | | * 文章搜索
|
| | | * @param acceptData
|
| | | * @param page
|
| | | * @param key
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "readArticle", method = RequestMethod.POST)
|
| | | public void readArticle(AcceptData acceptData, String id, PrintWriter out) {
|
| | | if(StringUtil.isNullOrEmpty(id)) {
|
| | | out.print(JsonUtil.loadFalseResult("id不能为空"));
|
| | | return;
|
| | | }
|
| | | articleOfficialService.updateReadNum(id);
|
| | | out.print(JsonUtil.loadTrueResult("操作成功"));
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 文章搜索
|
| | | * @param acceptData
|
| | | * @param page
|
| | | * @param key
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "searchArticle", method = RequestMethod.POST)
|
| | | public void searchArticle(AcceptData acceptData, Integer page, String key, PrintWriter out) {
|
| | | getArticleList(acceptData, page, key, true, out);
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 文章搜索
|
| | | * @param acceptData
|
| | | * @param page
|
| | | * @param key
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "getArticleHot", method = RequestMethod.POST)
|
| | | public void getArticleHot(AcceptData acceptData, PrintWriter out) {
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("words", configService.get("article_hot_words"));
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | | }
|
| | |
|
| | | }
|