超市
This commit is contained in:
		| @ -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") | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
| @ -90,11 +90,11 @@ public class AppStoreController { | ||||
|         StoreResult<String> 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<StoreGoodsDO> goodsDOS = storeGoodsService.getAll(null); | ||||
|         List<StoreGoodsDO> goodsDOS = storeGoodsService.getAll(goodsIds); | ||||
|         List<StoreGoodsTypeDO> goodsTypeDOS = goodsTypeService.getAll(); | ||||
|         List<StoreGoodsListVo> goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class); | ||||
|         List<StoreGoodsTypeListVo> 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; | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -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 | ||||
|      */ | ||||
|  | ||||
| @ -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 | ||||
|      */ | ||||
|  | ||||
| @ -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<StoreGoodsDO>().in(StoreGoodsDO::getGoodId, goodsIds)); | ||||
|             return storeGoodsMapper.selectList(new LambdaQueryWrapper<StoreGoodsDO>().in(StoreGoodsDO::getGoodsId, goodsIds)); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|  | ||||
| @ -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); | ||||
| } | ||||
| @ -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"; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 zengtao01
					zengtao01