提交 ee67e560 authored 作者: zhengfg's avatar zhengfg

修改优惠券使用方式

上级 30110b6d
...@@ -31,14 +31,14 @@ public class TbCfOrderController { ...@@ -31,14 +31,14 @@ public class TbCfOrderController {
@ApiOperation("用户结算,返回订单") @ApiOperation("用户结算,返回订单")
@GetMapping("/settle") @GetMapping("/settle")
public Result<TbCfOrderVo> settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException { public Result<TbCfOrderVo> settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount(); return tbCfOrderService.settleAccount(iss_coupon_id);
} }
@ApiOperation("用户确定下单") @ApiOperation("用户确定下单")
@PostMapping("/place") @PostMapping("/place")
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException { public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.placeOrder(tbCfOrderVo); return tbCfOrderService.placeOrder(tbCfOrderVo,iss_coupon_id);
} }
/** /**
......
...@@ -47,4 +47,5 @@ public interface TbCfOrderDao extends BaseDao<TbCfOrderEntity> { ...@@ -47,4 +47,5 @@ public interface TbCfOrderDao extends BaseDao<TbCfOrderEntity> {
List<TbCfItemShippedEntity> getDeliveryList(Date beginDate, Date endDate); List<TbCfItemShippedEntity> getDeliveryList(Date beginDate, Date endDate);
OrderEntity getOrder(String orderId); OrderEntity getOrder(String orderId);
TbCfCouponEntity queryCouponPrice(String iss_coupon_id);
} }
...@@ -81,7 +81,7 @@ public interface TbCfOrderService { ...@@ -81,7 +81,7 @@ public interface TbCfOrderService {
* *
* @return * @return
*/ */
Result settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException; Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/** /**
* 用户下单 * 用户下单
...@@ -89,7 +89,7 @@ public interface TbCfOrderService { ...@@ -89,7 +89,7 @@ public interface TbCfOrderService {
* @param tbCfOrderVo * @param tbCfOrderVo
* @return * @return
*/ */
Result placeOrder(TbCfOrderVo tbCfOrderVo) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException; Result placeOrder(TbCfOrderVo tbCfOrderVo,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/** /**
* 获取用户订单列表 * 获取用户订单列表
......
...@@ -7,10 +7,7 @@ import com.diaoyun.zion.chinafrica.entity.*; ...@@ -7,10 +7,7 @@ import com.diaoyun.zion.chinafrica.entity.*;
import com.diaoyun.zion.chinafrica.enums.CouponCategoryEnum; import com.diaoyun.zion.chinafrica.enums.CouponCategoryEnum;
import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum; import com.diaoyun.zion.chinafrica.enums.DeliveryStatusEnum;
import com.diaoyun.zion.chinafrica.enums.OrderStatusEnum; import com.diaoyun.zion.chinafrica.enums.OrderStatusEnum;
import com.diaoyun.zion.chinafrica.service.SpiderService; import com.diaoyun.zion.chinafrica.service.*;
import com.diaoyun.zion.chinafrica.service.TbCfCouponService;
import com.diaoyun.zion.chinafrica.service.TbCfFeeService;
import com.diaoyun.zion.chinafrica.service.TbCfOrderService;
import com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo; import com.diaoyun.zion.chinafrica.vo.TbCfCartItemDetailVo;
import com.diaoyun.zion.chinafrica.vo.TbCfFinanceVo; import com.diaoyun.zion.chinafrica.vo.TbCfFinanceVo;
import com.diaoyun.zion.chinafrica.vo.TbCfOrderVo; import com.diaoyun.zion.chinafrica.vo.TbCfOrderVo;
...@@ -103,6 +100,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -103,6 +100,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired @Autowired
private HttpServletRequest request; //自动注入request private HttpServletRequest request; //自动注入request
@Autowired
private TbCfIssueCouponService tbCfIssueCouponService; //发放表
@Override @Override
public TbCfOrderEntity queryObject(String orderId) { public TbCfOrderEntity queryObject(String orderId) {
...@@ -140,27 +139,36 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -140,27 +139,36 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return tbCfOrderDao.deleteBatch(orderIds); return tbCfOrderDao.deleteBatch(orderIds);
} }
@Override /**
public Result settleAccount() throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException { * 用户计算1
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
@Override
public Result settleAccount(String iss_coupon_id) 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 = tbCfItemDetailDao.getCartItemList(tbCfUserInfoVo.getUserId(), StateConstant.VALID); List<TbCfCartItemDetailVo> tbCfCartItemDetailList = tbCfItemDetailDao.getCartItemList(tbCfUserInfoVo.getUserId(), StateConstant.VALID);
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");
} else { } else {
//获取订单数据 //获取订单数据
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList); TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList,iss_coupon_id);
result.setData(tbCfOrder).setMessage("Order pending settlement"); result.setData(tbCfOrder).setMessage("Order pending settlement");
} }
return result; return result;
} }
@Override @Override
public Result placeOrder(TbCfOrderVo pageOrder) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException { public Result placeOrder(TbCfOrderVo pageOrder,String iss_coupon_id ) 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);
...@@ -172,7 +180,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -172,7 +180,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
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");
} else { } else {
//获取下单的订单数据 //获取下单的订单数据
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList); TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList,iss_coupon_id);
//持久化订单数据 //持久化订单数据
TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity(); TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity();
BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity); BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity);
...@@ -267,7 +275,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -267,7 +275,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo); TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo);
TbCfFinanceVo tbCfFinanceVo = new TbCfFinanceVo(); TbCfFinanceVo tbCfFinanceVo = new TbCfFinanceVo();
BeanUtils.copyProperties(tbCfFinance, tbCfFinanceVo); BeanUtils.copyProperties(tbCfFinance, tbCfFinanceVo);
//赠送购物返券 /* //赠送购物返券
List<TbCfCouponEntity> couponList = tbCfCouponDao.getCouponByCategory(CouponCategoryEnum.SHOP.getValue(), new Date()); List<TbCfCouponEntity> couponList = tbCfCouponDao.getCouponByCategory(CouponCategoryEnum.SHOP.getValue(), new Date());
if (!couponList.isEmpty()) { if (!couponList.isEmpty()) {
//领取优惠券 //领取优惠券
...@@ -275,7 +283,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -275,7 +283,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
if (couponResult.getCode() == ResultCodeEnum.SUCCESS.getCode()) { if (couponResult.getCode() == ResultCodeEnum.SUCCESS.getCode()) {
tbCfFinanceVo.setCouponId(couponList.get(0).getCouponId()); tbCfFinanceVo.setCouponId(couponList.get(0).getCouponId());
} }
} }*/
result.setData(tbCfFinanceVo); result.setData(tbCfFinanceVo);
} else { } else {
result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage("Payment failed!"); result.setCode(ResultCodeEnum.SERVICE_ERROR.getCode()).setMessage("Payment failed!");
...@@ -571,9 +579,9 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -571,9 +579,9 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws IOException * @throws IOException
* @throws URISyntaxException * @throws URISyntaxException
*/ */
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList) { private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String iss_coupon_id) {
TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList); TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList);
//获取可以使用的优惠券,后续还有判断此订单是否可以使用 /*//获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date()); List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
if (!tbCfCouponList.isEmpty()) { if (!tbCfCouponList.isEmpty()) {
//分开可使用和不可使用优惠券 //分开可使用和不可使用优惠券
...@@ -589,10 +597,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -589,10 +597,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
definiteOrder.setCouponPrice(usableCoupon.getDeductAmount()); definiteOrder.setCouponPrice(usableCoupon.getDeductAmount());
} }
} }
} }*/
//计算实际需要付款 //计算实际需要付款
countRealityPay(definiteOrder); countRealityPay(definiteOrder,iss_coupon_id);
//获取订单地址 //获取订单地址
String deliveryAddressId = pageOrder.getDeliveryAddressId(); String deliveryAddressId = pageOrder.getDeliveryAddressId();
Validator.NOT_BLANK.validate("address", deliveryAddressId); Validator.NOT_BLANK.validate("address", deliveryAddressId);
...@@ -686,11 +694,22 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -686,11 +694,22 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
return result; return result;
} }
/**
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException { * 用户计算价格2
* @param tbCfUserInfoVo
* @param tbCfCartItemDetailList
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
* @throws ExecutionException
* @throws InterruptedException
* @throws TimeoutException
*/
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList); TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList);
//获取可以使用的优惠券,后续还有判断此订单是否可以使用 /* //获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date()); List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
if (!tbCfCouponList.isEmpty()) { if (!tbCfCouponList.isEmpty()) {
//分开可使用和不可使用优惠券 //分开可使用和不可使用优惠券
...@@ -699,10 +718,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -699,10 +718,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//设置默认的优惠券 //设置默认的优惠券
setDefaultCoupon(tbCfOrder); setDefaultCoupon(tbCfOrder);
} }
} }*/
//计算实际需要付款 //计算实际需要付款
countRealityPay(tbCfOrder); countRealityPay(tbCfOrder,iss_coupon_id);
tbCfOrder.setUserId(tbCfUserInfoVo.getUserId()); tbCfOrder.setUserId(tbCfUserInfoVo.getUserId());
tbCfOrder.setUserName(tbCfUserInfoVo.getNick()); tbCfOrder.setUserName(tbCfUserInfoVo.getNick());
...@@ -714,7 +733,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -714,7 +733,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* *
* @param tbCfOrder * @param tbCfOrder
*/ */
private void countRealityPay(TbCfOrderVo tbCfOrder) { private void countRealityPay(TbCfOrderVo tbCfOrder,String iss_coupon_id) {
TbCfIssueCouponEntity coupon = tbCfIssueCouponService.queryObject(iss_coupon_id);
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(iss_coupon_id);
tbCfOrder.setCouponPrice(couponEntity.getDeductAmount());
BigDecimal couponPrice = tbCfOrder.getCouponPrice(); BigDecimal couponPrice = tbCfOrder.getCouponPrice();
//实际需要支付款项 //实际需要支付款项
if (couponPrice != null) { if (couponPrice != null) {
...@@ -730,7 +752,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService { ...@@ -730,7 +752,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
} }
/** /**
* 分开可使用和不可使用优惠券 * 分开可使用和不可使用优惠券(暂时没用)
* *
* @param tbCfOrder * @param tbCfOrder
* @param tbCfCouponList * @param tbCfCouponList
......
...@@ -136,7 +136,9 @@ ...@@ -136,7 +136,9 @@
AND name LIKE concat('%',#{name},'%') AND name LIKE concat('%',#{name},'%')
</if> </if>
</select> </select>
<select id="queryCouponPrice" resultType="com.diaoyun.zion.chinafrica.entity.TbCfCouponEntity">
select t2.* from tb_cf_issue_coupon t1 left join tb_cf_coupon t2 on t2.coupon_id=t1.coupon_id where t1.coupon_issuetable_id=#{iss_coupon_id}
</select>
<insert id="save" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity"> <insert id="save" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity">
insert into tb_cf_order( insert into tb_cf_order(
`order_id`, `order_id`,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论