From eec7e789a87863c25d92c10ad5dfc22ad80c448d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 14 七月 2020 12:36:48 +0800
Subject: [PATCH] 系统区分BUG修复

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java |  234 +++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 159 insertions(+), 75 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java
index 916f4ae..8c6a765 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java
@@ -8,7 +8,6 @@
 import java.util.List;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,6 +24,7 @@
 import com.yeshi.fanli.dto.aitaoker.QrcodeLoginDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum;
 import com.yeshi.fanli.entity.bus.user.cloud.UserCloud;
 import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGoods;
 import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGroup;
@@ -33,14 +33,12 @@
 import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.system.ConfigKeyEnum;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.fanli.exception.taobao.TaoKeApiException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.exception.user.cloud.UserCloudException;
 import com.yeshi.fanli.exception.user.cloud.UserCloudGroupException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
+import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
 import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.cloud.UserCloudGoodsService;
@@ -50,13 +48,17 @@
 import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
 import com.yeshi.fanli.service.manger.alipay.UserCloudAlipayManager;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.aitaoker.AitaokerApiUtil;
+import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
 import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
 import com.yeshi.fanli.util.suning.SuningUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import com.yeshi.fanli.vo.homemodule.BannerVO;
+import com.yeshi.fanli.vo.user.cloud.CloudOrderMenuVO;
 import com.yeshi.fanli.vo.user.cloud.UserCloudInfoVO;
 
 import net.sf.json.JSONArray;
@@ -95,6 +97,12 @@
 	
 	@Resource
 	private ConfigService configService;
+	
+	@Resource
+	private RedisManager redisManager;
+	
+	@Resource
+	private SwiperPictureService swiperPictureService;
 
 	/**
 	 * 鏌ヨ寮�閫氳褰�
@@ -173,11 +181,24 @@
 			return;
 		}
 
+		List<CloudOrderMenuVO> listMenu = new ArrayList<>();
+		CloudOrderMenuEnum[] menus = CloudOrderMenuEnum.values();
+		for (CloudOrderMenuEnum menuEnum: menus) {
+			CloudOrderMenuVO menuVO = new CloudOrderMenuVO();
+			menuVO.setMoney(BigDecimal.valueOf(menuEnum.getMoney()) );
+			menuVO.setType(menuEnum.name());
+			menuVO.setDesc(menuEnum.getDescShow());
+			listMenu.add(menuVO);
+		}
+		
+		
 		UserCloudInfoVO cloudInfoVO = new UserCloudInfoVO();
 		cloudInfoVO.setNickName(userInfo.getNickName());
 		cloudInfoVO.setPortrait(userInfo.getPortrait());
 		cloudInfoVO.setOpenState(0); // 鏈紑閫�
-
+		cloudInfoVO.setListMenu(listMenu);
+		
+		
 		// 鏄惁寮�閫�
 		UserCloud userCloud = userCloudService.getLastByUid(uid);
 		if (userCloud == null) {
@@ -221,7 +242,15 @@
 				}
 			}
 		}
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(cloudInfoVO));
+		
+		// 鏁欑▼
+		List<BannerVO> listBanner = swiperPictureService.getByBannerCard("cloud_course",acceptData.getSystem());
+		if (listBanner != null && listBanner.size() > 0) {
+			cloudInfoVO.setCourse(listBanner.get(0));
+		}
+		GsonBuilder gsonBuilder = new GsonBuilder();
+		
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(gsonBuilder.create().toJson(cloudInfoVO)));
 	}
 
 	/**
@@ -232,6 +261,7 @@
 	 * @param uid
 	 * @param out
 	 */
