超市
This commit is contained in:
@ -1,14 +1,7 @@
|
|||||||
package cn.iocoder.yudao.framework.common.pojo;
|
package cn.iocoder.yudao.framework.common.pojo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
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 lombok.Data;
|
||||||
import org.springframework.util.Assert;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用返回
|
* 通用返回
|
||||||
@ -23,7 +16,7 @@ public class StoreResult<T> {
|
|||||||
*
|
*
|
||||||
* @see ErrorCode#getCode()
|
* @see ErrorCode#getCode()
|
||||||
*/
|
*/
|
||||||
private String statusCode;
|
private Integer statusCode;
|
||||||
/**
|
/**
|
||||||
* 返回数据
|
* 返回数据
|
||||||
*/
|
*/
|
||||||
@ -40,7 +33,7 @@ public class StoreResult<T> {
|
|||||||
|
|
||||||
public static <T> StoreResult<T> success(T data) {
|
public static <T> StoreResult<T> success(T data) {
|
||||||
StoreResult<T> result = new StoreResult<>();
|
StoreResult<T> result = new StoreResult<>();
|
||||||
result.statusCode = "200";
|
result.statusCode = 200;
|
||||||
result.data = data;
|
result.data = data;
|
||||||
result.message = "操作成功";
|
result.message = "操作成功";
|
||||||
result.success = true;
|
result.success = true;
|
||||||
@ -48,8 +41,8 @@ public class StoreResult<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static <T> StoreResult<T> fail(String message) {
|
public static <T> StoreResult<T> fail(String message) {
|
||||||
StoreResult<T> result = new StoreResult<>();
|
StoreResult<T> result =new StoreResult<>();
|
||||||
result.statusCode = "300";
|
result.statusCode = 300;
|
||||||
result.message = message;
|
result.message = message;
|
||||||
result.success = false;
|
result.success = false;
|
||||||
return result;
|
return result;
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.storegoods.vo;
|
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 io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
import java.util.*;
|
|
||||||
import java.util.*;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import com.alibaba.excel.annotation.*;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 商品 Response VO")
|
@Schema(description = "管理后台 - 商品 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@ -15,7 +14,7 @@ public class StoreGoodsRespVO {
|
|||||||
|
|
||||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32656")
|
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32656")
|
||||||
@ExcelProperty("编号")
|
@ExcelProperty("编号")
|
||||||
private Integer goodId;
|
private Integer goodsId;
|
||||||
|
|
||||||
@Schema(description = "类别Id", example = "28357")
|
@Schema(description = "类别Id", example = "28357")
|
||||||
@ExcelProperty("类别Id")
|
@ExcelProperty("类别Id")
|
||||||
|
@ -1,16 +1,14 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.storegoods.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.storegoods.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
import java.util.*;
|
|
||||||
import javax.validation.constraints.*;
|
|
||||||
|
|
||||||
@Schema(description = "管理后台 - 商品新增/修改 Request VO")
|
@Schema(description = "管理后台 - 商品新增/修改 Request VO")
|
||||||
@Data
|
@Data
|
||||||
public class StoreGoodsSaveReqVO {
|
public class StoreGoodsSaveReqVO {
|
||||||
|
|
||||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32656")
|
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32656")
|
||||||
private Integer goodId;
|
private Integer goodsId;
|
||||||
|
|
||||||
@Schema(description = "类别Id", example = "28357")
|
@Schema(description = "类别Id", example = "28357")
|
||||||
private Integer categoryId;
|
private Integer categoryId;
|
||||||
|
@ -90,11 +90,11 @@ public class AppStoreController {
|
|||||||
StoreResult<String> result = new StoreResult<>();
|
StoreResult<String> result = new StoreResult<>();
|
||||||
|
|
||||||
if (b) {
|
if (b) {
|
||||||
result.setStatusCode("200");
|
result.setStatusCode(200);
|
||||||
result.setMessage("操作成功");
|
result.setMessage("操作成功");
|
||||||
result.setSuccess(true);
|
result.setSuccess(true);
|
||||||
}else{
|
}else{
|
||||||
result.setStatusCode("300");
|
result.setStatusCode(300);
|
||||||
result.setSuccess(false);
|
result.setSuccess(false);
|
||||||
}
|
}
|
||||||
return JsonUtils.toJsonString(result);
|
return JsonUtils.toJsonString(result);
|
||||||
@ -113,7 +113,7 @@ public class AppStoreController {
|
|||||||
if(CollectionUtil.isEmpty(goodsIds)){
|
if(CollectionUtil.isEmpty(goodsIds)){
|
||||||
return JsonUtils.toJsonString(goodsResult);
|
return JsonUtils.toJsonString(goodsResult);
|
||||||
}
|
}
|
||||||
List<StoreGoodsDO> goodsDOS = storeGoodsService.getAll(null);
|
List<StoreGoodsDO> goodsDOS = storeGoodsService.getAll(goodsIds);
|
||||||
List<StoreGoodsTypeDO> goodsTypeDOS = goodsTypeService.getAll();
|
List<StoreGoodsTypeDO> goodsTypeDOS = goodsTypeService.getAll();
|
||||||
List<StoreGoodsListVo> goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class);
|
List<StoreGoodsListVo> goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class);
|
||||||
List<StoreGoodsTypeListVo> categoryData = BeanUtils.toBean(goodsTypeDOS, StoreGoodsTypeListVo.class);
|
List<StoreGoodsTypeListVo> categoryData = BeanUtils.toBean(goodsTypeDOS, StoreGoodsTypeListVo.class);
|
||||||
@ -146,11 +146,17 @@ public class AppStoreController {
|
|||||||
@PostMapping("/mgcr/order/payByCardOrder")
|
@PostMapping("/mgcr/order/payByCardOrder")
|
||||||
@Operation(summary = "添加刷卡订单")
|
@Operation(summary = "添加刷卡订单")
|
||||||
public String payByCardOrder(@RequestBody StoreOrderDto dto) {
|
public String payByCardOrder(@RequestBody StoreOrderDto dto) {
|
||||||
Boolean b = orderService.cardPay(dto);
|
String s1 = reverseHexAndConvert(dto.getCardNumber());
|
||||||
if(b){
|
System.out.println(s1);
|
||||||
|
dto.setCardNumber(s1);
|
||||||
|
String s = orderService.cardPay(dto);
|
||||||
|
|
||||||
|
if("true".equals(s)){
|
||||||
return JsonUtils.toJsonString(StoreResult.success(null));
|
return JsonUtils.toJsonString(StoreResult.success(null));
|
||||||
}else {
|
} else if ("false".equals(s)) {
|
||||||
return JsonUtils.toJsonString(StoreResult.fail("余额不足"));
|
return JsonUtils.toJsonString(StoreResult.fail("余额不足"));
|
||||||
|
}else {
|
||||||
|
return JsonUtils.toJsonString(StoreResult.fail(s));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,4 +172,23 @@ public class AppStoreController {
|
|||||||
public String heartbeat() {
|
public String heartbeat() {
|
||||||
return JsonUtils.toJsonString(StoreResult.success(null));
|
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;
|
package cn.iocoder.yudao.module.member.controller.app.store.vo;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class StoreGoodsListVo {
|
public class StoreGoodsListVo {
|
||||||
|
|
||||||
private Integer goodId;
|
private Integer goodsId;
|
||||||
/**
|
/**
|
||||||
* 类别Id
|
* 类别Id
|
||||||
*/
|
*/
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
package cn.iocoder.yudao.module.member.dal.dataobject.storegoods;
|
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 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
|
* 商品 DO
|
||||||
@ -26,7 +30,7 @@ public class StoreGoodsDO extends BaseDO {
|
|||||||
* 编号
|
* 编号
|
||||||
*/
|
*/
|
||||||
@TableId
|
@TableId
|
||||||
private Integer goodId;
|
private Integer goodsId;
|
||||||
/**
|
/**
|
||||||
* 类别Id
|
* 类别Id
|
||||||
*/
|
*/
|
||||||
|
@ -1,23 +1,21 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.storegoods;
|
package cn.iocoder.yudao.module.member.service.storegoods;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.util.*;
|
import javax.annotation.Resource;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.*;
|
import java.util.List;
|
||||||
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 static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
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 实现类
|
* 商品 Service 实现类
|
||||||
@ -37,13 +35,13 @@ public class StoreGoodsServiceImpl implements StoreGoodsService {
|
|||||||
StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class);
|
StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class);
|
||||||
storeGoodsMapper.insert(storeGoods);
|
storeGoodsMapper.insert(storeGoods);
|
||||||
// 返回
|
// 返回
|
||||||
return storeGoods.getGoodId();
|
return storeGoods.getGoodsId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateStoreGoods(StoreGoodsSaveReqVO updateReqVO) {
|
public void updateStoreGoods(StoreGoodsSaveReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateStoreGoodsExists(updateReqVO.getGoodId());
|
validateStoreGoodsExists(updateReqVO.getGoodsId());
|
||||||
// 更新
|
// 更新
|
||||||
StoreGoodsDO updateObj = BeanUtils.toBean(updateReqVO, StoreGoodsDO.class);
|
StoreGoodsDO updateObj = BeanUtils.toBean(updateReqVO, StoreGoodsDO.class);
|
||||||
storeGoodsMapper.updateById(updateObj);
|
storeGoodsMapper.updateById(updateObj);
|
||||||
@ -78,7 +76,7 @@ public class StoreGoodsServiceImpl implements StoreGoodsService {
|
|||||||
if (CollectionUtil.isEmpty(goodsIds)) {
|
if (CollectionUtil.isEmpty(goodsIds)) {
|
||||||
return storeGoodsMapper.selectList();
|
return storeGoodsMapper.selectList();
|
||||||
}else {
|
}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;
|
package cn.iocoder.yudao.module.member.service.storeorder;
|
||||||
|
|
||||||
import java.util.*;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import javax.validation.*;
|
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.*;
|
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.FacePayDto;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreOrderDto;
|
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.dto.StoreOrderUploadDto;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.store.vo.UserInfoVo;
|
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.module.member.dal.dataobject.storeorder.StoreOrderDO;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import javax.validation.Valid;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品订单 Service 接口
|
* 商品订单 Service 接口
|
||||||
@ -61,7 +60,7 @@ public interface StoreOrderService {
|
|||||||
|
|
||||||
UserInfoVo facePay(FacePayDto dto);
|
UserInfoVo facePay(FacePayDto dto);
|
||||||
|
|
||||||
Boolean cardPay(StoreOrderDto dto);
|
String cardPay(StoreOrderDto dto);
|
||||||
|
|
||||||
void batchCacheOrder(StoreOrderUploadDto dto);
|
void batchCacheOrder(StoreOrderUploadDto dto);
|
||||||
}
|
}
|
@ -1,48 +1,40 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.storeorder;
|
package cn.iocoder.yudao.module.member.service.storeorder;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.math.Money;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
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.common.exception.ServiceException;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.module.member.controller.app.store.dto.*;
|
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.controller.app.store.vo.UserInfoVo;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO;
|
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.storeorder.StoreOrderDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO;
|
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO;
|
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.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.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.card.CardService;
|
||||||
import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService;
|
import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService;
|
||||||
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
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.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
import java.util.stream.Collectors;
|
import java.util.List;
|
||||||
|
|
||||||
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 static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
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 实现类
|
* 商品订单 Service 实现类
|
||||||
@ -147,18 +139,18 @@ public class StoreOrderServiceImpl implements StoreOrderService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean cardPay(StoreOrderDto dto) {
|
public String cardPay(StoreOrderDto dto) {
|
||||||
Double totalPrice = createOrder(dto).getTotalPrice();
|
Double totalPrice = createOrder(dto).getTotalPrice();
|
||||||
BigDecimal total = BigDecimal.valueOf(totalPrice).setScale(2, RoundingMode.HALF_UP);
|
BigDecimal total = BigDecimal.valueOf(totalPrice).setScale(2, RoundingMode.HALF_UP);
|
||||||
MemberUserDO userDO = userService.getByCardId(dto.getCardNumber());
|
MemberUserDO userDO = userService.getByCardId(dto.getCardNumber());
|
||||||
if (ObjectUtil.isEmpty(userDO)){
|
if (ObjectUtil.isEmpty(userDO)){
|
||||||
throw new ServiceException(CARD_NOT_BIND_USER);
|
return "该卡未绑定用户";
|
||||||
}
|
}
|
||||||
BigDecimal compute = compute(total, userDO.getId());
|
BigDecimal compute = compute(total, userDO.getId());
|
||||||
if (compute.compareTo(BigDecimal.ZERO) < 0) {
|
if (compute.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
return false;
|
return "false";
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return "true";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,6 +130,9 @@ public class DeviceInfoServiceImpl implements DeviceInfoService {
|
|||||||
List<FaceDeviceInfoDO> faceDeviceInfoDOS = faceDeviceInfoMapper.selectList();
|
List<FaceDeviceInfoDO> faceDeviceInfoDOS = faceDeviceInfoMapper.selectList();
|
||||||
List<String> macList = faceDeviceInfoDOS.stream().map(FaceDeviceInfoDO::getMac).collect(Collectors.toList());
|
List<String> macList = faceDeviceInfoDOS.stream().map(FaceDeviceInfoDO::getMac).collect(Collectors.toList());
|
||||||
for (String deviceSn : macList){
|
for (String deviceSn : macList){
|
||||||
|
if(StringUtils.isBlank(deviceSn)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
String time = RedisTemplate.opsForValue().get(deviceSn);
|
String time = RedisTemplate.opsForValue().get(deviceSn);
|
||||||
if(StringUtils.isBlank(time)){
|
if(StringUtils.isBlank(time)){
|
||||||
upList.add(deviceSn);
|
upList.add(deviceSn);
|
||||||
|
@ -12,8 +12,8 @@ spring:
|
|||||||
servlet:
|
servlet:
|
||||||
# 文件上传相关配置项
|
# 文件上传相关配置项
|
||||||
multipart:
|
multipart:
|
||||||
max-file-size: 20MB # 单个文件大小
|
max-file-size: 200MB # 单个文件大小
|
||||||
max-request-size: 40MB # 设置总上传的文件大小
|
max-request-size: 400MB # 设置总上传的文件大小
|
||||||
mvc:
|
mvc:
|
||||||
pathmatch:
|
pathmatch:
|
||||||
matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类
|
matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类
|
||||||
|
Reference in New Issue
Block a user