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 | 208 ++++++++++++++++++++------------------------------- 1 files changed, 82 insertions(+), 126 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..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,19 +24,23 @@ 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.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.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.order.OrderHongBaoMoneyComputeService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudGoodsService; @@ -49,12 +50,16 @@ 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.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.user.cloud.CloudOrderMenuVO; import com.yeshi.fanli.vo.user.cloud.UserCloudInfoVO; import net.sf.json.JSONArray; @@ -87,6 +92,16 @@ @Resource private UserCloudAlipayManager userCloudAlipayManager; + + @Resource + private GoodsEvaluateService goodsEvaluateService; + + @Resource + private ConfigService configService; + + @Resource + private RedisManager redisManager; + /** * 鏌ヨ寮�閫氳褰� @@ -165,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) { @@ -290,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()); @@ -471,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(), @@ -501,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); - } } // 鍒ゆ柇鏄惁宸插垎浜紝 宸插垎浜樉绀哄凡涓嬫灦 @@ -557,61 +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, 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") @@ -664,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, "鐢ㄦ埛鏈櫥褰�")); @@ -680,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); - } - } - /** * 鍔ㄦ�佷竴閿彂鍗� @@ -735,7 +664,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.get(ConfigKeyEnum.robotCloudLink.getKey())); + 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 +685,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); + 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.get(ConfigKeyEnum.robotCloudLink.getKey())); + 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