提交 db865b6a authored 作者: zgy's avatar zgy

新增直接支付流程

上级 584f4b14
......@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.concurrent.ExecutionException;
......@@ -40,17 +41,23 @@ public class TbCfItemDetailController {
return tbCfItemDetailService.addToCart(tbCfItemDetailVo);
}
@ApiOperation("生成商品记录")
@PostMapping("/insertItemDetail")
public Result insertItemDetail(@RequestBody TbCfItemDetailVo tbCfItemDetailVo) {
return tbCfItemDetailService.insertItemDetail(tbCfItemDetailVo);
}
@ApiOperation("改变购物车的商品勾选状态")
@PutMapping("/state/{cartRecordId}/{checkFlag}")
public Result changeItemState(@ApiParam("购物车记录id")@PathVariable ("cartRecordId") String cartRecordId,
@ApiParam("勾选状态 0不选中,1选中")@PathVariable ("checkFlag") Integer checkFlag) {
return tbCfItemDetailService.changeItemState(cartRecordId,checkFlag);
public Result changeItemState(@ApiParam("购物车记录id") @PathVariable("cartRecordId") String cartRecordId,
@ApiParam("勾选状态 0不选中,1选中") @PathVariable("checkFlag") Integer checkFlag) {
return tbCfItemDetailService.changeItemState(cartRecordId, checkFlag);
}
@ApiOperation("更改购物车商品数量")
@PutMapping("/cart/{itemId}/{itemNum}")
public Result changeItemNum(@ApiParam("商品Id")@PathVariable String itemId, @ApiParam("商品数量")@PathVariable int itemNum) {
return tbCfItemDetailService.changeItemNum(itemId,itemNum);
public Result changeItemNum(@ApiParam("商品Id") @PathVariable String itemId, @ApiParam("商品数量") @PathVariable int itemNum) {
return tbCfItemDetailService.changeItemNum(itemId, itemNum);
}
@ApiOperation("从购物车删除商品")
......@@ -62,7 +69,7 @@ public class TbCfItemDetailController {
@ApiOperation("获取用户购物车内的商品")
@GetMapping("/cart")
public Result<List<TbCfCartItemDetailVo>> getCartItem() {
List<TbCfCartItemDetailVo> tbCfCartItemDetailList =tbCfItemDetailService.getCartItemList();
List<TbCfCartItemDetailVo> tbCfCartItemDetailList = tbCfItemDetailService.getCartItemList();
return new Result<>(tbCfCartItemDetailList);
}
......
......@@ -35,12 +35,21 @@ public class TbCfOrderController {
return tbCfOrderService.settleAccount(toitableId);
}
@ApiOperation("用户结算,返回订单")
@GetMapping("/payNow")
public Result<TbCfOrderVo> payNow(@ApiParam("商品ID") @RequestParam(value = "itemId") String itemId, @ApiParam("发放ID") @RequestParam(value = "toitableId", required = false) String toitableId) throws Exception {
return tbCfOrderService.payNow(itemId, toitableId);
}
@ApiOperation("用户确定下单")
@PostMapping("/place")
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo, @ApiParam("发放ID") @RequestParam(value = "toitableId", required = false) String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo, toitableId);
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo,
@ApiParam("发放ID") @RequestParam(value = "toitableId", required = false) String toitableId,
@ApiParam("发放ID") @RequestParam(value = "itemId", required = false) String itemId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo, toitableId,itemId);
}
/**
* pageNum 页数
* pageSize 每页大小
......@@ -117,6 +126,6 @@ public class TbCfOrderController {
@GetMapping("/cancelOrder")
public Result cancelOrder(@ApiParam("订单id") @RequestParam("orderId") String orderId,
@ApiParam("原因") @RequestParam("reason") String reason) {
return tbCfOrderService.cancelOrder(orderId,reason);
return tbCfOrderService.cancelOrder(orderId, reason);
}
}
......@@ -5,6 +5,7 @@ import com.diaoyun.zion.chinafrica.entity.TbCfItemDetailEntity;
import com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo;
import com.diaoyun.zion.chinafrica.vo.TbCfItemDetailVo;
import com.diaoyun.zion.master.base.Result;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
......@@ -82,6 +83,7 @@ public interface TbCfItemDetailService {
*/
Result addToCart(TbCfItemDetailVo tbCfItemDetailVo) throws InterruptedException, ExecutionException, TimeoutException;
Result insertItemDetail(TbCfItemDetailVo tbCfItemDetailVo);
/**
* 更改购物车商品数量
* @param itemId
......
......@@ -84,14 +84,14 @@ public interface TbCfOrderService {
* @return
*/
Result settleAccount(String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result payNow(String itemId, String toitableId) throws Exception;
/**
* 用户下单
*
* @param tbCfOrderVo
* @return
*/
Result placeOrder(TbCfOrderVo tbCfOrderVo, String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result placeOrder(TbCfOrderVo tbCfOrderVo, String toitableId,String itemId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 获取用户订单列表
......
package com.diaoyun.zion.chinafrica.service.impl;
import com.diaoyun.zion.chinafrica.constant.KeyConstant;
import com.diaoyun.zion.chinafrica.dao.TbCfCartRecordRDao;
import com.diaoyun.zion.chinafrica.dao.TbCfExpTemKeywordDao;
import com.diaoyun.zion.chinafrica.dao.TbCfItemDetailDao;
......@@ -156,6 +157,32 @@ public class TbCfItemDetailServiceImpl implements TbCfItemDetailService {
}
}
@Override
public Result insertItemDetail(TbCfItemDetailVo tbCfItemDetailVo) {
Result result = new Result();
boolean flag = false;
String itemId = IdUtil.createIdbyUUID();
if (tbCfItemDetailVo.getItemPrice() != null) {
int compare = tbCfItemDetailVo.getItemPrice().compareTo(BigDecimal.ZERO);
if (compare > 0) {
flag = true;
}
}
if (flag) {
tbCfItemDetailVo.setItemId(itemId);
tbCfItemDetailVo.setCreateTime(new Date());
TbCfItemDetailEntity tbCfItemDetail = new TbCfItemDetailEntity();
BeanUtils.copyProperties(tbCfItemDetailVo, tbCfItemDetail);
int i = tbCfItemDetailDao.save(tbCfItemDetail);
if (i > 0) {
TbCfItemDetailEntity itemDetail = tbCfItemDetailDao.queryObject(itemId);
result.setData(itemDetail);
}
result.setMessage(ResultCodeEnum.SUCCESS.getDesc());
}
return result;
}
@Override
public Result changeItemNum(String itemId, int itemNum) {
TbCfItemDetailEntity tbCfItemDetailEntity = new TbCfItemDetailEntity();
......
......@@ -61,8 +61,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
private TbCfItemOrderRDao tbCfItemOrderRDao;
@Autowired
private TbCfItemDetailDao tbCfItemDetailDao;
@Autowired
private TbCfCartRecordRDao tbCfCartRecordRDao;
@Autowired
private TbCfIssueCouponDao tbCfIssueCouponDao;
......@@ -101,7 +99,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
@Qualifier("redisTokenManager")
private TokenManager tokenManager;
@Autowired
private TbCfItemDetailDao tbCfItemDetailDao;
@Autowired
private TbCfItemCommentDao tbCfItemCommentDao;
@Autowired
......@@ -175,14 +174,50 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return result;
}
/**
* 立即购买
*
* @param itemId
* @param toitableId
* @return
* @throws URISyntaxException
* @throws ExecutionException
* @throws TimeoutException
* @throws InterruptedException
* @throws IOException
*/
public Result payNow(String itemId, String toitableId) throws Exception {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
List<TbCfCartItemDetailVo> tbCfCartItemDetailList = new ArrayList<>();
TbCfCartItemDetailVo tbCfItemDetailVo = new TbCfCartItemDetailVo();
TbCfItemDetailEntity tbCfItemDetailEntity = tbCfItemDetailDao.queryObject(itemId);
BeanUtils.copyProperties(tbCfItemDetailEntity, tbCfItemDetailVo);
tbCfCartItemDetailList.add(tbCfItemDetailVo);
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList, toitableId);
result.setData(tbCfOrder).setMessage("Order pending settlement");
return result;
}
@Override
public Result placeOrder(TbCfOrderVo pageOrder, String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
public Result placeOrder(TbCfOrderVo pageOrder, String toitableId, String itemId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
List<TbCfCartItemDetailVo> tbCfCartItemDetailList = new ArrayList<>();
//获取购物车已勾选 商品
List<TbCfCartItemDetailVo> tbCfCartItemDetailList = tbCfItemDetailDao.getCartItemList(tbCfUserInfoVo.getUserId(), StateConstant.VALID);
if (StringUtils.isBlank(itemId)) {
tbCfCartItemDetailList = tbCfItemDetailDao.getCartItemList(tbCfUserInfoVo.getUserId(), StateConstant.VALID);
} else {
TbCfCartItemDetailVo tbCfItemDetailVo = new TbCfCartItemDetailVo();
TbCfItemDetailEntity tbCfItemDetailEntity = tbCfItemDetailDao.queryObject(itemId);
BeanUtils.copyProperties(tbCfItemDetailEntity, tbCfItemDetailVo);
tbCfCartItemDetailList.add(tbCfItemDetailVo);
}
if (tbCfCartItemDetailList.isEmpty()) {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论