返回用户信息

This commit is contained in:
zhuer
2024-04-10 16:27:06 +08:00
parent 8395ea0bcb
commit beb3701224
5 changed files with 103 additions and 27 deletions

View File

@ -42,6 +42,46 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
public class CardController {
//
// // 写一个示例将一条数据插入redis
// @Resource
// private RedisTemplate<String, Object> redisTemplate;
//
// @PostMapping("/weighingAddInfo")
// @Operation(summary = "称重信息入口")
// public void weighingAddInfo(@RequestBody RobotReqVO reqVO) {
//// 生成一个redis对象并且插入数据
// redisTemplate.opsForValue().set(reqVO.getIp(), reqVO);
// }
//
// @GetMapping("/weighingGetInfo")
// @Operation(summary = "获取称重相关信息")
// public CommonResult<Object> weighingGetInfo(@RequestParam String ip) {
//// 生成一个redis对象并且插入数据
//// redisTemplate.opsForValue().get(ip);
// return success(redisTemplate.opsForValue().get(ip));
// }
//
// @GetMapping("/plateGetInfo")
// @Operation(summary = "获取盘子信息")
// public CommonResult<Object> plateGetInfo(@RequestParam String ip) {
//// 生成一个redis对象并且插入数据
// return success(redisTemplate.opsForValue().get(ip));
// }
//
// @PostMapping("/plateAddInfo")
// @Operation(summary = "盘子信息入口")
// public void plateAddInfo(@RequestBody RobotReqVO reqVO) {
//// 生成一个redis对象并且插入数据
// redisTemplate.opsForValue().set(reqVO.getIp(), reqVO);
// }
// 创建一个websocket链接
@Resource
private CardService cardService;

View File

@ -0,0 +1,24 @@
package cn.iocoder.yudao.module.member.controller.app.user.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @author zt
* @description <description class purpose>
* @since 2024/3/29
*/
@Data
public class AppUserInfoCardVO {
@Schema(description = "余额", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal Money;
@Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED)
private String name;
}

View File

@ -67,8 +67,8 @@ public class BalanceDeductionJob implements JobHandler {
List<CardDO> list = new ArrayList<>();
toPay.forEach(dishOrderDO -> {
//新的总价
// BigDecimal total = new BigDecimal(stringRedisTemplate.opsForValue().get(dishOrderDO.getDiningPlatesNum()));
BigDecimal total = new BigDecimal(0.01);
BigDecimal total = new BigDecimal(stringRedisTemplate.opsForValue().get(dishOrderDO.getDiningPlatesNum()));
// BigDecimal total = new BigDecimal(0.01);
Long userId = dishOrderDO.getUserId();
CardDO cardDO = new CardDO();
cardDO.setType(TimePeriodEnum.getTimePeriod(LocalDateTime.now()));

View File

@ -3,7 +3,9 @@ package cn.iocoder.yudao.module.member.service.diningplates;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesSaveReqVO;
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO;
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import javax.validation.Valid;
import java.util.List;
@ -80,9 +82,9 @@ public interface DiningPlatesService {
* 绑定
* @return
*/
Boolean bind(String diningPlatesNum,String cardId);
AppUserInfoCardVO bind(String diningPlatesNum,String cardId);
Boolean bindByFace(String diningPlatesNum,Long faceId);
AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId);
Boolean checkBind(String diningPlatesNum);
}

View File

@ -6,12 +6,14 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesSaveReqVO;
import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO;
import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO;
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.dal.mysql.diningplates.DiningPlatesMapper;
import cn.iocoder.yudao.module.member.dal.mysql.order.DishOrderMapper;
import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
import cn.iocoder.yudao.module.member.service.card.CardService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.data.redis.core.StringRedisTemplate;
@ -38,6 +40,8 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
@Resource
private DiningPlatesMapper diningPlatesMapper;
@Resource
private CardService cardService;
@Resource
private MemberUserMapper memberUserMapper;
@Resource
private DishOrderMapper dishOrderMapper;
@ -104,20 +108,20 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
}
@Override
public void updatePayFlag(List<Long> ids,String payStatus) {
public void updatePayFlag(List<Long> ids, String payStatus) {
diningPlatesMapper.update(Wrappers.<DiningPlatesDO>lambdaUpdate()
.set(DiningPlatesDO::getPayFlag,DiningPlatesDO.PAY)
.in(DiningPlatesDO::getId,ids));
.set(DiningPlatesDO::getPayFlag, DiningPlatesDO.PAY)
.in(DiningPlatesDO::getId, ids));
}
@Override
public void updateBind(List<Long> ids) {
diningPlatesMapper.update(Wrappers.<DiningPlatesDO>lambdaUpdate()
.set(DiningPlatesDO::getPayFlag,DiningPlatesDO.TO_PAY)
.set(DiningPlatesDO::getStatus,DiningPlatesDO.FREE)
.set(DiningPlatesDO::getUserId,null)
.set(DiningPlatesDO::getBindingTime,null)
.in(DiningPlatesDO::getId,ids));
.set(DiningPlatesDO::getPayFlag, DiningPlatesDO.TO_PAY)
.set(DiningPlatesDO::getStatus, DiningPlatesDO.FREE)
.set(DiningPlatesDO::getUserId, null)
.set(DiningPlatesDO::getBindingTime, null)
.in(DiningPlatesDO::getId, ids));
}
@Override
@ -127,18 +131,18 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean bind(String diningPlatesNum,String cardId) {
public AppUserInfoCardVO bind(String diningPlatesNum, String cardId) {
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
.last("limit 1"));
if(diningPlatesDO.getUserId()!=null){
throw new ServiceException(20001,"餐盘已被绑定");
if (diningPlatesDO.getUserId() != null) {
throw new ServiceException(20001, "餐盘已被绑定");
}
MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery()
.eq(MemberUserDO::getCardId, cardId)
.last("limit 1"));
if(StrUtil.isBlank(memberUserDO.getCardId())){
throw new ServiceException(20002,"请先绑定餐卡");
if (StrUtil.isBlank(memberUserDO.getCardId())) {
throw new ServiceException(20002, "请先绑定餐卡");
}
diningPlatesDO.setUserId(memberUserDO.getId());
diningPlatesDO.setStatus(DiningPlatesDO.USE);
@ -153,23 +157,26 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
dishOrderMapper.insert(dishOrderDO);
//设置总价
stringRedisTemplate.opsForValue().set(diningPlatesNum,"0");
return i>0;
stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
AppUserInfoCardVO data = new AppUserInfoCardVO();
data.setName(memberUserDO.getNickname());
data.setMoney(cardService.getMoneyByUserId(memberUserDO.getId()));
return data;
}
@Override
public Boolean bindByFace(String diningPlatesNum, Long faceId) {
public AppUserInfoCardVO bindByFace(String diningPlatesNum, Long faceId) {
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
.last("limit 1"));
if(diningPlatesDO.getUserId()!=null){
throw new ServiceException(20001,"餐盘已被绑定");
if (diningPlatesDO.getUserId() != null) {
throw new ServiceException(20001, "餐盘已被绑定");
}
MemberUserDO memberUserDO = memberUserMapper.selectOne(Wrappers.<MemberUserDO>lambdaQuery()
.eq(MemberUserDO::getFaceId, faceId)
.last("limit 1"));
if(StrUtil.isBlank(memberUserDO.getCardId())){
throw new ServiceException(20002,"请先绑定餐卡");
if (StrUtil.isBlank(memberUserDO.getCardId())) {
throw new ServiceException(20002, "请先绑定餐卡");
}
diningPlatesDO.setUserId(memberUserDO.getId());
diningPlatesDO.setStatus(DiningPlatesDO.USE);
@ -184,8 +191,11 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
dishOrderMapper.insert(dishOrderDO);
//设置总价
stringRedisTemplate.opsForValue().set(diningPlatesNum,"0");
return i>0;
stringRedisTemplate.opsForValue().set(diningPlatesNum, "0");
AppUserInfoCardVO data = new AppUserInfoCardVO();
data.setName(memberUserDO.getNickname());
data.setMoney(cardService.getMoneyByUserId(memberUserDO.getId()));
return data;
}
@Override
@ -193,7 +203,7 @@ public class DiningPlatesServiceImpl implements DiningPlatesService {
DiningPlatesDO diningPlatesDO = diningPlatesMapper.selectOne(Wrappers.<DiningPlatesDO>lambdaQuery()
.eq(DiningPlatesDO::getDiningPlatesNum, diningPlatesNum)
.last("limit 1"));
if(diningPlatesDO==null || diningPlatesDO.getUserId()==null){
if (diningPlatesDO == null || diningPlatesDO.getUserId() == null) {
return false;
}
return true;