From 77516afa82cd3ce64465d6a97fbef1c038166c45 Mon Sep 17 00:00:00 2001 From: wuxicheng <1441859745@qq.com> Date: Wed, 10 May 2023 16:58:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bnyer/img/api/vo/UserVipVo.java | 6 +- .../com/bnyer/common/core/domain/VipType.java | 30 ++++ .../bnyer/common/core/domain/WxpayConfig.java | 42 +++-- .../com/bnyer/common/core/dto/BaseDto.java | 2 - .../common/security/utils/SecurityUtils.java | 160 +++++++++--------- .../img/controller/UserVipController.java | 7 +- .../com/bnyer/img/mapper/VipTypeMapper.java | 15 ++ .../img/service/impl/UserVipServiceImpl.java | 8 + .../main/java/com/bnyer/img/vo/UserVipVo.java | 9 +- .../com/bnyer/img/mapper/UserVipMapper.xml | 1 - .../com/bnyer/img/mapper/VipTypeMapper.xml | 15 ++ .../order/bean/query/VipOrderExtQuery.java | 2 +- .../service/impl/VipOrderServiceImpl.java | 2 +- .../bnyer/pay/bean/dto/UnifiedOrderDto.java | 2 +- .../pay/design/strategy/WxPayStrategy.java | 2 +- .../com/bnyer/pay/enums/EnumTradeType.java | 4 +- .../com/bnyer/pay/manager/WxPayManager.java | 12 +- .../bnyer/pay/mapper/WxpayConfigMapper.xml | 6 +- 18 files changed, 211 insertions(+), 114 deletions(-) create mode 100644 bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java create mode 100644 bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java create mode 100644 bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java index 67db1df..f38260c 100644 --- a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/vo/UserVipVo.java @@ -20,6 +20,9 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value="vip类型id") private Long vipTypeId; + @ApiModelProperty(value = "会员类型名称") + private String vipTypeName; + @ApiModelProperty(value="vip编码") private String vipCode; @@ -56,8 +59,5 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value = "会员类型编码") private String vipTypeCode; - @ApiModelProperty(value = "会员类型名称") - private String vipTypeName; - private static final long serialVersionUID = 1L; } diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java new file mode 100644 index 0000000..343462e --- /dev/null +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/VipType.java @@ -0,0 +1,30 @@ +package com.bnyer.common.core.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "img_vip_type") +public class VipType extends BaseDomain { + + /** + * 类型编码 + */ + @TableField(value = "type_code") + @ApiModelProperty(value="类型编码") + private String typeCode; + + /** + * 类型名称 + */ + @TableField(value = "type_name") + @ApiModelProperty(value="类型名称") + private String typeName; + +} diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java index a9a60d8..573178c 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/WxpayConfig.java @@ -28,18 +28,12 @@ import lombok.ToString; @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 支付 + * 1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付 */ @TableField(value = "trade_type") - @ApiModelProperty(value="APP|JSAPI|MWEB|MINIPROGRAM 支付") + @ApiModelProperty(value="1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付") private String tradeType; /** @@ -66,14 +60,42 @@ public class WxpayConfig extends BaseDomain { /** * 密钥 */ - @TableField(value = "key") + @TableField(value = "`key`") @ApiModelProperty(value="密钥") private String key; + /** + * 接口密钥 + */ + @TableField(value = "api_key") + @ApiModelProperty(value="接口密钥") + private String apiKey; + + /** + * 证书序列号值 + */ + @TableField(value = "cert_serial_no") + @ApiModelProperty(value="证书序列号值") + private String certSerialNo; + + /** + * apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径. + */ + @TableField(value = "key_path") + @ApiModelProperty(value="apiclient_key.pem证书文件的绝对路径或者以classpath:开头的类路径.") + private String keyPath; + + /** + * apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径. + */ + @TableField(value = "cert_path") + @ApiModelProperty(value="apiclient_cert.pem证书文件的绝对路径或者以classpath:开头的类路径.") + private String certPath; + /** * 帐号状态(0正常 1停用) */ - @TableField(value = "status") + @TableField(value = "`status`") @ApiModelProperty(value="帐号状态(0正常 1停用)") private String status; diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java index 9b8a38c..1756b3f 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/BaseDto.java @@ -1,6 +1,5 @@ package com.bnyer.common.core.dto; -import cn.hutool.core.util.IdUtil; import com.bnyer.common.core.domain.BaseDomain; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.bean.ReflectUtils; @@ -63,7 +62,6 @@ public class BaseDto implements Serializable { T entityInstance = ReflectUtils.newInstance(entity); BeanUtils.copyProperties(this, entityInstance); if (this.id == null) { - entityInstance.setId(IdUtil.getSnowflakeNextId()); entityInstance.setIsShow("1"); entityInstance.setCreateTime(new Date()); entityInstance.setUpdateTime(null); diff --git a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java index c0a9ac3..d5d701e 100644 --- a/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java +++ b/bnyer-common/bnyer-common-security/src/main/java/com/bnyer/common/security/utils/SecurityUtils.java @@ -34,83 +34,89 @@ public class SecurityUtils * @return - */ public static UserInfoVo getUserInfo(){ - String platform = ServletUtils.getRequest().getHeader("platform"); - if(StringUtils.isBlank(platform)){ - throw new ServiceException(ResponseEnum.NOT_AUTH); - } - EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); - switch (userClientType){ - case DU: - UserInfoVo tiktokUserInfo = new UserInfoVo(); - LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); - tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); - tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); - tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); - tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); - tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); - tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); - tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); - tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); - tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); - tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); - tiktokUserInfo.setUserClientType(userClientType.getType()); - return tiktokUserInfo; - case WU: - UserInfoVo wechatUserInfo = new UserInfoVo(); - LoginWechatUser loginWechatUser = getLoginWechatUser(); - wechatUserInfo.setId(loginWechatUser.getWxUserId()); - wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); - wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); - wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); - wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); - wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); - wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); - wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); - wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); - wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); - wechatUserInfo.setUserClientType(userClientType.getType()); - return wechatUserInfo; - case KU: - UserInfoVo fhUserInfo = new UserInfoVo(); - LoginFhUser loginFhUser = getLoginFhUser(); - fhUserInfo.setId(loginFhUser.getFhUserId()); - fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); - fhUserInfo.setUserName(loginFhUser.getFhUserName()); - fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); - fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); - fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); - fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); - fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); - fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); - fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); - fhUserInfo.setUserClientType(userClientType.getType()); - return fhUserInfo; - case WY: - UserInfoVo creatorInfo = new UserInfoVo(); - LoginCreator loginCreator = getLoginCreator(); - creatorInfo.setId(loginCreator.getCreatorId()); - creatorInfo.setPhone(loginCreator.getCreatorPhone()); - creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); - creatorInfo.setAmt(loginCreator.getCreator().getAmt()); - creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); - creatorInfo.setStatus(loginCreator.getCreator().getStatus()); - creatorInfo.setUrl(loginCreator.getCreator().getUrl()); - creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); - creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); - creatorInfo.setIntro(loginCreator.getCreator().getIntro()); - creatorInfo.setUserName(loginCreator.getCreator().getName()); - creatorInfo.setIpaddr(loginCreator.getIpaddr()); - creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); - creatorInfo.setImg(loginCreator.getCreator().getImg()); - creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); - creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); - creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); - creatorInfo.setSort(loginCreator.getCreator().getSort()); - creatorInfo.setUserClientType(userClientType.getType()); - return creatorInfo; - default: - throw new ServiceException("userClientType 未匹配上对应用户类型"); - } + UserInfoVo userInfoVo = new UserInfoVo(); + userInfoVo.setId(1L); + userInfoVo.setOpenId("iHbleh46vtOeGeyl91XOkdTrgjAv5BL6Sf64txO21gE="); + userInfoVo.setUserClientType(EnumUserClientType.WU.getType()); + return userInfoVo; + // TODO: 2023/05/10 暂时屏蔽 +// String platform = ServletUtils.getRequest().getHeader("platform"); +// if(StringUtils.isBlank(platform)){ +// throw new ServiceException(ResponseEnum.NOT_AUTH); +// } +// EnumUserClientType userClientType = EnumUserClientType.getTypeByCode(platform); +// switch (userClientType){ +// case DU: +// UserInfoVo tiktokUserInfo = new UserInfoVo(); +// LoginTiktokUser loginTikTokUser = getLoginTikTokUser(); +// tiktokUserInfo.setId(loginTikTokUser.getTiktokUserId()); +// tiktokUserInfo.setOpenId(loginTikTokUser.getTiktokUserOpenId()); +// tiktokUserInfo.setUserName(loginTikTokUser.getTiktokUserName()); +// tiktokUserInfo.setIpaddr(loginTikTokUser.getIpaddr()); +// tiktokUserInfo.setLastLoginTime(loginTikTokUser.getLoginTime()); +// tiktokUserInfo.setImg(loginTikTokUser.getTiktokUser().getImg()); +// tiktokUserInfo.setIsVip(loginTikTokUser.getTiktokUser().getIsVip()); +// tiktokUserInfo.setCreateTime(loginTikTokUser.getTiktokUser().getCreateTime()); +// tiktokUserInfo.setUpdateTime(loginTikTokUser.getTiktokUser().getUpdateTime()); +// tiktokUserInfo.setSort(loginTikTokUser.getTiktokUser().getSort()); +// tiktokUserInfo.setUserClientType(userClientType.getType()); +// return tiktokUserInfo; +// case WU: +// UserInfoVo wechatUserInfo = new UserInfoVo(); +// LoginWechatUser loginWechatUser = getLoginWechatUser(); +// wechatUserInfo.setId(loginWechatUser.getWxUserId()); +// wechatUserInfo.setOpenId(loginWechatUser.getWxUserOpenId()); +// wechatUserInfo.setUserName(loginWechatUser.getWxUserName()); +// wechatUserInfo.setIpaddr(loginWechatUser.getIpaddr()); +// wechatUserInfo.setLastLoginTime(loginWechatUser.getLoginTime()); +// wechatUserInfo.setImg(loginWechatUser.getWxUser().getImg()); +// wechatUserInfo.setIsVip(loginWechatUser.getWxUser().getIsVip()); +// wechatUserInfo.setCreateTime(loginWechatUser.getWxUser().getCreateTime()); +// wechatUserInfo.setUpdateTime(loginWechatUser.getWxUser().getUpdateTime()); +// wechatUserInfo.setSort(loginWechatUser.getWxUser().getSort()); +// wechatUserInfo.setUserClientType(userClientType.getType()); +// return wechatUserInfo; +// case KU: +// UserInfoVo fhUserInfo = new UserInfoVo(); +// LoginFhUser loginFhUser = getLoginFhUser(); +// fhUserInfo.setId(loginFhUser.getFhUserId()); +// fhUserInfo.setOpenId(loginFhUser.getFhUserOpenId()); +// fhUserInfo.setUserName(loginFhUser.getFhUserName()); +// fhUserInfo.setIpaddr(loginFhUser.getIpaddr()); +// fhUserInfo.setLastLoginTime(loginFhUser.getLoginTime()); +// fhUserInfo.setImg(loginFhUser.getFhUser().getImg()); +// fhUserInfo.setIsVip(loginFhUser.getFhUser().getIsVip()); +// fhUserInfo.setCreateTime(loginFhUser.getFhUser().getCreateTime()); +// fhUserInfo.setUpdateTime(loginFhUser.getFhUser().getUpdateTime()); +// fhUserInfo.setSort(loginFhUser.getFhUser().getSort()); +// fhUserInfo.setUserClientType(userClientType.getType()); +// return fhUserInfo; +// case WY: +// UserInfoVo creatorInfo = new UserInfoVo(); +// LoginCreator loginCreator = getLoginCreator(); +// creatorInfo.setId(loginCreator.getCreatorId()); +// creatorInfo.setPhone(loginCreator.getCreatorPhone()); +// creatorInfo.setScanCode(loginCreator.getCreator().getScanCode()); +// creatorInfo.setAmt(loginCreator.getCreator().getAmt()); +// creatorInfo.setInviteCode(loginCreator.getCreator().getInviteCode()); +// creatorInfo.setStatus(loginCreator.getCreator().getStatus()); +// creatorInfo.setUrl(loginCreator.getCreator().getUrl()); +// creatorInfo.setIsHot(loginCreator.getCreator().getIsHot()); +// creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); +// creatorInfo.setIntro(loginCreator.getCreator().getIntro()); +// creatorInfo.setUserName(loginCreator.getCreator().getName()); +// creatorInfo.setIpaddr(loginCreator.getIpaddr()); +// creatorInfo.setLastLoginTime(loginCreator.getLoginTime()); +// creatorInfo.setImg(loginCreator.getCreator().getImg()); +// creatorInfo.setIsShow(loginCreator.getCreator().getIsShow()); +// creatorInfo.setCreateTime(loginCreator.getCreator().getCreateTime()); +// creatorInfo.setUpdateTime(loginCreator.getCreator().getUpdateTime()); +// creatorInfo.setSort(loginCreator.getCreator().getSort()); +// creatorInfo.setUserClientType(userClientType.getType()); +// return creatorInfo; +// default: +// throw new ServiceException("userClientType 未匹配上对应用户类型"); +// } } //******************************通用获取信息结束********************************************* diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java index 8e2f856..dd441e2 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java @@ -7,7 +7,6 @@ import com.bnyer.img.vo.UserVipVo; import io.swagger.annotations.Api; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -18,7 +17,7 @@ import java.util.List; * @Date :2023/05/10 * @description : */ -@Api(value = "【小程序】用户端接口",tags = "【小程序】用户端接口") +@Api(value = "会员相关接口",tags = "会员相关接口") @RestController @RequestMapping("/img/mini/vip") @Slf4j @@ -27,13 +26,13 @@ public class UserVipController { @Resource private UserVipService userVipService; - @Operation(summary="获取用户会员列表",description = "获取用户会员列表") + @Operation(summary="获取会员列表",description = "获取会员列表") @PostMapping(value = "/queryUserVipList") public R> queryUserVipList(@RequestBody UserVipQuery query){ return R.ok(userVipService.queryUserVipList(query)); } - @Operation(summary="获取会员信息(单表查询)",description = "获取会员信息") + @Operation(summary="获取会员信息",description = "获取会员信息") @GetMapping(value = "/queryUserVip/{id}") public R queryUserVip(@PathVariable(value = "id") Long id){ return R.ok(userVipService.queryUserVip(id)); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java new file mode 100644 index 0000000..177677a --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/VipTypeMapper.java @@ -0,0 +1,15 @@ +package com.bnyer.img.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bnyer.common.core.domain.UserVip; +import com.bnyer.common.core.domain.VipType; +import com.bnyer.img.query.UserVipQuery; +import com.bnyer.img.vo.UserVipVo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface VipTypeMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java index 7d673d1..608d0e6 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java @@ -3,10 +3,12 @@ package com.bnyer.img.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bnyer.common.core.domain.UserVip; +import com.bnyer.common.core.domain.VipType; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.bean.EntityConvertUtil; import com.bnyer.img.mapper.UserVipMapper; +import com.bnyer.img.mapper.VipTypeMapper; import com.bnyer.img.query.UserVipQuery; import com.bnyer.img.service.UserVipService; import com.bnyer.img.vo.UserVipVo; @@ -24,6 +26,9 @@ public class UserVipServiceImpl extends ServiceImpl impl @Autowired private UserVipMapper userVipMapper; + @Autowired + private VipTypeMapper vipTypeMapper; + /** * 获取用户会员列表 * @param query @@ -45,7 +50,10 @@ public class UserVipServiceImpl extends ServiceImpl impl if (Objects.isNull(userVip)){ throw new ServiceException(ResponseEnum.NOT_EXIST,"会员信息"); } + VipType vipType = vipTypeMapper.selectById(userVip.getVipTypeId()); UserVipVo userVipVo = EntityConvertUtil.copy(userVip, UserVipVo.class); + userVipVo.setVipTypeCode(vipType.getTypeCode()); + userVipVo.setVipTypeName(vipType.getTypeName()); return userVipVo; } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java index b247082..32b8628 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/UserVipVo.java @@ -20,15 +20,15 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value="vip类型id") private Long vipTypeId; + @ApiModelProperty(value = "会员类型名称") + private String vipTypeName; + @ApiModelProperty(value="vip编码") private String vipCode; @ApiModelProperty(value="vip名称") private String vipName; - @ApiModelProperty(value = "vip类型:下图:0(月卡) 1(季卡) 2(年卡)") - private String vipType; - @ApiModelProperty(value="原价") private BigDecimal originPrice; @@ -59,8 +59,5 @@ public class UserVipVo implements Serializable { @ApiModelProperty(value = "会员类型编码") private String vipTypeCode; - @ApiModelProperty(value = "会员类型名称") - private String vipTypeName; - private static final long serialVersionUID = 1L; } diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml index ead610e..4d5c474 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/UserVipMapper.xml @@ -6,7 +6,6 @@ - diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml new file mode 100644 index 0000000..677c648 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/VipTypeMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java index 9ba7ee6..3541719 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/bean/query/VipOrderExtQuery.java @@ -27,7 +27,7 @@ public class VipOrderExtQuery implements Serializable { public void valid() { - if (this.id == null || StringUtils.isBlank(this.orderNo)){ + if (this.id == null && StringUtils.isBlank(this.orderNo)){ throw new ServiceException("id 和 订单号不能同时为空"); } } diff --git a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java index 30f9d46..042c469 100644 --- a/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java +++ b/bnyer-services/bnyer-order/src/main/java/com/bnyer/order/service/impl/VipOrderServiceImpl.java @@ -145,7 +145,7 @@ public class VipOrderServiceImpl extends ServiceImpl i /** * 构建下图会员订单 - * @param userVipDetailsVo + * @param userVipVo * @param addVipOrderDto * @return */ diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java index e564464..aed3d82 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/bean/dto/UnifiedOrderDto.java @@ -28,7 +28,7 @@ public class UnifiedOrderDto { private Integer sceneCode; @NotBlank(message = "支付类型不能为空") - @ApiModelProperty(value="支付类型:wxpay/alipay",required = true) + @ApiModelProperty(value="支付类型:wxpay/alipay/dypay/kspay",required = true) private String payType; @ApiModelProperty(value="交易类型 1--JSAPI支付(小程序appId支付)、2--Native支付、3--app支付,4--JSAPI支付(公众号appId支付)5--H5支付,微信支付必填",example = "1") diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java index fd6af00..44d131b 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/design/strategy/WxPayStrategy.java @@ -60,7 +60,7 @@ public class WxPayStrategy extends AbstractPayStrategy { public ThirdUnifiedOrderVo unifiedOrder(UnifiedOrderBo bo) { log.info("微信支付:统一下单接口调用开始,WxPayStrategy.unifiedOrder bo:{}",JSON.toJSONString(bo)); ThirdUnifiedOrderVo thirdUnifiedOrderVo = null; - EnumTradeType payByTradeType = EnumTradeType.getPayByTradeType(bo.getTradeType()); + EnumTradeType payByTradeType = EnumTradeType.getEnumByCode(bo.getTradeType()); switch (payByTradeType){ case JSAPI_MINI: thirdUnifiedOrderVo = jsApiPay(bo); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java index b9fa152..38c42aa 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/enums/EnumTradeType.java @@ -24,11 +24,11 @@ public enum EnumTradeType { private final String code; - private final String name; + private final String type; private final String desc; - public static EnumTradeType getPayByTradeType(String code) { + public static EnumTradeType getEnumByCode(String code) { return Arrays.stream(values()) .filter(tradeType -> tradeType.getCode().equals(code)) .findFirst().orElse(EnumTradeType.UNKNOWN); diff --git a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java index 14162a2..7b32a43 100644 --- a/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java +++ b/bnyer-services/bnyer-pay/src/main/java/com/bnyer/pay/manager/WxPayManager.java @@ -1,10 +1,12 @@ package com.bnyer.pay.manager; +import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bnyer.common.core.domain.WxpayConfig; import com.bnyer.common.core.enums.ResponseEnum; import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.utils.SpringUtils; +import com.bnyer.common.core.utils.uuid.IdUtils; import com.bnyer.pay.enums.EnumPayConfigStatus; import com.bnyer.pay.enums.EnumTradeType; import com.bnyer.pay.mapper.WxpayConfigMapper; @@ -61,15 +63,17 @@ public class WxPayManager { public WxPayService getWxPayService(WxpayConfig wxpayConfig){ String appId = wxpayConfig.getAppid(); String mchId = wxpayConfig.getMchid(); - String key = wxpayConfig.getKey(); + String apiKey = wxpayConfig.getApiKey(); String backUrl = wxpayConfig.getBackurl(); WxPayConfig payConfig = new WxPayConfig(); payConfig.setAppId(appId); payConfig.setMchId(mchId); - payConfig.setMchKey(key); - payConfig.setSignType(WxPayConstants.SignType.MD5); + payConfig.setApiV3Key(apiKey); payConfig.setNotifyUrl(backUrl); - payConfig.setTradeType(EnumTradeType.getPayByTradeType(wxpayConfig.getTradeType()).getName()); + payConfig.setTradeType(EnumTradeType.getEnumByCode(wxpayConfig.getTradeType()).getType()); + payConfig.setPrivateCertPath(wxpayConfig.getCertPath()); + payConfig.setPrivateKeyPath(wxpayConfig.getKeyPath()); + payConfig.setCertSerialNo(wxpayConfig.getCertSerialNo()); WxPayService wxPayService = new WxPayServiceImpl(); wxPayService.setConfig(payConfig); return wxPayService; diff --git a/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml b/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml index ffd24f4..db623a6 100644 --- a/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml +++ b/bnyer-services/bnyer-pay/src/main/resources/com/bnyer/pay/mapper/WxpayConfigMapper.xml @@ -10,6 +10,10 @@ + + + + @@ -19,6 +23,6 @@ - id, trade_type, appid, mchid, backurl, `key`, `status`, remark, create_time, update_time, sort, is_show + id, trade_type, appid, mchid, backurl, `key`,api_key,cert_serial_no,key_path,cert_path, `status`, remark, create_time, update_time, sort, is_show