Commit 0ee14238 by Wangmin

新增 查询商户账户余额

parent b99ffb29
package com.pz.merchant.controller.applet;
import cn.dev33.satoken.annotation.SaIgnore;
import com.dtflys.forest.annotation.Get;
import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
import com.pz.common.core.validate.EditGroup;
import com.pz.merchant.domain.bo.CompanyBalanceBo;
import com.pz.merchant.domain.bo.ModifyCompanyInfoBo;
import com.pz.merchant.domain.vo.CompanyAppVo;
import com.pz.merchant.domain.vo.CompanyBalanceVo;
import com.pz.merchant.domain.vo.FinanceStatisticVo;
import com.pz.merchant.service.ICompanyService;
import lombok.RequiredArgsConstructor;
......@@ -64,4 +67,19 @@ public class CompanyController extends BaseController {
return R.ok(companyService.queryFinanceStatistic(companyId, page));
}
/**
* 查询商户账户余额
*
* @param bo 查询参数
* @param page 分页
* @return 商户账户余额及提现记录
*/
@GetMapping("/balance")
public R<CompanyBalanceVo> getBalance(CompanyBalanceBo bo, PageQuery page) {
if (bo.getCompanyId() == null) {
R.fail("未指定商户ID");
}
return R.ok(companyService.queryCompanyBalance(bo, page));
}
}
package com.pz.merchant.controller.applet;
import cn.dev33.satoken.annotation.SaIgnore;
import com.dtflys.forest.annotation.Put;
import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
......@@ -82,7 +83,7 @@ public class EmployeesController extends BaseController {
* @param emId 陪诊员ID
* @return 切换用户身份结果
*/
@GetMapping("/switchIdentity")
@PutMapping("/switchIdentity")
public R<Boolean> switchIdentity(@NotNull(message = "陪诊员ID不能为空") Integer emId) {
return R.ok(employeesService.switchEmployeeIdentity(emId));
}
......@@ -93,7 +94,7 @@ public class EmployeesController extends BaseController {
* @param emId 陪诊员ID
* @return 切换用户状态结果
*/
@GetMapping("/switchStatus")
@PutMapping("/switchStatus")
public R<Boolean> switchStatus(@NotNull(message = "陪诊员ID不能为空") Integer emId) {
return R.ok(employeesService.disableOrRecover(emId));
}
......
package com.pz.merchant.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 商户余额实体
* <p>created in 2023/9/13 11:17
*
* @author WangMin
* @version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CompanyBalanceBo extends BaseEntity {
/**
* 商户ID
*/
private Integer companyId;
/**
* 提现状态:0-审核中,1-成功提现,2-拒绝提现
*/
private Integer incomeStatus;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
import java.util.List;
/**
* 商户余额实体
* <p>created in 2023/9/13 11:13
*
* @author WangMin
* @version 1.0
*/
@Data
public class CompanyBalanceVo {
/**
* 总收益
*/
private Float totalRevenue;
/**
* 可用余额
*/
private Float balance;
/**
* 冻结余额
*/
private Float freezeBalance;
/**
* 提现记录总数
*/
private Long total;
/**
* 提现记录
*/
private List<CompanyIncomeVo> incomes;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
import java.util.Date;
/**
* 商户提现实体
* <p>created in 2023/9/13 11:05
*
* @author WangMin
* @version 1.0
*/
@Data
public class CompanyIncomeVo {
/**
* 提现单号
*/
private String partnerTradeNo;
/**
* 提现金额
*/
private Float amount;
/**
* 提现审核备注,拒绝提现时可能用到
*/
private String remark;
/**
* 更新时间
*/
private Date updateTime;
}
......@@ -3,9 +3,11 @@ package com.pz.merchant.service;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.page.TableDataInfo;
import com.pz.merchant.domain.bo.CompanyBalanceBo;
import com.pz.merchant.domain.bo.CompanyBo;
import com.pz.merchant.domain.bo.ModifyCompanyInfoBo;
import com.pz.merchant.domain.vo.CompanyAppVo;
import com.pz.merchant.domain.vo.CompanyBalanceVo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.merchant.domain.vo.FinanceStatisticVo;
......@@ -74,4 +76,13 @@ public interface ICompanyService {
* @return 商户财务统计
*/
FinanceStatisticVo queryFinanceStatistic(Integer companyId, PageQuery page);
/**
* 查询账户余额
*
* @param bo 查询参数
* @param page 分页结果
* @return 商户余额及提现记录
*/
CompanyBalanceVo queryCompanyBalance(CompanyBalanceBo bo, PageQuery page);
}
......@@ -12,13 +12,16 @@ import com.pz.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.common.utils.StringUtils;
import com.pz.merchant.domain.Company;
import com.pz.merchant.domain.bo.CompanyBalanceBo;
import com.pz.merchant.domain.bo.CompanyBo;
import com.pz.merchant.domain.bo.ModifyCompanyInfoBo;
import com.pz.merchant.domain.vo.*;
import com.pz.merchant.mapper.CompanyMapper;
import com.pz.merchant.service.ICompanyService;
import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.Income;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.IncomeMapper;
import com.pz.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
......@@ -45,6 +48,8 @@ public class CompanyServiceImpl implements ICompanyService {
private final SonOrderServiceBuilder sonOrderServiceBuilder;
private final IncomeMapper incomeMapper;
/**
* 查询商户
*/
......@@ -198,4 +203,28 @@ public class CompanyServiceImpl implements ICompanyService {
result.setOrders(pageResult.getRecords());
return result;
}
/**
* 查询账户余额
*
* @param bo 查询参数
* @param page 分页结果
* @return 商户余额及提现记录
*/
@Override
public CompanyBalanceVo queryCompanyBalance(CompanyBalanceBo bo, PageQuery page) {
CompanyBalanceVo result = new CompanyBalanceVo();
CompanyVo companyVo = baseMapper.selectVoById(bo.getCompanyId());
Objects.requireNonNull(companyVo, "未查询到商户信息");
result.setBalance(Float.valueOf(companyVo.getBalance()));
result.setFreezeBalance(Float.valueOf(companyVo.getFreezeBalance()));
result.setTotalRevenue(Float.valueOf(companyVo.getTotalRevenue()));
LambdaUpdateWrapper<Income> wrapper = Wrappers.lambdaUpdate();
wrapper.eq(bo.getCompanyId() != null, Income::getEcId, bo.getCompanyId())
.eq(bo.getIncomeStatus() != null, Income::getStatus, bo.getIncomeStatus());
IPage<CompanyIncomeVo> incomePage = incomeMapper.selectCompanyIncome(page.build(), wrapper);
result.setTotal(incomePage.getTotal());
result.setIncomes(incomePage.getRecords());
return result;
}
}
package com.pz.system.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.pz.merchant.domain.Employees;
import com.pz.merchant.domain.bo.EmployeesListBo;
import com.pz.merchant.domain.vo.CompanyIncomeVo;
import com.pz.system.domain.Income;
import com.pz.system.domain.vo.IncomeVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 陪诊员/商户提现Mapper接口
......@@ -10,6 +18,15 @@ import com.pz.common.core.mapper.BaseMapperPlus;
* @author ruoyi
* @date 2023-09-12
*/
@Mapper
public interface IncomeMapper extends BaseMapperPlus<IncomeMapper, Income, IncomeVo> {
/**
* 查询商户提现记录
* @param page 分页
* @param queryWrapper 查询参数
* @return 提现记录
*/
IPage<CompanyIncomeVo> selectCompanyIncome(IPage<CompanyIncomeVo> page, @Param(Constants.WRAPPER) Wrapper<Income> queryWrapper);
}
<?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.pz.system.mapper.IncomeMapper">
<select id="selectCompanyIncome" resultType="com.pz.merchant.domain.vo.CompanyIncomeVo">
select partner_trade_no,
amount,
remark,
update_time
from income
<where>
user_type = 2
<if test="ew.emptyOfWhere == false">
and ${ew.sqlSegment}
</if>
</where>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment