feat(admin): 添加管理后台logo文件- 新增128x128尺寸的SVG格式logo文件

- 使用Method Draw工具创建矢量图形
- 包含背景层和图层1的基础结构
- 支持透明背景显示
- 为管理后台界面提供品牌标识- 便于后续UI组件中引用和展示
This commit is contained in:
2025-10-18 09:16:51 +08:00
parent 4c7a7e2452
commit ba6896855a
1195 changed files with 225615 additions and 9 deletions

View File

@@ -0,0 +1,128 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.ClinicAppointmentService;
import com.gxwebsoft.clinic.entity.ClinicAppointment;
import com.gxwebsoft.clinic.param.ClinicAppointmentParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 挂号控制器
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Tag(name = "挂号管理")
@RestController
@RequestMapping("/api/clinic/clinic-appointment")
public class ClinicAppointmentController extends BaseController {
@Resource
private ClinicAppointmentService clinicAppointmentService;
@PreAuthorize("hasAuthority('clinic:clinicAppointment:list')")
@Operation(summary = "分页查询挂号")
@GetMapping("/page")
public ApiResult<PageResult<ClinicAppointment>> page(ClinicAppointmentParam param) {
// 使用关联查询
return success(clinicAppointmentService.pageRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:list')")
@Operation(summary = "查询全部挂号")
@GetMapping()
public ApiResult<List<ClinicAppointment>> list(ClinicAppointmentParam param) {
// 使用关联查询
return success(clinicAppointmentService.listRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:list')")
@Operation(summary = "根据id查询挂号")
@GetMapping("/{id}")
public ApiResult<ClinicAppointment> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicAppointmentService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:save')")
@OperationLog
@Operation(summary = "添加挂号")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicAppointment clinicAppointment) {
// 记录当前登录用户id
// User loginUser = getLoginUser();
// if (loginUser != null) {
// clinicAppointment.setUserId(loginUser.getUserId());
// }
if (clinicAppointmentService.save(clinicAppointment)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:update')")
@OperationLog
@Operation(summary = "修改挂号")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicAppointment clinicAppointment) {
if (clinicAppointmentService.updateById(clinicAppointment)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:remove')")
@OperationLog
@Operation(summary = "删除挂号")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicAppointmentService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:save')")
@OperationLog
@Operation(summary = "批量添加挂号")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicAppointment> list) {
if (clinicAppointmentService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:update')")
@OperationLog
@Operation(summary = "批量修改挂号")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicAppointment> batchParam) {
if (batchParam.update(clinicAppointmentService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:remove')")
@OperationLog
@Operation(summary = "批量删除挂号")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicAppointmentService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,128 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.ClinicDoctorApplyService;
import com.gxwebsoft.clinic.entity.ClinicDoctorApply;
import com.gxwebsoft.clinic.param.ClinicDoctorApplyParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 医生入驻申请控制器
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Tag(name = "医生入驻申请管理")
@RestController
@RequestMapping("/api/clinic/clinic-doctor-apply")
public class ClinicDoctorApplyController extends BaseController {
@Resource
private ClinicDoctorApplyService clinicDoctorApplyService;
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:list')")
@Operation(summary = "分页查询医生入驻申请")
@GetMapping("/page")
public ApiResult<PageResult<ClinicDoctorApply>> page(ClinicDoctorApplyParam param) {
// 使用关联查询
return success(clinicDoctorApplyService.pageRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:list')")
@Operation(summary = "查询全部医生入驻申请")
@GetMapping()
public ApiResult<List<ClinicDoctorApply>> list(ClinicDoctorApplyParam param) {
// 使用关联查询
return success(clinicDoctorApplyService.listRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:list')")
@Operation(summary = "根据id查询医生入驻申请")
@GetMapping("/{id}")
public ApiResult<ClinicDoctorApply> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicDoctorApplyService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:save')")
@OperationLog
@Operation(summary = "添加医生入驻申请")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicDoctorApply clinicDoctorApply) {
// 记录当前登录用户id
// User loginUser = getLoginUser();
// if (loginUser != null) {
// clinicDoctorApply.setUserId(loginUser.getUserId());
// }
if (clinicDoctorApplyService.save(clinicDoctorApply)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:update')")
@OperationLog
@Operation(summary = "修改医生入驻申请")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicDoctorApply clinicDoctorApply) {
if (clinicDoctorApplyService.updateById(clinicDoctorApply)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:remove')")
@OperationLog
@Operation(summary = "删除医生入驻申请")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicDoctorApplyService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:save')")
@OperationLog
@Operation(summary = "批量添加医生入驻申请")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicDoctorApply> list) {
if (clinicDoctorApplyService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:update')")
@OperationLog
@Operation(summary = "批量修改医生入驻申请")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicDoctorApply> batchParam) {
if (batchParam.update(clinicDoctorApplyService, "apply_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:remove')")
@OperationLog
@Operation(summary = "批量删除医生入驻申请")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicDoctorApplyService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,64 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 挂号
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicAppointment对象", description = "挂号")
public class ClinicAppointment implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "类型")
private Integer type;
@Schema(description = "就诊原因")
private String reason;
@Schema(description = "挂号时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime evaluateTime;
@Schema(description = "医生")
private Integer doctorId;
@Schema(description = "患者")
private Integer userId;
@Schema(description = "备注")
private String comments;
@Schema(description = "排序号")
private Integer sortNumber;
@Schema(description = "是否删除")
private Integer isDelete;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@Schema(description = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,125 @@
package com.gxwebsoft.clinic.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 医生入驻申请
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicDoctorApply对象", description = "医生入驻申请")
public class ClinicDoctorApply implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "apply_id", type = IdType.AUTO)
private Integer applyId;
@Schema(description = "类型 0医生")
private Integer type;
@Schema(description = "用户ID")
private Integer userId;
@Schema(description = "姓名")
private String realName;
@Schema(description = "性别 1男 2女")
private Integer gender;
@Schema(description = "手机号")
private String mobile;
@Schema(description = "客户名称")
private String dealerName;
@Schema(description = "证件号码")
private String idCard;
@Schema(description = "生日")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthDate;
@Schema(description = "区分职称等级(如主治医师、副主任医师)")
private String professionalTitle;
@Schema(description = "工作单位")
private String workUnit;
@Schema(description = "执业资格核心凭证")
private String practiceLicense;
@Schema(description = "限定可执业科室或疾病类型")
private String practiceScope;
@Schema(description = "开始工作时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startWorkDate;
@Schema(description = "简历")
private String resume;
@Schema(description = "使用 JSON 存储多个证件文件路径(如执业证、学历证)")
private String certificationFiles;
@Schema(description = "详细地址")
private String address;
@Schema(description = "签约价格")
private BigDecimal money;
@Schema(description = "推荐人用户ID")
private Integer refereeId;
@Schema(description = "申请方式(10需后台审核 20无需审核)")
private Integer applyType;
@Schema(description = "审核状态 (10待审核 20审核通过 30驳回)")
private Integer applyStatus;
@Schema(description = "申请时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime applyTime;
@Schema(description = "审核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime auditTime;
@Schema(description = "合同时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime contractTime;
@Schema(description = "过期时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime expirationTime;
@Schema(description = "驳回原因")
private String rejectReason;
@Schema(description = "备注")
private String comments;
@Schema(description = "商城ID")
private Integer tenantId;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@Schema(description = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.clinic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.clinic.entity.ClinicAppointment;
import com.gxwebsoft.clinic.param.ClinicAppointmentParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 挂号Mapper
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
public interface ClinicAppointmentMapper extends BaseMapper<ClinicAppointment> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicAppointment>
*/
List<ClinicAppointment> selectPageRel(@Param("page") IPage<ClinicAppointment> page,
@Param("param") ClinicAppointmentParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicAppointment> selectListRel(@Param("param") ClinicAppointmentParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.clinic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.clinic.entity.ClinicDoctorApply;
import com.gxwebsoft.clinic.param.ClinicDoctorApplyParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 医生入驻申请Mapper
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
public interface ClinicDoctorApplyMapper extends BaseMapper<ClinicDoctorApply> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicDoctorApply>
*/
List<ClinicDoctorApply> selectPageRel(@Param("page") IPage<ClinicDoctorApply> page,
@Param("param") ClinicDoctorApplyParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicDoctorApply> selectListRel(@Param("param") ClinicDoctorApplyParam param);
}

View File

@@ -0,0 +1,60 @@
<?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.gxwebsoft.clinic.mapper.ClinicAppointmentMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_appointment a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.type != null">
AND a.type = #{param.type}
</if>
<if test="param.reason != null">
AND a.reason LIKE CONCAT('%', #{param.reason}, '%')
</if>
<if test="param.evaluateTime != null">
AND a.evaluate_time LIKE CONCAT('%', #{param.evaluateTime}, '%')
</if>
<if test="param.doctorId != null">
AND a.doctor_id = #{param.doctorId}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.isDelete != null">
AND a.is_delete = #{param.isDelete}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
<if test="param.keywords != null">
AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%')
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.clinic.entity.ClinicAppointment">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicAppointment">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,114 @@
<?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.gxwebsoft.clinic.mapper.ClinicDoctorApplyMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_doctor_apply a
<where>
<if test="param.applyId != null">
AND a.apply_id = #{param.applyId}
</if>
<if test="param.type != null">
AND a.type = #{param.type}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.realName != null">
AND a.real_name LIKE CONCAT('%', #{param.realName}, '%')
</if>
<if test="param.gender != null">
AND a.gender = #{param.gender}
</if>
<if test="param.mobile != null">
AND a.mobile LIKE CONCAT('%', #{param.mobile}, '%')
</if>
<if test="param.dealerName != null">
AND a.dealer_name LIKE CONCAT('%', #{param.dealerName}, '%')
</if>
<if test="param.idCard != null">
AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%')
</if>
<if test="param.birthDate != null">
AND a.birth_date LIKE CONCAT('%', #{param.birthDate}, '%')
</if>
<if test="param.professionalTitle != null">
AND a.professional_title LIKE CONCAT('%', #{param.professionalTitle}, '%')
</if>
<if test="param.workUnit != null">
AND a.work_unit LIKE CONCAT('%', #{param.workUnit}, '%')
</if>
<if test="param.practiceLicense != null">
AND a.practice_license LIKE CONCAT('%', #{param.practiceLicense}, '%')
</if>
<if test="param.practiceScope != null">
AND a.practice_scope LIKE CONCAT('%', #{param.practiceScope}, '%')
</if>
<if test="param.startWorkDate != null">
AND a.start_work_date LIKE CONCAT('%', #{param.startWorkDate}, '%')
</if>
<if test="param.resume != null">
AND a.resume LIKE CONCAT('%', #{param.resume}, '%')
</if>
<if test="param.certificationFiles != null">
AND a.certification_files LIKE CONCAT('%', #{param.certificationFiles}, '%')
</if>
<if test="param.address != null">
AND a.address LIKE CONCAT('%', #{param.address}, '%')
</if>
<if test="param.money != null">
AND a.money = #{param.money}
</if>
<if test="param.refereeId != null">
AND a.referee_id = #{param.refereeId}
</if>
<if test="param.applyType != null">
AND a.apply_type = #{param.applyType}
</if>
<if test="param.applyStatus != null">
AND a.apply_status = #{param.applyStatus}
</if>
<if test="param.applyTime != null">
AND a.apply_time LIKE CONCAT('%', #{param.applyTime}, '%')
</if>
<if test="param.auditTime != null">
AND a.audit_time LIKE CONCAT('%', #{param.auditTime}, '%')
</if>
<if test="param.contractTime != null">
AND a.contract_time LIKE CONCAT('%', #{param.contractTime}, '%')
</if>
<if test="param.expirationTime != null">
AND a.expiration_time LIKE CONCAT('%', #{param.expirationTime}, '%')
</if>
<if test="param.rejectReason != null">
AND a.reject_reason LIKE CONCAT('%', #{param.rejectReason}, '%')
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
<if test="param.keywords != null">
AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%')
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.clinic.entity.ClinicDoctorApply">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicDoctorApply">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,58 @@
package com.gxwebsoft.clinic.param;
import java.math.BigDecimal;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 挂号查询参数
*
* @author 科技小王子
* @since 2025-10-18 09:11:16
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicAppointmentParam对象", description = "挂号查询参数")
public class ClinicAppointmentParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@Schema(description = "类型")
@QueryField(type = QueryType.EQ)
private Integer type;
@Schema(description = "就诊原因")
private String reason;
@Schema(description = "挂号时间")
private String evaluateTime;
@Schema(description = "医生")
@QueryField(type = QueryType.EQ)
private Integer doctorId;
@Schema(description = "患者")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "备注")
private String comments;
@Schema(description = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@Schema(description = "是否删除")
@QueryField(type = QueryType.EQ)
private Integer isDelete;
}

View File

@@ -0,0 +1,114 @@
package com.gxwebsoft.clinic.param;
import java.math.BigDecimal;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 医生入驻申请查询参数
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicDoctorApplyParam对象", description = "医生入驻申请查询参数")
public class ClinicDoctorApplyParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer applyId;
@Schema(description = "类型 0医生")
@QueryField(type = QueryType.EQ)
private Integer type;
@Schema(description = "用户ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "姓名")
private String realName;
@Schema(description = "性别 1男 2女")
@QueryField(type = QueryType.EQ)
private Integer gender;
@Schema(description = "手机号")
private String mobile;
@Schema(description = "客户名称")
private String dealerName;
@Schema(description = "证件号码")
private String idCard;
@Schema(description = "生日")
private String birthDate;
@Schema(description = "区分职称等级(如主治医师、副主任医师)")
private String professionalTitle;
@Schema(description = "工作单位")
private String workUnit;
@Schema(description = "执业资格核心凭证")
private String practiceLicense;
@Schema(description = "限定可执业科室或疾病类型")
private String practiceScope;
@Schema(description = "开始工作时间")
private String startWorkDate;
@Schema(description = "简历")
private String resume;
@Schema(description = "使用 JSON 存储多个证件文件路径(如执业证、学历证)")
private String certificationFiles;
@Schema(description = "详细地址")
private String address;
@Schema(description = "签约价格")
@QueryField(type = QueryType.EQ)
private BigDecimal money;
@Schema(description = "推荐人用户ID")
@QueryField(type = QueryType.EQ)
private Integer refereeId;
@Schema(description = "申请方式(10需后台审核 20无需审核)")
@QueryField(type = QueryType.EQ)
private Integer applyType;
@Schema(description = "审核状态 (10待审核 20审核通过 30驳回)")
@QueryField(type = QueryType.EQ)
private Integer applyStatus;
@Schema(description = "申请时间")
private String applyTime;
@Schema(description = "审核时间")
private String auditTime;
@Schema(description = "合同时间")
private String contractTime;
@Schema(description = "过期时间")
private String expirationTime;
@Schema(description = "驳回原因")
private String rejectReason;
@Schema(description = "备注")
private String comments;
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.ClinicAppointment;
import com.gxwebsoft.clinic.param.ClinicAppointmentParam;
import java.util.List;
/**
* 挂号Service
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
public interface ClinicAppointmentService extends IService<ClinicAppointment> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicAppointment>
*/
PageResult<ClinicAppointment> pageRel(ClinicAppointmentParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicAppointment>
*/
List<ClinicAppointment> listRel(ClinicAppointmentParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicAppointment
*/
ClinicAppointment getByIdRel(Integer id);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.ClinicDoctorApply;
import com.gxwebsoft.clinic.param.ClinicDoctorApplyParam;
import java.util.List;
/**
* 医生入驻申请Service
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
public interface ClinicDoctorApplyService extends IService<ClinicDoctorApply> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicDoctorApply>
*/
PageResult<ClinicDoctorApply> pageRel(ClinicDoctorApplyParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicDoctorApply>
*/
List<ClinicDoctorApply> listRel(ClinicDoctorApplyParam param);
/**
* 根据id查询
*
* @param applyId 主键ID
* @return ClinicDoctorApply
*/
ClinicDoctorApply getByIdRel(Integer applyId);
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.ClinicAppointmentMapper;
import com.gxwebsoft.clinic.service.ClinicAppointmentService;
import com.gxwebsoft.clinic.entity.ClinicAppointment;
import com.gxwebsoft.clinic.param.ClinicAppointmentParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 挂号Service实现
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Service
public class ClinicAppointmentServiceImpl extends ServiceImpl<ClinicAppointmentMapper, ClinicAppointment> implements ClinicAppointmentService {
@Override
public PageResult<ClinicAppointment> pageRel(ClinicAppointmentParam param) {
PageParam<ClinicAppointment, ClinicAppointmentParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicAppointment> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicAppointment> listRel(ClinicAppointmentParam param) {
List<ClinicAppointment> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicAppointment, ClinicAppointmentParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicAppointment getByIdRel(Integer id) {
ClinicAppointmentParam param = new ClinicAppointmentParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.ClinicDoctorApplyMapper;
import com.gxwebsoft.clinic.service.ClinicDoctorApplyService;
import com.gxwebsoft.clinic.entity.ClinicDoctorApply;
import com.gxwebsoft.clinic.param.ClinicDoctorApplyParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 医生入驻申请Service实现
*
* @author 科技小王子
* @since 2025-10-18 09:11:17
*/
@Service
public class ClinicDoctorApplyServiceImpl extends ServiceImpl<ClinicDoctorApplyMapper, ClinicDoctorApply> implements ClinicDoctorApplyService {
@Override
public PageResult<ClinicDoctorApply> pageRel(ClinicDoctorApplyParam param) {
PageParam<ClinicDoctorApply, ClinicDoctorApplyParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicDoctorApply> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicDoctorApply> listRel(ClinicDoctorApplyParam param) {
List<ClinicDoctorApply> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicDoctorApply, ClinicDoctorApplyParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicDoctorApply getByIdRel(Integer applyId) {
ClinicDoctorApplyParam param = new ClinicDoctorApplyParam();
param.setApplyId(applyId);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -31,9 +31,9 @@ public class ClinicGenerator {
// JAVA输出目录
private static final String OUTPUT_DIR = "/src/main/java";
// Vue文件输出位置
private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/VUE/generator-vue";
private static final String OUTPUT_LOCATION_VUE = "/Users/gxwebsoft/JAVA/generator/out/admin";
// UniApp文件输出目录
private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/APP/template-10001";
private static final String OUTPUT_LOCATION_UNIAPP = "/Users/gxwebsoft/JAVA/generator/out/taro";
// Vue文件输出目录
private static final String OUTPUT_DIR_VUE = "/src";
// 作者名称
@@ -52,7 +52,7 @@ public class ClinicGenerator {
// 需要生成的表
private static final String[] TABLE_NAMES = new String[]{
"clinic_appointment",
// "clinic_doctor_apply",
"clinic_doctor_apply",
// "clinic_doctor_medical_record",
// "clinic_doctor_user",
// "clinic_medical_history",

View File

@@ -106,7 +106,7 @@ public class ${table.controllerName} {
@PreAuthorize("hasAuthority('${authPre}:list')")
@Operation(summary = "根据id查询${table.comment!}")
@GetMapping("/{id}")
public ApiResult<${entity}> get(@PathVariable("id") Long id) {
public ApiResult<${entity}> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(${serviceIns}.getByIdRel(id));
}

View File

@@ -50,9 +50,10 @@ public class ${entity} implements Serializable {
private static final long serialVersionUID = 1L;
<% } %>
<% /** -----------BEGIN 字段循环遍历----------- **/ %>
<% for(field in table.fields) {
<% for(field in table.fields) {
var keyPropertyName = field.keyFlag ? field.propertyName : null;
%>
<% if(isNotEmpty(field.comment)) { %><% if(swagger2) { %> @Schema(description = "${field.comment}")
<% }else{ %> /**
* ${field.comment}
@@ -74,7 +75,7 @@ public class ${entity} implements Serializable {
<% /** -----------END 字段循环遍历----------- **/ %>
<% if(!entityLombokModel) { %>
<% for(field in table.fields) {
<% for(field in table.fields) {
var getprefix = field.propertyType == 'boolean' ? 'is' : 'get';
%>
public ${field.propertyType} ${getprefix}${field.capitalName}() {
@@ -125,4 +126,4 @@ public class ${entity} implements Serializable {
"}";
}
<% } %>
}
}

View File

@@ -49,7 +49,7 @@ public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
* @param ${idPropertyName!} ${idComment!}
* @return ${entity}
*/
${entity} getByIdRel(Long ${idPropertyName!});
${entity} getByIdRel(Integer ${idPropertyName!});
}
<% } %>

View File

@@ -52,7 +52,7 @@ public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.m
}
@Override
public ${entity} getByIdRel(Long ${idPropertyName!}) {
public ${entity} getByIdRel(Integer ${idPropertyName!}) {
${entity}Param param = new ${entity}Param();
param.set${idCapitalName!}(${idPropertyName!});
return param.getOne(baseMapper.selectListRel(param));