From 0673fbc3c2f250a83509be18541d034cdfa9cb1f Mon Sep 17 00:00:00 2001 From: siontion Date: Thu, 25 Apr 2024 13:19:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=85=E5=80=BC=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=8F=8A=E5=85=85=E5=80=BC=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加充值功能及充值列表接口 --- .../controller/EnterpriseController.java | 56 ++++++++++- .../cc/yunxi/domain/po/EnterpriseWallet.java | 99 +++++++++++++++++++ .../cc/yunxi/domain/query/WalletQuery.java | 19 ++++ .../yunxi/domain/vo/enterprise/WalletVO.java | 65 ++++++++++++ .../java/cc/yunxi/mapper/WalletMapper.java | 21 ++++ .../cc/yunxi/service/IEnterpriseService.java | 7 ++ .../service/IEnterpriseWalletService.java | 28 ++++++ .../service/impl/EnterpriseServiceImpl.java | 14 ++- .../impl/EnterpriseWalletServiceImpl.java | 88 +++++++++++++++++ .../main/resources/mapper/WalletMapper.xml | 11 +++ 10 files changed, 403 insertions(+), 5 deletions(-) create mode 100644 nxhs-service/src/main/java/cc/yunxi/domain/po/EnterpriseWallet.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/domain/query/WalletQuery.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/domain/vo/enterprise/WalletVO.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/mapper/WalletMapper.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseWalletService.java create mode 100644 nxhs-service/src/main/java/cc/yunxi/service/impl/EnterpriseWalletServiceImpl.java create mode 100644 nxhs-service/src/main/resources/mapper/WalletMapper.xml diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/EnterpriseController.java b/nxhs-service/src/main/java/cc/yunxi/controller/EnterpriseController.java index 397bfda..8b3003a 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/EnterpriseController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/EnterpriseController.java @@ -1,9 +1,27 @@ package cc.yunxi.controller; -import org.springframework.web.bind.annotation.RequestMapping; +import cc.yunxi.aspect.UserTypeAnnotation; +import cc.yunxi.common.domain.CommonResult; +import cc.yunxi.common.domain.PageDTO; +import cc.yunxi.domain.dto.UserDTO; +import cc.yunxi.domain.po.Client; +import cc.yunxi.domain.po.EnterpriseWallet; +import cc.yunxi.domain.query.ClientQuery; +import cc.yunxi.domain.query.WalletQuery; +import cc.yunxi.domain.vo.client.ClientRespVO; +import cc.yunxi.domain.vo.enterprise.WalletVO; +import cc.yunxi.enums.UserTypeEnum; +import cc.yunxi.service.IClientService; +import cc.yunxi.service.IEnterpriseService; +import cc.yunxi.service.IEnterpriseWalletService; +import cc.yunxi.utils.UserContext; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.annotation.RestController; /** *

@@ -13,8 +31,42 @@ import org.springframework.web.bind.annotation.RestController; * @author ccongli * @since 2024-03-10 09:04:53 */ +@Api(tags = "机构用户接口") @RestController @RequestMapping("/enterprise") +@RequiredArgsConstructor +@UserTypeAnnotation(UserTypeEnum.RECYCLER) public class EnterpriseController { + private final IEnterpriseWalletService enterpriseWalletService; + + + @ApiOperation("是否是商户用户,是则返回y,否则返回n") + @PostMapping("/is-org-user") + public CommonResult isOrgUser(@RequestParam("phone") String phone) { + + String result = enterpriseWalletService.isOrgUser(phone); + + return CommonResult.success(result); + } + + @ApiOperation("商户充值") + @PostMapping("/add-wallet") + public CommonResult addWallet(@RequestBody WalletVO walletVO) { + UserDTO userDTO = UserContext.getUser(); + String result = enterpriseWalletService.addWallet(walletVO); + + return CommonResult.success(true); + } + + @ApiOperation("商户充值列表") + @PostMapping("/list-wallet") + public CommonResult> getWallets(@RequestBody WalletQuery walletQuery) { + // 1.分页查询 + Page result = enterpriseWalletService.queryWalletByPage(walletQuery); + // 2.封装并返回 + PageDTO walletPageVO = PageDTO.of(result, WalletVO.class); + + return CommonResult.success(walletPageVO); + } } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/po/EnterpriseWallet.java b/nxhs-service/src/main/java/cc/yunxi/domain/po/EnterpriseWallet.java new file mode 100644 index 0000000..4665f2e --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/po/EnterpriseWallet.java @@ -0,0 +1,99 @@ +package cc.yunxi.domain.po; + +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 lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; + +/** + *

+ * 企业(商户)信息 + *

+ * + * @author ccongli + * @since 2024-03-10 09:04:53 + */ +@Data +@TableName("base_wallet") +@ApiModel(value = "Enterprise钱包流水对象", description = "钱包流水对象") +public class EnterpriseWallet { + + @ApiModelProperty("流水id") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty("商户pid") + @TableField(value = "buiness_id") + private String buinessId; + + @ApiModelProperty("流水编号") + @TableField("code") + private String code; + + @ApiModelProperty("订单编号") + @TableField("order_code") + private String orderCode; + + @ApiModelProperty("类型(1:充值订单 2:提款订单)") + @TableField("wallet_type") + private String walletType; + + @ApiModelProperty("申请时间") + @TableField("apply_time") + private LocalDateTime applyTime; + + @ApiModelProperty("备注") + @TableField("description") + private String description; + + @ApiModelProperty("费用项目(1:预存款)") + @TableField("expense_type") + private String expenseType; + + @ApiModelProperty("单据状态(1:未入账 2:已出账)") + @TableField("order_status") + private String orderStatus; + + @ApiModelProperty("充值状态(1:未充值 2:已充值)") + @TableField("recharge_status") + private String rechargeStatus; + + @ApiModelProperty("金额") + @TableField("price_star") + private BigDecimal price_star; + + @ApiModelProperty("上传凭证图片") + @TableField("photo") + private String photo; + + @ApiModelProperty("上传附件") + @TableField("file") + private String file; + + @ApiModelProperty("公司id") + @TableField("company_id") + private String companyId; + + @ApiModelProperty("组织id") + @TableField("organize_json_id") + private String organizeJsonId; + + + + @ApiModelProperty("创建时间") + @TableField("f_creator_time") + private LocalDateTime creatorTime; + + @ApiModelProperty("修改时间") + @TableField("f_last_modify_time") + private Date fLastModifyTime; + + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/query/WalletQuery.java b/nxhs-service/src/main/java/cc/yunxi/domain/query/WalletQuery.java new file mode 100644 index 0000000..a18031e --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/query/WalletQuery.java @@ -0,0 +1,19 @@ +package cc.yunxi.domain.query; + +import cc.yunxi.common.domain.PageQuery; +import cc.yunxi.domain.po.Client; +import cc.yunxi.domain.po.EnterpriseWallet; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +@ApiModel(value = "WalletQuery", description = "充值查询条件") +public class WalletQuery extends PageQuery { + + @ApiModelProperty("联系电话") + private String mobilePhone; + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/enterprise/WalletVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/enterprise/WalletVO.java new file mode 100644 index 0000000..c815f9e --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/enterprise/WalletVO.java @@ -0,0 +1,65 @@ +package cc.yunxi.domain.vo.enterprise; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@ApiModel(description = "商户余额充值 Request VO") +@Data +public class WalletVO { + + @ApiModelProperty("流水id") + private String id; + + @ApiModelProperty("商户pid") + private String buinessId; + + @ApiModelProperty("流水编号") + private String code; + + @ApiModelProperty("订单编号") + private String orderCode; + + @ApiModelProperty("类型(1:充值订单 2:提款订单)") + private String walletType; + + @ApiModelProperty("申请时间") + private LocalDateTime applyTime; + + @ApiModelProperty("备注") + private String description; + + @ApiModelProperty("费用项目(1:预存款)") + private String expenseType; + + @ApiModelProperty("单据状态(1:未入账 2:已出账)") + private String orderStatus; + + @ApiModelProperty("充值状态(1:未充值 2:已充值)") + private String rechargeStatus; + + @ApiModelProperty("金额") + private BigDecimal price_star; + + @ApiModelProperty("上传凭证图片") + private String photo; + + @ApiModelProperty("上传附件") + private String file; + + @ApiModelProperty("公司id") + private String companyId; + + @ApiModelProperty("组织id") + private String organizeJsonId; +} diff --git a/nxhs-service/src/main/java/cc/yunxi/mapper/WalletMapper.java b/nxhs-service/src/main/java/cc/yunxi/mapper/WalletMapper.java new file mode 100644 index 0000000..1297ce2 --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/mapper/WalletMapper.java @@ -0,0 +1,21 @@ +package cc.yunxi.mapper; + +import cc.yunxi.domain.po.Enterprise; +import cc.yunxi.domain.po.EnterpriseWallet; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 钱包流水(商户)信息 Mapper 接口 + *

+ * + * @author ccongli + * @since 2024-03-10 09:04:53 + */ +@Mapper +public interface WalletMapper extends BaseMapper { + + String queryOrgUserByPhone(String Phone); + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseService.java b/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseService.java index 61acbec..4818323 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseService.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseService.java @@ -1,6 +1,10 @@ package cc.yunxi.service; import cc.yunxi.domain.po.Enterprise; +import cc.yunxi.domain.po.EnterpriseWallet; +import cc.yunxi.domain.query.WalletQuery; +import cc.yunxi.domain.vo.enterprise.WalletVO; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; /** @@ -34,4 +38,7 @@ public interface IEnterpriseService extends IService { * @param amount */ void rechargeBalance(String merchantId, Integer amount); + + + } diff --git a/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseWalletService.java b/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseWalletService.java new file mode 100644 index 0000000..e5bcdcb --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/service/IEnterpriseWalletService.java @@ -0,0 +1,28 @@ +package cc.yunxi.service; + +import cc.yunxi.domain.po.Enterprise; +import cc.yunxi.domain.po.EnterpriseWallet; +import cc.yunxi.domain.query.WalletQuery; +import cc.yunxi.domain.vo.enterprise.WalletVO; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 企业(商户)钱包信息 服务类 + *

+ * + * @author ccongli + * @since 2024-03-10 09:04:53 + */ +public interface IEnterpriseWalletService extends IService { + + + String isOrgUser(String phone); + + String addWallet(WalletVO walletVO); + + Page queryWalletByPage(WalletQuery walletQuery); + + +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/EnterpriseServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/EnterpriseServiceImpl.java index 8de573d..1164dc7 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/EnterpriseServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/EnterpriseServiceImpl.java @@ -1,23 +1,29 @@ package cc.yunxi.service.impl; +import cc.yunxi.common.domain.LambdaQueryWrapperX; import cc.yunxi.common.exception.BizIllegalException; +import cc.yunxi.common.utils.BeanUtils; import cc.yunxi.common.utils.CommonUtil; -import cc.yunxi.domain.po.Enterprise; -import cc.yunxi.domain.po.EnterpriseAccountBill; -import cc.yunxi.domain.po.RecycleStation; +import cc.yunxi.domain.po.*; +import cc.yunxi.domain.query.WalletQuery; +import cc.yunxi.domain.vo.client.ClientRespVO; +import cc.yunxi.domain.vo.enterprise.WalletVO; import cc.yunxi.enums.BusinessCodeEnum; import cc.yunxi.enums.GlobalStatusEnum; import cc.yunxi.mapper.EnterpriseAccountBillMapper; import cc.yunxi.mapper.EnterpriseMapper; +import cc.yunxi.mapper.WalletMapper; import cc.yunxi.service.IEnterpriseService; import cc.yunxi.service.IRecycleStationService; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; @@ -41,6 +47,8 @@ public class EnterpriseServiceImpl extends ServiceImpl + * 企业(商户)信息 服务实现类 + *

+ * + * @author ccongli + * @since 2024-03-10 09:04:53 + */ +@Service +public class EnterpriseWalletServiceImpl extends ServiceImpl implements IEnterpriseWalletService { + + @Autowired + private WalletMapper walletMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public String isOrgUser(String phone) { + + // 返回内容 + String result= "n"; + String orgUserId = walletMapper.queryOrgUserByPhone(phone); + + // 根据移动电话查找商户用户信息,有则返回y,无则返回n + if(orgUserId != null){ + result= "y"; + } + + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String addWallet(WalletVO walletVO) { + EnterpriseWallet enterpriseWallet = BeanUtils.copyBean(walletVO, EnterpriseWallet.class); + // 返回内容 + + walletMapper.insert(enterpriseWallet); + + return enterpriseWallet.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Page queryWalletByPage(WalletQuery walletQuery){ + + LambdaQueryWrapperX wrapperX = new LambdaQueryWrapperX<>(); + wrapperX.eqIfPresent(EnterpriseWallet::getPhoto, walletQuery.getMobilePhone()); + + Page pageDO = walletQuery.buildPage(); + return this.page(pageDO, wrapperX); + + } + +} diff --git a/nxhs-service/src/main/resources/mapper/WalletMapper.xml b/nxhs-service/src/main/resources/mapper/WalletMapper.xml new file mode 100644 index 0000000..b6c2814 --- /dev/null +++ b/nxhs-service/src/main/resources/mapper/WalletMapper.xml @@ -0,0 +1,11 @@ + + + + + + + + +