Browse Source

订单业务代码提交

feature-1.1
wuxicheng 3 years ago
parent
commit
8aab2b6fec
  1. 23
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/QueryUserVipDto.java
  2. 2
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteImgFallbackFactory.java
  3. 36
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteWxMiniFallbackFactory.java
  4. 2
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteImgService.java
  5. 26
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteWxMiniService.java
  6. 49
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java
  7. 6
      bnyer-auth/src/main/java/com/bnyer/auth/service/CreatorLoginService.java
  8. 4
      bnyer-auth/src/main/java/com/bnyer/auth/service/FhUserLoginService.java
  9. 6
      bnyer-auth/src/main/java/com/bnyer/auth/service/TiktokUserLoginService.java
  10. 6
      bnyer-auth/src/main/java/com/bnyer/auth/service/WxUserLoginService.java
  11. 67
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/annotation/DiyParamsValidation.java
  12. 83
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/AlipayConfig.java
  13. 150
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/PayInfo.java
  14. 17
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/R.java
  15. 7
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVip.java
  16. 8
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVipRecord.java
  17. 143
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipOrder.java
  18. 83
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java
  19. 2
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/PayUserVipDto.java
  20. 23
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/QueryUserVipDto.java
  21. 34
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/VipOrderDto.java
  22. 44
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java
  23. 21
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/ResponseEnum.java
  24. 14
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/exception/ServiceException.java
  25. 30
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/OrderUtil.java
  26. 42
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/VipOrderVo.java
  27. 12
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/web/domain/AjaxResult.java
  28. 3
      bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java
  29. 12
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java
  30. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java
  31. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  32. 10
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java
  33. 3
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java
  34. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java
  35. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java
  36. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java
  37. 27
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml
  38. 4
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipRecordMapper.xml
  39. 19
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java
  40. 45
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/VipOrderDto.java
  41. 32
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/enums/EnumVipOrderStatus.java
  42. 7
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/TestMapper.java
  43. 13
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java
  44. 8
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java
  45. 114
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java
  46. 60
      bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java
  47. 31
      bnyer-services/bnyer-order/src/main/resources/com/bnyer/order/mapper/VipOrderMapper.xml
  48. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/TestController.java
  49. 13
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayAlipayConfigMapper.java
  50. 13
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayPayInfoMapper.java
  51. 13
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayWxpayConfigMapper.java
  52. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/TestMapper.java
  53. 12
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayAlipayConfigService.java
  54. 12
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayPayInfoService.java
  55. 12
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayWxpayConfigService.java
  56. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/TestService.java
  57. 15
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayAlipayConfigServiceImpl.java
  58. 15
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayPayInfoServiceImpl.java
  59. 15
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayWxpayConfigServiceImpl.java
  60. 4
      bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/TestServiceImpl.java
  61. 23
      bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayAlipayConfigMapper.xml
  62. 33
      bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayPayInfoMapper.xml
  63. 22
      bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayWxpayConfigMapper.xml

23
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/QueryUserVipDto.java

@ -0,0 +1,23 @@
package com.bnyer.img.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @author :WXC
* @Date :2023/03/31
* @description :
*/
@Getter
@Setter
@ApiModel("会员vip查询类")
public class QueryUserVipDto {
@ApiModelProperty(value="主键Id")
private Long id;
@ApiModelProperty(value="vip客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
private Integer userClientType;
}

2
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteImgFallbackFactory.java

@ -5,7 +5,7 @@ import com.bnyer.common.core.dto.CreatorLoginDto;
import com.bnyer.common.core.dto.FhLoginDto;
import com.bnyer.common.core.dto.TiktokLoginDto;
import com.bnyer.common.core.dto.WxLoginDto;
import com.bnyer.img.api.RemoteImgService;
import com.bnyer.img.api.remote.RemoteImgService;
import com.bnyer.img.api.dto.TiktokImgMiniDto;
import com.bnyer.img.api.model.LoginCreator;
import com.bnyer.img.api.model.LoginFhUser;

36
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteWxMiniFallbackFactory.java

@ -0,0 +1,36 @@
package com.bnyer.img.api.factory;
import com.bnyer.common.core.domain.R;
import com.bnyer.img.api.dto.QueryUserVipDto;
import com.bnyer.img.api.remote.RemoteWxMiniService;
import com.bnyer.img.api.vo.UserVipVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 图文服务降级处理
*
* @author penny
*/
@Component
public class RemoteWxMiniFallbackFactory implements FallbackFactory<RemoteWxMiniService>
{
private static final Logger log = LoggerFactory.getLogger(RemoteWxMiniFallbackFactory.class);
@Override
public RemoteWxMiniService create(Throwable throwable) {
log.error("api图文服务调用失败:{}", throwable.getMessage());
return new RemoteWxMiniService() {
@Override
public R<List<UserVipVo>> queryUserVipList(QueryUserVipDto dto) {
return R.fail("获取会员信息失败:+"+throwable.getMessage());
}
};
}
}

2
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/RemoteImgService.java → bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteImgService.java

@ -1,4 +1,4 @@
package com.bnyer.img.api;
package com.bnyer.img.api.remote;
import com.bnyer.common.core.constant.ServiceNameConstants;
import com.bnyer.common.core.domain.R;

26
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/remote/RemoteWxMiniService.java

@ -0,0 +1,26 @@
package com.bnyer.img.api.remote;
import com.bnyer.common.core.constant.ServiceNameConstants;
import com.bnyer.common.core.domain.R;
import com.bnyer.img.api.dto.QueryUserVipDto;
import com.bnyer.img.api.factory.RemoteWxMiniFallbackFactory;
import com.bnyer.img.api.vo.UserVipVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;
/**
* @author :WXC
* @description :
*/
@FeignClient(contextId = "remoteWxMiniService", value = ServiceNameConstants.IMG_SERVICE, fallbackFactory = RemoteWxMiniFallbackFactory.class)
public interface RemoteWxMiniService {
/**
* 获取会员vip列表
* @return
*/
@GetMapping(value = "/queryUserVipList")
R<List<UserVipVo>> queryUserVipList(QueryUserVipDto dto);
}

49
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java

@ -0,0 +1,49 @@
package com.bnyer.img.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
@Getter
@Setter
@ApiModel("会员vip响应类")
public class UserVipVo implements Serializable {
@ApiModelProperty(value="主键Id")
private Long id;
@ApiModelProperty(value="vip编码")
private String vipCode;
@ApiModelProperty(value="vip名称")
private String vipName;
@ApiModelProperty(value="原价")
private BigDecimal originPrice;
@ApiModelProperty(value="售价")
private BigDecimal price;
@ApiModelProperty(value="描述")
private String description;
@ApiModelProperty(value="热门描述")
private String hotSignDesc;
@ApiModelProperty(value="排序")
private Integer sort;
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
@ApiModelProperty(value="时长天数")
private Integer days;
private static final long serialVersionUID = 1L;
}

6
bnyer-auth/src/main/java/com/bnyer/auth/service/CreatorLoginService.java

@ -4,14 +4,14 @@ import com.bnyer.common.core.constant.TiktokConstant;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.CreatorLoginDto;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.img.api.RemoteImgService;
import com.bnyer.img.api.remote.RemoteImgService;
import com.bnyer.img.api.model.LoginCreator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 艺术家端登录校验方法
*
*
* @author penny
*/
@Component
@ -36,4 +36,4 @@ public class CreatorLoginService {
return creatorInfo.getData();
}
}
}

