/** * 更具订单id和用户id查询订单的详细信息 包括实名认证信息和发票信息<br> * * @author 冯鑫 <br> * 2014-4-22 * @update 侯杨 * @param orderId 订单id 必须不为空 userId 当前登录用户id 必须不为空 * @return OrderData */ public OrderData findAllOrderDatebyOrderId(String orderId) { OrderData orderData = orderPersistence.retrieve(orderId); // 订单的信息 BusinessUserData bUserData = getBuserByOrderId(orderId); // 根据订单id查询认证信息 List<OrderProductData> orderProductDatas = getOPsByOrderId(orderId); // 根据订单id查询订单服务中间表信息 // 不是官方发布权限 if (orderProductDatas.get(0).getPageId() != null && !"".equals(orderProductDatas.get(0).getPageId())) { // 查询page表 PageData pageData = pagePersistence.retrieve(orderProductDatas.get(0).getPageId()); // 查询page域名信息 PageInfoExtraData pageInfoExtraData = new PageInfoExtraData(); pageInfoExtraData.setType("2"); pageInfoExtraData.setPageId(pageData.getId()); pageInfoExtraData = pageInfoExtraPersistence.searchByPageInfoExtraData(pageInfoExtraData); pageData.setPageInfoExtra(pageInfoExtraData); orderData.setPageData(pageData); } orderData.setBusinessUserData(bUserData); orderData.setOrderProductDatas(orderProductDatas); if (null != orderData && orderData.getInvoiceId() != null && !"".equals(orderData.getInvoiceId())) { InvoiceData invoiceData = invoicePersistence.retrieve(orderData.getInvoiceId()); orderData.setInvoiceData(invoiceData); } return orderData; }
/** * 根据服务id和pageid 查询出订单id,查出订单是否存在(page编辑页面 服务) * * @author 侯杨 * @date 2014-05-07 * @param data * @return */ public String getOrderState(OrderProductData data) { // 根据服务id 和pageid 查询订单服务中间表 String msg = "0"; String hql = "from OrderProductData op where op.pageId=? and op.productId= ?"; OrderProductData orderProductData = null; List<OrderProductData> list = new ArrayList<OrderProductData>(); if (data != null) { list = orderProductPersistence.search(hql, new Object[] {data.getPageId(), data.getProductId()}); if (list.size() > 0) { orderProductData = list.get(0); } } // 如果查询的出来的订单服务中间表不为空,查询出订单信息,是否存在 OrderData orderData = null; if (orderProductData != null) { orderData = orderPersistence.retrieve(orderProductData.getOrderId()); } // 如果订单状态不存在,返回1,不然返回0 if (orderData == null) { msg = "1"; } else if (orderData.getState() == 3) { // 如果订单状态已付款且开通 msg = "2"; } else { msg = "0"; } return msg; }
/** * 根据订单id查询订单对象 * * @param orderId * @return */ @Override public OrderData retrieve(String orderId) { if (!"".equals(orderId) && orderId != null) { // id为空就返回空 return orderPersistence.retrieve(orderId); } else { return null; } }
/** * ** 运营人员后台根据查询条件和状态分页查询所有的订单 * * @author dlm */ @Override public List<OrderData> getAllOrderData(PageRoll pageRoll, OrderData orderData) { List<OrderData> orderList = orderPersistence.getAllOrderData(pageRoll, orderData); for (OrderData data : orderList) { // 根据订单id来查询订单对应的中间表的数据集合 List<OrderProductData> orderProductDatas = getOPsByOrderId(data.getId()); data.setOrderProductDatas(orderProductDatas); } return orderList; }
/** 生成订单,如果发票不为空 则添加发票 */ @Override public void addOrder(OrderData orderData) { if (orderData.getInvoiceData() != null) { // 判断发票信息是否为空 InvoiceData data = orderData.getInvoiceData(); data.setCreateTime(new Date()); data.setInvoiceContent(0); // 服务费:0 data.setCreateTime(new Date()); // 创建时间 data.setUserId(orderData.getSysUserId()); // 用户id invoicePersistence.add(data); // 添加发票数据到数据库 orderData.setInvoiceId(data.getId()); // 把发票信息的主键添加到订单表里面 } orderPersistence.add(orderData); }
/** * 查看page在订单里面的订单里面所有未付款的订单的中间表的集合(0,1) dlm * * @param pageid * @return */ public List<OrderProductData> getOrdersByPage(String pageid) { String ordproHql = " from OrderProductData op where op.pageId=? "; // 先查询中间表 List<OrderProductData> oplist1 = new ArrayList<OrderProductData>(); List<OrderProductData> oplist = orderProductPersistence.search(ordproHql, new Object[] {pageid}); if (oplist != null && oplist.size() > 0) { for (OrderProductData data : oplist) { // 根据中间表查询订单表 String orderHql = " from OrderData o WHERE o.id=? and o.state in(0,1) "; List<OrderData> olist = orderPersistence.search(orderHql, new Object[] {data.getOrderId()}); if (olist != null && olist.size() > 0) { oplist1.add(data); } } } return oplist1; }
@Override public List<OrderData> getOrderData(OrderData orderData) { // 订单集合 List<OrderData> orderDatas = new ArrayList<OrderData>(); // 定义hql查询语句 StringBuffer hql = new StringBuffer("from OrderData od where 1=1"); // 定义参数集合 List<Object> objects = new ArrayList<Object>(); if (orderData != null && orderData.getSysUserId() != null && !"".equals(orderData.getSysUserId())) { hql.append(" and od.sysUserId = ?"); objects.add(orderData.getSysUserId()); } if (orderData != null && !"".equals(orderData.getId()) && null != orderData.getId()) { hql.append(" and od.id = ?"); objects.add(orderData.getId()); } orderDatas = orderPersistence.search(hql.toString(), objects); return orderDatas; }
@Override public void editOrder(OrderData OrderData) { orderPersistence.editOrder(OrderData); }
@Override public void deleteOrder(String[] ids) { orderPersistence.deleteOrder(ids); }
/** * 删除已经完成订单,物理删除,包括订单表以及订单服务中间表<br> * * @author 冯鑫 <br> * 2014-5-6 * @update * @param OrderData orderData */ public void deleteOnlyOrderByID(OrderData orderData) { orderPersistence.deleteOrder(new String[] {orderData.getId()}); }
/** * ** 根据订单id和状态值来该变订单的状态(线下付款变为已付款) * * @author dlm */ @Override public void updateOrderState(OrderData orderData) { orderPersistence.editOrder(orderData); // 更新状态值 }
@Override public String queryProductIdByUserId(String userId) { return orderPersistence.queryProductIdByUserId(userId); }
/** * 在支付订单的时候,如果是,更新或者增加 * * @author HY * @date 2014-3-24 * @param data * @param userId */ @Override public void updateOrderUserInfo(String userId, String orderId) { OrderData orderData = null; // 订单实体 List<PageProductData> pageProductDatas = null; // page服务中间表集合 ProductData productData = null; // 服务实体 UserInfoData userInfo = null; // 用户信息实体 List<UserInfoData> infoDatas = null; // 用户信息集合 List<OrderProductData> orderProductDatas = null; // 订单服务中间表 Integer num = 0; // 数量 // 如果userid不为空 查询出订单实体 if (orderId != null && !"".equals(orderId)) { orderData = orderPersistence.retrieve(orderId); } /* 如果订单实体不为空查询出page服务中间表 */ if (orderData != null) { String hql = "from PageProductData p where p.id = ?"; pageProductDatas = pageProductPersistence.search(hql, new Object[] {orderData.getPageProductId()}); /* 查询订单服务集合 为了取出数量 */ String opHql = "from OrderProductData op where op.orderId = ?"; orderProductDatas = orderProductPersistence.search(opHql, new Object[] {orderId}); if (pageProductDatas != null && pageProductDatas.size() > 0) { for (int i = 0; i < pageProductDatas.size(); i++) { // 如果服务id不为空 查询出服务 if (pageProductDatas.get(i).getProductId() != null && !"".equals(pageProductDatas.get(i).getProductId())) { productData = productPersistence.retrieve(pageProductDatas.get(i).getProductId()); /* 如果查询出来的服务 名称是 “官方发布权限” 且sign是1 就执行以下操作 */ if ("官方发布权限".equals(productData.getName()) && "1".equals(productData.getSign())) { if (userId != null && !"".equals(userId)) { String userHql = "from UserInfoData us where us.userId = ?"; infoDatas = userInfoDataPersistence.search(userHql, new Object[] {userId}); // 如果他们的id 相等 取出数量 for (int j = 0; j < orderProductDatas.size(); j++) { if (orderProductDatas.get(i).getProductId().equals(productData.getId())) { num = orderProductDatas.get(i).getAmount(); } } // 数据不存在 增加 if (infoDatas.size() == 0) { UserInfoData userInfoData = new UserInfoData(); userInfoData.setUserId(userId); // userId userInfoData.setPayPrivilege(num); // 付费的权限数量 // 赋初值 userInfoData.setAlreadyPayPrivilege(0); // 已使用的付费权限 userInfoData.setAlreadyTryPrivilege(0); userInfoData.setAlreadyUpgrade(0); userInfoData.setGiveNum(0); userInfoData.setOverduePrivilege(0); userInfoData.setRenew(0); userInfoData.setTryPrivilege(0); userInfoDataPersistence.add(userInfoData); } else if (infoDatas != null && infoDatas.size() > 0) { // 存在 修改 userInfo = infoDatas.get(0); JdbcDao dao = (JdbcDao) SpringContextHelper.getBean("jdbc"); // 执行sql语句进行数据库查询 String sql = "update mini_user_info us set us.payprivilege=us.payprivilege+" + num + "" + " " + "where us.id = '" + userInfo.getId() + "' "; dao.executeSQL(sql); } } } } } } } }
@Override public List<OrderData> getOrderData(JSONObject json) { return orderPersistence.getOrderData(json); }