admin
2020-06-15 3e4ef41ffacd7f5fda2e81c3810cd11a6375b83c
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java
@@ -8,7 +8,6 @@
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,6 +24,7 @@
import com.yeshi.fanli.dto.aitaoker.QrcodeLoginDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum;
import com.yeshi.fanli.entity.bus.user.cloud.UserCloud;
import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGoods;
import com.yeshi.fanli.entity.bus.user.cloud.UserCloudGroup;
@@ -50,6 +50,8 @@
import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
import com.yeshi.fanli.service.manger.alipay.UserCloudAlipayManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.aitaoker.AitaokerApiUtil;
@@ -57,6 +59,7 @@
import com.yeshi.fanli.util.suning.SuningUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.user.cloud.CloudOrderMenuVO;
import com.yeshi.fanli.vo.user.cloud.UserCloudInfoVO;
import net.sf.json.JSONArray;
@@ -95,6 +98,10 @@
   
   @Resource
   private ConfigService configService;
   @Resource
   private RedisManager redisManager;
   /**
    * 查询开通记录
@@ -173,11 +180,24 @@
         return;
      }
      List<CloudOrderMenuVO> listMenu = new ArrayList<>();
      CloudOrderMenuEnum[] menus = CloudOrderMenuEnum.values();
      for (CloudOrderMenuEnum menuEnum: menus) {
         CloudOrderMenuVO menuVO = new CloudOrderMenuVO();
         menuVO.setMoney(BigDecimal.valueOf(menuEnum.getMoney()) );
         menuVO.setType(menuEnum.name());
         menuVO.setDesc(menuEnum.getDescShow());
         listMenu.add(menuVO);
      }
      UserCloudInfoVO cloudInfoVO = new UserCloudInfoVO();
      cloudInfoVO.setNickName(userInfo.getNickName());
      cloudInfoVO.setPortrait(userInfo.getPortrait());
      cloudInfoVO.setOpenState(0); // 未开通
      cloudInfoVO.setListMenu(listMenu);
      // 是否开通
      UserCloud userCloud = userCloudService.getLastByUid(uid);
      if (userCloud == null) {
@@ -480,27 +500,6 @@
      JSONArray array = new JSONArray();
      JSONObject data = new JSONObject();
      if (list.size() > 0) {
         List<Long> listGid = new ArrayList<Long>();
         for (UserCloudGoods cloudGoods : list) {
            CommonGoods commonGoods = cloudGoods.getCommonGoods();
            if (commonGoods == null) {
               continue;
            }
            listGid.add(commonGoods.getGoodsId());
         }
         // API网络接口验证是否在售
         List<TaoBaoGoodsBrief> listTaoKeGoods = null;
         try {
            listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
         } catch (TaoKeApiException e) {
            e.printStackTrace();
         } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
         } catch (Exception e) {
            e.printStackTrace();
         }
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
               .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
         ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
@@ -510,22 +509,6 @@
            CommonGoods commonGoods = cloudGoods.getCommonGoods();
            if (commonGoods == null) {
               continue;
            }
            // 淘宝商品验证在售
            if (commonGoods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) {
               if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
                  int state = 1; // 默认停售
                  Long goodsId = commonGoods.getGoodsId();
                  for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
                     Long auctionId = taoKeGoods.getAuctionId();
                     if (goodsId == auctionId || goodsId.equals(auctionId)) {
                        state = 0; // 在售
                        break;
                     }
                  }
                  commonGoods.setState(state);
               }
            }
            // 判断是否已分享, 已分享显示已下架
@@ -627,8 +610,7 @@
    * @param out
    */
   @RequestMapping(value = "pay")
   public void pay(String callback, AcceptData acceptData, Long uid, String type, HttpServletResponse response,
         PrintWriter out) {
   public void pay(String callback, AcceptData acceptData, Long uid, String type, PrintWriter out) {
      try {
         if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
@@ -643,42 +625,26 @@
         // 创建支付信息
         String alipayForm = userCloudAlipayManager.getAlipayForm(uid, type);
         // 返回信息
         response.setContentType("text/html;charset=utf-8");
         PrintWriter print = response.getWriter();
         // 返回信息 - 缓存到session
         StringBuilder builder = new StringBuilder();
         builder.append("<html><head><title>alipay</title></head>");
         builder.append("<body>" + alipayForm + "</body></html>");
         JsonUtil.printMode(print, callback, builder.toString());
         print.close();
         // 缓存到redis- 一分钟
         String key = RedisKeyEnum.cloudAlipayLink.getKey() + uid + "_" + type;
         key = StringUtil.Md5(key);
         redisManager.cacheCommonString(key , builder.toString() , 60*10);
         String link = configService.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?key=%s";
         JSONObject dataObject = new JSONObject();
         dataObject.put("link", String.format(link, key));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(dataObject));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "创建支付信息失败"));
         LogHelper.errorDetailInfo(e);
      }
   }
   /**
    * 支付完成
    *
    * @param callback
    * @param acceptData
    * @param id
    * @param out
    */
   @RequestMapping(value = "payEnd")
   public void payEnd(String callback, AcceptData acceptData, Long id, PrintWriter out) {
      if (id == null) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "参数信息缺失"));
         return;
      }
      try {
         userCloudAlipayManager.tradeQueryByOrderId(id);
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "检测失败"));
         LogHelper.errorDetailInfo(e);
      }
   }
   
   /**
    * 动态一键发单