Commit 61ffdc38 by sdif

新增对账单

parent 6942bce6
......@@ -119,6 +119,17 @@ public class DataViewController extends BaseController {
}
return R.ok(iTotalOrderService.platformRevenue(dataViewBo));
}
/**
* 平台收益/机构收益
*/
@GetMapping("/platformRevenueDiv")
public R<DataOrderVo> platformRevenueDiv(DataViewBo dataViewBo) {
Long roleId = getLoginUser().getRoleId();
if (null != roleId && roleId == 3) {
dataViewBo.setUserId(getUserId());
}
return R.ok(iTotalOrderService.platformRevenueDivide(dataViewBo));
}
/**
* 总后台订单量/机构订单量
......
package com.pz.web.controller.system;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.pz.common.annotation.RepeatSubmit;
import com.pz.common.annotation.Log;
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.AddGroup;
import com.pz.common.core.validate.EditGroup;
import com.pz.common.enums.BusinessType;
import com.pz.common.utils.poi.ExcelUtil;
import com.pz.merchant.domain.vo.EmployeesDivideVo;
import com.pz.merchant.domain.bo.EmployeesDivideBo;
import com.pz.merchant.service.IEmployeesDivideService;
import com.pz.common.core.page.TableDataInfo;
/**
* 订单分成记录
*
* @author WangMin
* @date 2023-12-05
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/merchant/divide")
public class EmployeesDivideController extends BaseController {
private final IEmployeesDivideService iEmployeesDivideService;
/**
* 查询订单分成记录列表
*/
@SaCheckPermission("merchant:divide:list")
@GetMapping("/list")
public TableDataInfo<EmployeesDivideVo> list(EmployeesDivideBo bo, PageQuery pageQuery) {
Long roleId = getLoginUser().getRoleId();
if (null != roleId && roleId == 3) {
bo.setUserId(getUserId());
}
return iEmployeesDivideService.queryPageReconciliation(bo, pageQuery);
}
/**
* 导出订单分成记录列表
*/
@SaCheckPermission("merchant:divide:export")
@Log(title = "订单分成记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(EmployeesDivideBo bo, HttpServletResponse response) {
List<EmployeesDivideVo> list = iEmployeesDivideService.queryList(bo);
ExcelUtil.exportExcel(list, "订单分成记录", EmployeesDivideVo.class, response);
}
/**
* 获取订单分成记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("merchant:divide:query")
@GetMapping("/{id}")
public R<EmployeesDivideVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iEmployeesDivideService.queryById(id));
}
/**
* 新增订单分成记录
*/
@SaCheckPermission("merchant:divide:add")
@Log(title = "订单分成记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody EmployeesDivideBo bo) {
return toAjax(iEmployeesDivideService.insertByBo(bo));
}
/**
* 修改订单分成记录
*/
@SaCheckPermission("merchant:divide:edit")
@Log(title = "订单分成记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EmployeesDivideBo bo) {
return toAjax(iEmployeesDivideService.updateByBo(bo));
}
/**
* 删除订单分成记录
*
* @param ids 主键串
*/
@SaCheckPermission("merchant:divide:remove")
@Log(title = "订单分成记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iEmployeesDivideService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
......@@ -60,6 +60,33 @@ public class EmployeesDivideBo extends BaseEntity {
*/
@NotNull(message = "商户不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer companyId;
/**
* 订单号
*/
private String orderSn;
/**
* 用户手机号
*/
private String phone;
/**
* 城市
*/
private String city;
/**
* 机构名称
*/
private String companyName;
/**
* 服务类型
*/
private String serviceType;
/**
* 分成时间
*/
private String startTime;
/**
* 用户id
*/
private Long userId;
}
......@@ -63,5 +63,37 @@ public class EmployeesDivideVo implements Serializable {
@ExcelProperty(value = "商户")
private Integer companyId;
/**
* 订单号
*/
private String orderSn;
/**
* 用户手机号
*/
private String phone;
/**
* 城市
*/
private String city;
/**
* 机构名称
*/
private String companyName;
/**
* 服务类型
*/
private String serviceType;
/**
* 分成时间
*/
private String startTime;
/**
* 订单金额
*/
private Double payMoney;
/**
* 平台金额
*/
private Double dividePriceAdmin;
}
package com.pz.merchant.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.merchant.domain.EmployeesDivide;
import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.merchant.domain.bo.EmployeesDivideBo;
import com.pz.merchant.domain.vo.EmployeesDivideVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.merchant.domain.vo.EmployeesVo;
import org.apache.ibatis.annotations.Param;
/**
* 订单分成记录Mapper接口
......@@ -11,5 +17,5 @@ import com.pz.common.core.mapper.BaseMapperPlus;
* @date 2023-09-11
*/
public interface EmployeesDivideMapper extends BaseMapperPlus<EmployeesDivideMapper, EmployeesDivide, EmployeesDivideVo> {
Page<EmployeesDivideVo> selectEmployeesDivide(@Param("bo") EmployeesDivideBo bo, IPage<EmployeesDivideVo> iPage);
}
......@@ -26,6 +26,7 @@ public interface IEmployeesDivideService {
* 查询订单分成记录列表
*/
TableDataInfo<EmployeesDivideVo> queryPageList(EmployeesDivideBo bo, PageQuery pageQuery);
TableDataInfo<EmployeesDivideVo> queryPageReconciliation(EmployeesDivideBo bo, PageQuery pageQuery);
/**
* 查询订单分成记录列表
......
......@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.common.utils.StringUtils;
import com.pz.merchant.domain.Company;
import com.pz.merchant.mapper.CompanyMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.merchant.domain.bo.EmployeesDivideBo;
......@@ -31,6 +33,8 @@ public class EmployeesDivideServiceImpl implements IEmployeesDivideService {
private final EmployeesDivideMapper baseMapper;
private final CompanyMapper companyMapper;
/**
* 查询订单分成记录
*/
......@@ -48,7 +52,18 @@ public class EmployeesDivideServiceImpl implements IEmployeesDivideService {
Page<EmployeesDivideVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询订单分成记录列表
*/
@Override
public TableDataInfo<EmployeesDivideVo> queryPageReconciliation(EmployeesDivideBo bo, PageQuery pageQuery) {
if (null != bo.getUserId()) {
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getUid, bo.getUserId()));
bo.setCompanyId(company.getId());
}
Page<EmployeesDivideVo> result = baseMapper.selectEmployeesDivide(bo, pageQuery.build());
return TableDataInfo.build(result);
}
/**
* 查询订单分成记录列表
*/
......
......@@ -16,4 +16,5 @@ public class DataViewBo extends BaseEntity {
private Long userId;
private Integer companyId;
}
......@@ -10,4 +10,10 @@ public class DataOrderVo implements Serializable {
* 总数量
*/
private double dataSum;
private double orderPrice;
private double dividePrice;
private double dividePriceAdmin;
}
......@@ -64,6 +64,8 @@ public interface TotalOrderMapper extends BaseMapperPlus<TotalOrderMapper, Total
DataOrderVo selectPlatformRevenue(@Param("dataViewBo") DataViewBo dataViewBo);
DataOrderVo selectPlatformRevenueDiv(@Param("dataViewBo") DataViewBo dataViewBo);
DataOrderVo selectPlatformCom(@Param("dataViewBo") DataViewBo dataViewBo);
DataOrderVo selectOrderQuantity(@Param("dataViewBo") DataViewBo dataViewBo);
......
......@@ -163,6 +163,8 @@ public interface ITotalOrderService {
*/
DataOrderVo platformRevenue(DataViewBo dataViewBo);
DataOrderVo platformRevenueDivide(DataViewBo dataViewBo);
/**
* 订单量
*/
......
......@@ -1517,6 +1517,15 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
}
@Override
public DataOrderVo platformRevenueDivide(DataViewBo dataViewBo) {
if (null != dataViewBo.getUserId()) {
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getUid, dataViewBo.getUserId()));
dataViewBo.setCompanyId(company.getId());
}
return baseMapper.selectPlatformRevenueDiv(dataViewBo);
}
@Override
public DataOrderVo orderQuantity(DataViewBo dataViewBo) {
return baseMapper.selectOrderQuantity(dataViewBo);
}
......
......@@ -17,6 +17,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="selectEmployeesDivide" resultType="com.pz.merchant.domain.vo.EmployeesDivideVo">
SELECT
t.order_sn as orderSn,
s.phonenumber as phone,
ci.`name` as city,
c.`name` as companyName,
t.pay_money as payMoney,
ed.divide_price as dividePrice,
(ed.order_price - ed.divide_price) as dividePriceAdmin,
ed.proportion as proportion,
se.`name` as serviceType,
ed.create_time as startTime
FROM
employees_divide ed
left JOIN total_order t ON t.id = ed.order_id
left JOIN company c ON c.id = ed.company_id
left JOIN sys_user s ON s.user_id = t.uid
left JOIN city ci on ci.id = t.city_id
left join services se on se.id = t.service_id
<if test="bo.orderSn != null and bo.orderSn != ''">
and t.order_sn LIKE CONCAT('%', #{bo.orderSn}, '%')
</if>
<if test="bo.phone != null and bo.phone != ''">
and s.phonenumber LIKE CONCAT('%', #{bo.phone}, '%')
</if>
<if test="bo.city != null and bo.city != ''">
and ci.`name` LIKE CONCAT('%', #{bo.city}, '%')
</if>
<if test="bo.companyName != null and bo.companyName != ''">
and c.`name` LIKE CONCAT('%', #{bo.companyName}, '%')
</if>
<if test="bo.serviceType != null and bo.serviceType != ''">
and se.`name` LIKE CONCAT('%', #{bo.serviceType}, '%')
</if>
<if test="bo.startTime != null and bo.startTime != ''">
and ed.create_time &gt; #{bo.startTime}
</if>
<if test="bo.companyId != null ">
and ed.company_id = #{bo.companyId}
</if>
</select>
</mapper>
......@@ -165,4 +165,15 @@
and DATE(employees_divide.create_time) = CURDATE()
</if>
</select>
<select id="selectPlatformRevenueDiv" resultType="com.pz.system.domain.vo.DataOrderVo">
SELECT
IFNULL(ROUND(SUM(employees_divide.order_price), 2),0) as orderPrice,
IFNULL(ROUND(SUM(employees_divide.divide_price), 2),0) as dividePrice,
IFNULL(ROUND(SUM(employees_divide.order_price - employees_divide.divide_price), 2),0) as dividePriceAdmin FROM
employees_divide
where 1 = 1
<if test="dataViewBo.companyId != null">
and employees_divide.company_id = #{dataViewBo.companyId}
</if>
</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