yujian
2020-06-11 a69ec998d9fe8fa8ea6c40175bebc4e53a227d5b
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java
@@ -8,6 +8,7 @@
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
@@ -25,6 +26,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 +52,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 +61,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 +100,10 @@
   
   @Resource
   private ConfigService configService;
   @Resource
   private RedisManager redisManager;
   /**
    * 查询开通记录
@@ -173,11 +182,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) {
@@ -627,8 +649,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 +664,28 @@
         // 创建支付信息
         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);
         System.out.println(builder.toString());
         String link = "http://192.168.1.200:8008/fanli/client/v1/cloud/callback/payUrl?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);
      }
   }
   
   /**
    * 动态一键发单