From 81da61b828e29b7745e1382dfbbaeb685dc083ef Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 23 一月 2024 17:17:55 +0800
Subject: [PATCH] 抖音转链修改
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java | 1588 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 860 insertions(+), 728 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 85b236b..7171b1b 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
@@ -1,728 +1,860 @@
-package com.yeshi.fanli.controller.client.v2;
-
-import java.io.PrintWriter;
-import java.lang.reflect.Type;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.JsonUtil;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import com.yeshi.fanli.dto.ConfigParamsDTO;
-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.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;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService;
-import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
-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;
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/v2/user/cloud")
-public class UserCloudControllerV2 {
-
- @Resource
- private UserCloudService userCloudService;
-
- @Resource
- private UserCloudOrderService userCloudOrderService;
-
- @Resource
- private UserCloudGroupService userCloudGroupService;
-
- @Resource
- private UserCloudGoodsService userCloudGoodsService;
-
- @Resource
- private UserInfoService userInfoService;
-
- @Resource
- private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
-
- @Resource
- private UserCloudManageService userCloudManageService;
-
- @Resource
- private UserCloudAlipayManager userCloudAlipayManager;
-
- @Resource
- private GoodsEvaluateService goodsEvaluateService;
-
- @Resource
- private ConfigService configService;
-
- @Resource
- private RedisManager redisManager;
-
-
- /**
- * 鏌ヨ寮�閫氳褰�
- *
- * @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;
- }
-
- if (page == null)
- page = 1;
-
- // 鏌ヨ鎴愬姛璁板綍
- int state = 1;
- List<UserCloudOrder> list = userCloudOrderService.getOrderRecord(page, Constant.PAGE_SIZE, uid, state);
- if (list == null)
- list = new ArrayList<>();
-
- 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));
- }
- }
- });
-
- long count = userCloudOrderService.countOrderRecord(uid, state);
-
- 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
- */
- @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;
- }
-
- UserInfo userInfo = userInfoService.getUserByIdWithMybatis(uid);
- if (userInfo == null) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛淇℃伅涓嶅瓨鍦�"));
- 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) {
- 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);
- }
- }
-
- 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);
- }
- }
- }
-
- cloudInfoVO.setLoginState(true);
- cloudInfoVO.setCircle(circle);
- cloudInfoVO.setListGroup(listGroup);
- }
- }
- }
- JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(cloudInfoVO));
- }
-
- /**
- * 鑾峰彇鐧诲綍浜岀淮鐮�
- *
- * @param callback
- * @param acceptData
- * @param uid
- * @param out
- */
- @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;
- }
-
- 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, Boolean 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;
- }
- try {
- userCloudGroupService.switchCircleState(uid, state);
- } 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;
- }
-
- 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;
- }
-
- boolean reslut = false;
- if (state == 1) {
- reslut = true;
- }
-
- try {
- userCloudGroupService.switchGroupState(uid, id, 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 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());
-
- 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);
- }
- }
-
- 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, Boolean state,
- PrintWriter out) {
- if (uid == null) {
- JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
- return;
- }
- if (type == 1) {
- userCloudManageService.save(uid, state, null);
- } else {
- userCloudManageService.save(uid, null, state);
- }
- JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
- }
-
- /**
- * 浜戝彂鍗曟敮浠�
- *
- * @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;
- }
-
- // 鍒涘缓鏀粯淇℃伅
- 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.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 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.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()));
- }
- }
- }
-
-
- /**
- * 鍟嗗搧璇︽儏涓�閿彂鍗�
- * @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);
- 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.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()));
- }
- }
- }
-}
+package com.yeshi.fanli.controller.client.v2;
+
+import java.io.PrintWriter;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+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.UserVIPPreInfoService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.DateUtil;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
+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.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;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService;
+import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
+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 org.yeshi.utils.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.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;
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/v2/user/cloud")
+public class UserCloudControllerV2 {
+
+ @Resource
+ private UserCloudService userCloudService;
+
+ @Resource
+ private UserCloudOrderService userCloudOrderService;
+
+ @Resource
+ private UserCloudGroupService userCloudGroupService;
+
+ @Resource
+ private UserCloudGoodsService userCloudGoodsService;
+
+ @Resource
+ private UserInfoService userInfoService;
+
+ @Resource
+ private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+ @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 UserVIPPreInfoService userVIPPreInfoService;
+
+ /**
+ * 鏌ヨ寮�閫氳褰�
+ *
+ * @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;
+ }
+
+ if (page == null)
+ page = 1;
+
+ // 鏌ヨ鎴愬姛璁板綍
+ int state = 1;
+ List<UserCloudOrder> list = userCloudOrderService.getOrderRecord(page, Constant.PAGE_SIZE, uid, state);
+ if (list == null)
+ list = new ArrayList<>();
+
+ 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));
+ }
+ }
+ });
+
+ long count = userCloudOrderService.countOrderRecord(uid, state);
+
+ 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
+ */
+ @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;
+ }
+
+ UserInfo userInfo = userInfoService.getUserByIdWithMybatis(uid);
+ if (userInfo == null) {
+ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛淇℃伅涓嶅瓨鍦�"));
+ 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) {
+ 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);
+ }
+ }
+
+ 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);
+ }
+ }
+ }
+
+ 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)));
+ }
+
+ /**
+ * 鑾峰彇鐧诲綍浜岀淮鐮�
+ *
+ * @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;
+ }
+
+ 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 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();
+ GoodsMoneyConfigParamsDTO 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 {
+
+ String gid = null;
+ Long sellerId = null;
+ if (goodsType == Constant.SOURCE_TYPE_SUNING) { // 鑻忓畞
+ String[] ids = SuningUtil.getGoodsIdDetail(goodsId);
+ gid = ids[1];
+ sellerId = Long.parseLong(ids[0]);
+ } else {
+ gid = 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