This commit is contained in:
zengtao01
2024-04-11 16:29:19 +08:00
parent 17f4e5ee78
commit 45f0373541
3 changed files with 58 additions and 39 deletions

View File

@ -50,7 +50,7 @@ public class AppDiningPlatesController {
@GetMapping("/checkBind") @GetMapping("/checkBind")
@Operation(summary = "验证餐盘绑定") @Operation(summary = "验证餐盘绑定")
public CommonResult<AppUserInfoCardVO> checkBind(String diningPlatesNum) { public CommonResult<AppUserInfoCardVO> checkBind(String diningPlatesNum) {
return success(diningPlatesService.aPPCheckBind(diningPlatesNum)); return success(diningPlatesService.appCheckBind(diningPlatesNum));
} }
} }

View File

@ -87,5 +87,5 @@ public interface DiningPlatesService {
Boolean checkBind(String diningPlatesNum); Boolean checkBind(String diningPlatesNum);
AppUserInfoCardVO aPPCheckBind(String diningPlatesNum); AppUserInfoCardVO appCheckBind(String diningPlatesNum);
} }

View File

@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@ -139,38 +140,11 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery() MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery()
.eq(MemberUserDO::getCardId, cardId) .eq(MemberUserDO::getCardId, cardId)
.last("limit 1")); .last("limit 1"));
checkMemberUser(memberUserDO); checkMemberUser(memberUserDO,false);
diningPlatesDO.setUserId(memberUserDO.getId()); //余额验证
diningPlatesDO.setStatus(DiningPlatesDO.USE); BigDecimal money = cardService.getMoneyByUserId(memberUserDO.getId());
diningPlatesDO.setBindingTime(LocalDateTime.now()); checkMoney(money);
int i = 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(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.setUserId(memberUserDO.getId());
diningPlatesDO.setStatus(DiningPlatesDO.USE); diningPlatesDO.setStatus(DiningPlatesDO.USE);
diningPlatesDO.setBindingTime(LocalDateTime.now()); diningPlatesDO.setBindingTime(LocalDateTime.now());
@ -187,7 +161,42 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
stringRedisTemplate.opsForValue().set(diningPlatesNum, "0"); stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
AppUserInfoCardVO data = new AppUserInfoCardVO(); AppUserInfoCardVO data = new AppUserInfoCardVO();
data.setName(memberUserDO.getNickname()); 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; return data;
} }
@Override @Override
@ -201,7 +210,7 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
return true; return true;
} }
@Override @Override
public AppUserInfoCardVO aPPCheckBind(String diningPlatesNum) { public AppUserInfoCardVO appCheckBind(String diningPlatesNum) {
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery() DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum) .eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
.last("limit 1")); .last("limit 1"));
@ -226,12 +235,22 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
} }
} }
public void checkMemberUser(MemberUserDO memberUserDO) { public void checkMemberUser(MemberUserDO memberUserDo,Boolean isFace) {
if(memberUserDO == null){ if(memberUserDo == null){
if (isFace){
throw new ServiceException(20005, "该人脸未绑定用户"); throw new ServiceException(20005, "该人脸未绑定用户");
}else {
throw new ServiceException(20006, "该卡未绑定用户");
} }
if (StrUtil.isBlank(memberUserDO.getCardId())) { }
if (StrUtil.isBlank(memberUserDo.getCardId())) {
throw new ServiceException(20002, "请先绑定餐卡"); throw new ServiceException(20002, "请先绑定餐卡");
} }
} }
public void checkMoney(BigDecimal money) {
if (money.compareTo(new BigDecimal("30")) < 0) {
throw new ServiceException(20007, "余额不足30元,请充值");
}
}
} }