From 01955bc3f6e6eec6d82a5a3848efde1fa6cc8137 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 30 九月 2020 17:29:26 +0800 Subject: [PATCH] 云发单优化 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java | 1498 ++++++++++++++++++++++++++++++----------------------------- 1 files changed, 760 insertions(+), 738 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 78d7566..949c1bc 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 @@ -9,6 +9,10 @@ import javax.annotation.Resource; +import com.yeshi.fanli.dto.vip.UserVIPLevel; +import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo; +import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; +import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.DateUtil; @@ -68,773 +72,791 @@ @RequestMapping("api/v2/user/cloud") public class UserCloudControllerV2 { - @Resource - private UserCloudService userCloudService; + @Resource + private UserCloudService userCloudService; - @Resource - private UserCloudOrderService userCloudOrderService; + @Resource + private UserCloudOrderService userCloudOrderService; - @Resource - private UserCloudGroupService userCloudGroupService; + @Resource + private UserCloudGroupService userCloudGroupService; - @Resource - private UserCloudGoodsService userCloudGoodsService; + @Resource + private UserCloudGoodsService userCloudGoodsService; - @Resource - private UserInfoService userInfoService; + @Resource + private UserInfoService userInfoService; - @Resource - private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; + @Resource + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; - @Resource - private UserCloudManageService userCloudManageService; + @Resource + private UserCloudManageService userCloudManageService; - @Resource - private UserCloudAlipayManager userCloudAlipayManager; - - @Resource - private GoodsEvaluateService goodsEvaluateService; - - @Resource - private ConfigService configService; - - @Resource - private RedisManager redisManager; - - @Resource - private SwiperPictureService swiperPictureService; + @Resource + private UserCloudAlipayManager userCloudAlipayManager; - /** - * 鏌ヨ寮�閫氳褰� - * - * @param callback - * @param acceptData - * @param page - * @param uid - * @param out - */ - @RequestMapping(value = "getOrderRecord") - public void getOrderRecord(String callback, AcceptData acceptData, Integer page, Long uid, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } + @Resource + private GoodsEvaluateService goodsEvaluateService; - if (page == null) - page = 1; + @Resource + private ConfigService configService; - // 鏌ヨ鎴愬姛璁板綍 - int state = 1; - List<UserCloudOrder> list = userCloudOrderService.getOrderRecord(page, Constant.PAGE_SIZE, uid, state); - if (list == null) - list = new ArrayList<>(); + @Resource + private RedisManager redisManager; - GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); - gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { - @Override - public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - // 淇濈暀2浣嶅皬鏁� - value = value.setScale(2, BigDecimal.ROUND_DOWN); - return new JsonPrimitive(value.toString()); - } - } - }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { - @Override - public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { - if (value == null) { - return new JsonPrimitive(""); - } else { - return new JsonPrimitive(TimeUtil.formatDate(value)); - } - } - }); + @Resource + private SwiperPictureService swiperPictureService; - long count = userCloudOrderService.countOrderRecord(uid, state); + @Resource + private UserVIPPreInfoService userVIPPreInfoService; - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("list", gsonBuilder.create().toJson(list)); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } + /** + * 鏌ヨ寮�閫氳褰� + * + * @param callback + * @param acceptData + * @param page + * @param uid + * @param out + */ + @RequestMapping(value = "getOrderRecord") + public void getOrderRecord(String callback, AcceptData acceptData, Integer page, Long uid, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } - /** - * 鑾峰彇寮�閫氫俊鎭� - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - @RequestMapping(value = "getCloudInfo") - public void getCloudInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } + if (page == null) + page = 1; - UserInfo userInfo = userInfoService.getUserByIdWithMybatis(uid); - if (userInfo == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛淇℃伅涓嶅瓨鍦�")); - return; - } + // 鏌ヨ鎴愬姛璁板綍 + int state = 1; + List<UserCloudOrder> list = userCloudOrderService.getOrderRecord(page, Constant.PAGE_SIZE, uid, state); + if (list == null) + list = new ArrayList<>(); - 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) { - cloudInfoVO.setOpenState(0); // 鏈紑閫� - } else { - Date endTime = userCloud.getEndTime(); - if (endTime != null && endTime.getTime() > java.lang.System.currentTimeMillis()) { - cloudInfoVO.setOpenState(1); // 杩樻湭杩囨湡 - // 鐧诲綍寰俊 - cloudInfoVO.setWxName(userCloud.getWxName()); - if (userCloud.getStartTime() != null) - cloudInfoVO.setOpenTime(TimeUtil.formatDateDot(userCloud.getStartTime())); - if (userCloud.getEndTime() != null) { - try { - cloudInfoVO.setCountdown(DateUtil.daysBetween2(new Date(), userCloud.getEndTime()) + ""); - } catch (Exception e) { - LogHelper.errorDetailInfo(e); - } - } + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { + @Override + public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + // 淇濈暀2浣嶅皬鏁� + value = value.setScale(2, BigDecimal.ROUND_DOWN); + return new JsonPrimitive(value.toString()); + } + } + }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + @Override + public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(TimeUtil.formatDate(value)); + } + } + }); - Integer robotId = userCloud.getRobotId(); - // 妫�娴嬫槸鍚﹀凡鐧诲綍 - if (AitaokerApiUtil.onlineCheck(robotId)) { - boolean circle = false; - List<UserCloudGroup> listGroup = new ArrayList<>(); - List<UserCloudGroup> list = userCloudGroupService.listByUid(uid); - if (list != null && list.size() > 0) { - for (UserCloudGroup cloudGroup : list) { - if (cloudGroup.getType() == UserCloudGroup.TYPE_CIRCLE) { - if (cloudGroup.getState() != null) - circle = cloudGroup.getState(); - } else { - listGroup.add(cloudGroup); - } - } - } + long count = userCloudOrderService.countOrderRecord(uid, state); - cloudInfoVO.setLoginState(true); - cloudInfoVO.setCircle(circle); - cloudInfoVO.setListGroup(listGroup); - } - } - } - - // 鏁欑▼ - 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))); - } + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("list", gsonBuilder.create().toJson(list)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } - /** - * 鑾峰彇鐧诲綍浜岀淮鐮� - * - * @param callback - * @param acceptData - * @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) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } + /** + * 鑾峰彇寮�閫氫俊鎭� + * + * @param callback + * @param acceptData + * @param uid + * @param out + */ + @RequestMapping(value = "getCloudInfo") + public void getCloudInfo(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } - UserCloud userCloud = userCloudService.getValidByUid(uid); - if (userCloud == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鏈紑閫氫簯鍙戝崟")); - return; - } + UserInfo userInfo = userInfoService.getUserByIdWithMybatis(uid); + if (userInfo == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛淇℃伅涓嶅瓨鍦�")); + return; + } - // 鏈哄櫒浜篒D - Integer robotId = userCloud.getRobotId(); - if (robotId == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "姝e湪寮�閫氫腑锛屽鏈夌枒闂鑱旂郴瀹㈡湇")); - return; - } - - // 鑾峰彇鐧诲綍URL - QrcodeLoginDTO maclogin = AitaokerApiUtil.getQrcodeMaclogin(userCloud.getRobotId()); - if (maclogin == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鑾峰彇鐧诲綍浜岀淮鐮佸け璐�")); - return; - } - - JSONObject data = new JSONObject(); - data.put("wId", maclogin.getwId()); - data.put("qrCodeUrl", maclogin.getQrCodeUrl()); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } - - /** - * 妫�娴嬫槸鍚﹀井淇$櫥褰� - * - * @param callback - * @param acceptData - * @param uid - * @param wId - * @param out - */ - @RequestMapping(value = "macloginCheck") - public void macloginCheck(String callback, AcceptData acceptData, Long uid, String wId, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - UserCloud userCloud = userCloudService.getValidByUid(uid); - if (userCloud == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "浜戝彂鍗曞紑閫氬凡杩囨湡")); - return; - } - - // 鏈哄櫒浜篒D - Integer robotId = userCloud.getRobotId(); - if (robotId == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "姝e湪寮�閫氫腑锛屽鏈夌枒闂鑱旂郴瀹㈡湇")); - return; - } - - boolean state = false; - 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()); - } catch (UserCloudException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMsg())); - return; - } - - state = true; - boolean circle = false; - List<UserCloudGroup> listGroup = new ArrayList<>(); - List<UserCloudGroup> list = userCloudGroupService.listByUid(uid); - if (list != null && list.size() > 0) { - for (UserCloudGroup cloudGroup : list) { - if (cloudGroup.getType() == UserCloudGroup.TYPE_CIRCLE) { - if (cloudGroup.getState() != null) - circle = cloudGroup.getState(); - } else { - listGroup.add(cloudGroup); - } - } - } - data.put("wxName", dto.getNickName()); - data.put("circle", circle); - data.put("listGroup", listGroup); - } - data.put("state", state); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } - - /** - * 閫�鍑虹櫥褰� - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - @RequestMapping(value = "macloginOffline") - public void macloginOffline(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - UserCloud userCloud = userCloudService.getLastByUid(uid); - if (userCloud == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浜戝彂鍗曞紑閫氬凡杩囨湡")); - return; - } - - // 鏈哄櫒浜篒D - Integer robotId = userCloud.getRobotId(); - if (robotId == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鏈粦瀹氭満鍣ㄤ汉")); - return; - } - - // 閫�鍑烘満鍣ㄤ汉 - boolean offline = AitaokerApiUtil.macloginOffline(robotId); - if (offline) { - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("閫�鍑烘垚鍔�")); - } else { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("閫�鍑哄け璐�")); - } - } - - /** - * 鍒囨崲鏈嬪弸鍦堢姸鎬� - * - * @param callback - * @param acceptData - * @param uid - * @param id - * @param out - */ - @RequestMapping(value = "switchCircleState") - public void switchCircleState(String callback, AcceptData acceptData, Long uid, Integer state, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - if (state == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐘舵�佷笉鑳戒负绌�")); - return; - } - - boolean reslut = false; - if (state == 1) { - reslut = true; - } - - try { - userCloudGroupService.switchCircleState(uid, reslut); - } catch (UserCloudGroupException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); - } - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); - } - - /** - * 妫�娴嬫槸鍚﹀井淇$櫥褰� - * - * @param callback - * @param acceptData - * @param uid - * @param wId - * @param out - */ - @RequestMapping(value = "searchGroup") - public void searchGroup(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - UserCloud userCloud = userCloudService.getValidByUid(uid); - if (userCloud == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇峰厛寮�閫氫簯鍙戝崟")); - return; - } - - try { - // 閲嶆柊鑾峰彇缇ゅ垪琛� - userCloudService.searchGroup(uid); - // 鑾峰彇鏈�鏂扮兢 - 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 (UserCloudException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMsg())); - } - } - - /** - * 璁剧疆鐘舵�� - * - * @param callback - * @param acceptData - * @param uid - * @param type - * @param out - */ - @RequestMapping(value = "switchGroupState") - 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, "鐢ㄦ埛鏈櫥褰�")); - return; - } - if (id == null || state == null) { - 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, 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())); - } - } - - - - /** - * 璁剧疆鐘舵�� - * - * @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())); - } - } - - /** - * 鑾峰彇浜戝彂鍗曞簱鍟嗗搧 - * - * @param callback - * @param acceptData - * @param uid - * @param page - * @param out - */ - @RequestMapping(value = "getGoodsList") - public void getGoodsList(String callback, AcceptData acceptData, Long uid, Integer page, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (page == null) - page = 1; - - List<UserCloudGoods> list = userCloudGoodsService.listByUid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, - uid); - if (list == null) - list = new ArrayList<>(); - - JSONArray array = new JSONArray(); - JSONObject data = new JSONObject(); - if (list.size() > 0) { - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), - acceptData.getVersion(),acceptData.getSystem()); - - for (UserCloudGoods cloudGoods : list) { - CommonGoods commonGoods = cloudGoods.getCommonGoods(); - if (commonGoods == null) { - continue; - } - - // 鍒ゆ柇鏄惁宸插垎浜紝 宸插垎浜樉绀哄凡涓嬫灦 - Integer state = cloudGoods.getState(); - if (state != null && state == UserCloudGoods.STATE_SHARED) { - Integer goodsState = commonGoods.getState(); - if (goodsState != null && goodsState != 1) { - commonGoods.setState(2); - } - } - - if (state != null && state == UserCloudGoods.STATE_INVALID) { - commonGoods.setState(1); - } - - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO); - detailVO.setId(commonGoods.getId()); - - JSONObject dataObject = new JSONObject(); - dataObject.put("id", cloudGoods.getId()); - dataObject.put("goods", gson.toJson(detailVO)); - array.add(dataObject); - } - } - - // 绗竴椤佃繑鍥炶缃俊鎭� - if (page == 1) { - boolean custom = false; - boolean official = false; - UserCloudManage cloudManage = userCloudManageService.selectByPrimaryKey(uid); - if (cloudManage != null) { - if (cloudManage.getOfficial() != null) - official = cloudManage.getOfficial(); - if (cloudManage.getCustom() != null) - custom = cloudManage.getCustom(); - } - data.put("custom", custom); - data.put("official", official); - } - data.put("count", userCloudGoodsService.countByUid(uid)); - data.put("list", array); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } + 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); - /** - * 鍒犻櫎浜戝彂鍗曞閫夊簱 - * - * @param callback - * @param acceptData - * @param uid - * @param id - * @param out - */ - @RequestMapping(value = "deleteGoods") - public void deleteGoods(String callback, AcceptData acceptData, Long uid, Long id, PrintWriter out) { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - if (id == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�")); - return; - } - userCloudGoodsService.deleteByPrimaryKeyAndUid(id, uid); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); - } + // 鏄惁寮�閫� + UserCloud userCloud = userCloudService.getLastByUid(uid); + if (userCloud == null) { + cloudInfoVO.setOpenState(0); // 鏈紑閫� + } else { + Date endTime = userCloud.getEndTime(); + if (endTime != null && endTime.getTime() > java.lang.System.currentTimeMillis()) { + cloudInfoVO.setOpenState(1); // 杩樻湭杩囨湡 + // 鐧诲綍寰俊 + cloudInfoVO.setWxName(userCloud.getWxName()); + if (userCloud.getStartTime() != null) + cloudInfoVO.setOpenTime(TimeUtil.formatDateDot(userCloud.getStartTime())); + if (userCloud.getEndTime() != null) { + try { + cloudInfoVO.setCountdown(DateUtil.daysBetween2(new Date(), userCloud.getEndTime()) + ""); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } - /** - * 璁剧疆鐘舵�� - * - * @param callback - * @param acceptData - * @param uid - * @param type - * @param out - */ - @RequestMapping(value = "switchState") - public void switchState(String callback, AcceptData acceptData, Long uid, Integer type, Integer state, - PrintWriter out) { - if (uid == null || type == null || state == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�")); - return; - } - - boolean reslut = false; - if (state == 1) { - reslut = true; - } - - 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)); - } + Integer robotId = userCloud.getRobotId(); + // 妫�娴嬫槸鍚﹀凡鐧诲綍 + if (AitaokerApiUtil.onlineCheck(robotId)) { + boolean circle = false; + List<UserCloudGroup> listGroup = new ArrayList<>(); + List<UserCloudGroup> list = userCloudGroupService.listByUid(uid); + if (list != null && list.size() > 0) { + for (UserCloudGroup cloudGroup : list) { + if (cloudGroup.getType() == UserCloudGroup.TYPE_CIRCLE) { + if (cloudGroup.getState() != null) + circle = cloudGroup.getState(); + } else { + listGroup.add(cloudGroup); + } + } + } - /** - * 浜戝彂鍗曟敮浠� - * - * @param callback - * @param acceptData - * @param uid - * @param type 鏈哄櫒浜虹被鍨� - * @param response - * @param out - */ - @RequestMapping(value = "pay") - public void pay(String callback, AcceptData acceptData, Long uid, String type, PrintWriter out) { - try { - if (uid == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); - return; - } + cloudInfoVO.setLoginState(true); + cloudInfoVO.setCircle(circle); + cloudInfoVO.setListGroup(listGroup); + } + } + } - if (StringUtil.isNullOrEmpty(type)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇烽�夋嫨浜戝彂鍗曞椁�")); - return; - } + // 鏁欑▼ + List<BannerVO> listBanner = swiperPictureService.getByBannerCard("cloud_course", acceptData.getSystem()); + if (listBanner != null && listBanner.size() > 0) { + cloudInfoVO.setCourse(listBanner.get(0)); + } + GsonBuilder gsonBuilder = new GsonBuilder(); - // 鍒涘缓鏀粯淇℃伅 - String alipayForm = userCloudAlipayManager.getAlipayForm(uid, type); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(gsonBuilder.create().toJson(cloudInfoVO))); + } - // 杩斿洖淇℃伅 - 缂撳瓨鍒皊ession - StringBuilder builder = new StringBuilder(); - builder.append("<html><head><title>alipay</title></head>"); - builder.append("<body>" + alipayForm + "</body></html>"); - - // 缂撳瓨鍒皉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 uid + * @param out + */ + @RequestSerializableByKey(key = "'getQrcodeMaclogin-'+#uid") + @RequestMapping(value = "getQrcodeMaclogin") + public void getQrcodeMaclogin(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } - - /** - * 鏀粯瀹屾垚 - * - * @param id - * @param out - */ - @RequestMapping(value = "payEnd") - 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) { - out.print(JsonUtil.loadFalseResult(1, "鍥炶皟淇℃伅澶辫触")); - LogHelper.errorDetailInfo(e); - } - } - - - /** - * 鍔ㄦ�佷竴閿彂鍗� - * @param callback - * @param acceptData - * @param uid - * @param id - * @param out - */ - @RequestMapping(value = "sendCircle") - public void sendCircle(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) { - if (uid == null || StringUtil.isNullOrEmpty(id)) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖")); - return; - } - try { - userCloudService.sendByDynamic(uid, id); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("涓�閿彂鍗曟垚鍔�")); - } catch (UserCloudException e) { - 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())); - } - } - } - - - /** - * 鍟嗗搧璇︽儏涓�閿彂鍗� - * @param callback - * @param acceptData - * @param uid - * @param goodsId - * @param goodsType - * @param out - */ - @RequestMapping(value = "sendGoods") - 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 { - 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) { - 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())); - } - } - } + UserCloud userCloud = userCloudService.getValidByUid(uid); + if (userCloud == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鏈紑閫氫簯鍙戝崟")); + return; + } + + // 鏈哄櫒浜篒D + Integer robotId = userCloud.getRobotId(); + if (robotId == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "姝e湪寮�閫氫腑锛屽鏈夌枒闂鑱旂郴瀹㈡湇")); + return; + } + + // 鑾峰彇鐧诲綍URL + QrcodeLoginDTO maclogin = AitaokerApiUtil.getQrcodeMaclogin(userCloud.getRobotId()); + if (maclogin == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鑾峰彇鐧诲綍浜岀淮鐮佸け璐�")); + return; + } + + JSONObject data = new JSONObject(); + data.put("wId", maclogin.getwId()); + data.put("qrCodeUrl", maclogin.getQrCodeUrl()); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } + + /** + * 妫�娴嬫槸鍚﹀井淇$櫥褰� + * + * @param callback + * @param acceptData + * @param uid + * @param wId + * @param out + */ + @RequestMapping(value = "macloginCheck") + public void macloginCheck(String callback, AcceptData acceptData, Long uid, String wId, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + UserCloud userCloud = userCloudService.getValidByUid(uid); + if (userCloud == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "浜戝彂鍗曞紑閫氬凡杩囨湡")); + return; + } + + // 鏈哄櫒浜篒D + Integer robotId = userCloud.getRobotId(); + if (robotId == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "姝e湪寮�閫氫腑锛屽鏈夌枒闂鑱旂郴瀹㈡湇")); + return; + } + + boolean state = false; + 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()); + } catch (UserCloudException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMsg())); + return; + } + + state = true; + boolean circle = false; + List<UserCloudGroup> listGroup = new ArrayList<>(); + List<UserCloudGroup> list = userCloudGroupService.listByUid(uid); + if (list != null && list.size() > 0) { + for (UserCloudGroup cloudGroup : list) { + if (cloudGroup.getType() == UserCloudGroup.TYPE_CIRCLE) { + if (cloudGroup.getState() != null) + circle = cloudGroup.getState(); + } else { + listGroup.add(cloudGroup); + } + } + } + data.put("wxName", dto.getNickName()); + data.put("circle", circle); + data.put("listGroup", listGroup); + } + data.put("state", state); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } + + /** + * 閫�鍑虹櫥褰� + * + * @param callback + * @param acceptData + * @param uid + * @param out + */ + @RequestMapping(value = "macloginOffline") + public void macloginOffline(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + UserCloud userCloud = userCloudService.getLastByUid(uid); + if (userCloud == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浜戝彂鍗曞紑閫氬凡杩囨湡")); + return; + } + + // 鏈哄櫒浜篒D + Integer robotId = userCloud.getRobotId(); + if (robotId == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鏈粦瀹氭満鍣ㄤ汉")); + return; + } + + // 閫�鍑烘満鍣ㄤ汉 + boolean offline = AitaokerApiUtil.macloginOffline(robotId); + if (offline) { + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("閫�鍑烘垚鍔�")); + } else { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("閫�鍑哄け璐�")); + } + } + + /** + * 鍒囨崲鏈嬪弸鍦堢姸鎬� + * + * @param callback + * @param acceptData + * @param uid + * @param id + * @param out + */ + @RequestMapping(value = "switchCircleState") + public void switchCircleState(String callback, AcceptData acceptData, Long uid, Integer state, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + if (state == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐘舵�佷笉鑳戒负绌�")); + return; + } + + boolean reslut = false; + if (state == 1) { + reslut = true; + } + + try { + userCloudGroupService.switchCircleState(uid, reslut); + } catch (UserCloudGroupException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg())); + } + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); + } + + /** + * 妫�娴嬫槸鍚﹀井淇$櫥褰� + * + * @param callback + * @param acceptData + * @param uid + * @param wId + * @param out + */ + @RequestMapping(value = "searchGroup") + public void searchGroup(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + UserCloud userCloud = userCloudService.getValidByUid(uid); + if (userCloud == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇峰厛寮�閫氫簯鍙戝崟")); + return; + } + + try { + // 閲嶆柊鑾峰彇缇ゅ垪琛� + userCloudService.searchGroup(uid); + // 鑾峰彇鏈�鏂扮兢 + 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 (UserCloudException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMsg())); + } + } + + /** + * 璁剧疆鐘舵�� + * + * @param callback + * @param acceptData + * @param uid + * @param type + * @param out + */ + @RequestMapping(value = "switchGroupState") + 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, "鐢ㄦ埛鏈櫥褰�")); + return; + } + if (id == null || state == null) { + 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, 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())); + } + } + + + /** + * 璁剧疆鐘舵�� + * + * @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())); + } + } + + /** + * 鑾峰彇浜戝彂鍗曞簱鍟嗗搧 + * + * @param callback + * @param acceptData + * @param uid + * @param page + * @param out + */ + @RequestMapping(value = "getGoodsList") + public void getGoodsList(String callback, AcceptData acceptData, Long uid, Integer page, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (page == null) + page = 1; + + List<UserCloudGoods> list = userCloudGoodsService.listByUid((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, + uid); + if (list == null) + list = new ArrayList<>(); + + JSONArray array = new JSONArray(); + JSONObject data = new JSONObject(); + if (list.size() > 0) { + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(), acceptData.getSystem()); + + for (UserCloudGoods cloudGoods : list) { + CommonGoods commonGoods = cloudGoods.getCommonGoods(); + if (commonGoods == null) { + continue; + } + + // 鍒ゆ柇鏄惁宸插垎浜紝 宸插垎浜樉绀哄凡涓嬫灦 + Integer state = cloudGoods.getState(); + if (state != null && state == UserCloudGoods.STATE_SHARED) { + Integer goodsState = commonGoods.getState(); + if (goodsState != null && goodsState != 1) { + commonGoods.setState(2); + } + } + + if (state != null && state == UserCloudGoods.STATE_INVALID) { + commonGoods.setState(1); + } + + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO); + detailVO.setId(commonGoods.getId()); + + JSONObject dataObject = new JSONObject(); + dataObject.put("id", cloudGoods.getId()); + dataObject.put("goods", gson.toJson(detailVO)); + array.add(dataObject); + } + } + + // 绗竴椤佃繑鍥炶缃俊鎭� + if (page == 1) { + boolean custom = false; + boolean official = false; + UserCloudManage cloudManage = userCloudManageService.selectByPrimaryKey(uid); + if (cloudManage != null) { + if (cloudManage.getOfficial() != null) + official = cloudManage.getOfficial(); + if (cloudManage.getCustom() != null) + custom = cloudManage.getCustom(); + } + data.put("custom", custom); + data.put("official", official); + } + data.put("count", userCloudGoodsService.countByUid(uid)); + data.put("list", array); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } + + + /** + * 鍒犻櫎浜戝彂鍗曞閫夊簱 + * + * @param callback + * @param acceptData + * @param uid + * @param id + * @param out + */ + @RequestMapping(value = "deleteGoods") + public void deleteGoods(String callback, AcceptData acceptData, Long uid, Long id, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (id == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�")); + return; + } + userCloudGoodsService.deleteByPrimaryKeyAndUid(id, uid); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); + } + + /** + * 璁剧疆鐘舵�� + * + * @param callback + * @param acceptData + * @param uid + * @param type + * @param out + */ + @RequestMapping(value = "switchState") + public void switchState(String callback, AcceptData acceptData, Long uid, Integer type, Integer state, + PrintWriter out) { + if (uid == null || type == null || state == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鍙傛暟涓嶅畬鏁�")); + return; + } + + boolean reslut = false; + if (state == 1) { + reslut = true; + } + + 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)); + } + + /** + * 浜戝彂鍗曟敮浠� + * + * @param callback + * @param acceptData + * @param uid + * @param type 鏈哄櫒浜虹被鍨� + * @param response + * @param out + */ + @RequestMapping(value = "pay") + public void pay(String callback, AcceptData acceptData, Long uid, String type, PrintWriter out) { + try { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (StringUtil.isNullOrEmpty(type)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇烽�夋嫨浜戝彂鍗曞椁�")); + return; + } + + CloudOrderMenuEnum typeEnum = CloudOrderMenuEnum.valueOf(type); + if (typeEnum == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "濂楅閫夋嫨鍑洪敊")); + return; + } + + if (typeEnum == CloudOrderMenuEnum.robotMonthVip) { + UserVIPPreInfo vip = userVIPPreInfoService.getLatestProcessInfo(uid); + if (vip == null || vip.getProcess() < UserVIPLevel.LEVEL_7) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛绛夌骇涓嶆弧瓒�")); + return; + } + } + + + // 鍒涘缓鏀粯淇℃伅 + String alipayForm = userCloudAlipayManager.getAlipayForm(uid, type); + + // 杩斿洖淇℃伅 - 缂撳瓨鍒皊ession + StringBuilder builder = new StringBuilder(); + builder.append("<html><head><title>alipay</title></head>"); + builder.append("<body>" + alipayForm + "</body></html>"); + + // 缂撳瓨鍒皉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 id + * @param out + */ + @RequestMapping(value = "payEnd") + 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) { + out.print(JsonUtil.loadFalseResult(1, "鍥炶皟淇℃伅澶辫触")); + LogHelper.errorDetailInfo(e); + } + } + + + /** + * 鍔ㄦ�佷竴閿彂鍗� + * + * @param callback + * @param acceptData + * @param uid + * @param id + * @param out + */ + @RequestMapping(value = "sendCircle") + public void sendCircle(String callback, AcceptData acceptData, Long uid, String id, PrintWriter out) { + if (uid == null || StringUtil.isNullOrEmpty(id)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟涓嶈兘涓虹┖")); + return; + } + try { + userCloudService.sendByDynamic(uid, id); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("涓�閿彂鍗曟垚鍔�")); + } catch (UserCloudException e) { + 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())); + } + } + } + + + /** + * 鍟嗗搧璇︽儏涓�閿彂鍗� + * + * @param callback + * @param acceptData + * @param uid + * @param goodsId + * @param goodsType + * @param out + */ + @RequestMapping(value = "sendGoods") + 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 { + 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) { + 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