4
bnyer-auth/src/main/java/com/bnyer/auth/service/FhUserLoginService.java

@ -1,7 +1,7 @@
package com.bnyer.auth.service;
import com.bnyer.common.core.dto.FhLoginDto;
import com.bnyer.img.api.RemoteImgService;
import com.bnyer.img.api.remote.RemoteImgService;
import com.bnyer.img.api.model.LoginFhUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -21,4 +21,4 @@ public class FhUserLoginService {
return remoteImgService.getFhLoginUserByLoginParam(dto).getData();
}
}
}

6
bnyer-auth/src/main/java/com/bnyer/auth/service/TiktokUserLoginService.java

@ -1,14 +1,14 @@
package com.bnyer.auth.service;
import com.bnyer.common.core.dto.TiktokLoginDto;
import com.bnyer.img.api.RemoteImgService;
import com.bnyer.img.api.remote.RemoteImgService;
import com.bnyer.img.api.model.LoginTiktokUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 抖音小程序端用户登录校验方法
*
*
* @author penny
*/
@Component
@ -21,4 +21,4 @@ public class TiktokUserLoginService {
return remoteImgService.getTiktokLoginUserByLoginParam(dto).getData();
}
}
}

6
bnyer-auth/src/main/java/com/bnyer/auth/service/WxUserLoginService.java

@ -1,9 +1,7 @@
package com.bnyer.auth.service;
import com.bnyer.common.core.dto.FhLoginDto;
import com.bnyer.common.core.dto.WxLoginDto;
import com.bnyer.img.api.RemoteImgService;
import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.api.remote.RemoteImgService;
import com.bnyer.img.api.model.LoginWechatUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -23,4 +21,4 @@ public class WxUserLoginService {
return remoteImgService.getWxLoginUserByLoginParam(dto).getData();
}
}
}

67
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/annotation/DiyParamsValidation.java

@ -0,0 +1,67 @@
package com.bnyer.common.core.annotation;
import org.apache.commons.lang3.StringUtils;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.*;
/**
* @author :WXC
* @Date :2023/03/31
* @description : 自定义参数校验注解
*/
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DiyParamsValidation {
/**
* 限制字符串或者数字 可选项, | 分割 00|10|20
* @return
*/
String range() default "";
/**
* 预定义Range
*
*/
public static class Range{
/**
* 参数只能是0020
*/
public static final String STATE_D_E="00|20";
/**
* 参数只能是001020
*/
public static final String STATE_ALL="00|10|20";
/**
* 参数只能是descasc
*/
public static final String SORT_DIRECTION="desc|asc";
private static boolean contains(String range,String value){
boolean flag = false;
if(StringUtils.isEmpty(value)){
return false;
}
if(StringUtils.isNotEmpty(range)){
String[] arr = range.split("\\|");
for (String string : arr) {
if(value.equals(string)){
flag = true;
break;
}
}
}
return flag;
}
}
String message() default "参数基本校验不通过错误:注意格式及长度";
}

83
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/AlipayConfig.java

@ -0,0 +1,83 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author :WXC
* @description :
*/
/**
* 支付宝支付配置表
*/
@ApiModel(value="com-bnyer-common-core-domain-PayAlipayConfig")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "pay_alipay_config")
public class AlipayConfig extends BaseDomain {
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键")
private Long id;
/**
* appid
*/
@TableField(value = "appid")
@ApiModelProperty(value="appid")
private String appid;
/**
* app私钥
*/
@TableField(value = "app_private_key")
@ApiModelProperty(value="app私钥")
private String appPrivateKey;
/**
* 阿里公钥
*/
@TableField(value = "alipay_public_key")
@ApiModelProperty(value="阿里公钥")
private String alipayPublicKey;
/**
* RSA/RSA2
*/
@TableField(value = "key_type")
@ApiModelProperty(value="RSA/RSA2")
private String keyType;
/**
* 回调地址url
*/
@TableField(value = "backurl")
@ApiModelProperty(value="回调地址url")
private String backurl;
/**
* 帐号状态0正常 1停用
*/
@TableField(value = "status")
@ApiModelProperty(value="帐号状态(0正常 1停用)")
private String status;
@TableField(value = "remark")
@ApiModelProperty(value="")
private String remark;
}

150
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/PayInfo.java

@ -0,0 +1,150 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author :WXC
* @description :
*/
/**
* 付款信息表
*/
@ApiModel(value="com-bnyer-common-core-domain-PayPayInfo")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "pay_pay_info")
public class PayInfo extends BaseDomain {
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键")
private Long id;
/**
* 支付单号(内部生成)
*/
@TableField(value = "pay_id")
@ApiModelProperty(value="支付单号(内部生成)")
private String payId;
/**
* 业务主订单id关联内部业务订单表
*/
@TableField(value = "order_id")
@ApiModelProperty(value="业务主订单id:关联内部业务订单表")
private String orderId;
/**
* 支付状态1000未支付;1001支付成功 ;1002支付失败
*/
@TableField(value = "pay_status")
@ApiModelProperty(value="支付状态:1000未支付;1001支付成功 ;1002支付失败")
private Integer payStatus;
/**
* 支付类型wxpay/alipay
*/
@TableField(value = "pay_type")
@ApiModelProperty(value="支付类型:wxpay/alipay")
private String payType;
/**
* 支付单号(第三方返回)
*/
@TableField(value = "pay_no")
@ApiModelProperty(value="支付单号(第三方返回)")
private String payNo;
/**
* appid
*/
@TableField(value = "appid")
@ApiModelProperty(value="appid")
private String appid;
/**
* 商品标题
*/
@TableField(value = "goods_subject")
@ApiModelProperty(value="商品标题")
private String goodsSubject;
/**
* 商品描述
*/
@TableField(value = "goods_desc")
@ApiModelProperty(value="商品描述")
private String goodsDesc;
/**
* 支付金额单位元
*/
@TableField(value = "pay_amount")
@ApiModelProperty(value="支付金额,单位元")
private BigDecimal payAmount;
/**
* 支付时间
*/
@TableField(value = "pay_time")
@ApiModelProperty(value="支付时间")
private Date payTime;
/**
* 支付场景1.会员充值
*/
@TableField(value = "scene_code")
@ApiModelProperty(value="支付场景:1.会员充值")
private Integer sceneCode;
/**
* 用户ip
*/
@TableField(value = "ip")
@ApiModelProperty(value="用户ip")
private String ip;
/**
* 调用第三方下单返回
*/
@TableField(value = "third_code")
@ApiModelProperty(value="调用第三方下单返回")
private String thirdCode;
/**
* 调用第三方下单返回
*/
@TableField(value = "third_msg")
@ApiModelProperty(value="调用第三方下单返回")
private String thirdMsg;
/**
* 调用第三方下单返回
*/
@TableField(value = "third_no")
@ApiModelProperty(value="调用第三方下单返回")
private String thirdNo;
/**
* 备注
*/
@TableField(value = "remark")
@ApiModelProperty(value="备注")
private String remark;
}

