diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/StoreResult.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/StoreResult.java index 2f124a9e..493ff5c8 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/StoreResult.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/pojo/StoreResult.java @@ -1,14 +1,7 @@ package cn.iocoder.yudao.framework.common.pojo; import cn.iocoder.yudao.framework.common.exception.ErrorCode; -import cn.iocoder.yudao.framework.common.exception.ServiceException; -import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; -import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; -import org.springframework.util.Assert; - -import java.io.Serializable; -import java.util.Objects; /** * 通用返回 @@ -23,7 +16,7 @@ public class StoreResult { * * @see ErrorCode#getCode() */ - private String statusCode; + private Integer statusCode; /** * 返回数据 */ @@ -40,7 +33,7 @@ public class StoreResult { public static StoreResult success(T data) { StoreResult result = new StoreResult<>(); - result.statusCode = "200"; + result.statusCode = 200; result.data = data; result.message = "操作成功"; result.success = true; @@ -48,8 +41,8 @@ public class StoreResult { } public static StoreResult fail(String message) { - StoreResult result = new StoreResult<>(); - result.statusCode = "300"; + StoreResult result =new StoreResult<>(); + result.statusCode = 300; result.message = message; result.success = false; return result; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsRespVO.java index db7457c1..b9c4640c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsRespVO.java @@ -1,12 +1,11 @@ package cn.iocoder.yudao.module.member.controller.admin.storegoods.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; +import lombok.Data; + import java.time.LocalDateTime; -import com.alibaba.excel.annotation.*; @Schema(description = "管理后台 - 商品 Response VO") @Data @@ -15,7 +14,7 @@ public class StoreGoodsRespVO { @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32656") @ExcelProperty("编号") - private Integer goodId; + private Integer goodsId; @Schema(description = "类别Id", example = "28357") @ExcelProperty("类别Id") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsSaveReqVO.java index e885b215..c846b0e5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsSaveReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreGoodsSaveReqVO.java @@ -1,16 +1,14 @@ package cn.iocoder.yudao.module.member.controller.admin.storegoods.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; @Schema(description = "管理后台 - 商品新增/修改 Request VO") @Data public class StoreGoodsSaveReqVO { @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32656") - private Integer goodId; + private Integer goodsId; @Schema(description = "类别Id", example = "28357") private Integer categoryId; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java index e2d70488..14369354 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java @@ -90,11 +90,11 @@ public class AppStoreController { StoreResult result = new StoreResult<>(); if (b) { - result.setStatusCode("200"); + result.setStatusCode(200); result.setMessage("操作成功"); result.setSuccess(true); }else{ - result.setStatusCode("300"); + result.setStatusCode(300); result.setSuccess(false); } return JsonUtils.toJsonString(result); @@ -113,7 +113,7 @@ public class AppStoreController { if(CollectionUtil.isEmpty(goodsIds)){ return JsonUtils.toJsonString(goodsResult); } - List goodsDOS = storeGoodsService.getAll(null); + List goodsDOS = storeGoodsService.getAll(goodsIds); List goodsTypeDOS = goodsTypeService.getAll(); List goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class); List categoryData = BeanUtils.toBean(goodsTypeDOS, StoreGoodsTypeListVo.class); @@ -146,11 +146,17 @@ public class AppStoreController { @PostMapping("/mgcr/order/payByCardOrder") @Operation(summary = "添加刷卡订单") public String payByCardOrder(@RequestBody StoreOrderDto dto) { - Boolean b = orderService.cardPay(dto); - if(b){ + String s1 = reverseHexAndConvert(dto.getCardNumber()); + System.out.println(s1); + dto.setCardNumber(s1); + String s = orderService.cardPay(dto); + + if("true".equals(s)){ return JsonUtils.toJsonString(StoreResult.success(null)); - }else { + } else if ("false".equals(s)) { return JsonUtils.toJsonString(StoreResult.fail("余额不足")); + }else { + return JsonUtils.toJsonString(StoreResult.fail(s)); } } @@ -166,4 +172,23 @@ public class AppStoreController { public String heartbeat() { return JsonUtils.toJsonString(StoreResult.success(null)); } + + public String reverseHexAndConvert(String hexStr) { + // 将十六进制字符串反转,每两位一组 + StringBuilder reversedHex = new StringBuilder(); + for (int i = 0; i < hexStr.length(); i += 2) { + reversedHex.insert(0, hexStr.substring(i, i + 2)); + } + + // 将反转后的十六进制字符串转换为十进制 + long decimalNumber = Long.parseLong(reversedHex.toString(), 16); + + // 将十进制数转换为字符串,并确保它有10位,不足的前面补零 + String decimalStr = String.valueOf(decimalNumber); + while (decimalStr.length() < 10) { + decimalStr = "0" + decimalStr; + } + + return decimalStr; + } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java index ab8911e2..46de2d1d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java @@ -1,12 +1,11 @@ package cn.iocoder.yudao.module.member.controller.app.store.vo; -import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; @Data public class StoreGoodsListVo { - private Integer goodId; + private Integer goodsId; /** * 类别Id */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storegoods/StoreGoodsDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storegoods/StoreGoodsDO.java index 3e591c29..d50717ab 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storegoods/StoreGoodsDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/storegoods/StoreGoodsDO.java @@ -1,11 +1,15 @@ package cn.iocoder.yudao.module.member.dal.dataobject.storegoods; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; /** * 商品 DO @@ -26,7 +30,7 @@ public class StoreGoodsDO extends BaseDO { * 编号 */ @TableId - private Integer goodId; + private Integer goodsId; /** * 类别Id */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java index 2f34d0c3..8e235ec7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoods/StoreGoodsServiceImpl.java @@ -1,23 +1,21 @@ package cn.iocoder.yudao.module.member.service.storegoods; import cn.hutool.core.collection.CollectionUtil; +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.storegoods.vo.StoreGoodsPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; +import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; -import java.util.*; -import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - -import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper; +import javax.annotation.Resource; +import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_NOT_EXISTS; /** * 商品 Service 实现类 @@ -37,13 +35,13 @@ public class StoreGoodsServiceImpl implements StoreGoodsService { StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class); storeGoodsMapper.insert(storeGoods); // 返回 - return storeGoods.getGoodId(); + return storeGoods.getGoodsId(); } @Override public void updateStoreGoods(StoreGoodsSaveReqVO updateReqVO) { // 校验存在 - validateStoreGoodsExists(updateReqVO.getGoodId()); + validateStoreGoodsExists(updateReqVO.getGoodsId()); // 更新 StoreGoodsDO updateObj = BeanUtils.toBean(updateReqVO, StoreGoodsDO.class); storeGoodsMapper.updateById(updateObj); @@ -78,7 +76,7 @@ public class StoreGoodsServiceImpl implements StoreGoodsService { if (CollectionUtil.isEmpty(goodsIds)) { return storeGoodsMapper.selectList(); }else { - return storeGoodsMapper.selectList(new LambdaQueryWrapper().in(StoreGoodsDO::getGoodId, goodsIds)); + return storeGoodsMapper.selectList(new LambdaQueryWrapper().in(StoreGoodsDO::getGoodsId, goodsIds)); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java index e5844b13..3b07db00 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeorder/StoreOrderService.java @@ -1,16 +1,15 @@ package cn.iocoder.yudao.module.member.service.storeorder; -import java.util.*; -import javax.validation.*; -import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; import cn.iocoder.yudao.module.member.controller.app.store.dto.FacePayDto; import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderDto; import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderUploadDto; import cn.iocoder.yudao.module.member.controller.app.store.vo.UserInfoVo; import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; /** * 商品订单 Service 接口 @@ -61,7 +60,7 @@ public interface StoreOrderService { UserInfoVo facePay(FacePayDto dto); - Boolean cardPay(StoreOrderDto dto); + String cardPay(StoreOrderDto dto); void batchCacheOrder(StoreOrderUploadDto dto); } \ 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 de018c5e..0801e30c 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 @@ -1,48 +1,40 @@ package cn.iocoder.yudao.module.member.service.storeorder; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.math.Money; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.framework.common.exception.ServiceException; -import cn.iocoder.yudao.module.member.controller.app.store.dto.*; +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.storeorder.vo.StoreOrderPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; +import cn.iocoder.yudao.module.member.controller.app.store.dto.FacePayDto; +import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreGoodsDto; +import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreLocalOrderDto; +import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderDto; +import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderUploadDto; import cn.iocoder.yudao.module.member.controller.app.store.vo.UserInfoVo; import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO; -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.storeorder.StoreOrderDO; import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; -import cn.iocoder.yudao.module.member.dal.mysql.card.CardMapper; +import cn.iocoder.yudao.module.member.dal.mysql.storeorder.StoreOrderMapper; import cn.iocoder.yudao.module.member.enums.CostTypeEnum; -import cn.iocoder.yudao.module.member.enums.TimePeriodEnum; 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 com.sun.org.apache.regexp.internal.RE; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; - -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.stream.Collectors; - -import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - -import cn.iocoder.yudao.module.member.dal.mysql.storeorder.StoreOrderMapper; +import java.util.ArrayList; +import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_ORDER_NOT_EXISTS; /** * 商品订单 Service 实现类 @@ -147,18 +139,18 @@ public class StoreOrderServiceImpl implements StoreOrderService { @Override @Transactional(rollbackFor = Exception.class) - public Boolean cardPay(StoreOrderDto dto) { + public String cardPay(StoreOrderDto dto) { Double totalPrice = createOrder(dto).getTotalPrice(); BigDecimal total = BigDecimal.valueOf(totalPrice).setScale(2, RoundingMode.HALF_UP); MemberUserDO userDO = userService.getByCardId(dto.getCardNumber()); if (ObjectUtil.isEmpty(userDO)){ - throw new ServiceException(CARD_NOT_BIND_USER); + return "该卡未绑定用户"; } BigDecimal compute = compute(total, userDO.getId()); if (compute.compareTo(BigDecimal.ZERO) < 0) { - return false; + return "false"; } else { - return true; + return "true"; } } 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 6c3c3ec3..9523c794 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 @@ -130,6 +130,9 @@ public class DeviceInfoServiceImpl implements DeviceInfoService { List faceDeviceInfoDOS = faceDeviceInfoMapper.selectList(); List macList = faceDeviceInfoDOS.stream().map(FaceDeviceInfoDO::getMac).collect(Collectors.toList()); for (String deviceSn : macList){ + if(StringUtils.isBlank(deviceSn)){ + continue; + } String time = RedisTemplate.opsForValue().get(deviceSn); if(StringUtils.isBlank(time)){ upList.add(deviceSn); diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 542dffa6..009291b1 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -12,8 +12,8 @@ spring: servlet: # 文件上传相关配置项 multipart: - max-file-size: 20MB # 单个文件大小 - max-request-size: 40MB # 设置总上传的文件大小 + max-file-size: 200MB # 单个文件大小 + max-request-size: 400MB # 设置总上传的文件大小 mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类