新增判断用户是否在场内逻辑,新增清场功能,修改二维码多样性
This commit is contained in:
@@ -20,4 +20,12 @@ public interface BarcodeEnterLogMapper {
|
||||
@NoPlatform
|
||||
BarcodeEnterLog findLastByBarcode(String barcode);
|
||||
|
||||
/**
|
||||
* 统计线下订单二维码最多只能使用6次
|
||||
* @param barcode
|
||||
* @return
|
||||
*/
|
||||
@NoPlatform
|
||||
int countTimesByBarcode(String barcode);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.sv.mapper;
|
||||
|
||||
import com.sv.entity.MemberEnterStatus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MemberEnterStatusMapper {
|
||||
int deleteByPrimaryKey(Integer id);
|
||||
|
||||
int insert(MemberEnterStatus record);
|
||||
|
||||
int insertSelective(MemberEnterStatus record);
|
||||
|
||||
MemberEnterStatus selectByPrimaryKey(Integer id);
|
||||
|
||||
int updateByPrimaryKeySelective(MemberEnterStatus record);
|
||||
|
||||
int updateByPrimaryKey(MemberEnterStatus record);
|
||||
|
||||
MemberEnterStatus selectByMemberVenue(@Param("memberId") Integer memberId, @Param("venueId") Integer venueId);
|
||||
|
||||
List<MemberEnterStatus> findAllNeedClear();
|
||||
|
||||
}
|
||||
@@ -1,6 +1,10 @@
|
||||
package com.sv.service.api;
|
||||
|
||||
import com.enums.EnterEnum;
|
||||
import com.enums.StayEnum;
|
||||
import com.sv.entity.MemberEnterStatus;
|
||||
import com.sv.entity.MemberEnterVenueLog;
|
||||
import com.sv.mapper.MemberEnterStatusMapper;
|
||||
import com.sv.mapper.MemberEnterVenueLogMapper;
|
||||
import com.ydd.framework.core.service.impl.BaseServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
@@ -28,6 +32,8 @@ public class MemberEnterVenueLogService extends BaseServiceImpl {
|
||||
|
||||
@Resource
|
||||
private MemberEnterVenueLogMapper memberEnterVenueLogMapper;
|
||||
@Resource
|
||||
private MemberEnterStatusMapper memberEnterStatusMapper;
|
||||
|
||||
/**
|
||||
* 获取用户最后的出入场记录
|
||||
@@ -39,6 +45,16 @@ public class MemberEnterVenueLogService extends BaseServiceImpl {
|
||||
return memberEnterVenueLogMapper.findLastByMember(memberId, venueId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户最后的出入场记录
|
||||
*
|
||||
* @param memberId
|
||||
* @return
|
||||
*/
|
||||
public MemberEnterStatus memberStayStatus(Integer memberId, Integer venueId) {
|
||||
return memberEnterStatusMapper.selectByMemberVenue(memberId, venueId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户最后的进场记录
|
||||
*
|
||||
@@ -64,6 +80,25 @@ public class MemberEnterVenueLogService extends BaseServiceImpl {
|
||||
@Transactional
|
||||
public void save(MemberEnterVenueLog memberEnterVenueLog) {
|
||||
memberEnterVenueLogMapper.insert(memberEnterVenueLog);
|
||||
MemberEnterStatus memberEnterStatus =
|
||||
memberEnterStatusMapper.selectByMemberVenue(memberEnterVenueLog.getMemberId(), memberEnterVenueLog.getVenueId());
|
||||
StayEnum stayEnum = StayEnum.OUT;
|
||||
if (EnterEnum.ENTER.getValue().equals(memberEnterVenueLog.getType())){
|
||||
stayEnum = StayEnum.IN;
|
||||
}
|
||||
if (memberEnterStatus != null){
|
||||
memberEnterStatus.setStatus(stayEnum.getValue());
|
||||
memberEnterStatus.setModifiedTime(new Date());
|
||||
memberEnterStatusMapper.updateByPrimaryKey(memberEnterStatus);
|
||||
}else {
|
||||
memberEnterStatus = new MemberEnterStatus();
|
||||
memberEnterStatus.setMemberId(memberEnterVenueLog.getMemberId());
|
||||
memberEnterStatus.setVenueId(memberEnterVenueLog.getVenueId());
|
||||
memberEnterStatus.setStatus(stayEnum.getValue());
|
||||
memberEnterStatus.setCreatedTime(new Date());
|
||||
memberEnterStatus.setModifiedTime(new Date());
|
||||
memberEnterStatusMapper.insert(memberEnterStatus);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -124,11 +124,11 @@ public class VenueService extends BaseServiceImpl {
|
||||
if (getVenue.getStatus() != 0) {
|
||||
throw new ServiceException("场馆维护中,请等待场馆恢复");
|
||||
}
|
||||
getVenue.setEnterFlag(EnterEnum.OUT.getValue());
|
||||
if (VenueTypeEnum.BASKETBALL.getValue().equals(getVenue.getType())){
|
||||
MemberEnterVenueLog memberLastLog = memberEnterVenueLogService.findMemberLastLog(memberId, id);
|
||||
if (memberLastLog != null) {
|
||||
getVenue.setEnterFlag(memberLastLog.getType());
|
||||
MemberEnterStatus memberStayStatus = memberEnterVenueLogService.memberStayStatus(memberId, id);
|
||||
getVenue.setEnterFlag(StayEnum.OUT.getValue());
|
||||
if (memberStayStatus != null) {
|
||||
getVenue.setEnterFlag(memberStayStatus.getStatus());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.sv.service.common;
|
||||
|
||||
import com.enums.BarCodeStatusEnum;
|
||||
import com.enums.EnterEnum;
|
||||
import com.sv.entity.Barcode;
|
||||
import com.sv.mapper.BarcodeMapper;
|
||||
import com.sv.netty.utils.MakeCode;
|
||||
import com.ydd.framework.core.service.impl.BaseServiceImpl;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Service - 短信
|
||||
*
|
||||
* @author lh
|
||||
* @since 2018-08-01
|
||||
*/
|
||||
@Service
|
||||
@Transactional
|
||||
public class BarcodeService extends BaseServiceImpl {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(BarcodeService.class);
|
||||
|
||||
@Resource
|
||||
BarcodeMapper barcodeMapper;
|
||||
|
||||
public String newBarcode (String deviceName, EnterEnum enterEnum, Integer venueId, Integer memberId){
|
||||
String barcode = "";
|
||||
Barcode res = barcodeMapper.findBarcode(venueId, memberId);
|
||||
if (res == null) {
|
||||
barcode = MakeCode.makeCode(venueId, memberId, deviceName, enterEnum.getValue() + "");
|
||||
Barcode b = new Barcode();
|
||||
logger.info("用户扫码【" + memberId + "$" + venueId + "】生成二维码为" + barcode);
|
||||
b.setBarcode(barcode);
|
||||
b.setStatus(BarCodeStatusEnum.INIT.getValue());
|
||||
b.setMemberId(memberId);
|
||||
b.setVenueId(venueId);
|
||||
b.setEnter(enterEnum.getValue());
|
||||
barcodeMapper.insert(b);
|
||||
}else {
|
||||
barcode = res.getBarcode();
|
||||
}
|
||||
return barcode;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user