修改篮球入场支付方式

This commit is contained in:
limqhz
2023-12-28 18:10:59 +08:00
parent c4e3268efa
commit 78057753fc
8 changed files with 87 additions and 51 deletions

View File

@@ -1,11 +1,10 @@
package com.sv.api.controller; package com.sv.api.controller;
import com.enums.EnterEnum; import com.enums.EnterEnum;
import com.sv.dto.BarCodeResult; import com.sv.dto.BasketEnterResult;
import com.sv.entity.Device; import com.sv.entity.Device;
import com.sv.entity.Order; import com.sv.entity.Order;
import com.sv.entity.Venue; import com.sv.entity.Venue;
import com.sv.mapper.BarcodeMapper;
import com.sv.service.api.OrderService; import com.sv.service.api.OrderService;
import com.sv.service.api.VenueService; import com.sv.service.api.VenueService;
import com.sv.service.common.BarcodeService; import com.sv.service.common.BarcodeService;
@@ -39,6 +38,8 @@ public class VenueController extends BaseApiController {
private BarcodeService barcodeService; private BarcodeService barcodeService;
@Resource @Resource
private DoorLockUtil doorLockUtil; private DoorLockUtil doorLockUtil;
@Resource
DeviceService deviceService;
/** /**
* 分页查询场馆列表 * 分页查询场馆列表
@@ -119,8 +120,6 @@ public class VenueController extends BaseApiController {
return ResponseDTO.ok().addAttribute("isPayed", isPayed); return ResponseDTO.ok().addAttribute("isPayed", isPayed);
} }
@Resource
DeviceService deviceService;
/** /**
* 我要进场 * 我要进场
* *
@@ -130,7 +129,7 @@ public class VenueController extends BaseApiController {
@RequestMapping(value = "/venue/join", method = RequestMethod.GET) @RequestMapping(value = "/venue/join", method = RequestMethod.GET)
public ResponseDTO join(@RequestParam("venueId") Integer venueId) { public ResponseDTO join(@RequestParam("venueId") Integer venueId) {
Device byDevice = deviceService.findByDevice(venueId); Device byDevice = deviceService.findByDevice(venueId);
BarCodeResult join = new BarCodeResult(); BasketEnterResult join = new BasketEnterResult();
if (byDevice == null) { if (byDevice == null) {
join.setFlg(999); join.setFlg(999);
join.setMsg("通讯异常,门禁设备离线中"); join.setMsg("通讯异常,门禁设备离线中");
@@ -143,11 +142,6 @@ public class VenueController extends BaseApiController {
} }
Integer memberId = getMemberIdByAccessToken(); Integer memberId = getMemberIdByAccessToken();
join = venueService.join(memberId, venueId); join = venueService.join(memberId, venueId);
if (join.getFlg() == 0) {
String barcode = barcodeService.newBarcode(doorSn, EnterEnum.ENTER, venueId, memberId);
join.setBarcode(barcode);
// doorLockUtil.lockDoor(doorSn);
}
return ResponseDTO.ok().addAttribute("join", join); return ResponseDTO.ok().addAttribute("join", join);
} }
@@ -160,7 +154,7 @@ public class VenueController extends BaseApiController {
@RequestMapping(value = "/venue/out", method = RequestMethod.GET) @RequestMapping(value = "/venue/out", method = RequestMethod.GET)
public ResponseDTO out(@RequestParam("venueId") Integer venueId) { public ResponseDTO out(@RequestParam("venueId") Integer venueId) {
Device byDevice = deviceService.findByDevice(venueId); Device byDevice = deviceService.findByDevice(venueId);
BarCodeResult out = new BarCodeResult(); BasketEnterResult out = new BasketEnterResult();
if (byDevice == null) { if (byDevice == null) {
out.setFlg(999); out.setFlg(999);
out.setMsg("通讯异常,门禁设备离线中"); out.setMsg("通讯异常,门禁设备离线中");
@@ -173,12 +167,36 @@ public class VenueController extends BaseApiController {
} }
Integer memberId = getMemberIdByAccessToken(); Integer memberId = getMemberIdByAccessToken();
out = venueService.out(memberId, venueId); out = venueService.out(memberId, venueId);
if (out.getFlg() == 0) {
String barcode = barcodeService.newBarcode(doorSn,EnterEnum.OUT,venueId,memberId);
out.setBarcode(barcode);
// doorLockUtil.lockDoor(doorSn);
}
return ResponseDTO.ok().addAttribute("out", out); return ResponseDTO.ok().addAttribute("out", out);
} }
/**
* 生产二维码
*
* @return
*/
@RequestMapping(value = "/venue/generate/barcode", method = RequestMethod.POST)
public ResponseDTO generateBarcode(@RequestParam("orderSn") String orderSn,@RequestParam("venueId") Integer venueId,Integer enterFlag) {
Device byDevice = deviceService.findByDevice(venueId);
BasketEnterResult join = new BasketEnterResult();
if (byDevice == null) {
join.setFlg(999);
join.setMsg("通讯异常,门禁设备离线中");
return ResponseDTO.ok().addAttribute("join", join);
}
String doorSn = byDevice.getName();
boolean lockStat = doorLockUtil.checkDoorLock(doorSn);
if (lockStat) {
throw new ServiceException("有人正在使用门禁,请稍后再试");
}
Integer memberId = getMemberIdByAccessToken();
EnterEnum enterEnum = EnterEnum.OUT;
if (enterFlag != null) {
enterEnum = EnterEnum.getByValue(enterFlag);
}
String barcode = barcodeService.newBarcode(doorSn,orderSn,enterEnum,venueId,memberId);
return ResponseDTO.ok().addAttribute("barcode", barcode);
}
} }

