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

新增直接支付流程

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