+	@RequestSerializableByKey(key = "'getQrcodeMaclogin-'+#uid")
 	@RequestMapping(value = "getQrcodeMaclogin")
 	public void getQrcodeMaclogin(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
 		if (uid == null) {
@@ -376,7 +406,7 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "switchCircleState")
-	public void switchCircleState(String callback, AcceptData acceptData, Long uid, Boolean state, PrintWriter out) {
+	public void switchCircleState(String callback, AcceptData acceptData, Long uid, Integer state, PrintWriter out) {
 		if (uid == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
 			return;
@@ -385,8 +415,14 @@
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐘舵�佷笉鑳戒负绌�"));
 			return;
 		}
+		
+		boolean reslut = false;
+		if (state == 1) {
+			reslut = true;
+		}
+		
 		try {
-			userCloudGroupService.switchCircleState(uid, state);
+			userCloudGroupService.switchCircleState(uid, reslut);
 		} catch (UserCloudGroupException e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
 		}
@@ -409,6 +445,12 @@
 			return;
 		}
 
+		UserCloud userCloud = userCloudService.getValidByUid(uid);
+		if (userCloud == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇峰厛寮�閫氫簯鍙戝崟"));
+			return;
+		}
+		
 		try {
 			// 閲嶆柊鑾峰彇缇ゅ垪琛�
 			userCloudService.searchGroup(uid);
@@ -435,7 +477,7 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "switchGroupState")
-	public void switchGroupState(String callback, AcceptData acceptData, Long uid, Long id, Boolean state,
+	public void switchGroupState(String callback, AcceptData acceptData, Long uid, Long id, Integer state,
 			PrintWriter out) {
 		if (uid == null) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
@@ -445,12 +487,68 @@
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶈兘涓虹┖"));
 			return;
 		}
+		
+		UserCloud userCloud = userCloudService.getValidByUid(uid);
+		if (userCloud == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇峰厛寮�閫氫簯鍙戝崟"));
+			return;
+		}
+		
+		boolean reslut = false;
+		if (state == 1) {
+			reslut = true;
+		}
+		
 		try {
-			userCloudGroupService.switchGroupState(uid, id, state);
+			
+			
+			userCloudGroupService.switchGroupState(uid, id, reslut);
+			// 鑾峰彇鏈�鏂扮兢
+			List<UserCloudGroup> list = userCloudGroupService.listGroupByUid(uid);
+			if (list == null)
+				list = new ArrayList<>();
+			
+			JSONObject data = new JSONObject();
+			data.put("listGroup", list);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 		} catch (UserCloudGroupException e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
 		}
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
+	}
+	
+	
+	
+	/**
+	 * 璁剧疆鐘舵��
+	 * 
+	 * @param callback
+	 * @param acceptData
+	 * @param uid
+	 * @param type
+	 * @param out
+	 */
+	@RequestMapping(value = "deleteGroup")
+	public void switchGroupState(String callback, AcceptData acceptData, Long uid, Long id, 
+			PrintWriter out) {
+		if (uid == null || id == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
+			return;
+		}
+		
+		try {
+			userCloudGroupService.deleteGroup(uid, id);
+			
+			// 鑾峰彇鏈�鏂扮兢
+			List<UserCloudGroup> list = userCloudGroupService.listGroupByUid(uid);
+			if (list == null)
+				list = new ArrayList<>();
+			
+			JSONObject data = new JSONObject();
+			data.put("listGroup", list);
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+		} catch (UserCloudGroupException e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
+		}
 	}
 
 	/**
@@ -480,52 +578,15 @@
 		JSONArray array = new JSONArray();
 		JSONObject data = new JSONObject();
 		if (list.size() > 0) {
-			List<Long> listGid = new ArrayList<Long>();
-			for (UserCloudGoods cloudGoods : list) {
-				CommonGoods commonGoods = cloudGoods.getCommonGoods();
-				if (commonGoods == null) {
-					continue;
-				}
-				listGid.add(commonGoods.getGoodsId());
-			}
-
-			// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
-			List<TaoBaoGoodsBrief> listTaoKeGoods = null;
-			try {
-				listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
-			} catch (TaoKeApiException e) {
-				e.printStackTrace();
-			} catch (TaobaoGoodsDownException e) {
-				e.printStackTrace();
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-
 			Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
 					.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 			ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
-					acceptData.getVersion());
+					acceptData.getVersion(),acceptData.getSystem());
 
 			for (UserCloudGoods cloudGoods : list) {
 				CommonGoods commonGoods = cloudGoods.getCommonGoods();
 				if (commonGoods == null) {
 					continue;
-				}
-
-				// 娣樺疂鍟嗗搧楠岃瘉鍦ㄥ敭
-				if (commonGoods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
-					if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
-						int state = 1; // 榛樿鍋滃敭
-						Long goodsId = commonGoods.getGoodsId();
-						for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
-							Long auctionId = taoKeGoods.getAuctionId();
-							if (goodsId == auctionId || goodsId.equals(auctionId)) {
-								state = 0; // 鍦ㄥ敭
-								break;
-							}
-						}
-						commonGoods.setState(state);
-					}
 				}
 
 				// 鍒ゆ柇鏄惁宸插垎浜紝 宸插垎浜樉绀哄凡涓嬫灦
@@ -536,7 +597,11 @@
 						commonGoods.setState(2);
 					}
 				}
-
+				 
+				if (state != null && state == UserCloudGoods.STATE_INVALID) {
+					commonGoods.setState(1);
+				}
+				
 				GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO);
 				detailVO.setId(commonGoods.getId());
 
@@ -602,18 +667,26 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "switchState")
-	public void switchState(String callback, AcceptData acceptData, Long uid, Integer type, Boolean state,
+	public void switchState(String callback, AcceptData acceptData, Long uid, Integer type, Integer state,
 			PrintWriter out) {
-		if (uid == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+		if (uid == null || type == null || state == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�"));
 			return;
 		}
-		if (type == 1) {
-			userCloudManageService.save(uid, state, null);
-		} else {
-			userCloudManageService.save(uid, null, state);
+		
+		boolean reslut = false;
+		if (state == 1) {
+			reslut = true;
 		}
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
+		
+		if (type == 1) {
+			userCloudManageService.save(uid, reslut, null);
+		} else {
+			userCloudManageService.save(uid, null, reslut);
+		}
+		JSONObject data = new JSONObject();
+		data.put("state", reslut);
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 	}
 
 	/**
@@ -627,8 +700,7 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "pay")
-	public void pay(String callback, AcceptData acceptData, Long uid, String type, HttpServletResponse response,
-			PrintWriter out) {
+	public void pay(String callback, AcceptData acceptData, Long uid, String type, PrintWriter out) {
 		try {
 			if (uid == null) {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
@@ -643,38 +715,50 @@
 			// 鍒涘缓鏀粯淇℃伅
 			String alipayForm = userCloudAlipayManager.getAlipayForm(uid, type);
 
-			// 杩斿洖淇℃伅
-			response.setContentType("text/html;charset=utf-8");
-			PrintWriter print = response.getWriter();
+			// 杩斿洖淇℃伅 - 缂撳瓨鍒皊ession
 			StringBuilder builder = new StringBuilder();
 			builder.append("<html><head><title>alipay</title></head>");
 			builder.append("<body>" + alipayForm + "</body></html>");
-			JsonUtil.printMode(print, callback, builder.toString());
-			print.close();
+			
+			// 缂撳瓨鍒皉edis- 涓�鍒嗛挓
+			String key = RedisKeyEnum.cloudAlipayLink.getKey() + uid + "_" + type;
+			key = StringUtil.Md5(key);
+			redisManager.cacheCommonString(key , builder.toString() , 60*10);
+			
+			String link = configService.getValue(ConfigKeyEnum.cloudAlipayJumpLink.getKey(),acceptData.getSystem()) +"?key=%s";
+			JSONObject dataObject = new JSONObject();
+			dataObject.put("link", String.format(link, key));
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(dataObject));
 		} catch (Exception e) {
 			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍒涘缓鏀粯淇℃伅澶辫触"));
 			LogHelper.errorDetailInfo(e);
 		}
 	}
 
+	
 	/**
 	 * 鏀粯瀹屾垚
 	 * 
-	 * @param callback
-	 * @param acceptData
 	 * @param id
 	 * @param out
 	 */
 	@RequestMapping(value = "payEnd")
-	public void payEnd(String callback, AcceptData acceptData, Long id, PrintWriter out) {
-		if (id == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟淇℃伅缂哄け"));
+	public void payEnd(String callback, AcceptData acceptData, Long uid, Long id, PrintWriter out) {
+		if (uid == null || id == null) {
+			out.print(JsonUtil.loadFalseResult(1, "鍙傛暟淇℃伅缂哄け"));
 			return;
 		}
+		
 		try {
+			// 妫�娴嬫槸鍚︽敮浠樺畬鎴�
 			userCloudAlipayManager.tradeQueryByOrderId(id);
+			
+			UserCloudOrder cloudOrder = userCloudOrderService.selectByPrimaryKey(id);
+			JSONObject dataObject = new JSONObject();
+			dataObject.put("money", cloudOrder.getMoney());
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(dataObject));
 		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "妫�娴嬪け璐�"));
+			out.print(JsonUtil.loadFalseResult(1, "鍥炶皟淇℃伅澶辫触"));
 			LogHelper.errorDetailInfo(e);
 		}
 	}
@@ -700,7 +784,7 @@
 		} catch (UserCloudException e) {
 			if (e.getCode() > 1000 && e.getCode() < 1100) {
 				JSONObject data = new JSONObject();
-				data.put("link",  configService.get(ConfigKeyEnum.robotCloudLink.getKey()));
+				data.put("link",  configService.getValue(ConfigKeyEnum.robotCloudLink.getKey(),acceptData.getSystem()));
 				JsonUtil.printMode(out, callback, JsonUtil.loadTrue(e.getCode(), data, e.getMsg()).toString());
 			} else {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg()));
@@ -726,7 +810,7 @@
 		}
 		
 		try {
-			GoodsEvaluate evaluate = goodsEvaluateService.queryExistSingle(goodsId, goodsType);
+			GoodsEvaluate evaluate = goodsEvaluateService.queryExistSingle(goodsId, goodsType,acceptData.getSystem());
 			if (evaluate != null) {
 				userCloudService.sendByDynamic(uid, evaluate.getId());
 			} else {
@@ -746,7 +830,7 @@
 		} catch (UserCloudException e) {
 			if (e.getCode() > 1000 && e.getCode() < 1100) {
 				JSONObject data = new JSONObject();
-				data.put("link",  configService.get(ConfigKeyEnum.robotCloudLink.getKey()));
+				data.put("link",  configService.getValue(ConfigKeyEnum.robotCloudLink.getKey(),acceptData.getSystem()));
 				JsonUtil.printMode(out, callback, JsonUtil.loadTrue(e.getCode(), data, e.getMsg()).toString());
 			} else {
 				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg()));

--
Gitblit v1.8.0