From 5b24efb3efa26e54102479af15dcece1c54a604d Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Sun, 29 Sep 2024 22:44:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AEmac=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppDiningPlatesController.java | 24 ++++++++++++++++++ .../orderdetail/AppOrderDetailController.java | 20 +++++++++++++++ .../system/api/deviceInfo/DeviceInfoApi.java | 2 ++ .../api/deviceInfo/DeviceInfoApiImpl.java | 25 +++++++++++++++++++ .../deviceinfo/DeviceInfoServiceImpl.java | 3 +++ .../service/devuce/DevuceServiceImpl.java | 11 +++++++- 6 files changed, 84 insertions(+), 1 deletion(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java index 0b99d352..dc220141 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/diningplates/AppDiningPlatesController.java @@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.member.controller.app.diningplates.vo.AppUserInfo 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.service.diningplates.DiningPlatesService; +import cn.iocoder.yudao.module.system.api.deviceInfo.DeviceInfoApi; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; @@ -18,9 +19,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import java.util.List; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "用户 App - 餐盘") @@ -32,6 +35,11 @@ public class AppDiningPlatesController { @Resource private DiningPlatesService diningPlatesService; + @Resource + private HttpServletRequest httpServletRequest; + + @Resource + private DeviceInfoApi deviceInfoApi; @GetMapping("/list") @Operation(summary = "获得餐盘列表") @@ -55,12 +63,14 @@ public class AppDiningPlatesController { @GetMapping("/checkBind") @Operation(summary = "验证餐盘绑定") public CommonResult checkBind(String diningPlatesNum,Long storeId) { + storeId = getCarteen(); return success(diningPlatesService.appCheckBind(diningPlatesNum,storeId)); } @GetMapping("/unbind") @Operation(summary = "餐盘解绑") public CommonResult unbind(String diningPlatesNum,Long storeId) { + storeId = getCarteen(); diningPlatesService.unbind(diningPlatesNum,storeId); return success(diningPlatesNum); } @@ -68,6 +78,7 @@ public class AppDiningPlatesController { @GetMapping("/getUserAndDish") @Operation(summary = "根据餐盘号获取当前余额") public CommonResult getMoney(String cId, Long dishesId,Long storeId) { + storeId = getCarteen(); return success(diningPlatesService.getMoney(cId,dishesId,storeId)); } @@ -80,6 +91,7 @@ public class AppDiningPlatesController { @GetMapping("/checkBindAndUnBind") @Operation(summary = "餐盘解绑") public CommonResult checkBindAndUnBind(String diningPlatesNum,Long storeId) { + storeId = getCarteen(); String b = diningPlatesService.checkBindAndUnBind(diningPlatesNum, storeId); CommonResult result = new CommonResult<>(); result.setCode(200); @@ -95,4 +107,16 @@ public class AppDiningPlatesController { public CommonResult createDiningPlates(@Valid @RequestBody DiningPlatesSaveReqVO createReqVO) { return success(diningPlatesService.createDiningPlates(createReqVO)); } + + + public Long getCarteen() { + try { + String authorization = httpServletRequest.getHeader("Authorization"); + Long carteen = deviceInfoApi.getCarteen(authorization); + + return carteen; + } catch (Exception e) { + throw exception(2000_10_001, "无法获取设备编码"); + } + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/orderdetail/AppOrderDetailController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/orderdetail/AppOrderDetailController.java index 4deed541..aa57d809 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/orderdetail/AppOrderDetailController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/orderdetail/AppOrderDetailController.java @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.member.controller.app.orderdetail.vo.AppOrderDeta import cn.iocoder.yudao.module.member.controller.app.orderdetail.vo.AppOrderDetailSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.orderdetail.OrderDetailDO; import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService; +import cn.iocoder.yudao.module.system.api.deviceInfo.DeviceInfoApi; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -26,11 +27,13 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.util.List; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -43,9 +46,16 @@ public class AppOrderDetailController { @Resource private OrderDetailService orderDetailService; + @Resource + private HttpServletRequest httpServletRequest; + + @Resource + private DeviceInfoApi deviceInfoApi; + @PostMapping("/create") @Operation(summary = "创建订单明细") public CommonResult createOrderDetail(@Valid @RequestBody AppOrderDetailSaveReqVO createReqVO) { + createReqVO.setStoreId(getCarteen()); return success(orderDetailService.createOrderDetail(createReqVO)); } @@ -95,4 +105,14 @@ public class AppOrderDetailController { BeanUtils.toBean(list, OrderDetailRespVO.class)); } + public Long getCarteen() { + try { + String authorization = httpServletRequest.getHeader("Authorization"); + Long carteen = deviceInfoApi.getCarteen(authorization); + + return carteen; + } catch (Exception e) { + throw exception(2000_10_001, "无法获取设备编码"); + } + } } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApi.java index f8f5d04d..4f45ee20 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApi.java @@ -21,4 +21,6 @@ public interface DeviceInfoApi { DeviceInfoDto getDevice(String deviceIp); List getDevice(); + + Long getCarteen(String mac); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApiImpl.java index ddc69dad..cff4ed08 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/deviceInfo/DeviceInfoApiImpl.java @@ -1,10 +1,14 @@ package cn.iocoder.yudao.module.system.api.deviceInfo; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.api.deviceInfo.dto.DeviceInfoDto; import cn.iocoder.yudao.module.system.dal.dataobject.deviceInfo.DeviceInfoDO; +import cn.iocoder.yudao.module.system.dal.dataobject.facedeviceinfo.FaceDeviceInfoDO; import cn.iocoder.yudao.module.system.dal.mysql.deviceInfo.DeviceInfoMapper; +import cn.iocoder.yudao.module.system.dal.mysql.facedeviceinfo.FaceDeviceInfoMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -18,6 +22,10 @@ import java.util.List; public class DeviceInfoApiImpl implements DeviceInfoApi { @Resource private DeviceInfoMapper deviceInfoMapper; + + @Resource + private FaceDeviceInfoMapper faceDeviceInfoMapper; + @Override public List getDeviceInfoList(Long carteenId) { return BeanUtils.toBean(deviceInfoMapper.selectList(new LambdaQueryWrapperX() @@ -52,4 +60,21 @@ public class DeviceInfoApiImpl implements DeviceInfoApi { List deviceInfoDOS = deviceInfoMapper.selectList(); return BeanUtils.toBean(deviceInfoDOS,DeviceInfoDto.class); } + + @Override + public Long getCarteen(String mac) { + DeviceInfoDO deviceInfoDO = deviceInfoMapper.selectOne(new LambdaQueryWrapper() + .eq(DeviceInfoDO::getDeviceIp, mac) + .last("limit 1")); + if(ObjectUtil.isNotEmpty(deviceInfoDO)){ + return deviceInfoDO.getCarteenId(); + } + FaceDeviceInfoDO faceDeviceInfoDO = faceDeviceInfoMapper.selectOne(new LambdaQueryWrapper() + .eq(FaceDeviceInfoDO::getMac, mac) + .last("limit 1")); + if(ObjectUtil.isNotEmpty(faceDeviceInfoDO)){ + return faceDeviceInfoDO.getCarteenId(); + } + return null; + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceinfo/DeviceInfoServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceinfo/DeviceInfoServiceImpl.java index 9523c794..cc8a3ae1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceinfo/DeviceInfoServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/deviceinfo/DeviceInfoServiceImpl.java @@ -110,6 +110,9 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { List deviceInfoDOS = deviceInfoMapper.selectList(); List devuceList = deviceInfoDOS.stream().map(DeviceInfoDO::getDeviceIp).collect(Collectors.toList()); for (String deviceSn : devuceList){ + if(StringUtils.isBlank(deviceSn)){ + continue; + } String time = RedisTemplate.opsForValue().get(deviceSn); if(StringUtils.isBlank(time)){ updateList.add(deviceSn); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java index 05bfe097..b2ca45b2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/devuce/DevuceServiceImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.devuce; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -21,6 +22,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.dishes.DishesMapper; import cn.iocoder.yudao.module.system.dal.mysql.dishesnutrition.DishesNutritionMapper; import cn.iocoder.yudao.module.system.dal.mysql.dishestype.DishesTypeMapper; import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; @@ -168,7 +170,14 @@ public class DevuceServiceImpl implements DevuceService { // .eq(DishesDO::getCarteenId,carteenId) // .eq(DishesDO::getDishecType,dishecType)); // }else{ - return dishesMapper.selectList(new LambdaQueryWrapperX() + String mac = this.getHearder(); + DeviceInfoDO deviceInfoDO = deviceInfoMapper.selectOne(new LambdaQueryWrapper() + .eq(DeviceInfoDO::getDeviceIp, mac) + .last("limit 1")); + if(ObjectUtil.isNotEmpty(deviceInfoDO)){ + carteenId = deviceInfoDO.getCarteenId(); + } + return dishesMapper.selectList(new LambdaQueryWrapperX() .eq(DishesDO::getCarteenId,carteenId) .eq(DishesDO::getDishecType,dishecType)); // }