增加充值功能及充值列表接口

增加充值功能及充值列表接口
master
siontion 6 months ago
parent ce4fa3523b
commit 3b1b64de09

@ -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;
/**
* <p>
@ -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<String> isOrgUser(@RequestParam("phone") String phone) {
String result = enterpriseWalletService.isOrgUser(phone);
return CommonResult.success(result);
}
@ApiOperation("商户充值")
@PostMapping("/add-wallet")
public CommonResult<Boolean> addWallet(@RequestBody WalletVO walletVO) {
UserDTO userDTO = UserContext.getUser();
String result = enterpriseWalletService.addWallet(walletVO);
return CommonResult.success(true);
}
@ApiOperation("商户充值列表")
@PostMapping("/list-wallet")
public CommonResult<PageDTO<WalletVO>> getWallets(@RequestBody WalletQuery walletQuery) {
// 1.分页查询
Page<EnterpriseWallet> result = enterpriseWalletService.queryWalletByPage(walletQuery);
// 2.封装并返回
PageDTO<WalletVO> walletPageVO = PageDTO.of(result, WalletVO.class);
return CommonResult.success(walletPageVO);
}
}

@ -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;
/**
* <p>
* ()
* </p>
*
* @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;
}

@ -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<EnterpriseWallet> {
@ApiModelProperty("联系电话")
private String mobilePhone;
}

@ -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;
}

@ -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;
/**
* <p>
* () Mapper
* </p>
*
* @author ccongli
* @since 2024-03-10 09:04:53
*/
@Mapper
public interface WalletMapper extends BaseMapper<EnterpriseWallet> {
String queryOrgUserByPhone(String Phone);
}

@ -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<Enterprise> {
* @param amount
*/
void rechargeBalance(String merchantId, Integer amount);
}

@ -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;
/**
* <p>
* ()
* </p>
*
* @author ccongli
* @since 2024-03-10 09:04:53
*/
public interface IEnterpriseWalletService extends IService<EnterpriseWallet> {
String isOrgUser(String phone);
String addWallet(WalletVO walletVO);
Page<EnterpriseWallet> queryWalletByPage(WalletQuery walletQuery);
}

@ -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<EnterpriseMapper, Enterpr
@Autowired
private EnterpriseAccountBillMapper accountBillMapper;
public Enterprise getEnterpriseByStationId(String stationId) {
RecycleStation station = recycleStationService.getStationById(stationId);
String enterpriseId = station.getEnterpriseId();

@ -0,0 +1,88 @@
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.EnterpriseWallet;
import cc.yunxi.domain.po.RecycleStation;
import cc.yunxi.domain.query.WalletQuery;
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.IEnterpriseWalletService;
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 javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
/**
* <p>
* ()
* </p>
*
* @author ccongli
* @since 2024-03-10 09:04:53
*/
@Service
public class EnterpriseWalletServiceImpl extends ServiceImpl<WalletMapper, EnterpriseWallet> 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<EnterpriseWallet> queryWalletByPage(WalletQuery walletQuery){
LambdaQueryWrapperX<EnterpriseWallet> wrapperX = new LambdaQueryWrapperX<>();
wrapperX.eqIfPresent(EnterpriseWallet::getPhoto, walletQuery.getMobilePhone());
Page<EnterpriseWallet> pageDO = walletQuery.buildPage();
return this.page(pageDO, wrapperX);
}
}

@ -0,0 +1,11 @@
<?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="cc.yunxi.mapper.RecycleStationMapper">
<!-- 分页查询回收站点 -->
<select id="queryOrgUserByPhone" parameterType="String" resultType="String">
SELECT f_id FROM base_user where f_mobile_phone=#{phone}
</select>
</mapper>
Loading…
Cancel
Save