Exemplo n.º 1
0
  /**
   * @Description: (获取确认订单页面的货品和分店数据)
   *
   * @param request
   * @param response
   * @return
   * @throws Exception
   */
  @RequestMapping("/findOrderInfo")
  @ResponseBody
  public Object findOrderInfo(String data, HttpServletRequest request) throws Exception {
    log.info("start[CartController.findOrderInfo]");

    // 获取请求参数
    JSONObject jsonData = JSONObject.fromObject(data);
    MemberListDo memberListDo =
        APICommonUtil.getMemberListDo((String) request.getAttribute("sessionid"));
    Integer accountId = memberListDo.getAccountId();

    ///////// 测试代码 start //////
    //		Integer  accountId=152;
    //		jsonData = new JSONObject();
    //		jsonData.put("proIdListString", "[399,445,438]");
    //		jsonData.put("quantityListString", "[3,2,4]");
    ///////// 测试代码 end //////
    String proIdListString = (String) CommonUtil.getJsonValue(jsonData, "proIdListString");
    String quantityListString = (String) CommonUtil.getJsonValue(jsonData, "quantityListString");

    // 检查参数
    if (StringUtils.isEmpty(proIdListString)) {
      return processExpction("货品id不能为空!");
    }
    if (StringUtils.isEmpty(quantityListString)) {
      return processExpction("数量不能为空!");
    }

    PamAccount pamAccount = findAccountId(accountId);
    if (pamAccount != null && !"100".equals(pamAccount.getAccountType())) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{result:false,isBuyer:false}"));
    }
    if (pamAccount != null) {
      accountId = pamAccount.getAccountId();
    }
    ResultObject resultObject = null;
    HeadObject headObject;
    JSONObject jsonObject = new JSONObject();

    if (accountId != null && accountId != 0) {
      List<Integer> proIdList =
          (List<Integer>)
              JSONArray.toCollection(JSONArray.fromObject(proIdListString), Integer.class);
      if (proIdList != null && proIdList.size() >= 1) {
        // 查询member对象
        Member member = this.selectMember(accountId);
        // 根据proIdList查询购物车对象
        List<CartListDTO> cartList = null;
        List<Integer> quantityList =
            (List<Integer>)
                JSONArray.toCollection(JSONArray.fromObject(quantityListString), Integer.class);
        if (quantityList.size() == proIdList.size()) {
          headObject = CommonHeadUtil.geneHeadObject("cartService.findCartListByProIdList");
          resultObject =
              (ResultObject)
                  orderService.doServiceByServer(
                      new RequestObject(headObject, JSONArray.fromObject(proIdList)));
          cartList =
              (List<CartListDTO>)
                  JSONArray.toCollection(
                      JSONArray.fromObject(resultObject.getContent()), CartListDTO.class);
          if (cartList != null && cartList.size() > 0) {
            for (int j = cartList.size() - 1; j >= 0; j--) {
              if ("1".equals(cartList.get(j).getLimitGoodsdown())
                  || "1".equals(cartList.get(j).getLimitStore())
                  || "1".equals(cartList.get(j).getLimitStoredown())
                  || "1".equals(cartList.get(j).getShopStatus())
                  || "1".equals(cartList.get(j).getStatus())
                  || "1".equals(cartList.get(j).getDisabled())) {
                return new ResultObject(
                    new HeadObject(ErrorCode.FAILURE),
                    JSONObject.fromObject("{ msg:\"很抱歉,该订单中存在失效货品\"}"));
              }
              for (int i = 0; i < proIdList.size(); i++) {
                if (proIdList.get(i).equals(cartList.get(j).getProductId())) {
                  if (quantityList.get(i) > cartList.get(j).getStore()) {
                    return new ResultObject(
                        new HeadObject(ErrorCode.FAILURE),
                        JSONObject.fromObject("{ msg:\"很抱歉,该订单中存在货品库存不足\"}"));
                  } else {
                    cartList.get(j).setQuantity(quantityList.get(i));
                  }
                }
              }
            }
          }
        }
        if (!(cartList != null && cartList.size() >= 1)) {
          headObject = CommonHeadUtil.geneHeadObject("cartService.findCartListByProIdAndMem");
          jsonObject.put("memberId", member.getMemberId());
          jsonObject.put("proIdList", proIdList);
          resultObject =
              (ResultObject)
                  orderService.doServiceByServer(new RequestObject(headObject, jsonObject));
          cartList =
              (List<CartListDTO>)
                  JSONArray.toCollection(
                      JSONArray.fromObject(resultObject.getContent()), CartListDTO.class);
        }
        List<Store> storeList = null;
        if (cartList != null && cartList.size() >= 1) {
          // 查询店铺
          List<Integer> storeIdList = new ArrayList<Integer>();
          for (int i = 0; i < cartList.size(); i++) {
            storeIdList.add(cartList.get(i).getStoreId());
          }
          headObject = CommonHeadUtil.geneHeadObject("storeService.selectByStoreIdList3");
          resultObject =
              (ResultObject)
                  memberService.doServiceByServer(new RequestObject(headObject, storeIdList));

          if (resultObject.getContent() != null) {
            storeList =
                com.alibaba.fastjson.JSONArray.parseArray(
                    resultObject.getContent().toString(), Store.class);
          }
          if (storeList != null) {
            for (int i = 0; i < storeList.size(); i++) {
              if ("1".equals(storeList.get(i).getLimitGoodsdown())
                  || "1".equals(storeList.get(i).getLimitStore())
                  || "1".equals(storeList.get(i).getLimitStoredown())
                  || "1".equals(storeList.get(i).getShopstatus())
                  || "1".equals(storeList.get(i).getStatus())
                  || "1".equals(storeList.get(i).getDisabled())) {
                return new ResultObject(
                    new HeadObject(ErrorCode.FAILURE),
                    JSONObject.fromObject("{isLogin:true,msg:\"很抱歉,该订单中存在失效货品\"}"));
              }
            }
          }

          // 查询货品图片
          this.findProImage(cartList);
          for (int j = cartList.size() - 1; j >= 0; j--) {
            if (cartList.get(j).getQuantity() <= 0
                || "0".equals(cartList.get(j).getgMarketable())
                || "1".equals(cartList.get(j).getgDisabled())
                || "0".equals(cartList.get(j).getpMarketable())
                || "1".equals(cartList.get(j).getpDisabled())) {
              return new ResultObject(
                  new HeadObject(ErrorCode.FAILURE),
                  JSONObject.fromObject("{isLogin:true,msg:\"很抱歉,该订单中存在失效货品\"}"));
            }
          }
        }

        Double sumPrice = this.totalPrice(cartList);

        com.alibaba.fastjson.JSONObject returnJson = new com.alibaba.fastjson.JSONObject();
        DecimalFormat df2 = new DecimalFormat("#.00"); // 四舍五入保留两位小数
        returnJson.put("sumPrice", df2.format(Double.parseDouble(sumPrice.toString())));
        // 按商店号分组
        List<List<CartListDTO>> list = new ArrayList();
        Map<Integer, List<CartListDTO>> map = new HashMap<Integer, List<CartListDTO>>();

        // 图片地址转成httpURL
        String imgUrl = Configuration.getInstance().getConfigValue("images.url");
        if (cartList != null && !cartList.isEmpty()) {
          for (CartListDTO cto : cartList) {
            cto.setGoodsImage(imgUrl + cto.getGoodsImage());

            Integer storeId = cto.getStoreId();
            List<CartListDTO> cList = map.get(storeId);
            if (cList == null) {
              cList = new ArrayList<CartListDTO>();
              map.put(storeId, cList);
            }
            cList.add(cto);
          }
          for (List<CartListDTO> cList : map.values()) {
            list.add(cList);
          }
        }
        returnJson.put("content", list);
        returnJson.put("storeList", storeList);
        returnJson.put("isLogin", true);
        resultObject = new ResultObject(new HeadObject(ErrorCode.SUCCESS), returnJson);
      } else {
        resultObject =
            new ResultObject(
                new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{empty:true}"));
      }
    } else {
      resultObject =
          new ResultObject(new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{}"));
    }

    log.info("end[CartController.findOrderInfo]");
    return resultObject;
  }
Exemplo n.º 2
0
  /**
   * @Title: orderAdd @Description: (提交订单)
   *
   * @author <a href="*****@*****.**">赖彩妙</a>
   * @date 2015-4-18
   * @version 1.0.0
   * @param request
   * @param response
   * @param @return
   * @param @throws Exception
   * @return Object 返回类型
   * @throws
   */
  @ResponseBody
  @RequestMapping("/submitOrder")
  public Object submitOrder(String data, HttpServletRequest request) throws Exception {
    log.info("start[CartController.submitOrder]");
    // 获取请求参数
    JSONObject jsonData = JSONObject.fromObject(data);
    MemberListDo memberListDo =
        APICommonUtil.getMemberListDo((String) request.getAttribute("sessionid"));

    //  		//测试
    //  		memberListDo = new MemberListDo();
    //  		memberListDo.setAccountType("100");
    //  		memberListDo.setMemberId("62");
    //  		memberListDo.setAccountId(152);
    //  		memberListDo.setLoginName("YOYO");

    // 订单号
    ResultObject resultObject = null;
    HeadObject headObject = null;
    JSONObject jsonObject = new JSONObject();
    // 查询当前登陆的member对象
    if (memberListDo == null || !memberListDo.getAccountType().equals("100")) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{result:false,isBuyer:false}"));
    }
    // 用户已登录
    String storeIdString = jsonData.getJSONArray("storeIds").toString();
    String payment = (String) CommonUtil.getJsonValue(jsonData, "payment");

    String proIdsString = jsonData.getJSONArray("proIdListString").toString();
    String remark = jsonData.getString("remark");
    String quantityListString = jsonData.getJSONArray("quantityListString").toString();
    Integer point =
        StringUtil.isNotEmpty((String) CommonUtil.getJsonValue(jsonData, "point"))
            ? Integer.parseInt((String) CommonUtil.getJsonValue(jsonData, "point"))
            : 0;
    String appointmentStr = (String) CommonUtil.getJsonValue(jsonData, "appointmens");
    String goodsIdsStr = (String) CommonUtil.getJsonValue(jsonData, "goodsIds");

    List<Integer> storeIdList = null;
    payment =
        (payment != null && ("到店支付".equals(payment) || "在线支付".equals(payment))) ? payment : "在线支付";
    if (StringUtil.isEmpty(storeIdString)) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{result:false,msg:'请选择门店'}"));
    }
    storeIdList =
        (List<Integer>) JSONArray.toCollection(JSONArray.fromObject(storeIdString), Integer.class);
    if (null == storeIdList || storeIdList.size() <= 0) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{result:false,msg:'请选择门店'}"));
    }
    List<Integer> proIdList = null;
    if (StringUtil.isEmpty(proIdsString)) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{result:false,msg:'该货品不存在'}"));
    }
    proIdList =
        (List<Integer>) JSONArray.toCollection(JSONArray.fromObject(proIdsString), Integer.class);
    if (null == proIdList || proIdList.size() <= 0) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE), JSONObject.fromObject("{result:false,msg:'该货品不存在'}"));
    }
    Member member = this.selectMember(memberListDo.getAccountId());
    if (point > member.getPointUseable().intValue()) {
      return new ResultObject(
          new HeadObject(ErrorCode.FAILURE),
          JSONObject.fromObject("{result:false,msg:'可用积分小于兑换积分'}"));
    }
    List<Integer> quantityList =
        (List<Integer>)
            JSONArray.toCollection(JSONArray.fromObject(quantityListString), Integer.class);
    // 根据proIdList查询购物车对象
    headObject = CommonHeadUtil.geneHeadObject("cartService.findMemberCartListByProIdList");
    Map<String, Object> cartParam = new HashMap<String, Object>();
    cartParam.put("proIdList", proIdList);
    cartParam.put("memberId", Integer.valueOf(memberListDo.getMemberId()));
    resultObject =
        (ResultObject) orderService.doServiceByServer(new RequestObject(headObject, cartParam));
    List<CartListDTO> cartList =
        (List<CartListDTO>)
            JSONArray.toCollection(
                JSONArray.fromObject(resultObject.getContent()), CartListDTO.class);
    if (null != cartList && cartList.size() > 0) {
      for (CartListDTO cartListDTO : cartList) {
        if ("1".equals(cartListDTO.getLimitGoodsdown())
            || "1".equals(cartListDTO.getLimitStore())
            || "1".equals(cartListDTO.getLimitStoredown())
            || "1".equals(cartListDTO.getShopStatus())
            || "1".equals(cartListDTO.getStatus())
            || "1".equals(cartListDTO.getDisabled())) {
          return new ResultObject(
              new HeadObject(ErrorCode.FAILURE),
              JSONObject.fromObject("{result:false,isLogin:true,msg:\"很抱歉,该订单中存在失效货品\"}"));
        }
      }
    }
    if (cartList != null && cartList.size() >= 1) {
      // 查询店铺
      storeIdList.clear();
      for (int i = 0; i < cartList.size(); i++) {
        storeIdList.add(cartList.get(i).getStoreId());
      }
      headObject = CommonHeadUtil.geneHeadObject("storeService.selectByStoreIdList3");
      resultObject =
          (ResultObject)
              memberService.doServiceByServer(new RequestObject(headObject, storeIdList));
      List<Store> storeList = null;
      if (resultObject.getContent() != null) {
        storeList =
            com.alibaba.fastjson.JSONArray.parseArray(
                resultObject.getContent().toString(), Store.class);
      }
      if (storeList != null) {
        for (int i = 0; i < storeList.size(); i++) {
          if ("1".equals(storeList.get(i).getLimitGoodsdown())
              || "1".equals(storeList.get(i).getLimitStore())
              || "1".equals(storeList.get(i).getLimitStoredown())
              || "1".equals(storeList.get(i).getShopstatus())
              || "1".equals(storeList.get(i).getStatus())
              || "1".equals(storeList.get(i).getDisabled())) {
            return new ResultObject(
                new HeadObject(ErrorCode.FAILURE),
                JSONObject.fromObject("{result:false,isLogin:true,msg:'很抱歉,该订单中存在失效货品'}"));
          }
        }
      }

      for (int i = 0; i < cartList.size(); i++) {
        if ("0".equals(cartList.get(i).getgMarketable())
            || "1".equals(cartList.get(i).getgDisabled())
            || "0".equals(cartList.get(i).getpMarketable())
            || "1".equals(cartList.get(i).getpDisabled())) {
          return new ResultObject(
              new HeadObject(ErrorCode.FAILURE),
              JSONObject.fromObject("{result:false,isLogin:true,msg:'很抱歉,该订单中存在失效货品'}"));
        }
        for (int j = 0; j < proIdList.size(); j++) {
          if (proIdList.get(j).equals(cartList.get(i).getProductId())) {
            if (quantityList.get(j) > cartList.get(i).getStore()) {
              return new ResultObject(
                  new HeadObject(ErrorCode.FAILURE),
                  JSONObject.fromObject("{result:false,isLogin:true,msg:'很抱歉,该订单中存在货品库存不足'}"));
            } else {
              cartList.get(i).setQuantity(quantityList.get(j));
            }
          }
        }

        String specDesc = cartList.get(i).getSpecDesc();
        if (specDesc != null && !"".equals(specDesc)) {
          String[] specItems = specDesc.split(",");
          if (specItems != null && specItems.length >= 1) {
            for (int j = specItems.length - 1; j >= 0; j--) {
              if (specItems[j].split(":")[0].split("\\|")[1].equals("分店")) {
                cartList
                    .get(i)
                    .setStoreId(Integer.parseInt(specItems[j].split(":")[1].split("\\|")[0]));
                cartList.get(i).setStoreName(specItems[j].split(":")[1].split("\\|")[1]);
                break;
              }
            }
          }
        }
        cartList.get(i).setMemberId(Integer.valueOf(memberListDo.getMemberId()));
      }
    }

    // 判断请求来源是否来自移动端
    String checkFrom =
        jsonData.getString("fphoneostype") != null
                && jsonData.getString("fphoneostype").equals("5000")
            ? "appAndroid"
            : "appIOS";
    // 存入数据库
    if (null == cartList || cartList.size() <= 0) {
      // 删除购物车数据
      headObject = CommonHeadUtil.geneHeadObject("cartService.deleteCartByProIdAndMemberId");
      jsonObject.clear();
      jsonObject.put("memberId", memberListDo.getMemberId());
      jsonObject.put("proIdList", proIdList);
      orderService.doServiceByServer(new RequestObject(headObject, jsonObject));
      resultObject =
          new ResultObject(
              new HeadObject(ErrorCode.SUCCESS), JSONObject.fromObject("{result:true}"));
      resultObject =
          new ResultObject(
              new HeadObject(ErrorCode.FAILURE),
              JSONObject.fromObject("{result:false,msg:'订单提交失败,该订单中的货品不存在'}"));
    }

    for (CartListDTO cartListDTO : cartList) {
      headObject = CommonHeadUtil.geneHeadObject("goodsTimePriceService.findGoodsTimePrice");
      Map<String, Object> param = new HashMap<String, Object>();
      if (StringUtil.isNotEmpty(cartListDTO.getAppointment())) {
        int index =
            cartListDTO.getAppointment().indexOf("|") == -1
                ? cartListDTO.getAppointment().length()
                : cartListDTO.getAppointment().indexOf("|");
        param.put("priceDate", cartListDTO.getAppointment().substring(0, index));
      } else {
        param.put("priceDate", new Date());
      }
      param.put("goodsId", cartListDTO.getGoodsId());
      resultObject =
          (ResultObject) itemService.doServiceByServer(new RequestObject(headObject, param));
      if (null != resultObject.getContent()) {
        GoodsTimePrice goodsTimePrice = (GoodsTimePrice) resultObject.getContent();
        cartListDTO.setGoodsPrice(goodsTimePrice.getPrice().doubleValue());
      }
    }
    jsonObject.clear();
    jsonObject.put("member", member);
    jsonObject.put("cartList", cartList);
    jsonObject.put("payment", payment);
    jsonObject.put("checkFrom", checkFrom);
    jsonObject.put("ip", request.getRemoteAddr());
    jsonObject.put("remark", remark);
    jsonObject.put("memberName", memberListDo.getLoginName());
    jsonObject.put("point", point);
    synchronized (this) {
      headObject = CommonHeadUtil.geneHeadObject("cartService.saveOrder");
      resultObject =
          (ResultObject) orderService.doServiceByServer(new RequestObject(headObject, jsonObject));
      if (resultObject.getHead().getRetCode().equals(ErrorCode.FAILURE)) {
        return new ResultObject(
            new HeadObject(ErrorCode.SUCCESS),
            JSONObject.fromObject(
                "{result:false,msg:'订单提交失败," + resultObject.getHead().getRetMsg() + "'}"));
      } else {
        for (CartListDTO c : cartList) {
          headObject = CommonHeadUtil.geneHeadObject("productService.decreStore");
          jsonObject.clear();
          jsonObject.put("productId", c.getProductId());
          jsonObject.put("quantity", c.getQuantity());
          itemService.doServiceByServer(new RequestObject(headObject, jsonObject));
        }

        headObject = CommonHeadUtil.geneHeadObject("cartService.deleteCartByProIdAndMemberId");
        jsonObject.clear();
        jsonObject.put("memberId", memberListDo.getMemberId());
        jsonObject.put("proIdList", proIdList);
        orderService.doServiceByServer(new RequestObject(headObject, jsonObject));

        try {
          String[] appointments = appointmentStr.split(",");
          String[] goodsIds = goodsIdsStr.split(",");
          for (int j = 0; j < goodsIds.length; j++) {
            String key =
                goodsIds[j]
                    + "_"
                    + appointments[j].replace("-", "").replace(":", "").replace("|", "_");
            String count = redisService.get(key.toString());
            if (StringUtil.isEmpty(count)) {
              count = "1";
            } else {
              count = String.valueOf(Integer.valueOf(count) + 1);
            }
            redisService.set(key.toString(), count, 60 * 60 * 24);
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      return new ResultObject(new HeadObject(ErrorCode.SUCCESS), null);
    }
  }
Exemplo n.º 3
0
  /**
   * 获取购物车列表
   *
   * @param data
   * @param request
   * @return
   */
  @RequestMapping("/cartList")
  @ResponseBody
  public Object cartList(String data, HttpServletRequest request) {
    log.info("###########cartList-->start");
    log.info("----------------------data:" + data + "-------------------------");
    try {
      // 获取请求参数
      JSONObject jsonData = JSONObject.fromObject(data);
      MemberListDo memberListDo =
          APICommonUtil.getMemberListDo((String) request.getAttribute("sessionid"));
      Integer accountId = memberListDo.getAccountId();
      //				Integer accountId = 152;
      HeadObject headObject = CommonHeadUtil.geneHeadObject("accountService.selectByAccountId");
      ResultObject resultObject =
          (ResultObject) memberService.doServiceByServer(new RequestObject(headObject, accountId));
      PamAccount pamAccount = null;
      if (resultObject != null && resultObject.getContent() != null) {
        pamAccount = (PamAccount) resultObject.getContent();
      }

      if (pamAccount != null && !"100".equals(pamAccount.getAccountType())) {
        return new ResultObject(
            new HeadObject(ErrorCode.FAILURE),
            JSONObject.fromObject("{result:false,isBuyer:false}"));
      }
      if (pamAccount != null) {
        accountId = pamAccount.getAccountId();
      }
      Member member = null;
      if (accountId != null && accountId != 0) {
        member = this.selectMember(accountId);
      }
      List<CartListDTO> cartList = null;
      if (member != null && member.getMemberId() != 0) {
        // 用户已登录
        // 查询数据库中的购物车商品
        headObject = CommonHeadUtil.geneHeadObject("cartService.findCartListByAccountId");
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("accountId", accountId);
        resultObject =
            (ResultObject)
                orderService.doServiceByServer(new RequestObject(headObject, jsonObject));
        cartList = (List<CartListDTO>) resultObject.getContent();
      }

      // 查询货品图片
      cartList = this.findProImage(cartList);

      // 查询分店
      cartList = this.findStoresByCartList(cartList);

      // 按商店号分组
      List<List<CartListDTO>> list = new ArrayList();
      Map<Integer, List<CartListDTO>> map = new HashMap<Integer, List<CartListDTO>>();

      // 图片地址转成httpURL
      String imgUrl = Configuration.getInstance().getConfigValue("images.url");
      if (cartList != null && !cartList.isEmpty()) {
        for (CartListDTO cto : cartList) {
          cto.setGoodsImage(imgUrl + cto.getGoodsImage());

          Integer storeId = cto.getStoreId();
          List<CartListDTO> cList = map.get(storeId);
          if (cList == null) {
            cList = new ArrayList<CartListDTO>();
            map.put(storeId, cList);
          }
          cList.add(cto);
        }
        for (List<CartListDTO> cList : map.values()) {
          list.add(cList);
        }
      }

      JSONObject jsonObject = new JSONObject();
      jsonObject.put("cartList", list);
      resultObject = new ResultObject(new HeadObject(ErrorCode.SUCCESS), jsonObject);
      log.info("###########cartList-->end");
      return resultObject;
    } catch (Exception e) {
      log.error(e.getMessage(), e);
      return processExpction(e.getMessage());
    }
  }