17
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/R.java

@ -3,6 +3,8 @@ package com.bnyer.common.core.domain;
import java.io.Serializable;
import com.bnyer.common.core.constant.Constants;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.web.domain.AjaxResult;
/**
* 响应信息主体
@ -65,6 +67,16 @@ public class R<T> implements Serializable
return restResult(null, code, msg);
}
/**
* 返回错误消息
* @param responseEnum
* @return
*/
public static <T> R<T> fail(ResponseEnum responseEnum)
{
return restResult(null,responseEnum.getCode(), responseEnum.getMsg());
}
private static <T> R<T> restResult(T data, int code, String msg)
{
R<T> apiResult = new R<>();
@ -103,4 +115,9 @@ public class R<T> implements Serializable
{
this.data = data;
}
public boolean isSuccess(){
return this.code == SUCCESS;
}
}

7
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVip.java

@ -81,5 +81,12 @@ public class UserVip extends BaseDomain {
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
/**
* 用户客户端类型10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信
*/
@TableField(value = "user_client_type")
@ApiModelProperty(value="vip客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
private Integer userClientType;
private static final long serialVersionUID = 1L;
}

8
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/UserVipRecord.java

@ -42,11 +42,11 @@ public class UserVipRecord extends BaseDomain {
private String phone;
/**
* 用户vip表id
* vip表id
*/
@TableField(value = "user_vip_id")
@ApiModelProperty(value="用户vip表id")
private Long userVipId;
@TableField(value = "vip_id")
@ApiModelProperty(value="vip表id")
private Long vipId;
/**
* 开始时间

143
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipOrder.java

@ -0,0 +1,143 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author :WXC
* @description :
*/
/**
* 会员订单表
*/
@ApiModel(value="com-bnyer-common-core-domain-OrderVipOrder")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "order_vip_order")
public class VipOrder extends BaseDomain {
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键")
private Long id;
/**
* 订单id
*/
@TableField(value = "order_id")
@ApiModelProperty(value="订单id")
private String orderId;
/**
* 用户手机号
*/
@TableField(value = "phone")
@ApiModelProperty(value="用户手机号")
private String phone;
/**
* 用户id
*/
@TableField(value = "user_id")
@ApiModelProperty(value="用户id")
private Long userId;
/**
* vip主键Id
*/
@TableField(value = "vip_id")
@ApiModelProperty(value="vip主键Id")
private Long vipId;
/**
* vip编码
*/
@TableField(value = "vip_code")
@ApiModelProperty(value="vip编码")
private String vipCode;
/**
* vip名称
*/
@TableField(value = "vip_name")
@ApiModelProperty(value="vip名称")
private String vipName;
/**
* 支付金额单位元
*/
@TableField(value = "pay_amount")
@ApiModelProperty(value="支付金额,单位元")
private BigDecimal payAmount;
/**
* 是否到期自动续费(0>;1->)
*/
@TableField(value = "is_delay")
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
/**
* 时长天数
*/
@TableField(value = "days")
@ApiModelProperty(value="时长天数")
private Integer days;
/**
* 订单状态0未处理1成功2失败
*/
@TableField(value = "order_status")
@ApiModelProperty(value="订单状态:0未处理;1成功;2失败")
private Integer orderStatus;
/**
* 订单关闭原因0超时未支付; 1买家取消
*/
@TableField(value = "close_type")
@ApiModelProperty(value="订单关闭原因:0超时未支付; 1买家取消")
private Byte closeType;
/**
* 支付时间
*/
@TableField(value = "pay_time")
@ApiModelProperty(value="支付时间")
private Date payTime;
/**
* 取消时间
*/
@TableField(value = "cancel_time")
@ApiModelProperty(value="取消时间")
private Date cancelTime;
/**
* 用户客户端类型10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信
*/
@TableField(value = "user_client_type")
@ApiModelProperty(value = "用户客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
private Integer userClientType;
/**
* 备注
*/
@TableField(value = "remark")
@ApiModelProperty(value="备注")
private String remark;
}

83
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java

@ -0,0 +1,83 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author :WXC
* @description :
*/
/**
* 微信支付配置表
*/
@ApiModel(value="com-bnyer-common-core-domain-PayWxpayConfig")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "pay_wxpay_config")
public class WxpayConfig extends BaseDomain {
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键")
private Long id;
/**
* APP|JSAPI|MWEB|MINIPROGRAM 支付
*/
@TableField(value = "trade_type")
@ApiModelProperty(value="APP|JSAPI|MWEB|MINIPROGRAM 支付")
private String tradeType;
/**
* appid
*/
@TableField(value = "appid")
@ApiModelProperty(value="appid")
private String appid;
/**
* 商户号
*/
@TableField(value = "mchid")
@ApiModelProperty(value="商户号")
private String mchid;
/**
* 回调地址url
*/
@TableField(value = "backurl")
@ApiModelProperty(value="回调地址url")
private String backurl;
/**
* 密钥
*/
@TableField(value = "key")
@ApiModelProperty(value="密钥")
private String key;
/**
* 帐号状态0正常 1停用
*/
@TableField(value = "status")
@ApiModelProperty(value="帐号状态(0正常 1停用)")
private String status;
@TableField(value = "remark")
@ApiModelProperty(value="")
private String remark;
}

2
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/PayUserVipDto.java

@ -21,7 +21,7 @@ public class PayUserVipDto implements Serializable {
@NotNull(message = "用户vipId不能为空!")
@ApiModelProperty(value="用户vip表id")
private Long userVipId;
private Long vipId;
@NotBlank(message = "vip类型状态不能为空!")
@ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")

23
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/QueryUserVipDto.java

@ -0,0 +1,23 @@
package com.bnyer.common.core.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @author :WXC
* @Date :2023/03/31
* @description :
*/
@Getter
@Setter
@ApiModel("会员vip查询类")
public class QueryUserVipDto {
@ApiModelProperty(value="主键Id")
private Long id;
@ApiModelProperty(value="vip客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
private Integer userClientType;
}

34
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/VipOrderDto.java

@ -1,34 +0,0 @@
package com.bnyer.common.core.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author :WXC
* @Date :2023/03/27
* @description :
*/
@Getter
@Setter
@NoArgsConstructor
public class VipOrderDto implements Serializable {
@NotBlank(message = "手机号不能为空!")
@ApiModelProperty(value="手机号")
private String phone;
@NotNull(message = "用户vipId不能为空!")
@ApiModelProperty(value="用户vip表id")
private Long userVipId;
@NotBlank(message = "vip类型状态不能为空!")
@ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")
private String type;
}

44
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/EnumUserClientType.java

@ -0,0 +1,44 @@
package com.bnyer.common.core.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author :WXC
* @description :
*/
@Getter
@AllArgsConstructor
public enum EnumUserClientType {
DU(10,"抖音","用户","DU"),
KU(20,"快手","用户","KU"),
WU(30,"微信","用户","WU"),
WY(40,"微信","艺术家","WY"),
;
private final int type;
private final String name;
private final String role;
private final String desc;
public static String getName(int type) {
for (EnumUserClientType s : EnumUserClientType.values()) {
if (type == s.type) {
return s.getName();
}
}
return null;
}
public static String getDesc(int type) {
for (EnumUserClientType s : EnumUserClientType.values()) {
if (type == s.type) {
return s.getDesc();
}
}
return null;
}
}

21
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/enums/ResponseEnum.java

@ -7,19 +7,25 @@ package com.bnyer.common.core.enums;
*/
public enum ResponseEnum {
//======================系统异常========================,
SERVER_ERROR(500, "系统繁忙,请稍候重试!"),
PARAM_ERROR(400, "参数异常!"),
NOT_EXIST(110001, "查询为空"),
//======================订单异常========================
/**
* 订单已过期当前端看到该状态码的时候提示订单信息已过期请重新确认后提交此时用户点击确定前端刷新页面
*/
ORDER_EXPIRED(110001, "订单已过期"),
ORDER_EXPIRED(210001, "订单已过期"),
/**
* 请勿重复提交订单
* 1.当前端遇到该异常时说明前端防多次点击没做好
* 2.提示用户 订单已发生改变请勿重复下单
*/
REPEAT_ORDER(110002,"请勿重复提交订单"),
REPEAT_ORDER(210002,"请勿重复提交订单"),
;
@ -27,7 +33,7 @@ public enum ResponseEnum {
private final String msg;
public int value() {
public int getCode() {
return code;
}
@ -47,4 +53,13 @@ public enum ResponseEnum {
", msg='" + msg + '\'' +
'}';
}
public static String getCodeMsg(int code) {
for (ResponseEnum s : ResponseEnum.values()) {
if (code == s.getCode()) {
return s.getMsg();
}
}
return null;
}
}

14
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/exception/ServiceException.java

@ -1,5 +1,10 @@
package com.bnyer.common.core.exception;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.utils.StringUtils;
import java.util.Arrays;
/**
* 业务异常
*
@ -44,6 +49,15 @@ public final class ServiceException extends RuntimeException
this.code = code;
}
public ServiceException(Integer code, String... params) {
this.code = code;
if (StringUtils.isNotEmpty(params)){
this.message = StringUtils.join(params,",") + ResponseEnum.getCodeMsg(code);
}else {
this.message = ResponseEnum.getCodeMsg(code);
}
}
public String getDetailMessage()
{
return detailMessage;

30
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/OrderUtil.java

@ -0,0 +1,30 @@
package com.bnyer.common.core.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
public class OrderUtil {
/**
* 生成流水不超过32位
*
* @frontStr 费用类型 RV=会员充值
* @return 3位项目ID+2费用类型+14时间+11userId+2随机位
*/
public static String getOrderId(String frontStr, Date curTime, String userClientType, String userId) {
SimpleDateFormat simple = new SimpleDateFormat("yyyyMMddHHmmss");
String ms = simple.format(curTime);
Random rand = new Random();
String strRand = String.valueOf(rand.nextInt(100));
while (strRand.length() < 2) {
strRand = "0" + strRand;
}
return frontStr+userClientType + ms + userId+ strRand;
}
public static void main(String[] args) {
System.out.println(getOrderId("RV",new Date(),"DY",1+""));
}
}

42
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/vo/VipOrderVo.java

@ -1,42 +0,0 @@
package com.bnyer.common.core.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author :WXC
* @Date :2023/03/27
* @description :
*/
@Getter
@Setter
@NoArgsConstructor
public class VipOrderVo {
@ApiModelProperty(value="手机号")
private String phone;
@ApiModelProperty(value="用户vip表id")
private Long userVipId;
@ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")
private String type;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="开始时间")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="到期时间")
private Date endTime;
@ApiModelProperty(value="总金额")
private BigDecimal totalAmount;
}

12
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/web/domain/AjaxResult.java

@ -1,10 +1,10 @@
package com.bnyer.common.core.web.domain;
import java.util.HashMap;
import com.bnyer.common.core.constant.HttpStatus;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.utils.StringUtils;
import java.util.HashMap;
/**
* 操作消息提醒
*
@ -161,12 +161,4 @@ public class AjaxResult extends HashMap<String, Object>
return new AjaxResult(code, msg, null);
}
/**
* 返回错误消息
* @param responseEnum
* @return
*/
public static AjaxResult error(ResponseEnum responseEnum) {
return new AjaxResult(responseEnum.value(), responseEnum.getMsg(), null);
}
}

3
bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java

@ -1,6 +1,7 @@
package com.bnyer.common.redis.service;
import cn.hutool.core.util.StrUtil;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.exception.ServiceException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.*;
@ -355,7 +356,7 @@ public class RedisService
public boolean cad(String key, String value) {
if (key.contains(StrUtil.SPACE) || value.contains(StrUtil.SPACE)) {
throw new ServiceException("系统繁忙,请稍候重试!");
throw new ServiceException(ResponseEnum.SERVER_ERROR.getCode());
}
String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end";

12
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java

@ -2,30 +2,20 @@ package com.bnyer.file.service.impl;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.file.constants.RedisKeyConstant;
import com.bnyer.file.dto.FileDto;
import com.bnyer.file.dto.FileUploadDto;
import com.bnyer.file.service.IFileService;
import com.bnyer.file.service.IQiniuService;
import com.bnyer.file.service.ITikTokImage;
import com.bnyer.file.utils.ImgUtil;
import com.bnyer.file.vo.ChekFileVo;
import com.bnyer.img.api.RemoteImgService;
import com.bnyer.img.api.dto.TiktokImgMiniDto;
import org.apache.http.entity.ContentType;
import com.bnyer.img.api.remote.RemoteImgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
/**
* @Author: Yeman

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java

@ -12,10 +12,7 @@ import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
import com.bnyer.img.api.model.LoginFhUser;
import com.bnyer.img.service.*;
import com.bnyer.img.vo.CreatorDetailsVo;
import com.bnyer.img.vo.CreatorFollowVo;
import com.bnyer.img.vo.SignImgVo;
import com.bnyer.img.vo.TiktokImgVo;
import com.bnyer.img.vo.*;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -292,8 +289,8 @@ public class FhMiniController extends BaseController {
@ApiOperation(value="获取用户会员vip列表")
@GetMapping(value = "/queryUserVipList")
public AjaxResult queryUserVipList(){
return AjaxResult.success(userVipService.queryFront());
public R<List<UserVipVo>> queryUserVipList(QueryUserVipDto dto){
return R.ok(userVipService.queryFront(dto));
}
@ApiOperation(value="支付购买用户会员vip")

4
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

@ -306,8 +306,8 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="获取用户会员vip列表")
@GetMapping(value = "/queryUserVipList")
public AjaxResult queryUserVipList(){
return AjaxResult.success(userVipService.queryFront());
public R<List<UserVipVo>> queryUserVipList(QueryUserVipDto dto){
return R.ok(userVipService.queryFront(dto));
}

10
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java

@ -12,10 +12,7 @@ import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
import com.bnyer.img.api.model.LoginWechatUser;
import com.bnyer.img.service.*;
import com.bnyer.img.vo.CreatorDetailsVo;
import com.bnyer.img.vo.CreatorFollowVo;
import com.bnyer.img.vo.SignImgVo;
import com.bnyer.img.vo.TiktokImgVo;
import com.bnyer.img.vo.*;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -315,11 +312,10 @@ public class WxMiniController extends BaseController {
@ApiOperation(value="获取用户会员vip列表")
@GetMapping(value = "/queryUserVipList")
public AjaxResult queryUserVipList(){
return AjaxResult.success(userVipService.queryFront());
public R<List<UserVipVo>> queryUserVipList(QueryUserVipDto dto){
return R.ok(userVipService.queryFront(dto));
}
@ApiOperation(value="支付购买用户会员vip")
@PostMapping(value = "/payUserVip")
public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){

3
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java

@ -2,6 +2,7 @@ package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.UserVip;
import com.bnyer.common.core.dto.QueryUserVipDto;
import com.bnyer.img.vo.UserVipVo;
import org.apache.ibatis.annotations.Mapper;
@ -14,6 +15,6 @@ public interface UserVipMapper extends BaseMapper<UserVip> {
* 获取小程序端会员vip列表
* @return -
*/
List<UserVipVo> queryFront();
List<UserVipVo> queryFront(QueryUserVipDto dto);
}

4
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java

@ -1,5 +1,6 @@
package com.bnyer.img.service;
import com.bnyer.common.core.dto.QueryUserVipDto;
import com.bnyer.img.vo.UserVipVo;
import java.util.List;
@ -10,5 +11,6 @@ public interface UserVipService {
* 获取小程序端会员vip列表
* @return -
*/
List<UserVipVo> queryFront();
List<UserVipVo> queryFront(QueryUserVipDto dto);
}

5
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java

@ -1,5 +1,6 @@
package com.bnyer.img.service.impl;
import com.bnyer.common.core.dto.QueryUserVipDto;
import com.bnyer.img.mapper.UserVipMapper;
import com.bnyer.img.service.UserVipService;
import com.bnyer.img.vo.UserVipVo;
@ -17,7 +18,7 @@ public class UserVipServiceImpl implements UserVipService {
private UserVipMapper userVipMapper;
@Override
public List<UserVipVo> queryFront() {
return userVipMapper.queryFront();
public List<UserVipVo> queryFront(QueryUserVipDto dto) {
return userVipMapper.queryFront(dto);
}
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java

@ -17,6 +17,9 @@ public class UserVipVo implements Serializable {
@ApiModelProperty(value="主键Id")
private Long id;
@ApiModelProperty(value="vip编码")
private String vipCode;
@ApiModelProperty(value="vip名称")
private String vipName;
@ -35,5 +38,11 @@ public class UserVipVo implements Serializable {
@ApiModelProperty(value="排序")
private Integer sort;
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
@ApiModelProperty(value="时长天数")
private Integer days;
private static final long serialVersionUID = 1L;
}

27
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml

@ -17,17 +17,36 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sort" jdbcType="INTEGER" property="sort" />
<result column="user_client_type" jdbcType="INTEGER" property="userClientType" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, vip_name, vip_code, origin_price, price, description, hot_sign_desc, `days`,
is_delay, is_show, create_time, update_time, sort
v.id,
v.vip_name,
v.vip_code,
v.origin_price,
v.price,
v.description,
v.hot_sign_desc,
v.`days`,
v.is_delay,
v.is_show,
v.create_time,
v.update_time,
v.sort,
v.user_client_type
</sql>
<select id="queryFront" resultType="com.bnyer.img.vo.UserVipVo">
select
id, vip_name,origin_price, price, description,hot_sign_desc,sort
from img_user_vip
<include refid="Base_Column_List"/>
from img_user_vip v
where is_show = '1'
<if test="id!=null">
and v.id=#{id}
</if>
<if test="dataSource!=null and dataSource != ''">
and v.user_client_type=#{dataSource}
</if>
order by sort desc
</select>
</mapper>

4
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipRecordMapper.xml

@ -7,7 +7,7 @@
<id column="id" jdbcType="BIGINT" property="id" />
<result column="order_id" jdbcType="VARCHAR" property="orderId" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
<result column="user_vip_id" jdbcType="BIGINT" property="userVipId" />
<result column="vip_id" jdbcType="BIGINT" property="vipId" />
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
<result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
<result column="price" jdbcType="DECIMAL" property="price" />
@ -20,7 +20,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id,order_id, phone,price,status, user_vip_id, start_time, end_time,type, is_show, create_time, update_time,
id,order_id, phone,price,status, vip_id, start_time, end_time,type, is_show, create_time, update_time,
sort
</sql>
</mapper>

19
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/controller/VipOrderController.java

@ -1,9 +1,10 @@
package com.bnyer.order.controller;
import com.bnyer.common.core.context.SecurityContextHolder;
import com.bnyer.common.core.dto.VipOrderDto;
import com.bnyer.common.core.domain.R;
import com.bnyer.order.dto.VipOrderDto;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.vo.VipOrderVo;
import com.bnyer.order.vo.VipOrderVo;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.redis.constant.CacheNames;
@ -49,30 +50,30 @@ public class VipOrderController extends BaseController {
*/
@PostMapping("/confirmVipOrder")
@Operation(summary = "生成订单,返回订单信息" , description = "传入下单所需要的参数进行下单")
public AjaxResult confirmVipOrder(@Valid @RequestBody VipOrderDto vipOrderDto){
public R<VipOrderVo> confirmVipOrder(@Valid @RequestBody VipOrderDto vipOrderDto){
VipOrderVo vipOrderVo = vipOrderService.confirmVipOrder(vipOrderDto);
return AjaxResult.success(vipOrderVo);
return R.ok(vipOrderVo);
}
/**
* 提交订单
*/
@PostMapping("/submitOrder")
@Operation(summary = "提交订单,返回支付流水号" , description = "提交订单,通过支付场景获取订单信息生成订单并返回订单号")
public AjaxResult submitVipOrder() {
@Operation(summary = "提交订单,返回支付流水号" , description = "提交订单,返回支付流水号")
public R submitVipOrder() {
// 防止重复提交
Long userId = SecurityContextHolder.getUserId();
VipOrderVo vipOrderVo = redisCacheService.getCache(OrderCacheNames.VIP_ORDER_PREFIX + OrderCacheNames.ORDER_CONFIRM_KEY, String.valueOf(userId));
// 看看订单有没有过期
if (Objects.isNull(vipOrderVo)) {
return AjaxResult.error(ResponseEnum.ORDER_EXPIRED);
return R.fail(ResponseEnum.ORDER_EXPIRED);
}
boolean cad = redisService.cad(OrderCacheNames.VIP_ORDER_PREFIX + OrderCacheNames.ORDER_CONFIRM_UID_KEY + CacheNames.UNION + userId, String.valueOf(userId));
if (!cad) {
return AjaxResult.error(ResponseEnum.REPEAT_ORDER);
return R.fail(ResponseEnum.REPEAT_ORDER);
}
String orderId = vipOrderService.submitVipOrder(userId,vipOrderVo);
return AjaxResult.success(orderId);
return R.fail(orderId);
}
}

45
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/dto/VipOrderDto.java

@ -0,0 +1,45 @@
package com.bnyer.order.dto;
import com.bnyer.common.core.annotation.DiyParamsValidation;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author :WXC
* @Date :2023/03/27
* @description :
*/
@Getter
@Setter
@NoArgsConstructor
public class VipOrderDto implements Serializable {
@NotBlank(message = "手机号不能为空!")
@ApiModelProperty(value="手机号")
private String phone;
// @ApiModelProperty(value = "购买数量")
// private Integer payNum;
@NotNull(message = "vipId不能为空!")
@ApiModelProperty(value="vip表id")
private Long vipId;
// @NotBlank(message = "用户客户端类型不能为空!")
// @Range(min = 10,max = 40,message = "用户客户端类型只能包含:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
// @ApiModelProperty(value="用户客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
// private Integer userClientType;
// @NotBlank(message = "vip类型状态不能为空!")
// @DiyParamsValidation(range = "0|1|2",message = "下单范围类型暂时只能传0->月卡;1->季卡;2->年卡")
// @ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")
// private String type;
}

32
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/enums/EnumVipOrderStatus.java

@ -0,0 +1,32 @@
package com.bnyer.order.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author :WXC
* @description :
*/
@Getter
@AllArgsConstructor
public enum EnumVipOrderStatus {
NOT_PROCESS(0,"未处理"),
SUCCESS(1,"成功"),
FAILS(2,"失败"),
;
private final int status;
private final String name;
public static String getStatusName(int status) {
for (EnumVipOrderStatus s : EnumVipOrderStatus.values()) {
if (status == s.status) {
return s.getName();
}
}
return null;
}
}

7
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/TestMapper.java

@ -1,7 +0,0 @@
package com.bnyer.order.mapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public class TestMapper {
}

13
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/mapper/VipOrderMapper.java

@ -0,0 +1,13 @@
package com.bnyer.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.VipOrder;
import org.apache.ibatis.annotations.Mapper;
/**
* @author :WXC
* @description :
*/
@Mapper
public interface VipOrderMapper extends BaseMapper<VipOrder> {
}

8
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/VipOrderService.java

@ -1,14 +1,16 @@
package com.bnyer.order.service;
import com.bnyer.common.core.dto.VipOrderDto;
import com.bnyer.common.core.vo.VipOrderVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bnyer.common.core.domain.VipOrder;
import com.bnyer.order.dto.VipOrderDto;
import com.bnyer.order.vo.VipOrderVo;
/**
* @author :WXC
* @Date :2023/03/27
* @description :
*/
public interface VipOrderService {
public interface VipOrderService extends IService<VipOrder> {
/**
* 生成订单返回订单信息
* @param vipOrderDto 下单所需要的参数

114
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java

@ -1,13 +1,26 @@
package com.bnyer.order.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.domain.VipOrder;
import com.bnyer.common.core.enums.EnumUserClientType;
import com.bnyer.common.core.enums.ResponseEnum;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.DateUtils;
import com.bnyer.common.core.utils.OrderUtil;
import com.bnyer.common.core.utils.bean.EntityConvertUtil;
import com.bnyer.common.redis.constant.CacheNames;
import com.bnyer.common.redis.constant.OrderCacheNames;
import com.bnyer.common.core.context.SecurityContextHolder;
import com.bnyer.common.core.dto.VipOrderDto;
import com.bnyer.common.core.vo.VipOrderVo;
import com.bnyer.img.api.dto.QueryUserVipDto;
import com.bnyer.img.api.remote.RemoteWxMiniService;
import com.bnyer.img.api.vo.UserVipVo;
import com.bnyer.order.dto.VipOrderDto;
import com.bnyer.order.enums.EnumVipOrderStatus;
import com.bnyer.order.mapper.VipOrderMapper;
import com.bnyer.order.vo.VipOrderVo;
import com.bnyer.common.redis.service.RedisCacheService;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.common.rocketmq.config.RocketMqConstant;
@ -17,11 +30,11 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.client.producer.SendStatus;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.OrderUtils;
import org.springframework.messaging.support.GenericMessage;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@ -33,7 +46,7 @@ import java.util.Objects;
*/
@Slf4j
@Service
public class VipOrderServiceImpl implements VipOrderService {
public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper, VipOrder> implements VipOrderService {
@Autowired
private RedisService redisService;
@ -44,11 +57,19 @@ public class VipOrderServiceImpl implements VipOrderService {
@Autowired
private RocketMQTemplate orderCancelMqTemplate;
@Autowired
private VipOrderMapper vipOrderMapper;
@Autowired
private RemoteWxMiniService remoteWxMiniService;
@Override
public VipOrderVo confirmVipOrder(VipOrderDto vipOrderDto) {
Long userId = SecurityContextHolder.getUserId();
//将要返回给前端的完整的订单信息
VipOrderVo vipOrderVo = buildVipOrderVo(vipOrderDto);
//查询对应的vip信息
UserVipVo userVipVo = buildUserVipVo(vipOrderDto);
//构建返回给前端的完整的订单信息
VipOrderVo vipOrderVo = buildVipOrderVo(vipOrderDto,userVipVo);
// 防止重复提交
redisService.setCacheObject(OrderCacheNames.VIP_ORDER_PREFIX + OrderCacheNames.ORDER_CONFIRM_UID_KEY + CacheNames.UNION + userId, String.valueOf(userId));
// 保存订单计算结果缓存
@ -57,33 +78,64 @@ public class VipOrderServiceImpl implements VipOrderService {
}
/**
* 构建vip订单
* 查询对应的vip信息
* @param vipOrderDto
* @return
*/
private VipOrderVo buildVipOrderVo(VipOrderDto vipOrderDto) {
VipOrderVo vipOrderVo = EntityConvertUtil.copy(vipOrderDto, VipOrderVo.class);
Date startTime = new Date();
vipOrderVo.setStartTime(startTime);
if(EnumVipType.MONTH_CARD.getTypeCode().equals(vipOrderDto.getType())){
//计算月卡(30天)的结束时间
vipOrderVo.setEndTime(DateUtils.getDateAfter(startTime, 30));
}else if(EnumVipType.SEASON_CARD.getTypeCode().equals(vipOrderDto.getType())){
//结算季卡(90天)的结束时间
vipOrderVo.setEndTime(DateUtils.getDateAfter(startTime, 90));
}else if (EnumVipType.YEAR_CARD.getTypeCode().equals(vipOrderDto.getType())){
//计算年卡(365天)的结束时间
vipOrderVo.setEndTime(DateUtils.getDateAfter(startTime, 365));
}else {
throw new ServiceException("参数异常!");
private UserVipVo buildUserVipVo(VipOrderDto vipOrderDto) {
//查询会员信息
QueryUserVipDto queryUserVipDto = new QueryUserVipDto();
queryUserVipDto.setId(vipOrderDto.getVipId());
// queryUserVipDto.setUserClientType(vipOrderDto.getUserClientType());
R<List<UserVipVo>> userVipVoListResult = remoteWxMiniService.queryUserVipList(queryUserVipDto);
if (!userVipVoListResult.isSuccess()){
log.error("内部接口调用异常:url:{}request{},result{},error:{}","queryUserVipList", JSON.toJSONString(queryUserVipDto),JSON.toJSONString(userVipVoListResult),userVipVoListResult.getMsg());
throw new ServiceException(userVipVoListResult.getMsg());
}
List<UserVipVo> userVipVoList = userVipVoListResult.getData();
if (CollUtil.isEmpty(userVipVoList)){
throw new ServiceException(ResponseEnum.NOT_EXIST.getCode(),"会员信息");
}
UserVipVo userVipVo = userVipVoList.get(0);
return userVipVo;
}
/**
* 构建vip订单
*
* @param vipOrderDto
* @param userVipVo
* @return
*/
private VipOrderVo buildVipOrderVo(VipOrderDto vipOrderDto, UserVipVo userVipVo) {
VipOrderVo vipOrderVo = EntityConvertUtil.copy(userVipVo, VipOrderVo.class);
vipOrderVo.setPhone(vipOrderDto.getPhone());
vipOrderVo.setVipId(vipOrderDto.getVipId());
vipOrderVo.setPayAmount(userVipVo.getPrice());
// Date startTime = new Date();
// vipOrderVo.setStartTime(startTime);
// if(EnumVipType.MONTH_CARD.getTypeCode().equals(vipOrderDto.getType())){
// //计算月卡(30天)的结束时间
// vipOrderVo.setEndTime(DateUtils.getDateAfter(startTime, 30));
// }else if(EnumVipType.SEASON_CARD.getTypeCode().equals(vipOrderDto.getType())){
// //结算季卡(90天)的结束时间
// vipOrderVo.setEndTime(DateUtils.getDateAfter(startTime, 90));
// }else if (EnumVipType.YEAR_CARD.getTypeCode().equals(vipOrderDto.getType())){
// //计算年卡(365天)的结束时间
// vipOrderVo.setEndTime(DateUtils.getDateAfter(startTime, 365));
// }else {
// throw new ServiceException(ResponseEnum.PARAM_ERROR.getCode());
// }
return vipOrderVo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public String submitVipOrder(Long userId,VipOrderVo vipOrderVo) {
String orderId = "123";
//构建订单
VipOrder vipOrder = buildVipOrder(userId,vipOrderVo);
vipOrderMapper.insert(vipOrder);
String orderId = vipOrder.getOrderId();
//发送消息,如果三十分钟后没有支付,则取消订单
SendStatus sendStatus = orderCancelMqTemplate.syncSend(RocketMqConstant.VIP_ORDER_CANCEL_TOPIC, new GenericMessage<>(orderId), RocketMqConstant.TIMEOUT, RocketMqConstant.CANCEL_ORDER_DELAY_LEVEL).getSendStatus();
if (!Objects.equals(sendStatus,SendStatus.SEND_OK)) {
@ -94,4 +146,20 @@ public class VipOrderServiceImpl implements VipOrderService {
}
return orderId;
}
/**
* 构建订单
* @param userId
* @param vipOrderVo
* @return
*/
private VipOrder buildVipOrder(Long userId, VipOrderVo vipOrderVo) {
VipOrder vipOrder = EntityConvertUtil.copy(vipOrderVo, VipOrder.class);
vipOrder.setOrderStatus(EnumVipOrderStatus.NOT_PROCESS.getStatus());
vipOrder.setOrderId(OrderUtil.getOrderId("RV",new Date(), EnumUserClientType.getDesc(vipOrderVo.getUserClientType()),String.valueOf(userId)));
vipOrder.setCreateTime(new Date());
vipOrder.setUpdateTime(new Date());
return vipOrder;
}
}

60
bnyer-services/bnyer-order/src/main/java/com/bnyer/order/vo/VipOrderVo.java

@ -0,0 +1,60 @@
package com.bnyer.order.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author :WXC
* @Date :2023/03/27
* @description :
*/
@Getter
@Setter
@NoArgsConstructor
public class VipOrderVo {
@ApiModelProperty(value="手机号")
private String phone;
@ApiModelProperty(value="vip表id")
private Long vipId;
@ApiModelProperty(value = "vip编码")
private String vipCode;
@ApiModelProperty(value = "vip名称")
private String vipName;
@ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")
private String type;
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value="开始时间")
// private Date startTime;
//
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @ApiModelProperty(value="到期时间")
// private Date endTime;
@ApiModelProperty(value = "用户客户端类型:10用户-抖音 20用户-快手 30用户-微信 40艺术家-微信")
private Integer userClientType;
@ApiModelProperty(value="热门描述")
private String hotSignDesc;
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
@ApiModelProperty(value="时长天数")
private Integer days;
@ApiModelProperty(value="支付金额")
private BigDecimal payAmount;
}

31
bnyer-services/bnyer-order/src/main/resources/com/bnyer/order/mapper/VipOrderMapper.xml

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.order.mapper.VipOrderMapper">
<resultMap id="BaseResultMap" type="com.bnyer.common.core.domain.VipOrder">
<!--@mbg.generated-->
<!--@Table order_vip_order-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="order_id" jdbcType="VARCHAR" property="orderId" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
<result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="vip_id" jdbcType="BIGINT" property="vipId" />
<result column="vip_code" jdbcType="VARCHAR" property="vipCode" />
<result column="vip_name" jdbcType="VARCHAR" property="vipName" />
<result column="pay_amount" jdbcType="DECIMAL" property="payAmount" />
<result column="is_delay" jdbcType="CHAR" property="isDelay" />
<result column="days" jdbcType="INTEGER" property="days" />
<result column="order_status" jdbcType="INTEGER" property="orderStatus" />
<result column="close_type" jdbcType="TINYINT" property="closeType" />
<result column="pay_time" jdbcType="TIMESTAMP" property="payTime" />
<result column="cancel_time" jdbcType="TIMESTAMP" property="cancelTime" />
<result column="user_client_type" jdbcType="INTEGER" property="userClientType" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, order_id, phone, user_id, vip_id, vip_code, vip_name, pay_amount, is_delay, `days`,
order_status, close_type, pay_time, cancel_time,user_client_type, remark, create_time, update_time
</sql>
</mapper>

4
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/controller/TestController.java

@ -1,4 +0,0 @@
package com.bnyer.pay.controller;
public class TestController {
}

13
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayAlipayConfigMapper.java

@ -0,0 +1,13 @@
package com.bnyer.pay.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.AlipayConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* @author :WXC
* @description :
*/
@Mapper
public interface PayAlipayConfigMapper extends BaseMapper<AlipayConfig> {
}

13
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayPayInfoMapper.java

@ -0,0 +1,13 @@
package com.bnyer.pay.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.PayInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @author :WXC
* @description :
*/
@Mapper
public interface PayPayInfoMapper extends BaseMapper<PayInfo> {
}

13
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/PayWxpayConfigMapper.java

@ -0,0 +1,13 @@
package com.bnyer.pay.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.WxpayConfig;
import org.apache.ibatis.annotations.Mapper;
/**
* @author :WXC
* @description :
*/
@Mapper
public interface PayWxpayConfigMapper extends BaseMapper<WxpayConfig> {
}

4
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/mapper/TestMapper.java

@ -1,4 +0,0 @@
package com.bnyer.pay.mapper;
public class TestMapper {
}

12
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayAlipayConfigService.java

@ -0,0 +1,12 @@
package com.bnyer.pay.service;
import com.bnyer.common.core.domain.AlipayConfig;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author :WXC
* @description :
*/
public interface PayAlipayConfigService extends IService<AlipayConfig>{
}

12
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayPayInfoService.java

@ -0,0 +1,12 @@
package com.bnyer.pay.service;
import com.bnyer.common.core.domain.PayInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author :WXC
* @description :
*/
public interface PayPayInfoService extends IService<PayInfo>{
}

12
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/PayWxpayConfigService.java

@ -0,0 +1,12 @@
package com.bnyer.pay.service;
import com.bnyer.common.core.domain.WxpayConfig;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author :WXC
* @description :
*/
public interface PayWxpayConfigService extends IService<WxpayConfig>{
}

4
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/TestService.java

@ -1,4 +0,0 @@
package com.bnyer.pay.service;
public class TestService {
}

15
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayAlipayConfigServiceImpl.java

@ -0,0 +1,15 @@
package com.bnyer.pay.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bnyer.pay.mapper.PayAlipayConfigMapper;
import com.bnyer.common.core.domain.AlipayConfig;
import com.bnyer.pay.service.PayAlipayConfigService;
/**
* @author :WXC
* @description :
*/
@Service
public class PayAlipayConfigServiceImpl extends ServiceImpl<PayAlipayConfigMapper, AlipayConfig> implements PayAlipayConfigService{
}

15
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayPayInfoServiceImpl.java

@ -0,0 +1,15 @@
package com.bnyer.pay.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bnyer.common.core.domain.PayInfo;
import com.bnyer.pay.mapper.PayPayInfoMapper;
import com.bnyer.pay.service.PayPayInfoService;
/**
* @author :WXC
* @description :
*/
@Service
public class PayPayInfoServiceImpl extends ServiceImpl<PayPayInfoMapper, PayInfo> implements PayPayInfoService{
}

15
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/PayWxpayConfigServiceImpl.java

@ -0,0 +1,15 @@
package com.bnyer.pay.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bnyer.pay.mapper.PayWxpayConfigMapper;
import com.bnyer.common.core.domain.WxpayConfig;
import com.bnyer.pay.service.PayWxpayConfigService;
/**
* @author :WXC
* @description :
*/
@Service
public class PayWxpayConfigServiceImpl extends ServiceImpl<PayWxpayConfigMapper, WxpayConfig> implements PayWxpayConfigService{
}

4
bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/service/impl/TestServiceImpl.java

@ -1,4 +0,0 @@
package com.bnyer.pay.service.impl;
public class TestServiceImpl {
}

23
bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayAlipayConfigMapper.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.pay.mapper.PayAlipayConfigMapper">
<resultMap id="BaseResultMap" type="com.bnyer.common.core.domain.AlipayConfig">
<!--@mbg.generated-->
<!--@Table pay_alipay_config-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="appid" jdbcType="VARCHAR" property="appid" />
<result column="app_private_key" jdbcType="VARCHAR" property="appPrivateKey" />
<result column="alipay_public_key" jdbcType="VARCHAR" property="alipayPublicKey" />
<result column="key_type" jdbcType="VARCHAR" property="keyType" />
<result column="backurl" jdbcType="VARCHAR" property="backurl" />
<result column="status" jdbcType="CHAR" property="status" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, appid, app_private_key, alipay_public_key, `key_type`, backurl, `status`, remark,
create_time, update_time
</sql>
</mapper>

33
bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayPayInfoMapper.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.pay.mapper.PayPayInfoMapper">
<resultMap id="BaseResultMap" type="com.bnyer.common.core.domain.PayInfo">
<!--@mbg.generated-->
<!--@Table pay_pay_info-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="pay_id" jdbcType="VARCHAR" property="payId" />
<result column="order_id" jdbcType="VARCHAR" property="orderId" />
<result column="pay_status" jdbcType="INTEGER" property="payStatus" />
<result column="pay_type" jdbcType="VARCHAR" property="payType" />
<result column="pay_no" jdbcType="VARCHAR" property="payNo" />
<result column="appid" jdbcType="VARCHAR" property="appid" />
<result column="goods_subject" jdbcType="VARCHAR" property="goodsSubject" />
<result column="goods_desc" jdbcType="VARCHAR" property="goodsDesc" />
<result column="pay_amount" jdbcType="DECIMAL" property="payAmount" />
<result column="pay_time" jdbcType="TIMESTAMP" property="payTime" />
<result column="scene_code" jdbcType="INTEGER" property="sceneCode" />
<result column="ip" jdbcType="VARCHAR" property="ip" />
<result column="third_code" jdbcType="VARCHAR" property="thirdCode" />
<result column="third_msg" jdbcType="VARCHAR" property="thirdMsg" />
<result column="third_no" jdbcType="VARCHAR" property="thirdNo" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, pay_id, order_id, pay_status, pay_type, pay_no, appid, goods_subject, goods_desc,
pay_amount, pay_time, scene_code, ip, third_code, third_msg, third_no, remark, create_time,
update_time
</sql>
</mapper>

22
bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/PayWxpayConfigMapper.xml

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.pay.mapper.PayWxpayConfigMapper">
<resultMap id="BaseResultMap" type="com.bnyer.common.core.domain.WxpayConfig">
<!--@mbg.generated-->
<!--@Table pay_wxpay_config-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="trade_type" jdbcType="VARCHAR" property="tradeType" />
<result column="appid" jdbcType="VARCHAR" property="appid" />
<result column="mchid" jdbcType="VARCHAR" property="mchid" />
<result column="backurl" jdbcType="VARCHAR" property="backurl" />
<result column="key" jdbcType="VARCHAR" property="key" />
<result column="status" jdbcType="CHAR" property="status" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, trade_type, appid, mchid, backurl, `key`, `status`, remark, create_time, update_time
</sql>
</mapper>
Loading…
Cancel
Save