Commit 7284962d by Wangmin

1.生成商户模块相关业务代码

2.新增获取陪诊员列表
3.新增修改陪护员工作时间
parent e20de862
...@@ -33,24 +33,28 @@ public class BaseEntity implements Serializable { ...@@ -33,24 +33,28 @@ public class BaseEntity implements Serializable {
* 创建者 * 创建者
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@JsonIgnore
private String createBy; private String createBy;
/** /**
* 创建时间 * 创建时间
*/ */
@TableField(fill = FieldFill.INSERT) @TableField(fill = FieldFill.INSERT)
@JsonIgnore
private Date createTime; private Date createTime;
/** /**
* 更新者 * 更新者
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
@JsonIgnore
private String updateBy; private String updateBy;
/** /**
* 更新时间 * 更新时间
*/ */
@TableField(fill = FieldFill.INSERT_UPDATE) @TableField(fill = FieldFill.INSERT_UPDATE)
@JsonIgnore
private Date updateTime; private Date updateTime;
/** /**
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.pz.common.exception.ServiceException; import com.pz.common.exception.ServiceException;
import com.pz.common.utils.StringUtils; import com.pz.common.utils.StringUtils;
import com.pz.common.utils.sql.SqlUtil; import com.pz.common.utils.sql.SqlUtil;
...@@ -37,11 +38,13 @@ public class PageQuery implements Serializable { ...@@ -37,11 +38,13 @@ public class PageQuery implements Serializable {
/** /**
* 排序列 * 排序列
*/ */
@JsonIgnore
private String orderByColumn; private String orderByColumn;
/** /**
* 排序的方向desc或者asc * 排序的方向desc或者asc
*/ */
@JsonIgnore
private String isAsc; private String isAsc;
/** /**
......
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.page.TableDataInfo;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import com.pz.merchant.domain.bo.CompanyBo;
import com.pz.merchant.domain.bo.EmployeesListBo;
import com.pz.merchant.domain.bo.SetEmployeeWorkingHourBo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.service.ICompanyService;
import com.pz.merchant.service.IEmployeesService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 商户[小程序]
*
* @author WangMin
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController("AppCompanyController")
@RequestMapping("/merchant/app/company")
@SaIgnore
public class CompanyController extends BaseController {
private final ICompanyService iCompanyService;
private final IEmployeesService iEmployeesService;
/**
* 查询陪诊员列表
*/
@GetMapping("/employee/list")
public TableDataInfo<EmployeesListVo> employeesList(EmployeesListBo bo, PageQuery pageQuery) {
return iEmployeesService.employeesList(bo, pageQuery);
}
/**
* 设置员工工作时间段
*
* @param bo 员工参数信息
* @return 操作结果
*/
@PutMapping("/employee/setWorkHour")
public R<Boolean> setEmployeesWorkHour(@RequestBody @Validated(EditGroup.class) SetEmployeeWorkingHourBo bo) {
return R.ok(iEmployeesService.setEmployeesWorkHours(bo));
}
}
...@@ -9,12 +9,13 @@ import com.pz.common.utils.file.FileUtils; ...@@ -9,12 +9,13 @@ import com.pz.common.utils.file.FileUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* 文件上传下载 * 文件上传下载
...@@ -26,7 +27,6 @@ import java.io.IOException; ...@@ -26,7 +27,6 @@ import java.io.IOException;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/file") @RequestMapping("/file")
@SaIgnore
@Slf4j @Slf4j
public class FileSystemController extends BaseController { public class FileSystemController extends BaseController {
...@@ -54,7 +54,6 @@ public class FileSystemController extends BaseController { ...@@ -54,7 +54,6 @@ public class FileSystemController extends BaseController {
* 下载文件 * 下载文件
* *
* @param path 文件路径 * @param path 文件路径
* @return 文件
*/ */
@GetMapping("/download") @GetMapping("/download")
public void downloadFile(String path, HttpServletResponse response) { public void downloadFile(String path, HttpServletResponse response) {
......
package com.pz.web.controller.system; package com.pz.merchant.controller.file;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
......
package com.pz.merchant.controller.pc;
import java.util.List;
import java.util.Arrays;
import com.pz.common.core.page.TableDataInfo;
import com.pz.merchant.domain.bo.CompanyBo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.merchant.service.ICompanyService;
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;
/**
* 商户
*
* @author WangMin
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/merchant/company")
public class CompanyController extends BaseController {
private final ICompanyService iCompanyService;
/**
* 查询商户列表
*/
@SaCheckPermission("merchant:company:list")
@GetMapping("/list")
public TableDataInfo<CompanyVo> list(CompanyBo bo, PageQuery pageQuery) {
return iCompanyService.queryPageList(bo, pageQuery);
}
/**
* 导出商户列表
*/
@SaCheckPermission("merchant:company:export")
@Log(title = "商户", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CompanyBo bo, HttpServletResponse response) {
List<CompanyVo> list = iCompanyService.queryList(bo);
ExcelUtil.exportExcel(list, "商户", CompanyVo.class, response);
}
/**
* 获取商户详细信息
*
* @param id 主键
*/
@SaCheckPermission("merchant:company:query")
@GetMapping("/{id}")
public R<CompanyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iCompanyService.queryById(id));
}
/**
* 新增商户
*/
@SaCheckPermission("merchant:company:add")
@Log(title = "商户", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CompanyBo bo) {
return toAjax(iCompanyService.insertByBo(bo));
}
/**
* 修改商户
*/
@SaCheckPermission("merchant:company:edit")
@Log(title = "商户", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CompanyBo bo) {
return toAjax(iCompanyService.updateByBo(bo));
}
/**
* 删除商户
*
* @param ids 主键串
*/
@SaCheckPermission("merchant:company:remove")
@Log(title = "商户", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iCompanyService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
package com.pz.merchant.controller.pc;
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.EmployeesVo;
import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.merchant.service.IEmployeesService;
import com.pz.common.core.page.TableDataInfo;
/**
* 陪诊员
*
* @author WangMin
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/merchant/employees")
public class EmployeesController extends BaseController {
private final IEmployeesService iEmployeesService;
/**
* 查询陪诊员列表
*/
@SaCheckPermission("merchant:employees:list")
@GetMapping("/list")
public TableDataInfo<EmployeesVo> list(EmployeesBo bo, PageQuery pageQuery) {
return iEmployeesService.queryPageList(bo, pageQuery);
}
/**
* 导出陪诊员列表
*/
@SaCheckPermission("merchant:employees:export")
@Log(title = "陪诊员", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(EmployeesBo bo, HttpServletResponse response) {
List<EmployeesVo> list = iEmployeesService.queryList(bo);
ExcelUtil.exportExcel(list, "陪诊员", EmployeesVo.class, response);
}
/**
* 获取陪诊员详细信息
*
* @param id 主键
*/
@SaCheckPermission("merchant:employees:query")
@GetMapping("/{id}")
public R<EmployeesVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iEmployeesService.queryById(id));
}
/**
* 新增陪诊员
*/
@SaCheckPermission("merchant:employees:add")
@Log(title = "陪诊员", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody EmployeesBo bo) {
return toAjax(iEmployeesService.insertByBo(bo));
}
/**
* 修改陪诊员
*/
@SaCheckPermission("merchant:employees:edit")
@Log(title = "陪诊员", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody EmployeesBo bo) {
return toAjax(iEmployeesService.updateByBo(bo));
}
/**
* 删除陪诊员
*
* @param ids 主键串
*/
@SaCheckPermission("merchant:employees:remove")
@Log(title = "陪诊员", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iEmployeesService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
package com.pz.merchant.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 商户对象 company
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("company")
public class Company extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* ID
*/
@TableId(value = "id")
private Integer id;
/**
* 商户名称
*/
private String name;
/**
* 城市
*/
private Long cityId;
/**
* 商户电话
*/
private String tel;
/**
* 商户手机
*/
private String phone;
/**
* 商户地址
*/
private String address;
/**
* 状态
*/
private Integer status;
/**
* 营业执照
*/
private String businessLicense;
/**
* 是否缴纳保证金
*/
private Integer isCashDeposit;
/**
* 保证金金额
*/
private String cashDeposit;
/**
* 创建人
*/
private Integer uid;
/**
* 总收益
*/
private String totalRevenue;
/**
* 当前余额
*/
private String balance;
/**
* 冻结余额
*/
private String freezeBalance;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
package com.pz.merchant.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 陪诊员对象 employees
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("employees")
public class Employees extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Integer id;
/**
* 陪诊员
*/
private String name;
/**
* 职业开始年份
*/
private String startYear;
/**
* 用户
*/
private Integer uid;
/**
* 工作时段
*/
private String workingHours;
/**
* 状态
*/
private Integer status;
/**
* 所属商户
*/
private Integer companyId;
/**
* 身份证正面照
*/
private String cardFront;
/**
* 身份证反面照
*/
private String cardReverse;
/**
* 健康证
*/
private String healthCertificate;
/**
* 经度
*/
private String lng;
/**
* 纬度
*/
private String lat;
/**
* 城市
*/
private Long cityId;
/**
* 当前身份
*/
private Integer nowType;
/**
* 总收益
*/
private String totalRevenue;
/**
* 当前余额
*/
private String balance;
/**
* 冻结余额
*/
private Long freezeBalance;
/**
* 取消订单次数
*/
private Integer killOrder;
/**
* 删除标志
*/
@TableLogic
private String delFlag;
}
package com.pz.merchant.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 订单分成记录对象 employees_divide
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("employees_divide")
public class EmployeesDivide extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Integer id;
/**
* 订单
*/
private Integer orderId;
/**
* 订单价格
*/
private String orderPrice;
/**
* 订单分成
*/
private String dividePrice;
/**
* 分成比例
*/
private Integer proportion;
/**
* 陪诊人
*/
private Integer emId;
/**
* 商户
*/
private Integer companyId;
}
package com.pz.merchant.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 商户业务对象 company
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class CompanyBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "ID不能为空", groups = { EditGroup.class })
private Integer id;
/**
* 商户名称
*/
@NotBlank(message = "商户名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 城市
*/
@NotNull(message = "城市不能为空", groups = { AddGroup.class, EditGroup.class })
private Long cityId;
/**
* 商户电话
*/
@NotBlank(message = "商户电话不能为空", groups = { AddGroup.class, EditGroup.class })
private String tel;
/**
* 商户手机
*/
@NotBlank(message = "商户手机不能为空", groups = { AddGroup.class, EditGroup.class })
private String phone;
/**
* 商户地址
*/
@NotBlank(message = "商户地址不能为空", groups = { AddGroup.class, EditGroup.class })
private String address;
/**
* 状态
*/
@NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status;
/**
* 营业执照
*/
@NotBlank(message = "营业执照不能为空", groups = { AddGroup.class, EditGroup.class })
private String businessLicense;
/**
* 是否缴纳保证金
*/
@NotNull(message = "是否缴纳保证金不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer isCashDeposit;
/**
* 保证金金额
*/
@NotBlank(message = "保证金金额不能为空", groups = { AddGroup.class, EditGroup.class })
private String cashDeposit;
/**
* 创建人
*/
@NotNull(message = "创建人不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer uid;
/**
* 总收益
*/
@NotBlank(message = "总收益不能为空", groups = { AddGroup.class, EditGroup.class })
private String totalRevenue;
/**
* 当前余额
*/
@NotBlank(message = "当前余额不能为空", groups = { AddGroup.class, EditGroup.class })
private String balance;
/**
* 冻结余额
*/
@NotBlank(message = "冻结余额不能为空", groups = { AddGroup.class, EditGroup.class })
private String freezeBalance;
}
package com.pz.merchant.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 陪诊员业务对象 employees
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmployeesBo extends BaseEntity {
/**
*
*/
@NotNull(message = "不能为空", groups = { EditGroup.class })
private Integer id;
/**
* 陪诊员
*/
@NotBlank(message = "陪诊员 不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 职业开始年份
*/
@NotBlank(message = "职业开始年份不能为空", groups = { AddGroup.class, EditGroup.class })
private String startYear;
/**
* 用户
*/
@NotNull(message = "用户不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer uid;
/**
* 工作时段
*/
@NotBlank(message = "工作时段不能为空", groups = { AddGroup.class, EditGroup.class })
private String workingHours;
/**
* 状态
*/
@NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status;
/**
* 所属商户
*/
@NotNull(message = "所属商户不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer companyId;
/**
* 身份证正面照
*/
@NotBlank(message = "身份证正面照不能为空", groups = { AddGroup.class, EditGroup.class })
private String cardFront;
/**
* 身份证反面照
*/
@NotBlank(message = "身份证反面照不能为空", groups = { AddGroup.class, EditGroup.class })
private String cardReverse;
/**
* 健康证
*/
@NotBlank(message = "健康证不能为空", groups = { AddGroup.class, EditGroup.class })
private String healthCertificate;
/**
* 经度
*/
@NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
private String lng;
/**
* 纬度
*/
@NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
private String lat;
/**
* 城市
*/
@NotNull(message = "城市不能为空", groups = { AddGroup.class, EditGroup.class })
private Long cityId;
/**
* 当前身份
*/
@NotNull(message = "当前身份不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer nowType;
/**
* 总收益
*/
@NotBlank(message = "总收益不能为空", groups = { AddGroup.class, EditGroup.class })
private String totalRevenue;
/**
* 当前余额
*/
@NotBlank(message = "当前余额不能为空", groups = { AddGroup.class, EditGroup.class })
private String balance;
/**
* 冻结余额
*/
@NotNull(message = "冻结余额不能为空", groups = { AddGroup.class, EditGroup.class })
private Long freezeBalance;
/**
* 取消订单次数
*/
@NotNull(message = "取消订单次数不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer killOrder;
}
package com.pz.merchant.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 订单分成记录业务对象 employees_divide
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmployeesDivideBo extends BaseEntity {
/**
*
*/
@NotNull(message = "不能为空", groups = { EditGroup.class })
private Integer id;
/**
* 订单
*/
@NotNull(message = "订单不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer orderId;
/**
* 订单价格
*/
@NotBlank(message = "订单价格不能为空", groups = { AddGroup.class, EditGroup.class })
private String orderPrice;
/**
* 订单分成
*/
@NotBlank(message = "订单分成不能为空", groups = { AddGroup.class, EditGroup.class })
private String dividePrice;
/**
* 分成比例
*/
@NotNull(message = "分成比例不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer proportion;
/**
* 陪诊人
*/
@NotNull(message = "陪诊人不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer emId;
/**
* 商户
*/
@NotNull(message = "商户不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer companyId;
}
package com.pz.merchant.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
/**
* 小程序商户端 员工列表实体
* <p>created in 2023/9/11 11:10
*
* @author WangMin
* @version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmployeesListBo extends BaseEntity {
/**
* 商户ID
*/
private Integer companyId;
/**
* 陪诊员类型 1-陪诊员,2-陪护员
*/
@NotBlank(message = "员工类型不能为空")
private Integer employeeType;
/**
* 搜索员工姓名
*/
private String employeeName;
}
package com.pz.merchant.domain.bo;
import lombok.Data;
/**
* 查询员工订单实体
* <p>created in 2023/9/11 14:14
*
* @author WangMin
* @version 1.0
*/
@Data
public class OrderBo {
/**
* 服务状态,0:已发布,1:已接单,2:已完成,3:退款中 ,4:已退款,6:进行中
*/
private Integer serviceStatus;
/**
* 员工ID
*/
private Integer emId;
/**
* 商户ID
*/
private Integer companyId;
}
package com.pz.merchant.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import com.pz.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
* <p>created in 2023/9/11 11:59
*
* @author WangMin
* @version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SetEmployeeWorkingHourBo extends BaseEntity {
/**
* 商户ID
*/
private Integer companyId;
/**
* 陪诊员Id
*/
@NotNull(message = "员工ID不能为空", groups = {EditGroup.class})
private Integer emId;
/**
* 工作时间段
*/
@NotNull(message = "工作时间段不能为空", groups = {EditGroup.class})
private String workingHours;
}
package com.pz.merchant.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 商户视图对象 company
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@ExcelIgnoreUnannotated
public class CompanyVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID
*/
@ExcelProperty(value = "ID")
private Integer id;
/**
* 商户名称
*/
@ExcelProperty(value = "商户名称")
private String name;
/**
* 城市
*/
@ExcelProperty(value = "城市")
private Long cityId;
/**
* 商户电话
*/
@ExcelProperty(value = "商户电话")
private String tel;
/**
* 商户手机
*/
@ExcelProperty(value = "商户手机")
private String phone;
/**
* 商户地址
*/
@ExcelProperty(value = "商户地址")
private String address;
/**
* 状态
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "company_state")
private Integer status;
/**
* 营业执照
*/
@ExcelProperty(value = "营业执照")
private String businessLicense;
/**
* 是否缴纳保证金
*/
@ExcelProperty(value = "是否缴纳保证金", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "company_is_cash_deposit")
private Integer isCashDeposit;
/**
* 保证金金额
*/
@ExcelProperty(value = "保证金金额")
private String cashDeposit;
/**
* 创建人
*/
@ExcelProperty(value = "创建人")
private Integer uid;
/**
* 总收益
*/
@ExcelProperty(value = "总收益")
private String totalRevenue;
/**
* 当前余额
*/
@ExcelProperty(value = "当前余额")
private String balance;
/**
* 注册时间
*/
@ExcelProperty(value = "注册时间")
private Date createTime;
}
package com.pz.merchant.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import lombok.Data;
import java.io.Serializable;
/**
* 订单分成记录视图对象 employees_divide
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@ExcelIgnoreUnannotated
public class EmployeesDivideVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Integer id;
/**
* 订单
*/
@ExcelProperty(value = "订单")
private Integer orderId;
/**
* 订单价格
*/
@ExcelProperty(value = "订单价格")
private String orderPrice;
/**
* 订单分成
*/
@ExcelProperty(value = "订单分成")
private String dividePrice;
/**
* 分成比例
*/
@ExcelProperty(value = "分成比例")
private Integer proportion;
/**
* 陪诊人
*/
@ExcelProperty(value = "陪诊人")
private Integer emId;
/**
* 商户
*/
@ExcelProperty(value = "商户")
private Integer companyId;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
/**
* 小程序商户端 员工列表实体
* <p>created in 2023/9/11 11:10
*
* @author WangMin
* @version 1.0
*/
@Data
public class EmployeesListVo {
/**
* 陪诊员ID
*/
private Integer emId;
/**
* 陪诊员姓名
*/
private String name;
/**
* 陪诊员头像
*/
private String avatar;
/**
* 陪诊员工作时间
*/
private String workingHours;
}
package com.pz.merchant.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* 陪诊员视图对象 employees
*
* @author WangMin
* @date 2023-09-11
*/
@Data
@ExcelIgnoreUnannotated
public class EmployeesVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Integer id;
/**
* 陪诊员
*/
@ExcelProperty(value = "陪诊员 ")
private String name;
/**
* 职业开始年份
*/
@ExcelProperty(value = "职业开始年份")
private String startYear;
/**
* 用户
*/
@ExcelProperty(value = "用户")
private Integer uid;
/**
* 状态
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "company_state")
private Integer status;
/**
* 所属商户
*/
@ExcelProperty(value = "所属商户")
private Integer companyId;
/**
* 身份证正面照
*/
@ExcelProperty(value = "身份证正面照")
private String cardFront;
/**
* 身份证反面照
*/
@ExcelProperty(value = "身份证反面照")
private String cardReverse;
/**
* 健康证
*/
@ExcelProperty(value = "健康证")
private String healthCertificate;
/**
* 当前身份
*/
@ExcelProperty(value = "当前身份", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "employee_status")
private Integer nowType;
/**
* 总收益
*/
@ExcelProperty(value = "总收益")
private String totalRevenue;
/**
* 当前余额
*/
@ExcelProperty(value = "当前余额")
private String balance;
/**
* 注册时间
*/
@ExcelProperty(value = "注册时间")
private Date createTime;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
/**
* <p>created in 2023/9/11 13:30
*
* @author WangMin
* @version 1.0
*/
@Data
public class OrderInfoVO {
/**
* 订单ID
*/
private Integer orderId;
/**
* 订单状态。0:待支付,1:已支付,2:已完成,7:已取消 ,8:已退款
*/
private Integer orderStatus;
/**
* 服务状态,0:已发布,1:已接单,2:已完成,3:退款中 ,4:已退款,6:进行中
*/
private Integer sonOrderStatus;
/**
* 订单佣金
*/
private Float commission;
/**
* 项目名称
*/
private String project;
/**
* 项目封面
*/
private String cover;
/**
* 用户名称
*/
private String userName;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
import java.util.List;
/**
* 今日订单数据
* <p>created in 2023/9/11 13:22
*
* @author WangMin
* @version 1.0
*/
@Data
public class TodayOrderListVo {
/**
* 陪诊员ID
*/
private Integer emId;
/**
* 陪诊员姓名
*/
private String name;
/**
* 陪诊员头像
*/
private String avatar;
/**
* 陪诊员工作时间
*/
private String workingHours;
/**
* 工龄
*/
private Integer workYear;
/**
* 当前身份:1-陪诊员。2-陪护员
*/
private Integer nowType;
/**
* 好评率
*/
private String favorableRate;
/**
* 今日订单数量
*/
private Integer todayOrderNum;
/**
* 今日订单列表
*/
private List<OrderInfoVO> todayOrderList;
}
package com.pz.merchant.mapper;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.merchant.domain.Company;
import com.pz.merchant.domain.vo.CompanyVo;
/**
* 商户Mapper接口
*
* @author WangMin
* @date 2023-09-11
*/
public interface CompanyMapper extends BaseMapperPlus<CompanyMapper, Company, CompanyVo> {
}
package com.pz.merchant.mapper;
import com.pz.merchant.domain.EmployeesDivide;
import com.pz.merchant.domain.vo.EmployeesDivideVo;
import com.pz.common.core.mapper.BaseMapperPlus;
/**
* 订单分成记录Mapper接口
*
* @author WangMin
* @date 2023-09-11
*/
public interface EmployeesDivideMapper extends BaseMapperPlus<EmployeesDivideMapper, EmployeesDivide, EmployeesDivideVo> {
}
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.domain.PageQuery;
import com.pz.common.core.page.TableDataInfo;
import com.pz.merchant.domain.Employees;
import com.pz.merchant.domain.bo.EmployeesListBo;
import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.domain.vo.EmployeesVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.merchant.domain.vo.OrderInfoVO;
import com.pz.merchant.domain.vo.TodayOrderListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 陪诊员Mapper接口
*
* @author WangMin
* @date 2023-09-11
*/
@Mapper
public interface EmployeesMapper extends BaseMapperPlus<EmployeesMapper, Employees, EmployeesVo> {
/**
* 查询陪诊员列表
*/
IPage<EmployeesListVo> selectEmployeesList(IPage<EmployeesListBo> page, @Param(Constants.WRAPPER) Wrapper<Employees> queryWrapper);
/**
* 查询员工今日订单
*
* @param emId 员工ID
* @return 今日订单数据信息
*/
TodayOrderListVo selectEmployeesInfoById(@Param("id") Integer emId);
/**
* 员工今日订单
*
* @param emId 员工Id
* @return 订单列表
*/
List<OrderInfoVO> selectTodayOrderByEid(@Param("id") Integer emId);
}
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.CompanyBo;
import com.pz.merchant.domain.vo.CompanyVo;
import java.util.Collection;
import java.util.List;
/**
* 商户Service接口
*
* @author WangMin
* @date 2023-09-11
*/
public interface ICompanyService {
/**
* 查询商户
*/
CompanyVo queryById(Integer id);
/**
* 查询商户列表
*/
TableDataInfo<CompanyVo> queryPageList(CompanyBo bo, PageQuery pageQuery);
/**
* 查询商户列表
*/
List<CompanyVo> queryList(CompanyBo bo);
/**
* 新增商户
*/
Boolean insertByBo(CompanyBo bo);
/**
* 修改商户
*/
Boolean updateByBo(CompanyBo bo);
/**
* 校验并批量删除商户信息
*/
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
}
package com.pz.merchant.service;
import com.pz.merchant.domain.EmployeesDivide;
import com.pz.merchant.domain.vo.EmployeesDivideVo;
import com.pz.merchant.domain.bo.EmployeesDivideBo;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 订单分成记录Service接口
*
* @author WangMin
* @date 2023-09-11
*/
public interface IEmployeesDivideService {
/**
* 查询订单分成记录
*/
EmployeesDivideVo queryById(Integer id);
/**
* 查询订单分成记录列表
*/
TableDataInfo<EmployeesDivideVo> queryPageList(EmployeesDivideBo bo, PageQuery pageQuery);
/**
* 查询订单分成记录列表
*/
List<EmployeesDivideVo> queryList(EmployeesDivideBo bo);
/**
* 新增订单分成记录
*/
Boolean insertByBo(EmployeesDivideBo bo);
/**
* 修改订单分成记录
*/
Boolean updateByBo(EmployeesDivideBo bo);
/**
* 校验并批量删除订单分成记录信息
*/
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
}
package com.pz.merchant.service;
import com.pz.merchant.domain.Employees;
import com.pz.merchant.domain.bo.EmployeesListBo;
import com.pz.merchant.domain.bo.SetEmployeeWorkingHourBo;
import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.domain.vo.EmployeesVo;
import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
import com.pz.merchant.domain.vo.OrderInfoVO;
import com.pz.merchant.domain.vo.TodayOrderListVo;
import java.util.Collection;
import java.util.List;
/**
* 陪诊员Service接口
*
* @author WangMin
* @date 2023-09-11
*/
public interface IEmployeesService {
/**
* 查询陪诊员
*/
EmployeesVo queryById(Integer id);
/**
* 查询陪诊员列表
*/
TableDataInfo<EmployeesVo> queryPageList(EmployeesBo bo, PageQuery pageQuery);
/**
* 查询陪诊员列表
*/
TableDataInfo<EmployeesListVo> employeesList(EmployeesListBo bo, PageQuery pageQuery);
/**
* 查询陪诊员列表
*/
List<EmployeesVo> queryList(EmployeesBo bo);
/**
* 新增陪诊员
*/
Boolean insertByBo(EmployeesBo bo);
/**
* 修改陪诊员
*/
Boolean updateByBo(EmployeesBo bo);
/**
* 校验并批量删除陪诊员信息
*/
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
/**
* 设置员工工作时段
*/
boolean setEmployeesWorkHours(SetEmployeeWorkingHourBo bo);
/**
* 查询员工信息
*
* @param emId 员工ID
* @return 员工统计信息
*/
TodayOrderListVo queryEmployeesInfo(Integer emId);
/**
* 员工今日订单
*
* @param emId 员工Id
* @return 订单列表
*/
List<OrderInfoVO> queryTodayOrders(Integer emId);
}
package com.pz.merchant.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.common.core.page.TableDataInfo;
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.CompanyBo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.merchant.mapper.CompanyMapper;
import com.pz.merchant.service.ICompanyService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 商户Service业务层处理
*
* @author WangMin
* @date 2023-09-11
*/
@RequiredArgsConstructor
@Service
public class CompanyServiceImpl implements ICompanyService {
private final CompanyMapper baseMapper;
/**
* 查询商户
*/
@Override
public CompanyVo queryById(Integer id){
return baseMapper.selectVoById(id);
}
/**
* 查询商户列表
*/
@Override
public TableDataInfo<CompanyVo> queryPageList(CompanyBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<Company> lqw = buildQueryWrapper(bo);
Page<CompanyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询商户列表
*/
@Override
public List<CompanyVo> queryList(CompanyBo bo) {
LambdaQueryWrapper<Company> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<Company> buildQueryWrapper(CompanyBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<Company> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), Company::getName, bo.getName());
return lqw;
}
/**
* 新增商户
*/
@Override
public Boolean insertByBo(CompanyBo bo) {
Company add = BeanUtil.toBean(bo, Company.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改商户
*/
@Override
public Boolean updateByBo(CompanyBo bo) {
Company update = BeanUtil.toBean(bo, Company.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Company entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除商户
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
package com.pz.merchant.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.merchant.domain.bo.EmployeesDivideBo;
import com.pz.merchant.domain.vo.EmployeesDivideVo;
import com.pz.merchant.domain.EmployeesDivide;
import com.pz.merchant.mapper.EmployeesDivideMapper;
import com.pz.merchant.service.IEmployeesDivideService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 订单分成记录Service业务层处理
*
* @author WangMin
* @date 2023-09-11
*/
@RequiredArgsConstructor
@Service
public class EmployeesDivideServiceImpl implements IEmployeesDivideService {
private final EmployeesDivideMapper baseMapper;
/**
* 查询订单分成记录
*/
@Override
public EmployeesDivideVo queryById(Integer id){
return baseMapper.selectVoById(id);
}
/**
* 查询订单分成记录列表
*/
@Override
public TableDataInfo<EmployeesDivideVo> queryPageList(EmployeesDivideBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EmployeesDivide> lqw = buildQueryWrapper(bo);
Page<EmployeesDivideVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询订单分成记录列表
*/
@Override
public List<EmployeesDivideVo> queryList(EmployeesDivideBo bo) {
LambdaQueryWrapper<EmployeesDivide> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EmployeesDivide> buildQueryWrapper(EmployeesDivideBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EmployeesDivide> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getOrderId() != null, EmployeesDivide::getOrderId, bo.getOrderId());
lqw.eq(StringUtils.isNotBlank(bo.getOrderPrice()), EmployeesDivide::getOrderPrice, bo.getOrderPrice());
lqw.eq(StringUtils.isNotBlank(bo.getDividePrice()), EmployeesDivide::getDividePrice, bo.getDividePrice());
lqw.eq(bo.getProportion() != null, EmployeesDivide::getProportion, bo.getProportion());
lqw.eq(bo.getEmId() != null, EmployeesDivide::getEmId, bo.getEmId());
lqw.eq(bo.getCompanyId() != null, EmployeesDivide::getCompanyId, bo.getCompanyId());
return lqw;
}
/**
* 新增订单分成记录
*/
@Override
public Boolean insertByBo(EmployeesDivideBo bo) {
EmployeesDivide add = BeanUtil.toBean(bo, EmployeesDivide.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改订单分成记录
*/
@Override
public Boolean updateByBo(EmployeesDivideBo bo) {
EmployeesDivide update = BeanUtil.toBean(bo, EmployeesDivide.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EmployeesDivide entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除订单分成记录
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
package com.pz.merchant.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
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.bo.EmployeesListBo;
import com.pz.merchant.domain.bo.SetEmployeeWorkingHourBo;
import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.domain.vo.OrderInfoVO;
import com.pz.merchant.domain.vo.TodayOrderListVo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.merchant.domain.vo.EmployeesVo;
import com.pz.merchant.domain.Employees;
import com.pz.merchant.mapper.EmployeesMapper;
import com.pz.merchant.service.IEmployeesService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Objects;
/**
* 陪诊员Service业务层处理
*
* @author WangMin
* @date 2023-09-11
*/
@RequiredArgsConstructor
@Service
public class EmployeesServiceImpl implements IEmployeesService {
private final EmployeesMapper baseMapper;
/**
* 查询陪诊员
*/
@Override
public EmployeesVo queryById(Integer id) {
return baseMapper.selectVoById(id);
}
/**
* 查询陪诊员列表
*/
@Override
public TableDataInfo<EmployeesVo> queryPageList(EmployeesBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<Employees> lqw = buildQueryWrapper(bo);
Page<EmployeesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 小程序查询陪诊员列表
*/
@Override
public TableDataInfo<EmployeesListVo> employeesList(EmployeesListBo bo, PageQuery pageQuery) {
QueryWrapper<Employees> wrapper = Wrappers.query();
wrapper.like(StringUtils.isNotEmpty(bo.getEmployeeName()), "employees.name", bo.getEmployeeName())
.eq(bo.getEmployeeType() != null, "employees.now_type", bo.getEmployeeType());
IPage<EmployeesListVo> result = baseMapper.selectEmployeesList(pageQuery.build(), wrapper);
return TableDataInfo.build(result);
}
/**
* 查询陪诊员列表
*/
@Override
public List<EmployeesVo> queryList(EmployeesBo bo) {
LambdaQueryWrapper<Employees> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<Employees> buildQueryWrapper(EmployeesBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<Employees> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), Employees::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getStartYear()), Employees::getStartYear, bo.getStartYear());
lqw.eq(bo.getUid() != null, Employees::getUid, bo.getUid());
lqw.eq(bo.getStatus() != null, Employees::getStatus, bo.getStatus());
lqw.eq(bo.getNowType() != null, Employees::getNowType, bo.getNowType());
return lqw;
}
/**
* 新增陪诊员
*/
@Override
public Boolean insertByBo(EmployeesBo bo) {
Employees add = BeanUtil.toBean(bo, Employees.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改陪诊员
*/
@Override
public Boolean updateByBo(EmployeesBo bo) {
Employees update = BeanUtil.toBean(bo, Employees.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Employees entity) {
// TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除陪诊员
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if (isValid) {
// TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 设置员工工作时段
*/
@Override
public boolean setEmployeesWorkHours(SetEmployeeWorkingHourBo bo) {
EmployeesVo employees = baseMapper.selectVoById(bo.getEmId());
Objects.requireNonNull(employees, "查无此人");
LambdaUpdateWrapper<Employees> updateWrapper = Wrappers.lambdaUpdate();
updateWrapper.set(Employees::getWorkingHours, bo.getWorkingHours())
.eq(Employees::getId, employees.getId());
return baseMapper.update(null, updateWrapper) > 0;
}
/**
* 查询员工今日订单
*
* @param emId 员工ID
* @return 今日订单数据信息
*/
@Override
public TodayOrderListVo queryEmployeesInfo(Integer emId) {
TodayOrderListVo result = baseMapper.selectEmployeesInfoById(emId);
return result;
}
@Override
public List<OrderInfoVO> queryTodayOrders(Integer emId) {
return null;
}
}
...@@ -3,6 +3,7 @@ package com.pz.system.mapper; ...@@ -3,6 +3,7 @@ package com.pz.system.mapper;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.vo.TotalOrderVo; import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus; import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
/** /**
* 总订单Mapper接口 * 总订单Mapper接口
...@@ -10,6 +11,7 @@ import com.pz.common.core.mapper.BaseMapperPlus; ...@@ -10,6 +11,7 @@ import com.pz.common.core.mapper.BaseMapperPlus;
* @author ruoyi * @author ruoyi
* @date 2023-09-08 * @date 2023-09-08
*/ */
@Mapper
public interface TotalOrderMapper extends BaseMapperPlus<TotalOrderMapper, TotalOrder, TotalOrderVo> { public interface TotalOrderMapper extends BaseMapperPlus<TotalOrderMapper, TotalOrder, TotalOrderVo> {
} }
...@@ -6,6 +6,7 @@ import com.pz.common.core.domain.PageQuery; ...@@ -6,6 +6,7 @@ import com.pz.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.common.utils.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.UserVsitorBo; import com.pz.system.domain.bo.UserVsitorBo;
......
<?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.merchant.mapper.CompanyMapper">
<resultMap type="com.pz.merchant.domain.Company" id="CompanyResult">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="cityId" column="city_id"/>
<result property="tel" column="tel"/>
<result property="phone" column="phone"/>
<result property="address" column="address"/>
<result property="status" column="status"/>
<result property="businessLicense" column="business_license"/>
<result property="isCashDeposit" column="is_cash_deposit"/>
<result property="cashDeposit" column="cash_deposit"/>
<result property="uid" column="uid"/>
<result property="totalRevenue" column="total_revenue"/>
<result property="balance" column="balance"/>
<result property="freezeBalance" column="freeze_balance"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
</mapper>
<?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.merchant.mapper.EmployeesDivideMapper">
<resultMap type="com.pz.merchant.domain.EmployeesDivide" id="EmployeesDivideResult">
<result property="id" column="id"/>
<result property="orderId" column="order_id"/>
<result property="orderPrice" column="order_price"/>
<result property="dividePrice" column="divide_price"/>
<result property="proportion" column="proportion"/>
<result property="emId" column="em_id"/>
<result property="companyId" column="company_id"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>
<?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.merchant.mapper.EmployeesMapper">
<resultMap type="com.pz.merchant.domain.Employees" id="EmployeesResult">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="startYear" column="startYear"/>
<result property="uid" column="uid"/>
<result property="workingHours" column="working_hours"/>
<result property="status" column="status"/>
<result property="companyId" column="company_id"/>
<result property="cardFront" column="card_front"/>
<result property="cardReverse" column="card_reverse"/>
<result property="healthCertificate" column="health_certificate"/>
<result property="lng" column="lng"/>
<result property="lat" column="lat"/>
<result property="cityId" column="city_id"/>
<result property="nowType" column="now_type"/>
<result property="totalRevenue" column="total_revenue"/>
<result property="balance" column="balance"/>
<result property="freezeBalance" column="freeze_balance"/>
<result property="killOrder" column="kill_order"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<select id="selectEmployeesList" resultType="com.pz.merchant.domain.vo.EmployeesListVo">
select employees.id as emId,
employees.name,
employees.working_hours,
user.avatar
from employees
left join sys_user as user on user.user_id = employees.uid
<where>
<if test="ew.emptyOfWhere == false">
and ${ew.sqlSegment}
</if>
</where>
</select>
<select id="selectEmployeesInfoById" resultType="com.pz.merchant.domain.vo.TodayOrderListVo">
select employees.id as emId,
employees.name,
employees.working_hours,
year(current_date) - ifnull(employees.start_year, 0) as workYear,
employees.now_type,
user.avatar,
concat(round((sum(if(total_order.is_satisfaction = 1, 1, 0)) / count(total_order.id)) * 100, 2), '%') as favorableRate
from employees
left join sys_user as user on user.user_id = employees.uid
left join total_order on total_order.em_id = employees.id and total_order.business_id != 0
<where>
<if test="id != null and id > 0">
employees.id = #{id}
</if>
</where>
group by employees.id
</select>
<select id="selectTodayOrderByEid" resultType="com.pz.merchant.domain.vo.OrderInfoVO">
</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