提交 d0200cf8 authored 作者: luojie's avatar luojie

修复优惠券

上级 e60c245d
......@@ -31,15 +31,16 @@ public class TbCfOrderController {
@ApiOperation("用户结算,返回订单")
@GetMapping("/settle")
public Result<TbCfOrderVo> settleAccount(@ApiParam("发放ID") @RequestParam(value = "iss_coupon_id", required = false) String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount(iss_coupon_id);
public Result<TbCfOrderVo> settleAccount(@ApiParam("发放ID") @RequestParam(value = "toitableId",required = false) String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
return tbCfOrderService.settleAccount(toitableId);
}
@ApiOperation("用户确定下单")
@PostMapping("/place")
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo, @ApiParam("发放ID") @RequestParam(value = "iss_coupon_id", required = false) String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println("发放Id" + iss_coupon_id);
return tbCfOrderService.placeOrder(tbCfOrderVo, iss_coupon_id);
public Result placeOrder(@ApiParam("订单详情") @RequestBody TbCfOrderVo tbCfOrderVo,@ApiParam("发放ID") @RequestParam(value = "toitableId",required = false) String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println("发放Id"+toitableId);
return tbCfOrderService.placeOrder(tbCfOrderVo,toitableId);
}
/**
......
......@@ -21,7 +21,7 @@ public class TbCfCouponEntity implements Serializable {
*优惠券发放表id
*/
@ApiModelProperty("优惠券发放表id")
private String issCouponId;
private String toitableId;
/**
* 优惠券id
*/
......@@ -136,12 +136,12 @@ public class TbCfCouponEntity implements Serializable {
* 设置:设置是否是注册就是的优惠券,(0)默认状态,(1)是用户注册就送这张优惠券
*/
public String getIssCouponId() {
return issCouponId;
public String getToitableId() {
return toitableId;
}
public void setIssCouponId(String issCouponId) {
this.issCouponId = issCouponId;
public void setToitableId(String toitableId) {
this.toitableId = toitableId;
}
public String getCouponId() {
......
......@@ -80,7 +80,7 @@ public interface TbCfOrderService {
*
* @return
*/
Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result settleAccount(String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 用户下单
......@@ -88,7 +88,7 @@ public interface TbCfOrderService {
* @param tbCfOrderVo
* @return
*/
Result placeOrder(TbCfOrderVo tbCfOrderVo,String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
Result placeOrder(TbCfOrderVo tbCfOrderVo,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException;
/**
* 获取用户订单列表
......
......@@ -91,8 +91,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
private SpiderService spiderService;
@Autowired
private TbCfUserInfoDao tbCfUserInfoDao;
@Resource
private RedisCache<Object> orderRedisCache;
......@@ -148,8 +147,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 用户计算1
*
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
......@@ -158,7 +155,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws TimeoutException
*/
@Override
public Result settleAccount(String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
public Result settleAccount(String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
......@@ -169,15 +166,15 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取订单数据
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList, iss_coupon_id);
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList,toitableId);
result.setData(tbCfOrder).setMessage("Order pending settlement");
}
return result;
}
@Override
public Result placeOrder(TbCfOrderVo pageOrder, String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println(iss_coupon_id + "发放ID");
public Result placeOrder(TbCfOrderVo pageOrder,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println(toitableId+"发放ID");
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
......@@ -189,7 +186,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取下单的订单数据
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList, iss_coupon_id);
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList,toitableId);
//持久化订单数据
TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity();
BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity);
......@@ -199,17 +196,15 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
afterPlaceOrder(tbCfOrderEntity.getOrderId(), tbCfCartItemDetailList, definiteOrder);
result.setData(definiteOrder).setMessage(ResultCodeEnum.SUCCESS.getDesc());
}
return result;
}
@Override
public synchronized Result getUserOrderList(Integer pageNum, Integer pageSize, Integer orderStatus, String userId) {
public Result getUserOrderList(Integer pageNum, Integer pageSize, Integer orderStatus,String userId) {
Result<PageInfo<TbCfOrderVo>> result = new Result<>();
//获取用户
// String token = jwtTokenProvider.resolveToken(request);
// TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
TbCfUserInfoEntity tbCfUserInfoVo = tbCfUserInfoDao.queryObject(userId);
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
//订单数据
List<TbCfOrderEntity> orderList = tbCfOrderDao.getUserOrderList(tbCfUserInfoVo.getUserId(), orderStatus);
startPage(pageNum, pageSize);
......@@ -282,8 +277,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//更改订单状态
changeOrderState(charge.getId(), tbCfOrderVo);
//修改使用的优惠券的状态
if (tbCfOrderVo.getOrderStatus() == 20) {
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
if(tbCfOrderVo.getOrderStatus()==20){
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(),tbCfOrderVo.getCouponId());
}
//生成流水记录
TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo);
......@@ -317,7 +312,6 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 查询物流信息
*
* @param orderId
* @return
* @throws IOException
......@@ -376,7 +370,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
public Result getOrderDetailThird(String orderId) {
Result<OrderEntity> result = new Result<>();
OrderEntity order = tbCfOrderDao.getOrder(orderId);
OrderEntity orderEntity = new OrderEntity();
OrderEntity orderEntity=new OrderEntity();
orderEntity.setOrderId(order.getOrderId());
orderEntity.setDeliveryPhone(order.getDeliveryPhone());
orderEntity.setDeliveryName(order.getDeliveryName());
......@@ -388,7 +382,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//返回的订单商品详情
List<ItemEntity> itemList = new ArrayList<>();
for (ItemEntity item : items) {
ItemEntity entity = new ItemEntity();
ItemEntity entity=new ItemEntity();
entity.setItemNum(item.getItemNum());
entity.setItemCategory(item.getItemCategory());
entity.setItemPrice(item.getItemPrice());
......@@ -423,14 +417,14 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
Result<TbCfOrderVo> result = new Result<>();
TbCfOrderEntity tbCfOrderEntity = tbCfOrderDao.queryObject(orderId);
TbCfOrderVo tbCfOrderVo = new TbCfOrderVo();
BeanUtils.copyProperties(tbCfOrderEntity, tbCfOrderVo);
BeanUtils.copyProperties(tbCfOrderEntity,tbCfOrderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderId);
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
BeanUtils.copyProperties(tbCfItemDetail,tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
}
tbCfOrderVo.setItemDetailList(itemDetailVoList);
......@@ -547,7 +541,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}
/**
* 增加已使用记录
// */
// */
// TbCfCouponUseEntity tbCfCouponUse = new TbCfCouponUseEntity();
// tbCfCouponUse.setUseId(IdUtil.createIdbyUUID());
// tbCfCouponUse.setCouponId(couponId);
......@@ -601,7 +595,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws IOException
* @throws URISyntaxException
*/
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList, String iss_coupon_id) {
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String toitableId) {
TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList);
/*//获取可以使用的优惠券,后续还有判断此订单是否可以使用
......@@ -623,7 +617,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}*/
//计算实际需要付款
countRealityPay(definiteOrder, iss_coupon_id);
countRealityPay(definiteOrder,toitableId);
//获取订单地址
String deliveryAddressId = pageOrder.getDeliveryAddressId();
Validator.NOT_BLANK.validate("address", deliveryAddressId);
......@@ -664,7 +658,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
BigDecimal totalExpressCost = BigDecimal.ZERO;
for (TbCfCartItemDetailVo tbCfCartItemDetailVo : tbCfCartItemDetailList) {
BigDecimal itemNum = BigDecimal.valueOf(tbCfCartItemDetailVo.getItemNum());
BigDecimal itemSourcePrice = tbCfCartItemDetailVo.getItemPrice();
BigDecimal itemSourcePrice=tbCfCartItemDetailVo.getItemPrice();
itemsPrice = itemsPrice.add(itemSourcePrice.multiply(itemNum));
//计算运费
BigDecimal expressCost = getExpressTemplate(tbCfCartItemDetailVo.getItemCategory());
......@@ -719,10 +713,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 用户计算价格2
*
* @param tbCfUserInfoVo
* @param tbCfCartItemDetailList
* @param iss_coupon_id
* @return
* @throws IOException
* @throws URISyntaxException
......@@ -730,7 +722,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws InterruptedException
* @throws TimeoutException
*/
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList, String iss_coupon_id) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList);
/* //获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
......@@ -745,7 +737,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}*/
//计算实际需要付款
countRealityPay(tbCfOrder, iss_coupon_id);
countRealityPay(tbCfOrder,toitableId);
tbCfOrder.setUserId(tbCfUserInfoVo.getUserId());
tbCfOrder.setUserName(tbCfUserInfoVo.getNick());
......@@ -758,10 +750,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @param tbCfOrder
*/
private void countRealityPay(TbCfOrderVo tbCfOrder, String iss_coupon_id) {
if (iss_coupon_id != null) {
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(iss_coupon_id);
if (couponEntity != null) {
private void countRealityPay(TbCfOrderVo tbCfOrder,String toitableId) {
if(toitableId!=null){
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(toitableId);
if(couponEntity!=null){
tbCfOrder.setCouponPrice(couponEntity.getDeductAmount());
tbCfOrder.setCouponId(couponEntity.getCouponId());
}
......@@ -779,7 +771,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
tbCfOrder.setRealityPay(tbCfOrder.getTotalPrice());
}
removeRedisCache(tbCfOrder);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfOrder.getOrderId(), tbCfOrder);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfOrder.getOrderId(),tbCfOrder);
}
/**
......
......@@ -137,7 +137,7 @@
</if>
</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 t2.* from tb_cf_toicoupon t1 left join tb_cf_coupon t2 on t2.coupon_id=t1.coupon_id where t1.toitable_id=#{toitableId}
</select>
<insert id="save" parameterType="com.diaoyun.zion.chinafrica.entity.TbCfOrderEntity">
insert into tb_cf_order(
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论