You've already forked FrameTour-BE
Aio设备下单等
This commit is contained in:
@@ -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.AioDeviceBannerEntity;
|
||||||
import com.ycwl.basic.model.aio.entity.AioDeviceEntity;
|
import com.ycwl.basic.model.aio.entity.AioDeviceEntity;
|
||||||
import com.ycwl.basic.model.aio.entity.AioDevicePriceConfigEntity;
|
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.aio.resp.AioDeviceInfoResp;
|
||||||
import com.ycwl.basic.model.jwt.JwtInfo;
|
import com.ycwl.basic.model.jwt.JwtInfo;
|
||||||
import com.ycwl.basic.model.mobile.face.FaceRecognizeResp;
|
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.face.resp.FaceRespVO;
|
||||||
import com.ycwl.basic.model.pc.member.entity.MemberEntity;
|
import com.ycwl.basic.model.pc.member.entity.MemberEntity;
|
||||||
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
|
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.mobile.GoodsService;
|
||||||
import com.ycwl.basic.service.pc.FaceService;
|
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.ApiResponse;
|
||||||
import com.ycwl.basic.utils.JwtTokenUtil;
|
import com.ycwl.basic.utils.JwtTokenUtil;
|
||||||
import com.ycwl.basic.utils.SnowFlakeUtil;
|
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
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.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -48,6 +54,10 @@ public class AioDeviceController {
|
|||||||
private MemberMapper memberMapper;
|
private MemberMapper memberMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private AioDeviceMapper aioDeviceMapper;
|
private AioDeviceMapper aioDeviceMapper;
|
||||||
|
@Autowired
|
||||||
|
private AioDeviceService aioDeviceService;
|
||||||
|
@Autowired
|
||||||
|
private OrderService orderService;
|
||||||
|
|
||||||
@GetMapping("/info")
|
@GetMapping("/info")
|
||||||
public ApiResponse<AioDeviceInfoResp> getDeviceInfo(HttpServletRequest request) {
|
public ApiResponse<AioDeviceInfoResp> getDeviceInfo(HttpServletRequest request) {
|
||||||
@@ -114,4 +124,25 @@ public class AioDeviceController {
|
|||||||
return ApiResponse.success(goodsDetailVOS);
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,9 @@
|
|||||||
|
package com.ycwl.basic.model.aio.resp;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AioDeviceCreateOrderResp {
|
||||||
|
private Long orderId;
|
||||||
|
private String payCode;
|
||||||
|
}
|
@@ -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);
|
||||||
|
}
|
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user