Commit b99ffb29 by Wangmin

新增 查询商户成交明细

parent dbb2e8a4
......@@ -2,10 +2,12 @@ package com.pz.merchant.controller.applet;
import cn.dev33.satoken.annotation.SaIgnore;
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.ModifyCompanyInfoBo;
import com.pz.merchant.domain.vo.CompanyAppVo;
import com.pz.merchant.domain.vo.FinanceStatisticVo;
import com.pz.merchant.service.ICompanyService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
......@@ -50,4 +52,16 @@ public class CompanyController extends BaseController {
return R.ok(companyService.queryCompanyDataForApp(companyId));
}
/**
* 查询商户财务统计
*
* @param companyId 商户ID
* @param page 分页
* @return 商户财务统计及成交明细
*/
@GetMapping("/finance")
public R<FinanceStatisticVo> getFinanceStatistic(@NotNull(message = "商户ID不能为空") Integer companyId, PageQuery page) {
return R.ok(companyService.queryFinanceStatistic(companyId, page));
}
}
package com.pz.merchant.domain.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>created in 2023/9/13 9:29
*
* @author WangMin
* @version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class FinanceOrderInfoVo extends OrderInfoVO {
/**
* 陪诊员名称
*/
private String emName;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
import java.util.List;
/**
* 财务统计实体
* <p>created in 2023/9/13 9:34
*
* @author WangMin
* @version 1.0
*/
@Data
public class FinanceStatisticVo {
/**
* 今日收益
*/
private Float todayDeal;
/**
* 数据总量
*/
private Long total;
/**
* 所有已完成订单
*/
private List<FinanceOrderInfoVo> orders;
}
package com.pz.merchant.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.common.core.mapper.BaseMapperPlus;
import com.pz.merchant.domain.Company;
import com.pz.merchant.domain.vo.CompanyAppVo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.merchant.domain.vo.FinanceOrderInfoVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
/**
* 商户Mapper接口
......@@ -24,4 +31,18 @@ public interface CompanyMapper extends BaseMapperPlus<CompanyMapper, Company, Co
*/
CompanyAppVo selectCompanyDataForApp(Integer companyId);
/**
* @param companyId 商户ID
* @return 商户今日收益
*/
BigDecimal selectFinanceStatistic(Integer companyId);
/**
* 查询所有已完成订单
*
* @param queryWrapper 查询条件
* @return 订单
*/
IPage<FinanceOrderInfoVo> selectAllOrder(IPage<FinanceOrderInfoVo> page, @Param(Constants.WRAPPER) Wrapper<Company> queryWrapper);
}
......@@ -41,10 +41,9 @@ public interface EmployeesMapper extends BaseMapperPlus<EmployeesMapper, Employe
*/
TodayOrderListVo selectEmployeesInfoById(@Param("id") Integer emId);
/**
* 查询订单
*
* @param queryWrapper 查询条件
* @return 订单
*/
......
......@@ -7,6 +7,7 @@ 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.CompanyVo;
import com.pz.merchant.domain.vo.FinanceStatisticVo;
import java.util.Collection;
import java.util.List;
......@@ -64,4 +65,13 @@ public interface ICompanyService {
* @return 商户信息
*/
CompanyAppVo queryCompanyDataForApp(Integer companyId);
/**
* 查询商户今日收益以及所有已完成订单
*
* @param companyId 商户ID
* @param page 分页设置
* @return 商户财务统计
*/
FinanceStatisticVo queryFinanceStatistic(Integer companyId, PageQuery page);
}
......@@ -2,7 +2,9 @@ package com.pz.merchant.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.common.core.domain.entity.SysUser;
import com.pz.common.core.page.TableDataInfo;
......@@ -12,16 +14,17 @@ import com.pz.common.utils.StringUtils;
import com.pz.merchant.domain.Company;
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.CompanyVo;
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.mapper.CityMapper;
import com.pz.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
/**
......@@ -40,6 +43,8 @@ public class CompanyServiceImpl implements ICompanyService {
private final SysUserMapper userMapper;
private final SonOrderServiceBuilder sonOrderServiceBuilder;
/**
* 查询商户
*/
......@@ -153,8 +158,44 @@ public class CompanyServiceImpl implements ICompanyService {
return companyFlag && userFlag;
}
/**
* 查询商户信息
*
* @param companyId 商户ID
* @return 商户信息
*/
@Override
public CompanyAppVo queryCompanyDataForApp(Integer companyId) {
return baseMapper.selectCompanyDataForApp(companyId);
}
/**
* 查询商户今日收益以及所有已完成订单
*
* @param companyId 商户ID
* @param page 分页设置
* @return 商户财务统计
*/
@Override
public FinanceStatisticVo queryFinanceStatistic(Integer companyId, PageQuery page) {
BigDecimal todayDeal = Optional.ofNullable(baseMapper.selectFinanceStatistic(companyId)).orElse(BigDecimal.ZERO);
FinanceStatisticVo result = new FinanceStatisticVo();
result.setTodayDeal(todayDeal.floatValue());
QueryWrapper<Company> query = Wrappers.query();
query.eq("employees.company_id", companyId)
.eq("total_order.status", 2); // 查询已完成的订单数据
IPage<FinanceOrderInfoVo> pageResult = baseMapper.selectAllOrder(page.build(), query);
result.setTotal(pageResult.getTotal());
// 根据不同子订单装载就诊人员信息和子订单状态
pageResult.getRecords().forEach(suborder -> {
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBid());
SonOrderVo orderStatus;
if (orderService != null && (orderStatus = orderService.getSonOrderInfoByTotalId(suborder.getOrderId())) != null) {
suborder.setUserName(orderStatus.getUserName());
suborder.setSonOrderStatus(orderStatus.getOrderStatus());
}
});
result.setOrders(pageResult.getRecords());
return result;
}
}
......@@ -144,25 +144,25 @@ public class EmployeesServiceImpl implements IEmployeesService {
SysUser sysUser = new SysUser();
sysUser.setUserId(bo.getUid().longValue());
sysUser.setPhonenumber(bo.getPhone());
if(bo.getIdentity() == 2){
if (bo.getIdentity() == 2) {
Employees add = BeanUtil.toBean(bo, Employees.class);
add.setNowType(1);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
//修改系统表角色
// 修改系统表角色
sysUser.setUserType(UserType.APP_USER.getUserType());
sysUserMapper.updateById(sysUser);
}
return flag;
}else if(bo.getIdentity() == 3){//商户新增
} else if (bo.getIdentity() == 3) {// 商户新增
Company add = BeanUtil.toBean(bo, Company.class);
boolean flag = companyMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
//修改系统表角色
// 修改系统表角色
sysUser.setUserType(UserType.AMERCHANT_USER.getUserType());
sysUserMapper.updateById(sysUser);
}
......@@ -319,8 +319,9 @@ public class EmployeesServiceImpl implements IEmployeesService {
public TodayOrderListVo queryEmployeesInfo(Integer emId) {
TodayOrderListVo result = baseMapper.selectEmployeesInfoById(emId);
QueryWrapper<Employees> query = Wrappers.query();
query.apply("date_format(total_order.create_time,'%Y-%m-%d') = current_date")
.eq("total_order.em_id", emId);
query.apply(" to_days(current_date) = to_days(total_order.create_time)")// 查询当天数据
.eq("total_order.em_id", emId)
.ne("total_order.business_id", 0); // 排除商城订单
IPage<OrderInfoVO> page = baseMapper.selectOrder(new PageQuery().build(), query);
// 根据不同子订单装载就诊人员信息和子订单状态
List<OrderInfoVO> orders = page.getRecords();
......@@ -347,7 +348,8 @@ public class EmployeesServiceImpl implements IEmployeesService {
public TableDataInfo<OrderInfoVO> queryAllOrder(OrderBo bo, PageQuery pageQuery) {
QueryWrapper<Employees> query = Wrappers.query();
query.eq(bo.getEmId() != null, "total_order.em_id", bo.getEmId())
.eq(bo.getServiceStatus() != null, "total_order.status", bo.getServiceStatus());
.eq(bo.getServiceStatus() != null, "total_order.status", bo.getServiceStatus())
.ne("total_order.business_id", 0); // 排除商城订单;
IPage<OrderInfoVO> page = baseMapper.selectOrder(pageQuery.build(), query);
// 根据不同子订单装载就诊人员信息和子订单状态
page.getRecords().forEach(suborder -> {
......
......@@ -38,5 +38,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where company.id = #{id}
</select>
<select id="selectFinanceStatistic" resultType="java.math.BigDecimal">
select ifnull(sum(ifnull(divide_price, 0)),0)
from employees_divide
where company_id = #{id} and to_days(current_date) = to_days(create_time);
</select>
<select id="selectAllOrder" resultType="com.pz.merchant.domain.vo.FinanceOrderInfoVo">
select total_order.id as orderId,
total_order.status as orderStatus,
services.name as project,
employees.name as emName,
services.cover,
services.price,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission,
services.bid
from total_order
left join employees on employees.id = total_order.em_id
left join services on total_order.service_id = services.id
<where>
and total_order.business_id != 0
<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