diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/domain/AliPayConfig.java b/cloud-pay-common/src/main/java/com/muyu/pay/config/AliPayConfig.java similarity index 97% rename from cloud-pay-common/src/main/java/com/muyu/pay/domain/AliPayConfig.java rename to cloud-pay-common/src/main/java/com/muyu/pay/config/AliPayConfig.java index 002ee93..ae6dc4a 100644 --- a/cloud-pay-common/src/main/java/com/muyu/pay/domain/AliPayConfig.java +++ b/cloud-pay-common/src/main/java/com/muyu/pay/config/AliPayConfig.java @@ -1,4 +1,4 @@ -package com.muyu.pay.domain; +package com.muyu.pay.config; import com.alipay.easysdk.factory.Factory; import com.alipay.easysdk.kernel.Config; diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/domain/SysDatawarehouse.java b/cloud-pay-common/src/main/java/com/muyu/pay/domain/SysDatawarehouse.java new file mode 100644 index 0000000..a1c2b54 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/pay/domain/SysDatawarehouse.java @@ -0,0 +1,86 @@ +package com.muyu.pay.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 订单详情对象 sys_datawarehouse + * + * @author 2112A + * @date 2024-09-01 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_datawarehouse") +public class SysDatawarehouse { + private static final long serialVersionUID = 1L; + + /** 订单id */ + @TableId( type = IdType.AUTO) + private Long orderId; + + /** 订单编号 */ + @Excel(name = "订单编号") + private String orderBian; + + /** 下单时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date orderTime; + + /** 用户id */ + @Excel(name = "用户id") + private Long userId; + + /** 商品名称 */ + @Excel(name = "商品名称") + private String shopName; + + /** 姓名 */ + @Excel(name = "姓名") + private String orderName; + + /** 联系方式 */ + @Excel(name = "联系方式") + private String phone; + + /** 金额 */ + @Excel(name = "金额") + private BigDecimal orderScore; + + /** 支付方式 */ + @Excel(name = "支付方式") + private String payway; + + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("orderId", getOrderId()) + .append("orderBian", getOrderBian()) + .append("orderTime", getOrderTime()) + .append("userId", getUserId()) + .append("shopName", getShopName()) + .append("orderName", getOrderName()) + .append("phone", getPhone()) + .append("orderScore", getOrderScore()) + .append("payway", getPayway()) + .toString(); + } +} diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/controller/AliPayController.java b/cloud-pay-server/src/main/java/com/muyu/pay/controller/AliPayController.java index c6cb4e8..e00c583 100644 --- a/cloud-pay-server/src/main/java/com/muyu/pay/controller/AliPayController.java +++ b/cloud-pay-server/src/main/java/com/muyu/pay/controller/AliPayController.java @@ -3,10 +3,14 @@ package com.muyu.pay.controller; import com.alipay.easysdk.factory.Factory; import com.muyu.common.core.domain.Result; +import com.muyu.common.security.utils.SecurityUtils; import com.muyu.pay.domain.AliPay; -import com.muyu.pay.domain.AliPayConfig; +import com.muyu.pay.config.AliPayConfig; +import com.muyu.pay.domain.SysDatawarehouse; +import com.muyu.pay.service.ISysDatawarehouseService; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -17,6 +21,7 @@ import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.AlipayTradePagePayRequest; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -28,6 +33,8 @@ public class AliPayController { @Resource AliPayConfig aliPayConfig; + @Autowired + private ISysDatawarehouseService datawarehouseService; private static final String GATEWAY_URL ="https://openapi-sandbox.dl.alipaydev.com/gateway.do"; private static final String FORMAT ="JSON"; @@ -59,6 +66,14 @@ public class AliPayController { httpResponse.getWriter().write(form); httpResponse.getWriter().flush(); httpResponse.getWriter().close(); + SysDatawarehouse sysDatawarehouse=new SysDatawarehouse(); + sysDatawarehouse.setOrderBian(aliPay.getTraceNo()); + sysDatawarehouse.setUserId(SecurityUtils.getUserId()); + sysDatawarehouse.setShopName(aliPay.getSubject()); + sysDatawarehouse.setOrderScore(BigDecimal.valueOf(aliPay.getTotalAmount())); + sysDatawarehouse.setPayway("支付宝"); + + datawarehouseService.addSysDatawarehouse(sysDatawarehouse); return Result.success(aliPay); } @@ -76,6 +91,7 @@ public class AliPayController { String tradeNo = params.get("out_trade_no"); String gmtPayment = params.get("gmt_payment"); String alipayTradeNo = params.get("trade_no"); + // 支付宝验签 if (Factory.Payment.Common().verifyNotify(params)) { // 验签通过 diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/mapper/SysDatawarehouseMapper.java b/cloud-pay-server/src/main/java/com/muyu/pay/mapper/SysDatawarehouseMapper.java new file mode 100644 index 0000000..2e813ab --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/pay/mapper/SysDatawarehouseMapper.java @@ -0,0 +1,18 @@ +package com.muyu.pay.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import com.muyu.pay.domain.SysDatawarehouse; +import org.apache.ibatis.annotations.Mapper; + +/** + * 订单详情Mapper接口 + * + * @author 2112A + * @date 2024-09-01 + */ +@Mapper +public interface SysDatawarehouseMapper extends BaseMapper { + +} diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/service/ISysDatawarehouseService.java b/cloud-pay-server/src/main/java/com/muyu/pay/service/ISysDatawarehouseService.java new file mode 100644 index 0000000..d8e1900 --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/pay/service/ISysDatawarehouseService.java @@ -0,0 +1,41 @@ +package com.muyu.pay.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.pay.domain.SysDatawarehouse; + + +import java.util.List; + +/** + * 订单详情Service接口 + * + * @author 2112A + * @date 2024-09-01 + */ +public interface ISysDatawarehouseService extends IService { + /** + * 精确查询订单详情 + * + * @param userId 订单详情主键 + * @return 订单详情 + */ + public List selectSysDatawarehouseByUserId(Long userId); + + /** + * 查询订单详情列表 + * + * @param sysDatawarehouse 订单详情 + * @return 订单详情集合 + */ + public List selectSysDatawarehouseList(SysDatawarehouse sysDatawarehouse); + + /** + * 判断 订单详情 id是否唯一 + * @param sysDatawarehouse 订单详情 + * @return 结果 + */ + Boolean checkIdUnique(SysDatawarehouse sysDatawarehouse); + + public void addSysDatawarehouse(SysDatawarehouse sysDatawarehouse); +} diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/service/impl/SysDatawarehouseServiceImpl.java b/cloud-pay-server/src/main/java/com/muyu/pay/service/impl/SysDatawarehouseServiceImpl.java new file mode 100644 index 0000000..c745c3f --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/pay/service/impl/SysDatawarehouseServiceImpl.java @@ -0,0 +1,99 @@ +package com.muyu.pay.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.pay.domain.SysDatawarehouse; +import com.muyu.pay.mapper.SysDatawarehouseMapper; +import com.muyu.pay.service.ISysDatawarehouseService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +/** + * 订单详情Service业务层处理 + * + * @author 2112A + * @date 2024-09-01 + */ +@Service +public class SysDatawarehouseServiceImpl + extends ServiceImpl + implements ISysDatawarehouseService { + + @Autowired + private SysDatawarehouseMapper sysDatawarehouseMapper; + /** + * 精确查询订单详情 + * + * @param userId 订单详情主键 + * @return 订单详情 + */ + @Override + public List selectSysDatawarehouseByUserId(Long userId) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(userId, "userId不可为空"); + queryWrapper.eq(SysDatawarehouse::getUserId, userId); + return this.list(queryWrapper); + } + + + /** + * 查询订单详情列表 + * + * @param sysDatawarehouse 订单详情 + * @return 订单详情 + */ + @Override + public List selectSysDatawarehouseList(SysDatawarehouse sysDatawarehouse) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(sysDatawarehouse.getOrderBian())){ + queryWrapper.eq(SysDatawarehouse::getOrderBian, sysDatawarehouse.getOrderBian()); + } +// if (StringUtils.isNotEmpty(sysDatawarehouse.getOrderTime())){ +// queryWrapper.eq(SysDatawarehouse::getOrderTime, sysDatawarehouse.getOrderTime()); +// } +// if (StringUtils.isNotEmpty(sysDatawarehouse.getUserId())){ +// queryWrapper.eq(SysDatawarehouse::getUserId, sysDatawarehouse.getUserId()); +// } + if (StringUtils.isNotEmpty(sysDatawarehouse.getShopName())){ + queryWrapper.like(SysDatawarehouse::getShopName, sysDatawarehouse.getShopName()); + } + if (StringUtils.isNotEmpty(sysDatawarehouse.getOrderName())){ + queryWrapper.like(SysDatawarehouse::getOrderName, sysDatawarehouse.getOrderName()); + } + if (StringUtils.isNotEmpty(sysDatawarehouse.getPhone())){ + queryWrapper.eq(SysDatawarehouse::getPhone, sysDatawarehouse.getPhone()); + } +// if (StringUtils.isNotEmpty(sysDatawarehouse.getOrderScore())){ +// queryWrapper.eq(SysDatawarehouse::getOrderScore, sysDatawarehouse.getOrderScore()); +// } + if (StringUtils.isNotEmpty(sysDatawarehouse.getPayway())){ + queryWrapper.eq(SysDatawarehouse::getPayway, sysDatawarehouse.getPayway()); + } + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * @param sysDatawarehouse 订单详情 + * @return 订单详情 + */ + @Override + public Boolean checkIdUnique(SysDatawarehouse sysDatawarehouse) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDatawarehouse::getOrderId, sysDatawarehouse.getOrderId()); + return this.count(queryWrapper) > 0; + } + + + public void addSysDatawarehouse(SysDatawarehouse sysDatawarehouse) { + // 直接调用BaseMapper的insert方法 + sysDatawarehouseMapper.insert(sysDatawarehouse); + } +}