From 3e4ef41ffacd7f5fda2e81c3810cd11a6375b83c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 15 六月 2020 16:32:35 +0800 Subject: [PATCH] 好单库转链支持 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java | 174 ++++++++++++++-------------------------------------------- 1 files changed, 42 insertions(+), 132 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 429ddf1..916074d 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,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; @@ -39,7 +37,6 @@ 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.UserCloudGoodsException; import com.yeshi.fanli.exception.user.cloud.UserCloudGroupException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; @@ -53,6 +50,8 @@ 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; @@ -60,6 +59,7 @@ 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.user.cloud.CloudOrderMenuVO; import com.yeshi.fanli.vo.user.cloud.UserCloudInfoVO; import net.sf.json.JSONArray; @@ -98,6 +98,10 @@ @Resource private ConfigService configService; + + @Resource + private RedisManager redisManager; + /** * 鏌ヨ寮�閫氳褰� @@ -176,11 +180,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) { @@ -301,6 +318,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()); @@ -482,27 +500,6 @@ 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(), @@ -512,22 +509,6 @@ 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); - } } // 鍒ゆ柇鏄惁宸插垎浜紝 宸插垎浜樉绀哄凡涓嬫灦 @@ -568,67 +549,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, String 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; - String queryGoodsId = goodsId; - if (goodsType == Constant.SOURCE_TYPE_SUNING) { // 鑻忓畞 - String[] ids = SuningUtil.getGoodsIdDetail(goodsId); - queryGoodsId = ids[1]; - } - - UserCloudGoods cloudGoods = userCloudGoodsService.getByUidAndGoods(uid, Long.parseLong(queryGoodsId), goodsType); - if (cloudGoods != null) { // 鍙栨秷鍔犲叆閫夊搧搴� - userCloudGoodsService.deleteByPrimaryKeyAndUid(cloudGoods.getId(), uid); - } else { // 鍔犲叆閫夊搧搴� - Set<String> set = new HashSet<String>(); - 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") @@ -681,8 +610,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, "鐢ㄦ埛鏈櫥褰�")); @@ -697,42 +625,26 @@ // 鍒涘缓鏀粯淇℃伅 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.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?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, "鍙傛暟淇℃伅缂哄け")); - return; - } - try { - userCloudAlipayManager.tradeQueryByOrderId(id); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "妫�娴嬪け璐�")); - LogHelper.errorDetailInfo(e); - } - } - /** * 鍔ㄦ�佷竴閿彂鍗� @@ -752,11 +664,10 @@ userCloudService.sendByDynamic(uid, id); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("涓�閿彂鍗曟垚鍔�")); } catch (UserCloudException e) { - if (e.getCode() > 1000) { + if (e.getCode() > 1000 && e.getCode() < 1100) { JSONObject data = new JSONObject(); - data.put("msg", e.getMsg()); data.put("link", configService.get(ConfigKeyEnum.robotCloudLink.getKey())); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(1000, data)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrue(e.getCode(), data, e.getMsg()).toString()); } else { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg())); } @@ -795,10 +706,9 @@ } else { gid = Long.parseLong(goodsId); } - userCloudService.sendCustomGoods(uid, gid, goodsType, sellerId); } - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("涓�閿彂鍗曟垚鍔�")); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鍔犲叆鍙戝崟搴撴垚鍔�")); } catch (UserCloudException e) { if (e.getCode() > 1000 && e.getCode() < 1100) { JSONObject data = new JSONObject(); -- Gitblit v1.8.0