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 | 334 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 204 insertions(+), 130 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 fd96609..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 @@ -5,12 +5,9 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; -import java.util.HashSet; import java.util.List; -import java.util.Set; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,19 +24,21 @@ 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; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudManage; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder; +import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; import com.yeshi.fanli.entity.goods.CommonGoods; -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.entity.system.ConfigKeyEnum; import com.yeshi.fanli.exception.user.cloud.UserCloudException; -import com.yeshi.fanli.exception.user.cloud.UserCloudGoodsException; 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; @@ -49,12 +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.taobao.TaoKeApiUtil; +import com.yeshi.fanli.util.suning.SuningUtil; 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; @@ -87,6 +91,18 @@ @Resource private UserCloudAlipayManager userCloudAlipayManager; + + @Resource + private GoodsEvaluateService goodsEvaluateService; + + @Resource + private ConfigService configService; + + @Resource + private RedisManager redisManager; + + @Resource + private SwiperPictureService swiperPictureService; /** * 鏌ヨ寮�閫氳褰� @@ -165,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) { @@ -213,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))); } /** @@ -224,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) { @@ -290,6 +328,7 @@ JSONObject data = new JSONObject(); QrcodeLoginDTO dto = AitaokerApiUtil.getQrcodeMacloginCheck(robotId, wId); if (dto != null) { + LogHelper.cloudInfo("鏂规硶macloginCheck: [uid=" + uid + "][wxID=" + dto.getWcId() + "][ NickName=" + dto.getNickName() + "]" ); try { // 鏇存柊寰俊淇℃伅 userCloudService.updateWXInfo(uid, dto.getWcId(), dto.getNickName(), dto.getHeadUrl()); @@ -367,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; @@ -376,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())); } @@ -400,6 +445,12 @@ return; } + UserCloud userCloud = userCloudService.getValidByUid(uid); + if (userCloud == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇峰厛寮�閫氫簯鍙戝崟")); + return; + } + try { // 閲嶆柊鑾峰彇缇ゅ垪琛� userCloudService.searchGroup(uid); @@ -426,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, "鐢ㄦ埛鏈櫥褰�")); @@ -436,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())); + } } /** @@ -471,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); - } } // 鍒ゆ柇鏄惁宸插垎浜紝 宸插垎浜樉绀哄凡涓嬫灦 @@ -527,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()); @@ -557,61 +631,15 @@ JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } + + /** - * 娣诲姞銆佸彇娑堝彂鍗曞簱 + * 鍒犻櫎浜戝彂鍗曞閫夊簱 * * @param callback * @param acceptData * @param uid - * @param goodsId - * @param goodsType - * @param out - */ - @RequestMapping(value = "accordGoods") - public void accordGoods(String callback, AcceptData acceptData, Long uid, Long goodsId, Integer goodsType, - PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (goodsType == null || goodsId == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�")); - return; - } - - try { - boolean state = false; - UserCloudGoods cloudGoods = userCloudGoodsService.getByUidAndGoods(uid, goodsId, goodsType); - if (cloudGoods != null) { // 鍙栨秷鍔犲叆閫夊搧搴� - userCloudGoodsService.deleteByPrimaryKeyAndUid(cloudGoods.getId(), uid); - } else { // 鍔犲叆閫夊搧搴� - Set<Long> set = new HashSet<Long>(); - set.add(goodsId); - userCloudGoodsService.addGoods(uid, set, goodsType); - state = true; - } - - JSONObject data = new JSONObject(); - data.put("state", state); - out.print(JsonUtil.loadTrueResult(data)); - } catch (UserCloudGoodsException e) { - out.print(JsonUtil.loadFalseResult(e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); - LogHelper.errorDetailInfo(e); - ; - } - } - - /** - * 娣诲姞銆佸彇娑堝彂鍗曞簱 - * - * @param callback - * @param acceptData - * @param uid - * @param goodsId - * @param goodsType + * @param id * @param out */ @RequestMapping(value = "deleteGoods") @@ -639,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)); } /** @@ -664,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, "鐢ㄦ埛鏈櫥褰�")); @@ -680,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); } } @@ -735,7 +782,13 @@ userCloudService.sendByDynamic(uid, id); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("涓�閿彂鍗曟垚鍔�")); } catch (UserCloudException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg())); + if (e.getCode() > 1000 && e.getCode() < 1100) { + JSONObject data = new JSONObject(); + 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())); + } } } @@ -750,17 +803,38 @@ * @param out */ @RequestMapping(value = "sendGoods") - public void sendCircle(String callback, AcceptData acceptData, Long uid, Long goodsId, Integer goodsType, PrintWriter out) { + public void sendGoods(String callback, AcceptData acceptData, Long uid, String goodsId, Integer goodsType, PrintWriter out) { if (uid == null || goodsId == null || goodsType == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖")); return; } try { - userCloudService.sendCustomGoods(uid, goodsId, goodsType); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("涓�閿彂鍗曟垚鍔�")); + GoodsEvaluate evaluate = goodsEvaluateService.queryExistSingle(goodsId, goodsType,acceptData.getSystem()); + if (evaluate != null) { + userCloudService.sendByDynamic(uid, evaluate.getId()); + } else { + + Long gid = null; + Long sellerId = null; + if (goodsType == Constant.SOURCE_TYPE_SUNING) { // 鑻忓畞 + String[] ids = SuningUtil.getGoodsIdDetail(goodsId); + gid = Long.parseLong(ids[1]); + sellerId = Long.parseLong(ids[0]); + } else { + gid = Long.parseLong(goodsId); + } + userCloudService.sendCustomGoods(uid, gid, goodsType, sellerId); + } + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鍔犲叆鍙戝崟搴撴垚鍔�")); } catch (UserCloudException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg())); + if (e.getCode() > 1000 && e.getCode() < 1100) { + JSONObject data = new JSONObject(); + 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