Aio设备下单等

This commit is contained in:
2025-07-16 15:01:03 +08:00
parent 722b8a9e90
commit 0ecd9d5e20
5 changed files with 102 additions and 0 deletions

View File

@@ -6,6 +6,8 @@ import com.ycwl.basic.mapper.MemberMapper;
import com.ycwl.basic.model.aio.entity.AioDeviceBannerEntity;
import com.ycwl.basic.model.aio.entity.AioDeviceEntity;
import com.ycwl.basic.model.aio.entity.AioDevicePriceConfigEntity;
import com.ycwl.basic.model.aio.req.AioDeviceCreateOrderReq;
import com.ycwl.basic.model.aio.resp.AioDeviceCreateOrderResp;
import com.ycwl.basic.model.aio.resp.AioDeviceInfoResp;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
@@ -14,8 +16,11 @@ import com.ycwl.basic.model.mobile.goods.GoodsReqQuery;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.member.entity.MemberEntity;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.pay.entity.PayResponse;
import com.ycwl.basic.service.aio.AioDeviceService;
import com.ycwl.basic.service.mobile.GoodsService;
import com.ycwl.basic.service.pc.FaceService;
import com.ycwl.basic.service.pc.OrderService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.JwtTokenUtil;
import com.ycwl.basic.utils.SnowFlakeUtil;
@@ -27,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -48,6 +54,10 @@ public class AioDeviceController {
private MemberMapper memberMapper;
@Autowired
private AioDeviceMapper aioDeviceMapper;
@Autowired
private AioDeviceService aioDeviceService;
@Autowired
private OrderService orderService;
@GetMapping("/info")
public ApiResponse<AioDeviceInfoResp> getDeviceInfo(HttpServletRequest request) {
@@ -114,4 +124,25 @@ public class AioDeviceController {
return ApiResponse.success(goodsDetailVOS);
}
@ApiOperation("创建订单")
@PostMapping("/order")
public ApiResponse<AioDeviceCreateOrderResp> createOrder(HttpServletRequest request, @RequestBody AioDeviceCreateOrderReq req) {
String deviceId = request.getHeader("X-DeviceId");
AioDeviceEntity aioDevice = aioDeviceMapper.getByKey(deviceId);
if (aioDevice == null) {
return ApiResponse.fail("设备不存在");
}
return ApiResponse.success(aioDeviceService.createOrder(aioDevice, req));
}
@ApiOperation("查询订单")
@GetMapping("/order/{orderId}")
public ApiResponse<PayResponse> queryOrder(HttpServletRequest request, @PathVariable("orderId") Long orderId) {
String deviceId = request.getHeader("X-DeviceId");
AioDeviceEntity aioDevice = aioDeviceMapper.getByKey(deviceId);
if (aioDevice == null) {
return ApiResponse.fail("设备不存在");
}
return ApiResponse.success(orderService.queryOrder(orderId));
}
}

View File

@@ -0,0 +1,18 @@
package com.ycwl.basic.model.aio.req;
import lombok.Data;
import java.util.List;
@Data
public class AioDeviceCreateOrderReq {
private Long faceId;
private String payType;
private List<AioDeviceOrderItem> items;
@Data
public static class AioDeviceOrderItem {
private Long goodsId;
private Integer count;
}
}

View File

@@ -0,0 +1,9 @@
package com.ycwl.basic.model.aio.resp;
import lombok.Data;
@Data
public class AioDeviceCreateOrderResp {
private Long orderId;
private String payCode;
}

View File

@@ -0,0 +1,9 @@
package com.ycwl.basic.service.aio;
import com.ycwl.basic.model.aio.entity.AioDeviceEntity;
import com.ycwl.basic.model.aio.req.AioDeviceCreateOrderReq;
import com.ycwl.basic.model.aio.resp.AioDeviceCreateOrderResp;
public interface AioDeviceService {
AioDeviceCreateOrderResp createOrder(AioDeviceEntity aioDevice, AioDeviceCreateOrderReq req);
}

View File

@@ -0,0 +1,35 @@
package com.ycwl.basic.service.aio.impl;
import com.ycwl.basic.exception.BaseException;
import com.ycwl.basic.mapper.AioDeviceMapper;
import com.ycwl.basic.model.aio.entity.AioDeviceEntity;
import com.ycwl.basic.model.aio.entity.AioDevicePriceConfigEntity;
import com.ycwl.basic.model.aio.req.AioDeviceCreateOrderReq;
import com.ycwl.basic.model.aio.resp.AioDeviceCreateOrderResp;
import com.ycwl.basic.service.aio.AioDeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@Service
public class AioDeviceServiceImpl implements AioDeviceService {
@Autowired
private AioDeviceMapper aioDeviceMapper;
@Override
public AioDeviceCreateOrderResp createOrder(AioDeviceEntity aioDevice, AioDeviceCreateOrderReq req) {
// 询价
AioDevicePriceConfigEntity config = aioDeviceMapper.getPriceConfigByDeviceId(aioDevice.getId());
if (config == null) {
throw new BaseException("询价失败");
}
if (req.getItems() == null || req.getItems().isEmpty()) {
throw new BaseException("请选择商品");
}
int sum = req.getItems().stream().mapToInt(AioDeviceCreateOrderReq.AioDeviceOrderItem::getCount).sum();
BigDecimal totalPrice = config.getEachPrice().multiply(new BigDecimal(sum));
// 支付
return null;
}
}