From cfce1b121f017a3fa93baeb686fe04509ddfd2dc Mon Sep 17 00:00:00 2001 From: seesaw Date: Wed, 30 Oct 2024 17:41:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storegoods/AppStoreGoodsController.java | 40 +++++++++++++++++++ .../storeorder/StoreOrderServiceImpl.java | 6 +++ .../deviceinfo/DeviceInfoServiceImpl.java | 38 +++++++++++++++++- 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java new file mode 100644 index 00000000..abbfac5d --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.member.controller.app.storegoods; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; +import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsRespVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; +import cn.iocoder.yudao.module.member.service.storegoods.StoreGoodsService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; + +@Tag(name = "管理后台 - 商品") +@RestController +@RequestMapping("/member/store-goods") +@Validated +public class AppStoreGoodsController { + + @Resource + private StoreGoodsService storeGoodsService; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java index 30d987a1..8fd750a3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderServiceImpl.java @@ -25,6 +25,7 @@ import cn.iocoder.yudao.module.member.service.amount.DeductionService; import cn.iocoder.yudao.module.member.service.card.CardService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.data.redis.core.StringRedisTemplate; @@ -68,6 +69,9 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Resource private DeductionService deductionService; + @Resource + private CashregisterinfoApi cashregisterinfoApi; + @Resource private StringRedisTemplate storeOrderRedisTemplate; @@ -118,12 +122,14 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Transactional(rollbackFor = Exception.class) public StoreOrderDO createOrder(StoreOrderDto dto) { StoreOrderDO storeOrderDO = new StoreOrderDO(); + Long storeId = cashregisterinfoApi.getStoreId(dto.getEquipmentCode()); BeanUtil.copyProperties(dto, storeOrderDO); List equipmentGoodsCustoms = dto.getEquipmentGoodsCustoms(); double sum = equipmentGoodsCustoms.stream() .mapToDouble(StoreGoodsDto::getTotalPrice) .sum(); storeOrderDO.setTotalPrice(sum); + storeOrderDO.setCarteenId(storeId); storeOrderMapper.insert(storeOrderDO); ArrayList detailDOS = new ArrayList<>(); for (StoreGoodsDto storeGoodsDto : equipmentGoodsCustoms) { 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 b5fa2ebc..72b9ba37 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 @@ -6,8 +6,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.system.controller.admin.deviceinfo.vo.DeviceInfoPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.deviceinfo.vo.DeviceInfoSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.cashregisterinfo.CashRegisterInfoDO; 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.cashregisterinfo.CashRegisterInfoMapper; import cn.iocoder.yudao.module.system.dal.mysql.deviceInfo.DeviceInfoMapper; import cn.iocoder.yudao.module.system.dal.mysql.facedeviceinfo.FaceDeviceInfoMapper; import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants; @@ -47,6 +49,9 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { @Resource private FaceDeviceInfoMapper faceDeviceInfoMapper; + @Resource + private CashRegisterInfoMapper cashRegisterInfoMapper; + @Override public Long createDeviceInfo(DeviceInfoSaveReqVO createReqVO) { // 插入 @@ -109,10 +114,14 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { faceDeviceInfoMapper.update(new FaceDeviceInfoDO(),new LambdaUpdateWrapper() .eq(FaceDeviceInfoDO::getMac,deviceSn) .set(FaceDeviceInfoDO::getAlive,"1")); + cashRegisterInfoMapper.update(new CashRegisterInfoDO(),new LambdaUpdateWrapper() + .eq(CashRegisterInfoDO::getEquipmentCode,deviceSn) + .set(CashRegisterInfoDO::getAlive,"1")); } @Override public int updateAlive() { + //称重机 List updateList = new ArrayList<>(); List deviceInfoDOS = deviceInfoMapper.selectList(); List devuceList = deviceInfoDOS.stream().map(DeviceInfoDO::getDeviceIp).collect(Collectors.toList()); @@ -135,7 +144,7 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { .set(DeviceInfoDO::getAlive,"0") .in(DeviceInfoDO::getDeviceIp,updateList)); } - + //人脸 List upList = new ArrayList<>(); List faceDeviceInfoDOS = faceDeviceInfoMapper.selectList(); List macList = faceDeviceInfoDOS.stream().map(FaceDeviceInfoDO::getMac).collect(Collectors.toList()); @@ -159,7 +168,32 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { .in(FaceDeviceInfoDO::getMac,upList)); } - return updateList.size()+upList.size(); + //收银机 + List cashUpList = new ArrayList<>(); + List cashRegisterInfoDOS = cashRegisterInfoMapper.selectList(); + List codes = cashRegisterInfoDOS.stream().map(CashRegisterInfoDO::getEquipmentCode).collect(Collectors.toList()); + for (String code : codes){ + if(StringUtils.isBlank(code)){ + continue; + } + String time = RedisTemplate.opsForValue().get(code); + if(StringUtils.isBlank(code)){ + upList.add(code); + continue; + } + if(System.currentTimeMillis()-Long.valueOf(time)>120000){ + upList.add(code); + } + } + + if(CollectionUtil.isNotEmpty(cashUpList)){ + cashRegisterInfoMapper.update(new CashRegisterInfoDO(),new LambdaUpdateWrapper() + .set(CashRegisterInfoDO::getAlive,"0") + .in(CashRegisterInfoDO::getEquipmentCode,upList)); + } + + + return updateList.size()+upList.size()+cashUpList.size(); } public String getHearder(){