检验二维码是否使用,增加二维码失效功能 & fixbug 未超过半小时只收一半钱

This commit is contained in:
2024-01-16 00:27:19 +08:00
parent a0aab56499
commit 017384b778
14 changed files with 290 additions and 240 deletions

View File

@@ -15,7 +15,6 @@ import com.sv.service.oms.DeviceService;
import com.ydd.framework.core.annotation.AccessToken; import com.ydd.framework.core.annotation.AccessToken;
import com.ydd.framework.core.common.Pagination; import com.ydd.framework.core.common.Pagination;
import com.ydd.framework.core.common.dto.ResponseDTO; import com.ydd.framework.core.common.dto.ResponseDTO;
import com.ydd.framework.core.common.utils.RequestUtils;
import com.ydd.framework.core.controller.BaseApiController; import com.ydd.framework.core.controller.BaseApiController;
import com.ydd.framework.core.exception.ServiceException; import com.ydd.framework.core.exception.ServiceException;
import com.ydd.oms.entity.enums.PayStatusEnum; import com.ydd.oms.entity.enums.PayStatusEnum;
@@ -240,4 +239,14 @@ public class VenueController extends BaseApiController {
return ResponseDTO.ok().addAttribute("memberEnterDetail",venueEnterService.memberOrderEnterDetail(getMemberIdByAccessToken(),enterId)); return ResponseDTO.ok().addAttribute("memberEnterDetail",venueEnterService.memberOrderEnterDetail(getMemberIdByAccessToken(),enterId));
} }
/**
* 判断是否支付成功
* @param barcode 订单号
* @return
*/
@RequestMapping(value = "/member/barcode/isUsed", method = RequestMethod.POST)
public ResponseDTO isUsed(@RequestParam("barcode") String barcode) {
return ResponseDTO.ok().addAttribute("barcodeDTO", barcodeService.isUsed(barcode));
}
} }

View File

@@ -0,0 +1,33 @@
package com.sv.dto.api;
import java.io.Serializable;
import java.util.Date;
/**
* DTO - 扫描完二维码
*
* @author limqsh
* @since 2024-01-14
*/
public class BarcodeDTO implements Serializable {
private boolean isUsed;
private Integer enterId;
public boolean isUsed() {
return isUsed;
}
public void setUsed(boolean used) {
isUsed = used;
}
public Integer getEnterId() {
return enterId;
}
public void setEnterId(Integer enterId) {
this.enterId = enterId;
}
}

View File