View File

@@ -2,7 +2,7 @@ package com.sv.wx;
import com.WeiXinApplication; import com.WeiXinApplication;
import com.enums.EnterEnum; import com.enums.EnterEnum;
import com.sv.dto.BarCodeResult; import com.sv.dto.BasketEnterResult;
import com.sv.netty.netty.service.MessageService; import com.sv.netty.netty.service.MessageService;
import com.sv.netty.utils.JsonUtils; import com.sv.netty.utils.JsonUtils;
import com.sv.service.api.VenueService; import com.sv.service.api.VenueService;
@@ -30,12 +30,11 @@ public class VenueJoinTest {
@Test @Test
public void testJoin(){ public void testJoin(){
BarCodeResult join = venueService.join(535, 32); BasketEnterResult join = venueService.join(535, 32);
System.out.println(JsonUtils.encode(join)); System.out.println(JsonUtils.encode(join));
if (join.getFlg() == 0) { if (join.getFlg() == 0) {
String barcode = barcodeService.newBarcode("doorSn", EnterEnum.ENTER, 32, 535); String barcode = barcodeService.newBarcode("doorSn", "",EnterEnum.ENTER, 32, 535);
System.err.println("入场的二维码为:" + barcode); System.err.println("入场的二维码为:" + barcode);
join.setBarcode(barcode);
doorLockUtil.lockDoor("doorSn"); doorLockUtil.lockDoor("doorSn");
} }
} }
@@ -47,12 +46,11 @@ public class VenueJoinTest {
@Test @Test
public void testOut(){ public void testOut(){
BarCodeResult out = venueService.out(535, 32); BasketEnterResult out = venueService.out(535, 32);
System.out.println(JsonUtils.encode(out)); System.out.println(JsonUtils.encode(out));
if (out.getFlg() == 0) { if (out.getFlg() == 0) {
String barcode = barcodeService.newBarcode("doorSn", EnterEnum.OUT, 32, 535); String barcode = barcodeService.newBarcode("doorSn","", EnterEnum.OUT, 32, 535);
System.err.println("出场的二维码为:" + barcode); System.err.println("出场的二维码为:" + barcode);
out.setBarcode(barcode);
doorLockUtil.lockDoor("doorSn"); doorLockUtil.lockDoor("doorSn");
} }
} }

View File

@@ -2,10 +2,7 @@ package com.sv.dto;
import java.io.Serializable; import java.io.Serializable;
public class BarCodeResult implements Serializable { public class BasketEnterResult implements Serializable {
private String barcode;
/** /**
* 返回的字符串根据结果显示 * 返回的字符串根据结果显示
*/ */
@@ -13,14 +10,6 @@ public class BarCodeResult implements Serializable {
private String msg; private String msg;
public String getBarcode() {
return barcode;
}
public void setBarcode(String barcode) {
this.barcode = barcode;
}
public Integer getFlg() { public Integer getFlg() {
return flg; return flg;
} }

View File

@@ -7,6 +7,11 @@ public class Barcode {
private String barcode; private String barcode;
/**
* 订单号
*/
private String orderSn;
private Integer status; private Integer status;
private Integer memberId; private Integer memberId;
@@ -23,9 +28,10 @@ public class Barcode {
private Date modifiedTime; private Date modifiedTime;
public Barcode(Integer id, String barcode, Integer status, Integer memberId, Integer venueId, Integer enter, Integer createdId, Integer modifiedId, Date createdTime, Date modifiedTime) { public Barcode(Integer id, String barcode, String orderSn, Integer status, Integer memberId, Integer venueId, Integer enter, Integer createdId, Integer modifiedId, Date createdTime, Date modifiedTime) {
this.id = id; this.id = id;
this.barcode = barcode; this.barcode = barcode;
this.orderSn = orderSn;
this.status = status; this.status = status;
this.memberId = memberId; this.memberId = memberId;
this.venueId = venueId; this.venueId = venueId;
@@ -56,6 +62,14 @@ public class Barcode {
this.barcode = barcode == null ? null : barcode.trim(); this.barcode = barcode == null ? null : barcode.trim();
} }
public String getOrderSn() {
return orderSn;
}
public void setOrderSn(String orderSn) {
this.orderSn = orderSn;
}
public Integer getMemberId() { public Integer getMemberId() {
return memberId; return memberId;
} }

View File

@@ -20,4 +20,9 @@ CREATE TABLE `sv_member_enter_status` (
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modified_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', `modified_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1231 DEFAULT CHARSET=utf8mb4 COMMENT='用户在场馆的状态'; ) ENGINE=InnoDB AUTO_INCREMENT=1231 DEFAULT CHARSET=utf8mb4 COMMENT='用户在场馆的状态';
-- 20231228 待执行
ALTER TABLE sv_barcode
ADD COLUMN order_sn varchar(200) NOT NULL AFTER barcode;

View File

@@ -215,9 +215,9 @@ public class VenueService extends BaseServiceImpl {
* 我要进场 * 我要进场
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BarCodeResult join(Integer memberId, Integer venueId) { public BasketEnterResult join(Integer memberId, Integer venueId) {
BarCodeResult barCodeResult = new BarCodeResult(); BasketEnterResult basketEnterResult = new BasketEnterResult();
barCodeResult.setFlg(0); basketEnterResult.setFlg(0);
// 判断用户是否登录 // 判断用户是否登录
if (memberId == null) { if (memberId == null) {
throw new ServiceException(com.ydd.framework.core.exception.ExceptionCodeTemplate.NEED_LOGIN); throw new ServiceException(com.ydd.framework.core.exception.ExceptionCodeTemplate.NEED_LOGIN);
@@ -245,15 +245,15 @@ public class VenueService extends BaseServiceImpl {
if (memberCards.size() == 0) { if (memberCards.size() == 0) {
Member member = memberService.findById(memberId); Member member = memberService.findById(memberId);
if (member.getMoney().compareTo(price) == -1) { if (member.getMoney().compareTo(price) == -1) {
barCodeResult.setFlg(2); basketEnterResult.setFlg(2);
// if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()){ // if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()){
// // 按时入场余额需要包含两个小时的场地费 // // 按时入场余额需要包含两个小时的场地费
// barCodeResult.setMsg("请保证账户至少有两个小时余额:" + price + "元,余额不足,请先充值"); // barCodeResult.setMsg("请保证账户至少有两个小时余额:" + price + "元,余额不足,请先充值");
// }else { // }else {
// barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); // barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值");
// } // }
barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); basketEnterResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值");
return barCodeResult; return basketEnterResult;
} }
Integer timePayHour = 1; Integer timePayHour = 1;
if(PayStyleEnum.TIME.getValue() == venue.getPayStyle()){ if(PayStyleEnum.TIME.getValue() == venue.getPayStyle()){
@@ -276,7 +276,7 @@ public class VenueService extends BaseServiceImpl {
} else { } else {
//余额不足 //余额不足
logger.error("用户" + memberId + "余额不足核销失败"); logger.error("用户" + memberId + "余额不足核销失败");
barCodeResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值"); basketEnterResult.setMsg("此次订单金额为:" + price + "元,余额不足,请先充值");
} }
} }
} }
@@ -287,7 +287,7 @@ public class VenueService extends BaseServiceImpl {
// flag = 1; // flag = 1;
// return flag; // return flag;
// } // }
return barCodeResult; return basketEnterResult;
} }
/** /**
@@ -297,8 +297,8 @@ public class VenueService extends BaseServiceImpl {
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public BarCodeResult out(Integer memberId, Integer venueId) { public BasketEnterResult out(Integer memberId, Integer venueId) {
BarCodeResult result = new BarCodeResult(); BasketEnterResult result = new BasketEnterResult();
result.setFlg(0); result.setFlg(0);
// 判断用户是否登录 // 判断用户是否登录
if (memberId == null) { if (memberId == null) {

View File

@@ -28,7 +28,7 @@ public class BarcodeService extends BaseServiceImpl {
@Resource @Resource
BarcodeMapper barcodeMapper; BarcodeMapper barcodeMapper;
public String newBarcode (String deviceName, EnterEnum enterEnum, Integer venueId, Integer memberId){ public String newBarcode (String deviceName, String orderSn, EnterEnum enterEnum, Integer venueId, Integer memberId){
String barcode = ""; String barcode = "";
Barcode res = barcodeMapper.findBarcode(venueId, memberId); Barcode res = barcodeMapper.findBarcode(venueId, memberId);
if (res == null) { if (res == null) {
@@ -39,6 +39,7 @@ public class BarcodeService extends BaseServiceImpl {
b.setStatus(BarCodeStatusEnum.INIT.getValue()); b.setStatus(BarCodeStatusEnum.INIT.getValue());
b.setMemberId(memberId); b.setMemberId(memberId);
b.setVenueId(venueId); b.setVenueId(venueId);
b.setOrderSn(orderSn);
b.setEnter(enterEnum.getValue()); b.setEnter(enterEnum.getValue());
barcodeMapper.insert(b); barcodeMapper.insert(b);
}else { }else {

View File

@@ -5,6 +5,7 @@
<constructor > <constructor >
<idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" /> <idArg column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="barcode" jdbcType="VARCHAR" javaType="java.lang.String" /> <arg column="barcode" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="order_sn" jdbcType="VARCHAR" javaType="java.lang.String" />
<arg column="status" jdbcType="INTEGER" javaType="java.lang.Integer" /> <arg column="status" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="member_id" jdbcType="INTEGER" javaType="java.lang.Integer" /> <arg column="member_id" jdbcType="INTEGER" javaType="java.lang.Integer" />
<arg column="venue_id" jdbcType="INTEGER" javaType="java.lang.Integer" /> <arg column="venue_id" jdbcType="INTEGER" javaType="java.lang.Integer" />
@@ -16,7 +17,7 @@
</constructor> </constructor>
</resultMap> </resultMap>
<sql id="Base_Column_List" > <sql id="Base_Column_List" >
id, barcode, status, member_id, venue_id, enter, created_id, modified_id, created_time, id, barcode, order_sn, status, member_id, venue_id, enter, created_id, modified_id, created_time,
modified_time modified_time
</sql> </sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
@@ -30,11 +31,11 @@
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</delete> </delete>
<insert id="insert" parameterType="com.sv.entity.Barcode" > <insert id="insert" parameterType="com.sv.entity.Barcode" >
insert into sv_barcode (id, barcode, status, insert into sv_barcode (id, barcode, order_sn, status,
member_id, venue_id, enter, member_id, venue_id, enter,
created_id, modified_id, created_time, created_id, modified_id, created_time,
modified_time) modified_time)
values (#{id,jdbcType=INTEGER}, #{barcode,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, values (#{id,jdbcType=INTEGER}, #{barcode,jdbcType=VARCHAR}, #{orderSn,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
#{memberId,jdbcType=INTEGER}, #{venueId,jdbcType=INTEGER}, #{enter,jdbcType=INTEGER}, #{memberId,jdbcType=INTEGER}, #{venueId,jdbcType=INTEGER}, #{enter,jdbcType=INTEGER},
#{createdId,jdbcType=INTEGER}, #{modifiedId,jdbcType=INTEGER}, #{createdTime,jdbcType=TIMESTAMP}, #{createdId,jdbcType=INTEGER}, #{modifiedId,jdbcType=INTEGER}, #{createdTime,jdbcType=TIMESTAMP},
#{modifiedTime,jdbcType=TIMESTAMP}) #{modifiedTime,jdbcType=TIMESTAMP})
@@ -48,6 +49,9 @@
<if test="barcode != null" > <if test="barcode != null" >
barcode, barcode,
</if> </if>
<if test="orderSn != null" >
order_sn,
</if>
<if test="status != null" > <if test="status != null" >
status, status,
</if> </if>
@@ -80,6 +84,9 @@
<if test="barcode != null" > <if test="barcode != null" >
#{barcode,jdbcType=VARCHAR}, #{barcode,jdbcType=VARCHAR},
</if> </if>
<if test="orderSn != null" >
#{orderSn,jdbcType=VARCHAR},
</if>
<if test="status != null" > <if test="status != null" >
#{status,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
</if> </if>
@@ -112,6 +119,9 @@
<if test="barcode != null" > <if test="barcode != null" >
barcode = #{barcode,jdbcType=VARCHAR}, barcode = #{barcode,jdbcType=VARCHAR},
</if> </if>
<if test="barcode != null" >
order_sn = #{orderSn,jdbcType=VARCHAR},
</if>
<if test="status != null" > <if test="status != null" >
status = #{status,jdbcType=INTEGER}, status = #{status,jdbcType=INTEGER},
</if> </if>
@@ -142,6 +152,7 @@
<update id="updateByPrimaryKey" parameterType="com.sv.entity.Barcode" > <update id="updateByPrimaryKey" parameterType="com.sv.entity.Barcode" >
update sv_barcode update sv_barcode
set barcode = #{barcode,jdbcType=VARCHAR}, set barcode = #{barcode,jdbcType=VARCHAR},
order_sn = #{orderSn,jdbcType=INTEGER},
status = #{status,jdbcType=INTEGER}, status = #{status,jdbcType=INTEGER},
member_id = #{memberId,jdbcType=INTEGER}, member_id = #{memberId,jdbcType=INTEGER},
venue_id = #{venueId,jdbcType=INTEGER}, venue_id = #{venueId,jdbcType=INTEGER},