package com.rnt.service; /** * 订单service.
* * Copyright: Copyright (c) 2017 zteits * * @ClassName: ParkOrderService.java * @Description: * @version: v1.0.0 * @author: wangfs * @date: 2017年6月8日 下午7:26:31 * Modification History: * Date Author Version Description *---------------------------------------------------------* * 2017年6月8日 wangfs v1.0.0 创建 */ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import com.rnt.model.park.ParkingLot; import org.beetl.sql.core.kit.StringKit; import com.alibaba.fastjson.JSONObject; import com.jfinal.aop.Duang; import com.jfinal.log.Log; import com.rnt.commo.enums.DataStatusEnum; import com.rnt.commo.enums.OrderTypeEnum; import com.rnt.commo.enums.SequenceTypeEnum; import com.rnt.model.zf.Order; import com.rnt.model.zf.OrderDetailCard; import com.rnt.model.zf.ParkCardCoupons; import com.rnt.utils.SequenceUtil; import com.rnt.vo.BizResult; import com.rnt.vo.CardBuyVO; import com.rnt.vo.CardOrderVO; import com.rnt.vo.ParkLotCardVO; public class CardOrderService { private static final Log logger = Log.getLog(CardOrderService.class); /** * 插入订单数据 * @param cardBuyVO * @return OrderId */ public String saveOrder(CardBuyVO cardBuyVO,ParkCardCoupons parkCardCoupons){ logger.info("[开始保存月卡/年卡信息],入参="+JSONObject.toJSONString(cardBuyVO)); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); boolean insertFlg = false; boolean insertDetailFlg = false; Order order = new Order(); try{ String parkId = parkCardCoupons.getParkId(); ParkingLot parkingLot = ParkingLot.dao.findFirst("select * from parking_lot t where t.pl_no = ?",parkId ); order.setParkName(parkingLot.getPlName()); order.setOrderId(SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_CARD_BUY.value())); //** 订单类型: 1:停车订单,2:年卡订单, 3:月卡订单 wangfs Add . */ order.setOrderType(Integer.valueOf(cardBuyVO.getOrderType())); order.setOrderState(OrderTypeEnum.ORDER_TYPE_2.value()); order.setParkId(parkId); order.setCarNumber(cardBuyVO.getCarNum()); order.setCustPersonId(cardBuyVO.getPersonCustId()); order.setDataState(DataStatusEnum.DATA_STATUS_VALID.value()); order.setOrderPayedFee(BigDecimal.valueOf(Long.valueOf("0")));//已付费用 order.setOrderNotPayFee(StringKit.isNotBlank(cardBuyVO.getTotleMoney()) ? new BigDecimal(cardBuyVO.getTotleMoney()) : BigDecimal.ZERO); //未支付费用(本次应付金额) order.setOrderTotalFee(StringKit.isNotBlank(cardBuyVO.getTotleMoney()) ? new BigDecimal(cardBuyVO.getTotleMoney()) : BigDecimal.ZERO); //总金额 order.setRemark("微信公众号购买卡"); order.setCreateDate(new Date()); order.setOrderResource("微信公众号购买卡"); order.setOrderTitle("购买卡订单"); insertFlg =order.save(); /**插入卡订单明细表.*/ if(insertFlg){ OrderDetailCard orderDetailCard = new OrderDetailCard(); orderDetailCard.setPersonCardId(Long.valueOf(cardBuyVO.getPersonCardId())); orderDetailCard.setOrderId(order.getOrderId()); orderDetailCard.setParkCardId(Long.valueOf(cardBuyVO.getParkLotCardId())); orderDetailCard.setCardType(parkCardCoupons.getGoodsType()); orderDetailCard.setCardTypeRemark(parkCardCoupons.getGoodsTypeRemark()); orderDetailCard.setBuyNum(Integer.valueOf(cardBuyVO.getBuyNum())); orderDetailCard.setCardAmount(parkCardCoupons.getGoodsAmount()); orderDetailCard.setEffDate(format.parse(cardBuyVO.getStartDate())); //卡的开始日期 orderDetailCard.setExpDate(format.parse(cardBuyVO.getEndDate())); //卡的结束日期 orderDetailCard.setOrderDetailType(cardBuyVO.getOrderDetailType()); orderDetailCard.setRemark("微信公众号购买卡"); orderDetailCard.setCreateDate(new Date()); insertDetailFlg = orderDetailCard.save(); } }catch (Exception e) { e.printStackTrace(); } return (insertFlg == insertDetailFlg == true) ? order.getOrderId() : ""; } /** * 查询待支付的订单信息.
* @param orderId * @return */ public CardOrderVO queryNotPayCardOrder(String orderId){ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); CardOrderVO cardOrderVO = new CardOrderVO(); StringBuffer sql = new StringBuffer("select a.order_id,a.park_id,a.car_number,a.order_not_pay_fee,a.order_title"); sql.append(" from td_b_order a "); sql.append(" where 1=1 and a.order_state=2"); sql.append(" and a.order_id=?"); //1.查询订单 Order order = new Order().findFirst(sql.toString(), orderId); //2.查询订单明细 StringBuffer sqlStr = new StringBuffer("select a.order_id,a.card_type,a.card_type_remark,a.buy_num,a.eff_date,a.exp_date"); sqlStr.append(" from td_b_order_detail_card a "); sqlStr.append(" where 1=1 "); sqlStr.append(" and a.order_id=?"); OrderDetailCard orderDetailCard = new OrderDetailCard().findFirst(sqlStr.toString(), orderId); BizResult result=null; if(StringKit.isNotBlank(order.getParkId())){ //查询停车场id ParkLotService parkLotService = Duang.duang(ParkLotService.class); result = parkLotService.queryParkLotForpklNo(order.getParkId()); } if(order != null && orderDetailCard != null ){ cardOrderVO.setOrderId(orderId); cardOrderVO.setOrderType(orderDetailCard.getCardType()); cardOrderVO.setOrderTypeRemark(orderDetailCard.getCardTypeRemark()); cardOrderVO.setBuyNum(orderDetailCard.getBuyNum()); cardOrderVO.setStartDate(format.format(orderDetailCard.getEffDate())); cardOrderVO.setEndDate(format.format(orderDetailCard.getExpDate())); cardOrderVO.setCarNum(order.getCarNumber()); cardOrderVO.setTotleMoney(order.getOrderNotPayFee().toString()); if(result.getData() != null){ cardOrderVO.setParkName(result.getData().getParkName()); cardOrderVO.setParkaddress(result.getData().getAddress()); } } return cardOrderVO; } }