@@ -126,7 +126,7 @@ public class MemberEnterOrderDTO implements Serializable {
private BigDecimal price; private BigDecimal price;
/** /**
* 退款金额 * 退款金额(总退款金额)
*/ */
private BigDecimal payMoney; private BigDecimal payMoney;
@@ -156,155 +156,79 @@ public class MemberEnterOrderDTO implements Serializable {
private String latitude; private String latitude;
/** /**
* 设置 * 新增后台查询字段
*
* @param id
*/ */
public void setId(Integer id){ private String nickname;
this.id = id;
}
/** /**
* 获取 * 新增用户电话号码
*
* @return
*/ */
public Integer getId(){ private String mobile;
public Integer getId() {
return id; return id;
} }
public void setId(Integer id) {
/** this.id = id;
* 设置场馆类型
*
* @param veneuType 场馆类型
*/
public void setVeneuType(Integer veneuType){
this.veneuType = veneuType;
} }
/** public Integer getVeneuType() {
* 获取场馆类型
*
* @return 场馆类型
*/
public Integer getVeneuType(){
return veneuType; return veneuType;
} }
public void setVeneuType(Integer veneuType) {
/** this.veneuType = veneuType;
* 设置场馆ID
*
* @param venueId 场馆ID
*/
public void setVenueId(Integer venueId){
this.venueId = venueId;
} }
/** public Integer getVenueId() {
* 获取场馆ID
*
* @return 场馆ID
*/
public Integer getVenueId(){
return venueId; return venueId;
} }
/** public void setVenueId(Integer venueId) {
* 设置课程ID this.venueId = venueId;
*
* @param lessonId 课程ID
*/
public void setLessonId(Integer lessonId){
this.lessonId = lessonId;
} }
/** public Integer getLessonId() {
* 获取课程ID
*
* @return 课程ID
*/
public Integer getLessonId(){
return lessonId; return lessonId;
} }
public void setLessonId(Integer lessonId) {
/** this.lessonId = lessonId;
* 设置用户ID
*
* @param memberId 用户ID
*/
public void setMemberId(Integer memberId){
this.memberId = memberId;
} }
/** public Integer getMemberId() {
* 获取用户ID
*
* @return 用户ID
*/
public Integer getMemberId(){
return memberId; return memberId;
} }
public void setMemberId(Integer memberId) {
/** this.memberId = memberId;
* 设置预约课程支付订单号
*
* @param orderSn 预约课程支付订单号
*/
public void setOrderSn(String orderSn){
this.orderSn = orderSn;
} }
/** public String getOrderSn() {
* 获取预约课程支付订单号
*
* @return 预约课程支付订单号
*/
public String getOrderSn(){
return orderSn; return orderSn;
} }
public void setOrderSn(String orderSn) {
/** this.orderSn = orderSn;
* 设置入场支付方式
*
* @param payType 入场支付方式
*/
public void setPayType(Integer payType){
this.payType = payType;
} }
/** public Integer getPayType() {
* 获取入场支付方式
*
* @return 入场支付方式
*/
public Integer getPayType(){
return payType; return payType;
} }
public void setPayType(Integer payType) {
/** this.payType = payType;
* 设置用户会员卡ID
*
* @param memberCardId 用户会员卡ID
*/
public void setMemberCardId(Integer memberCardId){
this.memberCardId = memberCardId;
} }
/** public Integer getMemberCardId() {
* 获取用户会员卡ID
*
* @return 用户会员卡ID
*/
public Integer getMemberCardId(){
return memberCardId; return memberCardId;
} }
public void setMemberCardId(Integer memberCardId) {
this.memberCardId = memberCardId;
}
public Integer getPaying() { public Integer getPaying() {
return paying; return paying;
} }
@@ -313,140 +237,76 @@ public class MemberEnterOrderDTO implements Serializable {
this.paying = paying; this.paying = paying;
} }
/** public Integer getStatus() {
* 设置使用状态
*
* @see com.ydd.framework.core.entity.enums.StatusEnum
* @param status 使用状态
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取使用状态
*
* @see com.ydd.framework.core.entity.enums.StatusEnum
* @return 使用状态
*/
public Integer getStatus(){
return status; return status;
} }
public void setStatus(Integer status) {
/** this.status = status;
* 设置品台来源ID
*
* @param platformId 品台来源ID
*/
public void setPlatformId(Integer platformId){
this.platformId = platformId;
} }
/** public Integer getPlatformId() {
* 获取品台来源ID
*
* @return 品台来源ID
*/
public Integer getPlatformId(){
return platformId; return platformId;
} }
public void setPlatformId(Integer platformId) {
/** this.platformId = platformId;
* 设置创建者编号
*
* @param createdId 创建者编号
*/
public void setCreatedId(Integer createdId){
this.createdId = createdId;
} }
/** public Integer getCreatedId() {
* 获取创建者编号
*
* @return 创建者编号
*/
public Integer getCreatedId(){
return createdId; return createdId;
} }
public void setCreatedId(Integer createdId) {
/** this.createdId = createdId;
* 设置创建者编号
*
* @param modifiedId 创建者编号
*/
public void setModifiedId(Integer modifiedId){
this.modifiedId = modifiedId;
} }
/** public Integer getModifiedId() {
* 获取创建者编号
*
* @return 创建者编号
*/
public Integer getModifiedId(){
return modifiedId; return modifiedId;
} }
public void setModifiedId(Integer modifiedId) {
/** this.modifiedId = modifiedId;
* 设置创建时间
*
* @param createdTime 创建时间
*/
public void setCreatedTime(Date createdTime){
this.createdTime = createdTime;
} }
/** public Date getCreatedTime() {
* 获取创建时间
*
* @return 创建时间
*/
public Date getCreatedTime(){
return createdTime; return createdTime;
} }
public void setCreatedTime(Date createdTime) {
/** this.createdTime = createdTime;
* 设置更新时间
*
* @param modifiedTime 更新时间
*/
public void setModifiedTime(Date modifiedTime){
this.modifiedTime = modifiedTime;
} }
/** public Date getModifiedTime() {
* 获取更新时间
*
* @return 更新时间
*/
public Date getModifiedTime(){
return modifiedTime; return modifiedTime;
} }
public void setModifiedTime(Date modifiedTime) {
this.modifiedTime = modifiedTime;
}
/** public Integer getDeleted() {
* 设置删除标识位 return deleted;
* }
* @see com.ydd.framework.core.entity.enums.DeletedEnum
* @param deleted 删除标识位 public void setDeleted(Integer deleted) {
*/
public void setDeleted(Integer deleted){
this.deleted = deleted; this.deleted = deleted;
} }
/** public String getNickname() {
* 获取删除标识位 return nickname;
* }
* @see com.ydd.framework.core.entity.enums.DeletedEnum
* @return 删除标识位 public void setNickname(String nickname) {
*/ this.nickname = nickname;
public Integer getDeleted(){ }
return deleted;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
} }
public String getLessonName() { public String getLessonName() {

View File

@@ -38,6 +38,11 @@ public class BarcodeOrderTime {
*/ */
private Integer payMoney; private Integer payMoney;
/**
* 总退款金额
*/
private Integer sumPayMoney;
private String orderSn; private String orderSn;
/** /**
@@ -45,7 +50,8 @@ public class BarcodeOrderTime {
*/ */
private String orderAddSn; private String orderAddSn;
public BarcodeOrderTime(Integer id, Integer memberId, Integer venueId, Date createdTime, Date modifiedTime, Date orderStart, Date orderEnd, Date lastEnter, Date lastOut, Integer status ,Integer paying, Integer payMoney, String orderSn, String orderAddSn) { public BarcodeOrderTime(Integer id, Integer memberId, Integer venueId, Date createdTime, Date modifiedTime, Date orderStart, Date orderEnd, Date lastEnter, Date lastOut, Integer status ,Integer paying,
Integer payMoney, Integer sumPayMoney, String orderSn, String orderAddSn) {
this.id = id; this.id = id;
this.memberId = memberId; this.memberId = memberId;
this.venueId = venueId; this.venueId = venueId;
@@ -58,6 +64,7 @@ public class BarcodeOrderTime {
this.status = status; this.status = status;
this.paying = paying; this.paying = paying;
this.payMoney = payMoney; this.payMoney = payMoney;
this.sumPayMoney = sumPayMoney;
this.orderSn = orderSn; this.orderSn = orderSn;
this.orderAddSn = orderAddSn; this.orderAddSn = orderAddSn;
} }
@@ -177,4 +184,12 @@ public class BarcodeOrderTime {
public void setLastOut(Date lastOut) { public void setLastOut(Date lastOut) {
this.lastOut = lastOut; this.lastOut = lastOut;
} }
public Integer getSumPayMoney() {
return sumPayMoney;
}
public void setSumPayMoney(Integer sumPayMoney) {
this.sumPayMoney = sumPayMoney;
}
} }

View File

@@ -1,5 +1,6 @@
package com.sv.oms.controller; package com.sv.oms.controller;
import com.sv.entity.MemberEnterVenueLog; import com.sv.entity.MemberEnterVenueLog;
import com.sv.service.api.VenueEnterService;
import com.sv.service.oms.MemberEnterVenueLogService; import com.sv.service.oms.MemberEnterVenueLogService;
import com.ydd.framework.core.common.Pagination; import com.ydd.framework.core.common.Pagination;
import com.ydd.framework.core.common.dto.ResponseDTO; import com.ydd.framework.core.common.dto.ResponseDTO;
@@ -10,6 +11,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
/** /**
* Controller - 篮球进场订单 * Controller - 篮球进场订单
@@ -21,33 +23,32 @@ import javax.annotation.Resource;
public class MemberEnterVeneuLogController extends OmsController { public class MemberEnterVeneuLogController extends OmsController {
private final Logger logger = LoggerFactory.getLogger(MemberEnterVeneuLogController.class); private final Logger logger = LoggerFactory.getLogger(MemberEnterVeneuLogController.class);
@Resource @Resource
private MemberEnterVenueLogService memberEnterVeneuLogService; private MemberEnterVenueLogService memberEnterVeneuLogService;
@Resource
private VenueEnterService venueEnterService;
/** /**
* 分页查询篮球进场订单 * 分页查询篮球进场订单
*/ */
@RequestMapping(value = "/member/enter/veneu/logs", method = RequestMethod.GET) @RequestMapping(value = "/member/enter/veneu/logs", method = RequestMethod.GET)
public ResponseDTO findPage(Pagination pagination, public ResponseDTO findPage(Pagination pagination,
@RequestParam(value = "payStatus",required = false) Integer payStatus,
@RequestParam(value = "memberId",required = false) Integer memberId,
@RequestParam(value = "starTime",required = false) String starTime, @RequestParam(value = "starTime",required = false) String starTime,
@RequestParam(value = "endTime",required = false) String endTime, @RequestParam(value = "endTime",required = false) String endTime,
@RequestParam(value = "orderSn",required = false) String orderSn, @RequestParam(value = "orderSn",required = false) String orderSn,
@RequestParam(value = "payType",required = false) Integer payType, @RequestParam(value = "state",required = false) Integer state) {
@RequestParam(value = "venueId",required = false)Integer venueId) {
return ResponseDTO.ok() return ResponseDTO.ok()
.setPagination(memberEnterVeneuLogService.findPage(pagination, payStatus, memberId, starTime, endTime, orderSn, payType,venueId)); .setPagination(memberEnterVeneuLogService.findPage(pagination, starTime, endTime, orderSn, state));
} }
/** /**
* 查询篮球进场订单信息 * 查询篮球进场订单信息
*/ */
@RequestMapping(value = "/member/enter/veneu/log/{id}", method = RequestMethod.GET) @RequestMapping(value = "/member/find/order/enter/log", method = RequestMethod.GET)
public ResponseDTO findById(@PathVariable("id") Integer id) { public ResponseDTO findByPageId(Pagination pagination,@RequestParam("id") String id) {
return ResponseDTO.ok() return ResponseDTO.ok()
.addAttribute("memberEnterVeneuLog", memberEnterVeneuLogService.findById(id)); .setPagination(memberEnterVeneuLogService.findByOrderNo(pagination,id));
} }
/** /**
@@ -68,4 +69,10 @@ public class MemberEnterVeneuLogController extends OmsController {
return ResponseDTO.ok("删除成功"); return ResponseDTO.ok("删除成功");
} }
@RequestMapping(value = "/member/enter/veneu/account", method = RequestMethod.POST)
public ResponseDTO enterOrderAccount(@RequestParam("EnterId") Integer enterId,@RequestParam("payMoney") Integer payMoney) {
venueEnterService.enterOrderAccount(enterId,payMoney);
return ResponseDTO.ok("结算成功");
}
} }

View File

@@ -26,4 +26,7 @@ public interface BarcodeMapper {
@NoPlatform @NoPlatform
Barcode checkCodeStatus(@Param("barcode") String barcode); Barcode checkCodeStatus(@Param("barcode") String barcode);
@NoPlatform
Barcode checkIsUsed(@Param("barcode") String barcode);
} }

View File

@@ -7,6 +7,9 @@ import org.apache.ibatis.annotations.Param;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
/**
* 用户入场订单
*/
public interface BarcodeOrderTimeMapper { public interface BarcodeOrderTimeMapper {
int deleteByPrimaryKey(Integer id); int deleteByPrimaryKey(Integer id);
@@ -33,4 +36,6 @@ public interface BarcodeOrderTimeMapper {
List<MemberEnterOrderDTO> memberOrderEnterList(@Param("memberId") Integer memberId); List<MemberEnterOrderDTO> memberOrderEnterList(@Param("memberId") Integer memberId);
MemberEnterOrderDTO memberOrderEnterDetail(@Param("memberId") Integer memberId,@Param("enterId") Integer enterId); MemberEnterOrderDTO memberOrderEnterDetail(@Param("memberId") Integer memberId,@Param("enterId") Integer enterId);
List<MemberEnterOrderDTO> findAll(@Param("starTime") String starTime,@Param("endTime") String endTime,@Param("orderSn") String orderSn,@Param("state") Integer state);
} }

View File

@@ -66,7 +66,6 @@ public interface MemberEnterVenueLogMapper {
* @return 篮球进场订单集合 * @return 篮球进场订单集合
*/ */
List<MemberEnterVenueLog> findAlls(@Param("payStatus") Integer payStatus,@Param("memberId") Integer memberId, List<MemberEnterVenueLog> findAlls(@Param("payStatus") Integer payStatus,@Param("memberId") Integer memberId,
@Param("starTime") String starTime, @Param("endTime") String endTime,
@Param("orderSn") String orderSn, @Param("payType") Integer payType, @Param("venueId")Integer venueId); @Param("orderSn") String orderSn, @Param("payType") Integer payType, @Param("venueId")Integer venueId);
@@ -78,4 +77,4 @@ public interface MemberEnterVenueLogMapper {
List<MemberEnterVenueLog> findMemberEnterLogByDate(@Param("memberId") Integer memberId,@Param("venueId") Integer venueId,@Param("date") String date); List<MemberEnterVenueLog> findMemberEnterLogByDate(@Param("memberId") Integer memberId,@Param("venueId") Integer venueId,@Param("date") String date);
} }

View File

@@ -15,6 +15,7 @@ import com.ydd.framework.core.common.utils.ValidationUtils;
import com.ydd.framework.core.exception.ServiceException; import com.ydd.framework.core.exception.ServiceException;
import com.ydd.framework.core.service.impl.BaseServiceImpl; import com.ydd.framework.core.service.impl.BaseServiceImpl;
import com.ydd.oms.entity.enums.PayStatusEnum; import com.ydd.oms.entity.enums.PayStatusEnum;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -156,15 +157,16 @@ public class VenueEnterService extends BaseServiceImpl {
throw new ServiceException(ExceptionCodeTemplate.VENUE_ERROR); throw new ServiceException(ExceptionCodeTemplate.VENUE_ERROR);
} }
// 按时出场选择按照分钟四舍五入到角扣款 // 按时出场选择按照分钟四舍五入到角扣款
BigDecimal basePrice = venuePriceEnter.getPrice();
price = venuePriceEnter.getPrice(); price = venuePriceEnter.getPrice();
int minutes = DateUtilCard.diffMinute(lastOrder.getOrderStart(), dateNow); int minutes = DateUtilCard.diffMinute(lastOrder.getOrderStart(), dateNow);
int hours = minutes / 60; int hours = minutes / 60;
// 需要补收的价格 // 需要补收的价格
price = price.multiply(new BigDecimal(hours - 1)); // 此处修改押金小时数 price = price.multiply(new BigDecimal(hours - 1)); // 此处修改押金小时数
int mod = new BigDecimal(minutes).divideAndRemainder(new BigDecimal(60))[1].intValue(); int mod = new BigDecimal(minutes).divideAndRemainder(new BigDecimal(60))[1].intValue();
if (hours >= 1 && mod <= 30) { if (hours >= 1 && mod <= 30 && basePrice.compareTo(BigDecimal.ZERO) > 0) {
// 超过一个小时 且不满半小时,只收一半的钱 // 超过一个小时 且不满半小时,只收一半的钱
price = price.subtract(price.divide(new BigDecimal(2)).setScale(1,BigDecimal.ROUND_HALF_UP)); price = price.subtract(basePrice.divide(new BigDecimal(2)).setScale(1,BigDecimal.ROUND_HALF_UP));
} }
logger.info("用户出场$" + memberId + "$经过时间为" + minutes + "分钟,价格为:"+ price); logger.info("用户出场$" + memberId + "$经过时间为" + minutes + "分钟,价格为:"+ price);
if (price.compareTo(BigDecimal.ZERO) > 0 ) { if (price.compareTo(BigDecimal.ZERO) > 0 ) {
@@ -175,6 +177,7 @@ public class VenueEnterService extends BaseServiceImpl {
} else { } else {
// 不需要补交钱且需要退钱 // 不需要补交钱且需要退钱
lastOrder.setPayMoney(price.abs().intValue()); lastOrder.setPayMoney(price.abs().intValue());
lastOrder.setSumPayMoney(price.abs().intValue());
barcodeOrderTimeMapper.updateByPrimaryKey(lastOrder); barcodeOrderTimeMapper.updateByPrimaryKey(lastOrder);
result.setFlg(888); result.setFlg(888);
result.setMsg("如要继续订单请在10分钟内进入否则将结束订单"); result.setMsg("如要继续订单请在10分钟内进入否则将结束订单");
@@ -326,4 +329,29 @@ public class VenueEnterService extends BaseServiceImpl {
return memberEnterOrderDTO; return memberEnterOrderDTO;
} }
public void enterOrderAccount(Integer enterId, Integer payMoney) {
BarcodeOrderTime barcodeOrder = barcodeOrderTimeMapper.selectByPrimaryKey(enterId);
if (barcodeOrder == null) {
throw new ServiceException("订单不存在!");
}
if (1 == barcodeOrder.getPaying()) {
throw new ServiceException("订单正在结算,无法结算!");
}
if (barcodeOrder.getPayMoney() <=0 ) {
throw new ServiceException("退款金额不能为负数!");
}
String orderSn = barcodeOrder.getOrderSn();
String orderAddSn = barcodeOrder.getOrderAddSn();
if (!StringUtils.isEmpty(orderAddSn)) {
throw new ServiceException("订单多次支付(使用超时),无法进行退款!");
}
Order baseOrder = orderMapper.findByOrderSn(orderSn);
if ((barcodeOrder.getSumPayMoney() + payMoney) > baseOrder.getPrice().intValue()) {
throw new ServiceException("退款金额不能超过总支付金额!");
}
barcodeOrder.setSumPayMoney(barcodeOrder.getSumPayMoney() + payMoney);
barcodeOrder.setPaying(1);
barcodeOrder.setPayMoney(payMoney); // 此次支付金额
barcodeOrderTimeMapper.updateByPrimaryKey(barcodeOrder);
}
} }

View File

@@ -2,9 +2,13 @@ package com.sv.service.common;
import com.enums.BarCodeStatusEnum; import com.enums.BarCodeStatusEnum;
import com.enums.EnterEnum; import com.enums.EnterEnum;
import com.sv.dto.api.BarcodeDTO;
import com.sv.entity.Barcode; import com.sv.entity.Barcode;
import com.sv.entity.BarcodeOrderTime;
import com.sv.mapper.BarcodeMapper; import com.sv.mapper.BarcodeMapper;
import com.sv.mapper.BarcodeOrderTimeMapper;
import com.sv.netty.utils.MakeCode; import com.sv.netty.utils.MakeCode;
import com.ydd.framework.core.exception.ServiceException;
import com.ydd.framework.core.service.impl.BaseServiceImpl; import com.ydd.framework.core.service.impl.BaseServiceImpl;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -27,6 +31,8 @@ public class BarcodeService extends BaseServiceImpl {
@Resource @Resource
BarcodeMapper barcodeMapper; BarcodeMapper barcodeMapper;
@Resource
BarcodeOrderTimeMapper barcodeOrderTimeMapper;
public String newBarcode (String deviceName, String orderSn, EnterEnum enterEnum, Integer venueId, Integer memberId){ public String newBarcode (String deviceName, String orderSn, EnterEnum enterEnum, Integer venueId, Integer memberId){
String barcode = ""; String barcode = "";
@@ -47,5 +53,21 @@ public class BarcodeService extends BaseServiceImpl {
} }
return barcode; return barcode;
} }
public BarcodeDTO isUsed(String barcode){
BarcodeDTO barcodeDTO = new BarcodeDTO();
barcodeDTO.setUsed(false);
Barcode code = barcodeMapper.checkIsUsed(barcode);
if (code == null) {
logger.error("二维码不存在!!!");
throw new ServiceException("二维码不存在!");
}
if (BarCodeStatusEnum.USED.value == code.getStatus()){
barcodeDTO.setUsed(true);
BarcodeOrderTime lastEnterOrder = barcodeOrderTimeMapper.findLastOrder(code.getMemberId(), code.getVenueId());
barcodeDTO.setEnterId(lastEnterOrder.getId());
}
return barcodeDTO;
}
} }

View File

@@ -2,6 +2,7 @@ package com.sv.service.oms;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.sv.entity.MemberEnterVenueLog; import com.sv.entity.MemberEnterVenueLog;
import com.sv.mapper.BarcodeOrderTimeMapper;
import com.sv.mapper.MemberEnterVenueLogMapper; import com.sv.mapper.MemberEnterVenueLogMapper;
import com.ydd.framework.core.common.Pagination; import com.ydd.framework.core.common.Pagination;
import com.ydd.framework.core.service.impl.BaseServiceImpl; import com.ydd.framework.core.service.impl.BaseServiceImpl;
@@ -26,6 +27,8 @@ public class MemberEnterVenueLogService extends BaseServiceImpl {
@Resource @Resource
private MemberEnterVenueLogMapper memberEnterVenueLogMapper; private MemberEnterVenueLogMapper memberEnterVenueLogMapper;
@Resource
private BarcodeOrderTimeMapper barcodeOrderTimeMapper;
/** /**
* 创建篮球进场订单 * 创建篮球进场订单
@@ -95,6 +98,18 @@ public class MemberEnterVenueLogService extends BaseServiceImpl {
return memberEnterVenueLogMapper.findById(id); return memberEnterVenueLogMapper.findById(id);
} }
/**
* 查询篮球进场订单
*
* @param orderId 篮球订单的订单主键
* @return 篮球进场订单
*/
public Pagination findByOrderNo(Pagination pagination, String orderId) {
PageHelper.startPage(pagination.getPage(), pagination.getPageSize());
pagination.setQueryResult(memberEnterVenueLogMapper.findAlls(null,null,orderId,null,null));
return pagination;
}
/** /**
* 查询篮球进场订单 * 查询篮球进场订单
* *
@@ -102,11 +117,12 @@ public class MemberEnterVenueLogService extends BaseServiceImpl {
* @return 分页结果 * @return 分页结果
*/ */
public Pagination findPage(Pagination pagination, Integer payStatus, Integer memberId, String starTime, public Pagination findPage(Pagination pagination, String starTime,
String endTime, String orderSn, Integer payType,Integer venueId) { String endTime, String orderSn, Integer state) {
PageHelper.startPage(pagination.getPage(), pagination.getPageSize()); PageHelper.startPage(pagination.getPage(), pagination.getPageSize());
PageHelper.orderBy("id desc"); pagination.setQueryResult(barcodeOrderTimeMapper.findAll(starTime,
pagination.setQueryResult(memberEnterVenueLogMapper.findAlls(payStatus, memberId, starTime, endTime, orderSn, payType,venueId)); endTime, orderSn, state));
// pagination.setQueryResult(memberEnterVenueLogMapper.findAlls(payStatus, memberId, starTime, endTime, orderSn, payType,venueId));
return pagination; return pagination;
} }

View File

@@ -187,4 +187,11 @@
and status = 0 and status = 0
</select> </select>
<select id="checkIsUsed" resultMap="BaseResultMap" parameterType="String" >
select
<include refid="Base_Column_List" />
from sv_barcode
where barcode = #{barcode,jdbcType=VARCHAR}
</select>
</mapper> </mapper>

View File

@@ -15,12 +15,13 @@
<arg column="status" jdbcType="INTEGER" javaType="java.lang.Integer" /> <arg column="status" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="paying" jdbcType="INTEGER" javaType="java.lang.Integer" /> <arg column="paying" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="pay_money" jdbcType="INTEGER" javaType="java.lang.Integer" /> <arg column="pay_money" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="sum_pay_money" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="order_sn" jdbcType="VARCHAR" javaType="java.lang.String" /> <arg column="order_sn" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="order_add_sn" jdbcType="VARCHAR" javaType="java.lang.String" /> <arg column="order_add_sn" jdbcType="VARCHAR" javaType="java.lang.String" />
</constructor> </constructor>
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, member_id, venue_id, created_time, modified_time, order_start, order_end, last_enter, last_out, status, paying, pay_money, order_sn,order_add_sn id, member_id, venue_id, created_time, modified_time, order_start, order_end, last_enter, last_out, status, paying, pay_money, sum_pay_money, order_sn,order_add_sn
</sql> </sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select select
@@ -35,12 +36,12 @@
<insert id="insert" parameterType="com.sv.entity.BarcodeOrderTime" > <insert id="insert" parameterType="com.sv.entity.BarcodeOrderTime" >
insert into sv_barcode_order_time (id, member_id, venue_id, insert into sv_barcode_order_time (id, member_id, venue_id,
created_time, modified_time, order_start, created_time, modified_time, order_start,
order_end, last_enter, last_out, status,paying ,pay_money,order_sn,order_add_sn) order_end, last_enter, last_out, status,paying ,pay_money,sum_pay_money,order_sn,order_add_sn)
values (#{id,jdbcType=INTEGER}, #{memberId,jdbcType=INTEGER}, #{venueId,jdbcType=INTEGER}, values (#{id,jdbcType=INTEGER}, #{memberId,jdbcType=INTEGER}, #{venueId,jdbcType=INTEGER},
#{createdTime,jdbcType=TIMESTAMP}, #{modifiedTime,jdbcType=TIMESTAMP}, #{orderStart,jdbcType=TIMESTAMP}, #{createdTime,jdbcType=TIMESTAMP}, #{modifiedTime,jdbcType=TIMESTAMP}, #{orderStart,jdbcType=TIMESTAMP},
#{orderEnd,jdbcType=TIMESTAMP}, #{lastEnter,jdbcType=TIMESTAMP}, #{lastOut,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{orderEnd,jdbcType=TIMESTAMP}, #{lastEnter,jdbcType=TIMESTAMP}, #{lastOut,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER},
#{paying,jdbcType=INTEGER},#{payMoney,jdbcType=INTEGER}, #{orderSn,jdbcType=VARCHAR} #{paying,jdbcType=INTEGER},#{payMoney,jdbcType=INTEGER}, #{sumPayMoney,jdbcType=INTEGER},
,#{orderAddSn,jdbcType=VARCHAR}) #{orderSn,jdbcType=VARCHAR},#{orderAddSn,jdbcType=VARCHAR})
</insert> </insert>
<insert id="insertSelective" parameterType="com.sv.entity.BarcodeOrderTime" > <insert id="insertSelective" parameterType="com.sv.entity.BarcodeOrderTime" >
insert into sv_barcode_order_time insert into sv_barcode_order_time
@@ -81,6 +82,9 @@
<if test="payMoney != null" > <if test="payMoney != null" >
pay_money, pay_money,
</if> </if>
<if test="sumPayMoney != null" >
sum_pay_money,
</if>
<if test="orderSn != null" > <if test="orderSn != null" >
order_sn, order_sn,
</if> </if>
@@ -125,6 +129,9 @@
<if test="payMoney != null" > <if test="payMoney != null" >
#{payMoney,jdbcType=INTEGER}, #{payMoney,jdbcType=INTEGER},
</if> </if>
<if test="sumPayMoney != null" >
#{sumPayMoney,jdbcType=INTEGER},
</if>
<if test="orderSn != null" > <if test="orderSn != null" >
#{orderSn,jdbcType=VARCHAR}, #{orderSn,jdbcType=VARCHAR},
</if> </if>
@@ -169,6 +176,9 @@
<if test="payMoney != null" > <if test="payMoney != null" >
pay_money = #{payMoney,jdbcType=INTEGER}, pay_money = #{payMoney,jdbcType=INTEGER},
</if> </if>
<if test="sumPayMoney != null" >
sum_pay_money = #{sumPayMoney,jdbcType=INTEGER},
</if>
<if test="orderSn != null" > <if test="orderSn != null" >
order_sn = #{orderSn,jdbcType=VARCHAR}, order_sn = #{orderSn,jdbcType=VARCHAR},
</if> </if>
@@ -191,6 +201,7 @@
status = #{status,jdbcType=INTEGER}, status = #{status,jdbcType=INTEGER},
paying = #{paying,jdbcType=INTEGER}, paying = #{paying,jdbcType=INTEGER},
pay_money = #{payMoney,jdbcType=INTEGER}, pay_money = #{payMoney,jdbcType=INTEGER},
sum_pay_money = #{sumPayMoney,jdbcType=INTEGER},
order_sn = #{orderSn,jdbcType=VARCHAR}, order_sn = #{orderSn,jdbcType=VARCHAR},
order_add_sn = #{orderAddSn,jdbcType=VARCHAR} order_add_sn = #{orderAddSn,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR}
@@ -271,7 +282,7 @@
where ot.member_id = #{memberId,jdbcType=INTEGER} and (ot.order_sn = t.order_sn or ot.order_sn = t.order_add_sn) where ot.member_id = #{memberId,jdbcType=INTEGER} and (ot.order_sn = t.order_sn or ot.order_sn = t.order_add_sn)
) as price, ) as price,
t.paying, t.paying,
t.pay_money as payMoney, IFNULL(t.sum_pay_money,0) as payMoney,
t.order_sn as orderSn, t.order_sn as orderSn,
t.`status`, t.`status`,
t.created_time as createTime, t.created_time as createTime,
@@ -284,4 +295,45 @@
and t.id = #{enterId,jdbcType=INTEGER} and t.id = #{enterId,jdbcType=INTEGER}
</select> </select>
<select id="findAll" resultType="com.sv.dto.api.MemberEnterOrderDTO">
select
t.id as id,
(select ue.`name` from sv_venue ue where ue.id = t.venue_id) as lessonName,
t.last_enter as lastEnter,
t.order_start as startTime,
t.last_out as endTime,
m.nickname,
m.mobile,
(select IFNULL(sum(ot.price),0) from sv_order ot
where ot.member_id = t.member_id and (ot.order_sn = t.order_sn or ot.order_sn = t.order_add_sn)
) as price,
t.paying,
IFNULL(t.sum_pay_money,0) as payMoney,
t.order_sn as orderSn,
(case when t.`status` = 0 then t.paying else 2 end) as `status`,
t.created_time as createTime,
1 as payType
from sv_barcode_order_time t LEFT JOIN sv_member m on t.member_id = m.id
where 1=1
<if test="state != null and state == 2">
AND (t.status = 1 or t.paying = #{state})
</if>
<if test="state != null and state == 1">
AND t.paying = #{state}
</if>
<if test="state != null and state == 0">
AND t.paying = #{state} and t.status = 0
</if>
<if test="orderSn != ''">
AND t.order_sn = #{orderSn}
</if>
<if test="starTime != ''">
AND t.order_start &gt;= #{starTime}
</if>
<if test="endTime != ''">
AND t.order_start &lt;= #{endTime}
</if>
order by t.order_start desc
</select>
</mapper> </mapper>

View File

@@ -122,12 +122,6 @@
<if test="orderSn != ''"> <if test="orderSn != ''">
AND smevl.order_sn = #{orderSn} AND smevl.order_sn = #{orderSn}
</if> </if>
<if test="starTime != ''">
AND so.created_time &gt;= #{starTime}
</if>
<if test="endTime != ''">
AND so.created_time &lt;= #{endTime}
</if>
<if test="payType != null"> <if test="payType != null">
AND smevl.pay_type = #{payType} AND smevl.pay_type = #{payType}
</if> </if>