优化
This commit is contained in:
@ -50,7 +50,7 @@ public class AppDiningPlatesController {
|
||||
@GetMapping("/checkBind")
|
||||
@Operation(summary = "验证餐盘绑定")
|
||||
public CommonResult<AppUserInfoCardVO> checkBind(String diningPlatesNum) {
|
||||
return success(diningPlatesService.aPPCheckBind(diningPlatesNum));
|
||||
return success(diningPlatesService.appCheckBind(diningPlatesNum));
|
||||
}
|
||||
|
||||
}
|
@ -87,5 +87,5 @@ public interface DiningPlatesService {
|
||||
|
||||
Boolean checkBind(String diningPlatesNum);
|
||||
|
||||
AppUserInfoCardVO aPPCheckBind(String diningPlatesNum);
|
||||
AppUserInfoCardVO appCheckBind(String diningPlatesNum);
|
||||
}
|
@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@ -139,38 +140,11 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
|
||||
MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery()
|
||||
.eq(MemberUserDO::getCardId, cardId)
|
||||
.last("limit 1"));
|
||||
checkMemberUser(memberUserDO);
|
||||
diningPlatesDO.setUserId(memberUserDO.getId());
|
||||
diningPlatesDO.setStatus(DiningPlatesDO.USE);
|
||||
diningPlatesDO.setBindingTime(LocalDateTime.now());
|
||||
int i = diningPlatesMapper.updateById(diningPlatesDO);
|
||||
checkMemberUser(memberUserDO,false);
|
||||
//余额验证
|
||||
BigDecimal money = cardService.getMoneyByUserId(memberUserDO.getId());
|
||||
checkMoney(money);
|
||||
|
||||
//创建初始订单
|
||||
DishOrderDO dishOrderDO = new DishOrderDO();
|
||||
dishOrderDO.setDiningPlatesNum(diningPlatesNum);
|
||||
dishOrderDO.setOrderStatus(DishOrderDO.INCOMPLETE);
|
||||
dishOrderDO.setUserId(memberUserDO.getId());
|
||||
dishOrderMapper.insert(dishOrderDO);
|
||||
|
||||
//设置总价
|
||||
stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
|
||||
AppUserInfoCardVO data = new AppUserInfoCardVO();
|
||||
data.setName(memberUserDO.getNickname());
|
||||
data.setMoney(cardService.getMoneyByUserId(memberUserDO.getId()));
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId) {
|
||||
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
|
||||
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
|
||||
.last("limit 1"));
|
||||
checkDiningPlates(diningPlatesDO);
|
||||
MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery()
|
||||
.eq(MemberUserDO::getFaceId, faceId)
|
||||
.last("limit 1"));
|
||||
checkMemberUser(memberUserDO);
|
||||
diningPlatesDO.setUserId(memberUserDO.getId());
|
||||
diningPlatesDO.setStatus(DiningPlatesDO.USE);
|
||||
diningPlatesDO.setBindingTime(LocalDateTime.now());
|
||||
@ -187,7 +161,42 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
|
||||
stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
|
||||
AppUserInfoCardVO data = new AppUserInfoCardVO();
|
||||
data.setName(memberUserDO.getNickname());
|
||||
data.setMoney(cardService.getMoneyByUserId(memberUserDO.getId()));
|
||||
data.setMoney(money);
|
||||
return data;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId) {
|
||||
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
|
||||
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
|
||||
.last("limit 1"));
|
||||
checkDiningPlates(diningPlatesDO);
|
||||
MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery()
|
||||
.eq(MemberUserDO::getFaceId, faceId)
|
||||
.last("limit 1"));
|
||||
checkMemberUser(memberUserDO,true);
|
||||
//余额验证
|
||||
BigDecimal money = cardService.getMoneyByUserId(memberUserDO.getId());
|
||||
checkMoney(money);
|
||||
|
||||
diningPlatesDO.setUserId(memberUserDO.getId());
|
||||
diningPlatesDO.setStatus(DiningPlatesDO.USE);
|
||||
diningPlatesDO.setBindingTime(LocalDateTime.now());
|
||||
diningPlatesMapper.updateById(diningPlatesDO);
|
||||
|
||||
//创建初始订单
|
||||
DishOrderDO dishOrderDO = new DishOrderDO();
|
||||
dishOrderDO.setDiningPlatesNum(diningPlatesNum);
|
||||
dishOrderDO.setOrderStatus(DishOrderDO.INCOMPLETE);
|
||||
dishOrderDO.setUserId(memberUserDO.getId());
|
||||
dishOrderMapper.insert(dishOrderDO);
|
||||
|
||||
//设置总价
|
||||
stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
|
||||
AppUserInfoCardVO data = new AppUserInfoCardVO();
|
||||
data.setName(memberUserDO.getNickname());
|
||||
data.setMoney(money);
|
||||
return data;
|
||||
}
|
||||
@Override
|
||||
@ -201,7 +210,7 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public AppUserInfoCardVO aPPCheckBind(String diningPlatesNum) {
|
||||
public AppUserInfoCardVO appCheckBind(String diningPlatesNum) {
|
||||
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
|
||||
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
|
||||
.last("limit 1"));
|
||||
@ -226,12 +235,22 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
|
||||
}
|
||||
}
|
||||
|
||||
public void checkMemberUser(MemberUserDO memberUserDO) {
|
||||
if(memberUserDO == null){
|
||||
throw new ServiceException(20005, "该人脸未绑定用户");
|
||||
public void checkMemberUser(MemberUserDO memberUserDo,Boolean isFace) {
|
||||
if(memberUserDo == null){
|
||||
if (isFace){
|
||||
throw new ServiceException(20005, "该人脸未绑定用户");
|
||||
}else {
|
||||
throw new ServiceException(20006, "该卡未绑定用户");
|
||||
}
|
||||
}
|
||||
if (StrUtil.isBlank(memberUserDO.getCardId())) {
|
||||
if (StrUtil.isBlank(memberUserDo.getCardId())) {
|
||||
throw new ServiceException(20002, "请先绑定餐卡");
|
||||
}
|
||||
}
|
||||
|
||||
public void checkMoney(BigDecimal money) {
|
||||
if (money.compareTo(new BigDecimal("30")) < 0) {
|
||||
throw new ServiceException(20007, "余额不足30元,请充值");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user