修复会员卡支付bug

This commit is contained in:
2024-07-16 00:09:37 +08:00
parent 9ab9f6e0b1
commit d94080955b
6 changed files with 160 additions and 109 deletions
@@ -1,15 +1,17 @@
package com.gxwebsoft.booking.controller; package com.gxwebsoft.booking.controller;
import com.gxwebsoft.common.core.web.BaseController; import cn.hutool.core.date.DateUtil;
import com.gxwebsoft.booking.service.UserCardService; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.booking.entity.UserCard; import com.gxwebsoft.booking.entity.UserCard;
import com.gxwebsoft.booking.param.UserCardParam; import com.gxwebsoft.booking.param.UserCardParam;
import com.gxwebsoft.booking.service.UserCardService;
import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.Merchant;
import com.gxwebsoft.shop.service.MerchantService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@@ -30,6 +32,32 @@ import java.util.List;
public class UserCardController extends BaseController { public class UserCardController extends BaseController {
@Resource @Resource
private UserCardService userCardService; private UserCardService userCardService;
@Resource
private MerchantService merchantService;
@ApiOperation("查询可用的会员卡")
@GetMapping("/findUseCard")
public ApiResult<?> findUseCard(UserCardParam param) {
final User loginUser = getLoginUser();
if(loginUser == null){
return fail("请先登录",null);
}
// 查询可用的会员卡
LambdaUpdateWrapper<UserCard> wrapper = new LambdaUpdateWrapper<>();
if(param.getPayPrice() != null){
System.out.println("param = " + param);
wrapper.ge(UserCard::getRemainingMoney,param.getPayPrice());
}
final long timeMillis = System.currentTimeMillis();
System.out.println("timeMillis = " + timeMillis/1000);
wrapper.eq(UserCard::getPhone, loginUser.getPhone())
.eq(UserCard::getStatus,1)
.like(UserCard::getSid, param.getSid())
.ge(UserCard::getExpireTime, timeMillis/1000)
.last("limit 1");
return success(userCardService.getOne(wrapper));
}
@ApiOperation("分页查询会员卡") @ApiOperation("分页查询会员卡")
@GetMapping("/page") @GetMapping("/page")
@@ -115,7 +115,7 @@ public class UserCard implements Serializable {
private Integer isInvoice; private Integer isInvoice;
@ApiModelProperty(value = "vip卡到期时间") @ApiModelProperty(value = "vip卡到期时间")
private String expireTime; private Long expireTime;
@ApiModelProperty(value = "紧急联系人") @ApiModelProperty(value = "紧急联系人")
private String urgentName; private String urgentName;
@@ -38,7 +38,7 @@ public class UserCardLog implements Serializable {
@ApiModelProperty(value = "统计金额(正是收入,负是冲抵(退卡后产生))") @ApiModelProperty(value = "统计金额(正是收入,负是冲抵(退卡后产生))")
private BigDecimal price; private BigDecimal price;
private Integer createTime; private Long createTime;
@ApiModelProperty(value = "虚拟卡ID") @ApiModelProperty(value = "虚拟卡ID")
private Integer usersVipId; private Integer usersVipId;
@@ -1,6 +1,9 @@
package com.gxwebsoft.booking.param; package com.gxwebsoft.booking.param;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Set;
import com.baomidou.mybatisplus.annotation.TableField;
import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam; import com.gxwebsoft.common.core.web.BaseParam;
@@ -158,4 +161,20 @@ public class UserCardParam extends BaseParam {
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; private String remark;
@ApiModelProperty(value = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@QueryField(type = QueryType.EQ)
private Integer deleted;
@ApiModelProperty(value = "会员卡ID集合")
@TableField(exist = false)
private Set<Integer> cardIds;
@ApiModelProperty(value = "订单金额")
@TableField(exist = false)
private BigDecimal payPrice;
} }
@@ -270,7 +270,7 @@ public class OrderController extends BaseController {
userCard.setType(card.getType()); userCard.setType(card.getType());
userCard.setTenantId(card.getTenantId()); userCard.setTenantId(card.getTenantId());
final long epochMilli = DateUtil.toInstant(DateUtil.offset(DateUtil.date(), DateField.MONTH, card.getMonth())).toEpochMilli(); final long epochMilli = DateUtil.toInstant(DateUtil.offset(DateUtil.date(), DateField.MONTH, card.getMonth())).toEpochMilli();
userCard.setExpireTime(String.valueOf(epochMilli/1000)); userCard.setExpireTime(epochMilli/1000);
userCardService.save(userCard); userCardService.save(userCard);
order.setCardId(userCard.getId()); order.setCardId(userCard.getId());
} }
@@ -300,8 +300,9 @@ public class OrderController extends BaseController {
// } // }
// TODO 会员卡支付 // TODO 会员卡支付
if(order.getPayType().equals(6)){ if(order.getPayType().equals(2)){
order.setAccessToken(order.getAccessToken()); order.setAccessToken(order.getAccessToken());
System.out.println("getAccessToken = " + order.getAccessToken());
return success("下单成功", orderService.payByUserCard(order)); return success("下单成功", orderService.payByUserCard(order));
} }
return fail("支付失败"); return fail("支付失败");
@@ -334,8 +334,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
// return true; // return true;
} }
// @Transactional(rollbackFor = {Exception.class})
@Override @Override
@Transactional(rollbackFor = {Exception.class})
public Boolean payByUserCard(Order order) { public Boolean payByUserCard(Order order) {
final Users users = usersService.getByPhone(order.getPhone()); final Users users = usersService.getByPhone(order.getPhone());
final User loginUser = order.getLoginUser(); final User loginUser = order.getLoginUser();
@@ -372,6 +374,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
// userCardLog.setComments(order.getComments()); // userCardLog.setComments(order.getComments());
userCardLog.setType(userCard.getType()); userCardLog.setType(userCard.getType());
userCardLog.setPrice(order.getPayPrice()); userCardLog.setPrice(order.getPayPrice());
userCardLog.setCreateTime(System.currentTimeMillis()/1000);
// userCardLog.setOrderNo(order.getOrderNo()); // userCardLog.setOrderNo(order.getOrderNo());
// userCardLog.setMerchantId(order.getMerchantId()); // userCardLog.setMerchantId(order.getMerchantId());
// userCardLog.setMerchantCode(order.getMerchantCode()); // userCardLog.setMerchantCode(order.getMerchantCode());