From 3f7bcb1fb68b78a2cd2a87b44098f1de70378d92 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 30 十二月 2019 18:59:59 +0800
Subject: [PATCH] 完成微信小程序登录流程
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 316 insertions(+), 11 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
index 97670fc..8bfe075 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -21,12 +21,26 @@
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;
@@ -52,9 +66,111 @@
@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
@@ -68,9 +184,26 @@
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;
- List<DynamicInfo> list = dynamicInfoService.queryV2((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, cid,
- subId);
+
+ 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);
if (list == null) {
list = new ArrayList<DynamicInfo>();
} else {
@@ -83,10 +216,87 @@
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() {
@@ -98,18 +308,18 @@
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) {
@@ -117,9 +327,9 @@
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) {
@@ -149,4 +359,99 @@
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)) {
+ String[] arrayTags = tags.split("\\s+");
+ List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
+
+ String[] arrayTagsColour = null;
+ String tagsColour = article.getTagsColour();
+ if (!StringUtil.isNullOrEmpty(tagsColour)) {
+ arrayTagsColour = tagsColour.split("\\s+");
+ }
+
+ String color = "#FE0014";
+ for (int i =0; i < arrayTags.length;i ++) {
+ String tag = arrayTags[i];
+ if (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 = "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));
+ }
+
}
--
Gitblit v1.8.0