This commit is contained in:
2025-12-29 10:37:03 +08:00
parent e28487fd84
commit c4628af5a2
274 changed files with 47756 additions and 2246 deletions

10
.idea/AugmentWebviewStateStore.xml generated Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
<option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,java.lang.foreign.Arena,ofAuto,java.lang.foreign.Arena,global,cn.hutool.http.HttpRequest,execute" />
</inspection_tool>
</profile>
</component>

9
.idea/xiangan-shop.iml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

28
pom.xml
View File

@@ -99,6 +99,11 @@
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- hutool -->
<dependency>
@@ -256,21 +261,20 @@
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.9</version>
<version>0.2.17</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>4.6.0</version>
<version>4.7.0</version>
</dependency>
<!--微信公众号-->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>wx-java-mp-spring-boot-starter</artifactId>
<version>4.6.0</version>
<version>4.7.0</version>
</dependency>
<!-- 阿里云 OSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
@@ -326,7 +330,23 @@
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.freewayso</groupId>
<artifactId>image-combiner</artifactId>
<version>2.6.9</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
<build>

View File

@@ -8,6 +8,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
/**
* 启动类
@@ -19,6 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableConfigurationProperties(ConfigProperties.class)
@SpringBootApplication
@EnableScheduling
@EnableWebSocket
public class WebSoftApplication {
public static void main(String[] args) {

View File

@@ -0,0 +1,122 @@
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-19 09:27:04
*/
@Tag(name = "挂号管理")
@RestController
@RequestMapping("/api/clinic/clinic-appointment")
public class ClinicAppointmentController extends BaseController {
@Resource
private ClinicAppointmentService clinicAppointmentService;
@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')")
@Operation(summary = "添加挂号")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicAppointment clinicAppointment) {
if (clinicAppointmentService.save(clinicAppointment)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:update')")
@Operation(summary = "修改挂号")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicAppointment clinicAppointment) {
if (clinicAppointmentService.updateById(clinicAppointment)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:remove')")
@Operation(summary = "删除挂号")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicAppointmentService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:save')")
@Operation(summary = "批量添加挂号")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicAppointment> list) {
if (clinicAppointmentService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicAppointment:update')")
@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')")
@Operation(summary = "批量删除挂号")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicAppointmentService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,116 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.ClinicCaseService;
import com.gxwebsoft.clinic.entity.ClinicCase;
import com.gxwebsoft.clinic.param.ClinicCaseParam;
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 com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 病例列表控制器
*
* @author LX
* @since 2025-12-25 17:24:55
*/
@Api(tags = "病例列表管理")
@RestController
@RequestMapping("/api/clinic/clinic-case")
public class ClinicCaseController extends BaseController {
@Resource
private ClinicCaseService clinicCaseService;
@ApiOperation("分页查询病例列表")
@GetMapping("/page")
public ApiResult<PageResult<ClinicCase>> page(ClinicCaseParam param) {
// 使用关联查询
return success(clinicCaseService.pageRel(param));
}
@ApiOperation("查询全部病例列表")
@GetMapping()
public ApiResult<List<ClinicCase>> list(ClinicCaseParam param) {
// 使用关联查询
return success(clinicCaseService.listRel(param));
}
@ApiOperation("根据id查询病例列表")
@GetMapping("/{id}")
public ApiResult<ClinicCase> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicCaseService.getByIdRel(id));
}
@ApiOperation("添加病例列表")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicCase clinicCase) {
// 记录当前登录用户id
if (clinicCase.getUserId() != null) {
User loginUser = getLoginUser();
if (loginUser != null) {
clinicCase.setUserId(loginUser.getUserId());
}
}
if (clinicCaseService.save(clinicCase)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("修改病例列表")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicCase clinicCase) {
if (clinicCaseService.updateById(clinicCase)) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("删除病例列表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicCaseService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@ApiOperation("批量添加病例列表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicCase> list) {
if (clinicCaseService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("批量修改病例列表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicCase> batchParam) {
if (batchParam.update(clinicCaseService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("批量删除病例列表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicCaseService.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-19 09:27:04
*/
@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')")
@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')")
@Operation(summary = "修改医生入驻申请")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicDoctorApply clinicDoctorApply) {
if (clinicDoctorApplyService.updateById(clinicDoctorApply)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:remove')")
@Operation(summary = "删除医生入驻申请")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicDoctorApplyService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:save')")
@Operation(summary = "批量添加医生入驻申请")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicDoctorApply> list) {
if (clinicDoctorApplyService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicDoctorApply:update')")
@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')")
@Operation(summary = "批量删除医生入驻申请")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicDoctorApplyService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,129 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.clinic.entity.ClinicDoctorUser;
import com.gxwebsoft.clinic.param.ClinicDoctorUserParam;
import com.gxwebsoft.clinic.service.ClinicDoctorUserService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.utils.RequestUtil;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
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-23 15:58:21
*/
@Tag(name = "分销商用户记录表管理")
@RestController
@RequestMapping("/api/clinic/clinic-doctor-user")
public class ClinicDoctorUserController extends BaseController {
@Resource
private ClinicDoctorUserService clinicDoctorUserService;
@Operation(summary = "分页查询分销商用户记录表")
@GetMapping("/page")
public ApiResult<PageResult<ClinicDoctorUser>> page(ClinicDoctorUserParam param) {
// 使用关联查询
return success(clinicDoctorUserService.pageRel(param));
}
@Operation(summary = "查询全部分销商用户记录表")
@GetMapping()
public ApiResult<List<ClinicDoctorUser>> list(ClinicDoctorUserParam param) {
// 使用关联查询
return success(clinicDoctorUserService.listRel(param));
}
@Operation(summary = "根据id查询分销商用户记录表")
@GetMapping("/{id}")
public ApiResult<ClinicDoctorUser> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicDoctorUserService.getByIdRel(id));
}
@Operation(summary = "根据id查询分销商用户记录表")
@GetMapping("/getByUserId/{doctorUserId}")
public ApiResult<ClinicDoctorUser> getByUserId(@PathVariable("doctorUserId") Integer id) {
// 使用关联查询
return success(clinicDoctorUserService.getByUserId(id));
}
@Operation(summary = "添加分销商用户记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicDoctorUser clinicDoctorUser) {
RequestUtil requestUtil = new RequestUtil();
requestUtil.setTenantId(getTenantId().toString());
User user = requestUtil.getUserByPhone(clinicDoctorUser.getPhone());
if (user == null) {
return fail("该手机号无法查询到用户");
}
clinicDoctorUser.setUserId(user.getUserId());
if (clinicDoctorUserService.save(clinicDoctorUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改分销商用户记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicDoctorUser clinicDoctorUser) {
if (clinicDoctorUserService.updateById(clinicDoctorUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除分销商用户记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicDoctorUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加分销商用户记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicDoctorUser> list) {
if (clinicDoctorUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改分销商用户记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicDoctorUser> batchParam) {
if (batchParam.update(clinicDoctorUserService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除分销商用户记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicDoctorUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,121 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.ClinicListService;
import com.gxwebsoft.clinic.entity.ClinicList;
import com.gxwebsoft.clinic.param.ClinicListParam;
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 com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 诊所列表控制器
*
* @author LX
* @since 2025-12-09 17:29:44
*/
@Api(tags = "诊所列表管理")
@RestController
@RequestMapping("/api/clinic/clinic-list")
public class ClinicListController extends BaseController {
@Resource
private ClinicListService clinicListService;
@GetMapping("/getUserItem")
public ApiResult<ClinicList> getUserItem() {
// 使用关联查询
return success(clinicListService.getByUserId(getLoginUserId()));
}
@ApiOperation("分页查询诊所列表")
@GetMapping("/page")
public ApiResult<PageResult<ClinicList>> page(ClinicListParam param) {
// 使用关联查询
return success(clinicListService.pageRel(param));
}
@ApiOperation("查询全部诊所列表")
@GetMapping()
public ApiResult<List<ClinicList>> list(ClinicListParam param) {
// 使用关联查询
return success(clinicListService.listRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicList:list')")
@ApiOperation("根据id查询诊所列表")
@GetMapping("/{id}")
public ApiResult<ClinicList> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicListService.getByIdRel(id));
}
@ApiOperation("添加诊所列表")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicList clinicList) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
clinicList.setUserId(loginUser.getUserId());
}
if (clinicListService.save(clinicList)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("修改诊所列表")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicList clinicList) {
if (clinicListService.updateById(clinicList)) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("删除诊所列表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicListService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@ApiOperation("批量添加诊所列表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicList> list) {
if (clinicListService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("批量修改诊所列表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicList> batchParam) {
if (batchParam.update(clinicListService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("批量删除诊所列表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicListService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,118 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.clinic.entity.ClinicMedicine;
import com.gxwebsoft.clinic.param.ClinicMedicineParam;
import com.gxwebsoft.clinic.service.ClinicMedicineService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
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-22 02:06:32
*/
@Tag(name = "药品库管理")
@RestController
@RequestMapping("/api/clinic/clinic-medicine")
public class ClinicMedicineController extends BaseController {
@Resource
private ClinicMedicineService clinicMedicineService;
@Operation(summary = "分页查询药品库")
@GetMapping("/page")
public ApiResult<PageResult<ClinicMedicine>> page(ClinicMedicineParam param) {
// 使用关联查询
return success(clinicMedicineService.pageRel(param));
}
@Operation(summary = "查询全部药品库")
@GetMapping()
public ApiResult<List<ClinicMedicine>> list(ClinicMedicineParam param) {
// 使用关联查询
return success(clinicMedicineService.listRel(param));
}
@Operation(summary = "根据id查询药品库")
@GetMapping("/{id}")
public ApiResult<ClinicMedicine> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicMedicineService.getByIdRel(id));
}
@Operation(summary = "添加药品库")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicMedicine clinicMedicine) {
// 记录当前登录用户id
// User loginUser = getLoginUser();
// if (loginUser != null) {
// clinicMedicine.setUserId(loginUser.getUserId());
// }
if (clinicMedicineService.save(clinicMedicine)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改药品库")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicMedicine clinicMedicine) {
if (clinicMedicineService.updateById(clinicMedicine)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除药品库")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicMedicineService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加药品库")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicMedicine> list) {
if (clinicMedicineService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改药品库")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicMedicine> batchParam) {
if (batchParam.update(clinicMedicineService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除药品库")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicMedicineService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,127 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.clinic.entity.ClinicMedicineInout;
import com.gxwebsoft.clinic.param.ClinicMedicineInoutParam;
import com.gxwebsoft.clinic.service.ClinicMedicineInoutService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
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-22 02:06:32
*/
@Tag(name = "出入库管理")
@RestController
@RequestMapping("/api/clinic/clinic-medicine-inout")
public class ClinicMedicineInoutController extends BaseController {
@Resource
private ClinicMedicineInoutService clinicMedicineInoutService;
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:list')")
@Operation(summary = "分页查询出入库")
@GetMapping("/page")
public ApiResult<PageResult<ClinicMedicineInout>> page(ClinicMedicineInoutParam param) {
// 使用关联查询
return success(clinicMedicineInoutService.pageRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:list')")
@Operation(summary = "查询全部出入库")
@GetMapping()
public ApiResult<List<ClinicMedicineInout>> list(ClinicMedicineInoutParam param) {
// 使用关联查询
return success(clinicMedicineInoutService.listRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:list')")
@Operation(summary = "根据id查询出入库")
@GetMapping("/{id}")
public ApiResult<ClinicMedicineInout> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicMedicineInoutService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:save')")
@Operation(summary = "添加出入库")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicMedicineInout clinicMedicineInout) {
// 记录当前登录用户id
// User loginUser = getLoginUser();
// if (loginUser != null) {
// clinicMedicineInout.setUserId(loginUser.getUserId());
// }
if (clinicMedicineInoutService.save(clinicMedicineInout)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:update')")
@Operation(summary = "修改出入库")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicMedicineInout clinicMedicineInout) {
if (clinicMedicineInoutService.updateById(clinicMedicineInout)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:remove')")
@Operation(summary = "删除出入库")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicMedicineInoutService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:save')")
@Operation(summary = "批量添加出入库")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicMedicineInout> list) {
if (clinicMedicineInoutService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:update')")
@Operation(summary = "批量修改出入库")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicMedicineInout> batchParam) {
if (batchParam.update(clinicMedicineInoutService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineInout:remove')")
@Operation(summary = "批量删除出入库")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicMedicineInoutService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,127 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.clinic.entity.ClinicMedicineStock;
import com.gxwebsoft.clinic.param.ClinicMedicineStockParam;
import com.gxwebsoft.clinic.service.ClinicMedicineStockService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
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-22 02:06:32
*/
@Tag(name = "药品库存管理")
@RestController
@RequestMapping("/api/clinic/clinic-medicine-stock")
public class ClinicMedicineStockController extends BaseController {
@Resource
private ClinicMedicineStockService clinicMedicineStockService;
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:list')")
@Operation(summary = "分页查询药品库存")
@GetMapping("/page")
public ApiResult<PageResult<ClinicMedicineStock>> page(ClinicMedicineStockParam param) {
// 使用关联查询
return success(clinicMedicineStockService.pageRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:list')")
@Operation(summary = "查询全部药品库存")
@GetMapping()
public ApiResult<List<ClinicMedicineStock>> list(ClinicMedicineStockParam param) {
// 使用关联查询
return success(clinicMedicineStockService.listRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:list')")
@Operation(summary = "根据id查询药品库存")
@GetMapping("/{id}")
public ApiResult<ClinicMedicineStock> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicMedicineStockService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:save')")
@Operation(summary = "添加药品库存")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicMedicineStock clinicMedicineStock) {
// 记录当前登录用户id
// User loginUser = getLoginUser();
// if (loginUser != null) {
// clinicMedicineStock.setUserId(loginUser.getUserId());
// }
if (clinicMedicineStockService.save(clinicMedicineStock)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:update')")
@Operation(summary = "修改药品库存")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicMedicineStock clinicMedicineStock) {
if (clinicMedicineStockService.updateById(clinicMedicineStock)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:remove')")
@Operation(summary = "删除药品库存")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicMedicineStockService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:save')")
@Operation(summary = "批量添加药品库存")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicMedicineStock> list) {
if (clinicMedicineStockService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:update')")
@Operation(summary = "批量修改药品库存")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicMedicineStock> batchParam) {
if (batchParam.update(clinicMedicineStockService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicMedicineStock:remove')")
@Operation(summary = "批量删除药品库存")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicMedicineStockService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,158 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.common.core.security.JwtUtil;
import com.gxwebsoft.common.core.utils.RequestUtil;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.ClinicPatientUserService;
import com.gxwebsoft.clinic.entity.ClinicPatientUser;
import com.gxwebsoft.clinic.param.ClinicPatientUserParam;
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 com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.service.UserService;
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 javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
/**
* 患者控制器
*
* @author 科技小王子
* @since 2025-10-19 09:27:04
*/
@Tag(name = "患者管理")
@RestController
@RequestMapping("/api/clinic/clinic-patient-user")
public class ClinicPatientUserController extends BaseController {
@Resource
private ClinicPatientUserService clinicPatientUserService;
@Resource
private UserService userService;
@Operation(summary = "分页查询患者")
@GetMapping("/page")
public ApiResult<PageResult<ClinicPatientUser>> page(ClinicPatientUserParam param) {
// 使用关联查询
return success(clinicPatientUserService.pageRel(param));
}
@Operation(summary = "分页查询患者")
@GetMapping("/userPage")
public ApiResult<PageResult<ClinicPatientUser>> userPage(ClinicPatientUserParam param) {
// 使用关联查询
param.setUserId(getLoginUserId());
return success(clinicPatientUserService.pageRel(param));
}
@Operation(summary = "查询全部患者")
@GetMapping()
public ApiResult<List<ClinicPatientUser>> list(ClinicPatientUserParam param, HttpServletRequest request) {
List<ClinicPatientUser> list = clinicPatientUserService.listRel(param);
// RequestUtil requestUtil = new RequestUtil();
// requestUtil.setTenantId(getTenantId().toString());
// String access_token = JwtUtil.getAccessToken(request);
// requestUtil.setAccessToken(access_token);
List<Integer> uidList = new ArrayList<>();
if (!list.isEmpty()) {
uidList = list.stream().map(ClinicPatientUser::getPatientUserId).toList();
// List<User> userList = requestUtil.getUserList(String.join(",", uidList));
List<User> userList = userService.getByUserIdListInner(uidList);
for (ClinicPatientUser clinicPatientUser : list) {
User user = userList.stream().filter(u -> u.getUserId().equals(clinicPatientUser.getPatientUserId())).findFirst().orElse(null);
clinicPatientUser.setPatientUser(user);
}
}
return success(list);
}
@GetMapping("/getByPatientUserId/{patientUserId}")
public ApiResult<ClinicPatientUser> getByPatientUserId(@PathVariable("patientUserId") Integer patientUserId) {
// 使用关联查询
return success(clinicPatientUserService.getByPatientUserId(patientUserId));
}
@Operation(summary = "根据id查询患者")
@GetMapping("/{id}")
public ApiResult<ClinicPatientUser> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicPatientUserService.getByIdRel(id));
}
@Operation(summary = "添加患者")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicPatientUser clinicPatientUser) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
clinicPatientUser.setUserId(loginUser.getUserId());
}
User patientUser = userService.getByPhoneInner(clinicPatientUser.getPhone());
if (patientUser != null) clinicPatientUser.setPatientUserId(patientUser.getUserId());
else return fail("患者用户不存在");
if (clinicPatientUserService.save(clinicPatientUser)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "修改患者")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicPatientUser clinicPatientUser) {
if (clinicPatientUserService.updateById(clinicPatientUser)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除患者")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicPatientUserService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加患者")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicPatientUser> list) {
if (clinicPatientUserService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改患者")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicPatientUser> batchParam) {
if (batchParam.update(clinicPatientUserService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除患者")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicPatientUserService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,192 @@
package com.gxwebsoft.clinic.controller;
import cn.hutool.core.util.IdUtil;
import com.gxwebsoft.clinic.dto.PrescriptionOrderRequest;
import com.gxwebsoft.clinic.entity.ClinicPrescription;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.param.ClinicPrescriptionParam;
import com.gxwebsoft.clinic.service.ClinicPrescriptionItemService;
import com.gxwebsoft.clinic.service.ClinicPrescriptionService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
/**
* 处方主表
* 控制器
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
@Tag(name = "处方主表管理")
@RestController
@RequestMapping("/api/clinic/clinic-prescription")
public class ClinicPrescriptionController extends BaseController {
@Resource
private ClinicPrescriptionService clinicPrescriptionService;
@Resource
private ClinicPrescriptionItemService clinicPrescriptionItemService;
@Operation(summary = "分页查询处方主表")
@GetMapping("/page")
public ApiResult<PageResult<ClinicPrescription>> page(ClinicPrescriptionParam param) {
param.setLoginUserId(getLoginUserId());
return success(clinicPrescriptionService.pageRel(param));
}
@Operation(summary = "查询全部处方主表")
@GetMapping()
public ApiResult<List<ClinicPrescription>> list(ClinicPrescriptionParam param) {
// 使用关联查询
return success(clinicPrescriptionService.listRel(param));
}
@Operation(summary = "根据id查询处方主表")
@GetMapping("/{id}")
public ApiResult<ClinicPrescription> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicPrescriptionService.getByIdRel(id));
}
@Operation(summary = "添加处方主表")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicPrescription clinicPrescription) {
// 记录当前登录用户id
// clinicPrescription.setDoctorId(getLoginUserId());
// 生成订单号
String orderNo = Long.toString(IdUtil.getSnowflakeNextId());
clinicPrescription.setOrderNo(orderNo);
if (clinicPrescriptionService.save(clinicPrescription)) {
if (clinicPrescription.getItems() != null && !clinicPrescription.getItems().isEmpty()) {
for (ClinicPrescriptionItem item : clinicPrescription.getItems()) {
item.setPrescriptionId(clinicPrescription.getId());
item.setPrescriptionNo(orderNo);
}
clinicPrescriptionItemService.saveBatch(clinicPrescription.getItems());
}
// 返回处方数据包含处方ID
return success("添加成功", clinicPrescriptionService.getByLastId(clinicPrescription));
}
return fail("添加失败");
}
@Operation(summary = "修改处方主表")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicPrescription clinicPrescription) {
if (clinicPrescriptionService.updateById(clinicPrescription)) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "删除处方主表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicPrescriptionService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "批量添加处方主表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicPrescription> list) {
if (clinicPrescriptionService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@Operation(summary = "批量修改处方主表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicPrescription> batchParam) {
if (batchParam.update(clinicPrescriptionService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@Operation(summary = "批量删除处方主表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicPrescriptionService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
@Operation(summary = "创建处方订单")
@PostMapping("/order")
public ApiResult<?> createOrder(@RequestBody PrescriptionOrderRequest request) {
try {
// 1. 参数校验
if (request.getPrescriptionId() == null) {
return fail("处方ID不能为空");
}
if (request.getPayType() == null) {
return fail("支付方式不能为空");
}
// 2. 查询处方信息
ClinicPrescription prescription = clinicPrescriptionService.getById(request.getPrescriptionId());
if (prescription == null) {
return fail("处方不存在");
}
// 3. 检查处方状态
if (prescription.getStatus() != null && prescription.getStatus() == 2) {
return fail("该处方已支付,无需重复支付");
}
if (prescription.getStatus() != null && prescription.getStatus() == 3) {
return fail("该处方已取消,无法支付");
}
// 4. 更新处方订单信息
ClinicPrescription updatePrescription = new ClinicPrescription();
updatePrescription.setId(request.getPrescriptionId());
// 根据支付类型更新状态
if (request.getPayType() == 1) {
// 微信支付,状态保持为正常,等待支付回调
updatePrescription.setStatus(0);
} else if (request.getPayType() == 4 || request.getPayType() == 5) {
// 现金支付或POS机支付直接标记为已支付
updatePrescription.setStatus(2);
updatePrescription.setIsSettled(1);
updatePrescription.setSettleTime(LocalDateTime.now());
} else if (request.getPayType() == 6) {
// 免费,直接标记为已完成
updatePrescription.setStatus(1);
updatePrescription.setIsSettled(1);
updatePrescription.setSettleTime(LocalDateTime.now());
}
if (clinicPrescriptionService.updateById(updatePrescription)) {
return success("订单创建成功", prescription);
}
return fail("订单创建失败");
} catch (Exception e) {
return fail("订单创建失败:" + e.getMessage());
}
}
}

View File

@@ -0,0 +1,121 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.param.ClinicPrescriptionItemParam;
import com.gxwebsoft.clinic.service.ClinicPrescriptionItemService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
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-22 02:01:13
*/
@Tag(name = "处方明细表管理")
@RestController
@RequestMapping("/api/clinic/clinic-prescription-item")
public class ClinicPrescriptionItemController extends BaseController {
@Resource
private ClinicPrescriptionItemService clinicPrescriptionItemService;
@Operation(summary = "分页查询处方明细表")
@GetMapping("/page")
public ApiResult<PageResult<ClinicPrescriptionItem>> page(ClinicPrescriptionItemParam param) {
// 使用关联查询
return success(clinicPrescriptionItemService.pageRel(param));
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:list')")
@Operation(summary = "查询全部处方明细表")
@GetMapping()
public ApiResult<List<ClinicPrescriptionItem>> list(ClinicPrescriptionItemParam param) {
// 使用关联查询
return success(clinicPrescriptionItemService.listRel(param));
}
@Operation(summary = "根据id查询处方明细表")
@GetMapping("/{id}")
public ApiResult<ClinicPrescriptionItem> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(clinicPrescriptionItemService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:save')")
@Operation(summary = "添加处方明细表")
@PostMapping()
public ApiResult<?> save(@RequestBody ClinicPrescriptionItem clinicPrescriptionItem) {
if (clinicPrescriptionItemService.save(clinicPrescriptionItem)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:update')")
@Operation(summary = "修改处方明细表")
@PutMapping()
public ApiResult<?> update(@RequestBody ClinicPrescriptionItem clinicPrescriptionItem) {
if (clinicPrescriptionItemService.updateById(clinicPrescriptionItem)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:remove')")
@Operation(summary = "删除处方明细表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (clinicPrescriptionItemService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:save')")
@Operation(summary = "批量添加处方明细表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<ClinicPrescriptionItem> list) {
if (clinicPrescriptionItemService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:update')")
@Operation(summary = "批量修改处方明细表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<ClinicPrescriptionItem> batchParam) {
if (batchParam.update(clinicPrescriptionItemService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('clinic:clinicPrescription:remove')")
@Operation(summary = "批量删除处方明细表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (clinicPrescriptionItemService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,233 @@
package com.gxwebsoft.clinic.controller;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.gxwebsoft.clinic.entity.ClinicPrescription;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.entity.PrescriptionOrderItem;
import com.gxwebsoft.clinic.service.PrescriptionOrderItemService;
import com.gxwebsoft.common.core.config.CertificateProperties;
import com.gxwebsoft.common.core.config.ConfigProperties;
import com.gxwebsoft.common.core.utils.CertificateLoader;
import com.gxwebsoft.common.core.utils.RedisUtil;
import com.gxwebsoft.common.core.utils.WechatPayConfigValidator;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.PrescriptionOrderService;
import com.gxwebsoft.clinic.entity.PrescriptionOrder;
import com.gxwebsoft.clinic.param.PrescriptionOrderParam;
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 com.gxwebsoft.common.system.entity.Payment;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.service.OrderService;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import com.wechat.pay.java.core.notification.NotificationConfig;
import com.wechat.pay.java.core.notification.NotificationParser;
import com.wechat.pay.java.core.notification.RequestParam;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* 处方主表
* 控制器
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Api(tags = "处方主表")
@RestController
@RequestMapping("/api/clinic/prescription-order")
public class PrescriptionOrderController extends BaseController {
@Resource
private PrescriptionOrderService prescriptionOrderService;
@Resource
private PrescriptionOrderItemService prescriptionOrderItemService;
@Resource
private OrderService orderService;
@Resource
private RedisUtil redisUtil;
@Resource
private WechatPayConfigValidator wechatPayConfigValidator;
@Resource
private CertificateProperties certConfig;
@Resource
private ConfigProperties config;
@ApiOperation("分页查询处方主表")
@GetMapping("/page")
public ApiResult<PageResult<PrescriptionOrder>> page(PrescriptionOrderParam param) {
// 使用关联查询
return success(prescriptionOrderService.pageRel(param));
}
@ApiOperation("查询全部处方主表")
@GetMapping()
public ApiResult<List<PrescriptionOrder>> list(PrescriptionOrderParam param) {
// 使用关联查询
return success(prescriptionOrderService.listRel(param));
}
@ApiOperation("根据id查询处方主表")
@GetMapping("/{id}")
public ApiResult<PrescriptionOrder> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(prescriptionOrderService.getByIdRel(id));
}
@ApiOperation("添加处方主表")
@PostMapping()
public ApiResult<?> save(@RequestBody PrescriptionOrder prescriptionOrder) {
prescriptionOrder.setDoctorId(getLoginUserId());
// 生成订单号
String orderNo = Long.toString(IdUtil.getSnowflakeNextId());
prescriptionOrder.setOrderNo(orderNo);
BigDecimal payPrice = prescriptionOrder.getOrderPrice();
if (prescriptionOrder.getDecoctionAmount() != null)
payPrice = payPrice.add(prescriptionOrder.getDecoctionAmount());
if (prescriptionOrder.getExpressAmount() != null)
payPrice = payPrice.add(prescriptionOrder.getExpressAmount());
prescriptionOrder.setPayPrice(payPrice);
if (prescriptionOrderService.save(prescriptionOrder)) {
if (prescriptionOrder.getItems() != null && !prescriptionOrder.getItems().isEmpty()) {
for (PrescriptionOrderItem item : prescriptionOrder.getItems()) {
item.setPrescriptionId(prescriptionOrder.getId());
item.setPrescriptionNo(orderNo);
}
prescriptionOrderItemService.saveBatch(prescriptionOrder.getItems());
}
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("修改处方主表")
@PutMapping()
public ApiResult<?> update(@RequestBody PrescriptionOrder prescriptionOrder) {
if (prescriptionOrderService.updateById(prescriptionOrder)) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("删除处方主表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (prescriptionOrderService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@ApiOperation("批量添加处方主表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<PrescriptionOrder> list) {
if (prescriptionOrderService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("批量修改处方主表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<PrescriptionOrder> batchParam) {
if (batchParam.update(prescriptionOrderService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("批量删除处方主表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (prescriptionOrderService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
@PostMapping("/pay")
public ApiResult<?> pay(@RequestBody PrescriptionOrder prescriptionOrderData) {
PrescriptionOrder prescriptionOrder = prescriptionOrderService.getById(prescriptionOrderData.getId());
Order order = new Order();
order.setTenantId(getTenantId());
order.setTotalPrice(prescriptionOrder.getPayPrice());
order.setComments(prescriptionOrder.getOrderNo());
order.setOrderNo(prescriptionOrder.getOrderNo());
order.setOpenid(getLoginUser().getOpenid());
order.setNotifyUrl("https://clinic-api.websoft.top/api/clinic/prescription-order/notify");
return success("调起成功", orderService.createWxOrder(order));
}
@Schema(description = "异步通知")
@PostMapping("/notify")
public String wxNotify(@RequestHeader Map<String, String> header, @RequestBody String body) {
System.out.println("异步通知*************** =");
String key = "Payment:1:10559";
final String uploadPath = config.getUploadPath();
final com.gxwebsoft.common.system.entity.Payment payment = redisUtil.get(key, Payment.class);
String privateKeyPath = uploadPath.concat("/file").concat(payment.getApiclientKey());
String apiclientCert = uploadPath.concat("/file").concat(payment.getApiclientCert());
com.wechat.pay.java.core.notification.RequestParam requestParam = new com.wechat.pay.java.core.notification.RequestParam.Builder()
.serialNumber(header.get("wechatpay-serial"))
.nonce(header.get("wechatpay-nonce"))
.signature(header.get("wechatpay-signature"))
.timestamp(header.get("wechatpay-timestamp"))
.body(body)
.build();
// 如果已经初始化了 RSAAutoCertificateConfig可直接使用
// 没有的话,则构造一个
NotificationConfig config = new RSAAutoCertificateConfig.Builder()
.merchantId(payment.getMchId())
.privateKeyFromPath(privateKeyPath)
.merchantSerialNumber(payment.getMerchantSerialNumber())
.apiV3Key(payment.getApiKey())
.build();
// 初始化 NotificationParser
NotificationParser parser = new NotificationParser(config);
// 以支付通知回调为例,验签、解密并转换成 Transaction
Transaction transaction = parser.parse(requestParam, Transaction.class);
System.out.println("transaction = " + transaction);
if (StrUtil.equals("支付成功", transaction.getTradeStateDesc())) {
final String outTradeNo = transaction.getOutTradeNo();
final String transactionId = transaction.getTransactionId();
final Integer total = transaction.getAmount().getTotal();
final String tradeStateDesc = transaction.getTradeStateDesc();
final Transaction.TradeStateEnum tradeState = transaction.getTradeState();
final Transaction.TradeTypeEnum tradeType = transaction.getTradeType();
PrescriptionOrder prescriptionOrder = prescriptionOrderService.getByOrderNo(outTradeNo);
System.out.println("outTradeNo = " + outTradeNo);
System.out.println("clinicPrescription = " + prescriptionOrder);
if (prescriptionOrder != null) {
prescriptionOrder.setStatus(1);
prescriptionOrderService.updateById(prescriptionOrder);
}
return "SUCCESS";
}
return "fail";
}
}

View File

@@ -0,0 +1,110 @@
package com.gxwebsoft.clinic.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.clinic.service.PrescriptionOrderItemService;
import com.gxwebsoft.clinic.entity.PrescriptionOrderItem;
import com.gxwebsoft.clinic.param.PrescriptionOrderItemParam;
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 com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 处方明细表
控制器
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Api(tags = "处方明细表管理")
@RestController
@RequestMapping("/api/clinic/prescription-order-item")
public class PrescriptionOrderItemController extends BaseController {
@Resource
private PrescriptionOrderItemService prescriptionOrderItemService;
@ApiOperation("分页查询处方明细表")
@GetMapping("/page")
public ApiResult<PageResult<PrescriptionOrderItem>> page(PrescriptionOrderItemParam param) {
// 使用关联查询
return success(prescriptionOrderItemService.pageRel(param));
}
@ApiOperation("查询全部处方明细表")
@GetMapping()
public ApiResult<List<PrescriptionOrderItem>> list(PrescriptionOrderItemParam param) {
// 使用关联查询
return success(prescriptionOrderItemService.listRel(param));
}
@ApiOperation("根据id查询处方明细表")
@GetMapping("/{id}")
public ApiResult<PrescriptionOrderItem> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(prescriptionOrderItemService.getByIdRel(id));
}
@ApiOperation("添加处方明细表")
@PostMapping()
public ApiResult<?> save(@RequestBody PrescriptionOrderItem prescriptionOrderItem) {
if (prescriptionOrderItemService.save(prescriptionOrderItem)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("修改处方明细表")
@PutMapping()
public ApiResult<?> update(@RequestBody PrescriptionOrderItem prescriptionOrderItem) {
if (prescriptionOrderItemService.updateById(prescriptionOrderItem)) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("删除处方明细表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (prescriptionOrderItemService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@ApiOperation("批量添加处方明细表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<PrescriptionOrderItem> list) {
if (prescriptionOrderItemService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@ApiOperation("批量修改处方明细表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<PrescriptionOrderItem> batchParam) {
if (batchParam.update(prescriptionOrderItemService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@ApiOperation("批量删除处方明细表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (prescriptionOrderItemService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,24 @@
package com.gxwebsoft.clinic.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* 处方订单请求参数
*
* @author 科技小王子
* @since 2025-11-03
*/
@Data
@Schema(name = "PrescriptionOrderRequest", description = "处方订单请求参数")
public class PrescriptionOrderRequest implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "处方ID", required = true)
private Integer prescriptionId;
@Schema(description = "支付方式0余额支付1微信支付2支付宝支付3银联支付4现金支付5POS机支付6免费7积分支付", required = true)
private Integer payType;
}

View File

@@ -0,0 +1,81 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
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-19 09:27:03
*/
@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 = "医生名称")
@TableField(exist = false)
private String doctorName;
@Schema(description = "医生职位")
@TableField(exist = false)
private String doctorPosition;
@Schema(description = "患者")
private Integer userId;
@Schema(description = "患者名称")
@TableField(exist = false)
private String nickname;
@Schema(description = "手机")
@TableField(exist = false)
private String phone;
@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,73 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 病例列表
*
* @author LX
* @since 2025-12-25 17:24:55
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ClinicCase对象", description = "病例列表")
public class ClinicCase implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer userId;
@ApiModelProperty(value = "医生用户id")
private Integer doctorUserId;
@ApiModelProperty(value = "病情主诉")
private String patientCondition;
@ApiModelProperty(value = "既往史")
private String pastHistory;
@ApiModelProperty(value = "过敏史")
private String allergyHistory;
@ApiModelProperty(value = "诊断")
private String diagnostic;
@ApiModelProperty(value = "治疗方案")
private String plan;
@ApiModelProperty(value = "照片")
private String photoList;
@ApiModelProperty(value = "0待审核 1通过 2拒绝")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "排序号")
private Integer sortNumber;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "修改时间")
private LocalDateTime updateTime;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
}

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-19 09:27:04
*/
@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,102 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 分销商用户记录表
*
* @author 科技小王子
* @since 2025-10-23 15:58:20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicDoctorUser对象", description = "分销商用户记录表")
public class ClinicDoctorUser implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "类型 0经销商 1企业 2集团")
private Integer type;
@Schema(description = "自增ID")
private Integer userId;
@Schema(description = "昵称")
@TableField(exist = false)
private String nickname;
@Schema(description = "头像")
@TableField(exist = false)
private String avatar;
@Schema(description = "姓名")
private String realName;
@Schema(description = "手机号")
@TableField(exist = false)
private String phone;
@Schema(description = "部门")
private Integer departmentId;
@Schema(description = "专业领域")
private String specialty;
@Schema(description = "职务级别")
private String position;
@Schema(description = "执业资格")
private String qualification;
@Schema(description = "医生简介")
private String introduction;
@Schema(description = "挂号费")
private BigDecimal consultationFee;
@Schema(description = "工作年限")
private Integer workYears;
@Schema(description = "问诊人数")
private Integer consultationCount;
@Schema(description = "专属二维码")
private String qrcode;
@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,91 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.gxwebsoft.common.system.entity.Area;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 诊所列表
*
* @author LX
* @since 2025-12-09 17:29:44
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ClinicList对象", description = "诊所列表")
@TableName("clinic_clinic_list")
public class ClinicList implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "省份id")
private Integer provinceId;
@ApiModelProperty(value = "城市id")
private Integer cityId;
@ApiModelProperty(value = "区域id")
private Integer regionId;
@ApiModelProperty(value = "管理员id")
private Integer userId;
@ApiModelProperty(value = "详细地址")
private String address;
@ApiModelProperty(value = "联系方式")
private String contact;
@ApiModelProperty(value = "logo")
private String logo;
@ApiModelProperty(value = "资质")
private String qualify;
@ApiModelProperty(value = "0待审核 1通过 2拒绝")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "排序号")
private Integer sortNumber;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "修改时间")
private LocalDateTime updateTime;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
private String lat;
private String lng;
@TableField(exist = false)
private Area province;
@TableField(exist = false)
private Area city;
@TableField(exist = false)
private Area region;
}

View File

@@ -0,0 +1,74 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 药品库
*
* @author 科技小王子
* @since 2025-10-22 02:06:31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicMedicine对象", description = "药品库")
public class ClinicMedicine implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "药名")
private String name;
@Schema(description = "拼音")
private String pinyin;
@Schema(description = "分类(如“清热解毒”、“补气养血”)")
private String category;
@Schema(description = "规格(如“饮片”、“颗粒”)")
private String specification;
@Schema(description = "单位(如“克”、“袋”)")
private String unit;
@Schema(description = "描述")
private String content;
@Schema(description = "单价")
private BigDecimal pricePerUnit;
@Schema(description = "是否活跃")
private Integer isActive;
@Schema(description = "买家用户ID")
private Integer userId;
@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,99 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 出入库
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicMedicineInout对象", description = "出入库")
public class ClinicMedicineInout implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "买家用户ID")
private Integer userId;
@Schema(description = "订单编号")
private String orderNo;
@Schema(description = "分销商用户id(一级)")
private Integer firstUserId;
@Schema(description = "分销商用户id(二级)")
private Integer secondUserId;
@Schema(description = "分销商用户id(三级)")
private Integer thirdUserId;
@Schema(description = "分销佣金(一级)")
private BigDecimal firstMoney;
@Schema(description = "分销佣金(二级)")
private BigDecimal secondMoney;
@Schema(description = "分销佣金(三级)")
private BigDecimal thirdMoney;
@Schema(description = "单价")
private BigDecimal price;
@Schema(description = "订单总金额")
private BigDecimal orderPrice;
@Schema(description = "结算金额")
private BigDecimal settledPrice;
@Schema(description = "换算成度")
private BigDecimal degreePrice;
@Schema(description = "实发金额")
private BigDecimal payPrice;
@Schema(description = "税率")
private BigDecimal rate;
@Schema(description = "结算月份")
private String month;
@Schema(description = "订单是否失效(0未失效 1已失效)")
private Integer isInvalid;
@Schema(description = "佣金结算(0未结算 1已结算)")
private Integer isSettled;
@Schema(description = "结算时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime settleTime;
@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,59 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 药品库存
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicMedicineStock对象", description = "药品库存")
public class ClinicMedicineStock implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "药品")
private Integer medicineId;
@Schema(description = "库存数量")
private Integer stockQuantity;
@Schema(description = "最小库存预警")
private Integer minStockLevel;
@Schema(description = "上次更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lastUpdated;
@Schema(description = "买家用户ID")
private Integer userId;
@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,94 @@
package com.gxwebsoft.clinic.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 患者
*
* @author 科技小王子
* @since 2025-10-19 09:27:04
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicPatientUser对象", description = "患者")
public class ClinicPatientUser implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "类型 0经销商 1企业 2集团")
private Integer type;
@Schema(description = "自增ID")
private Integer userId;
private Integer patientUserId;
@Schema(description = "姓名")
private String realName;
@Schema(description = "头像")
@TableField(exist = false)
private String avatar;
@Schema(description = "手机号")
@TableField(exist = false)
private String phone;
@Schema(description = "性别 0未知 1男 2女")
private Integer sex;
@Schema(description = "年龄")
private Integer age;
@Schema(description = "身高")
private String height;
@Schema(description = "体重")
private String weight;
@Schema(description = "过敏史")
private String allergyHistory;
@Schema(description = "专属二维码")
private String qrcode;
@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;
@TableField(exist = false)
private User patientUser;
}

View File

@@ -0,0 +1,143 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.gxwebsoft.shop.entity.Order;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* 处方主表
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicPrescription对象", description = "处方主表")
public class ClinicPrescription implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "患者")
private Integer userId;
@Schema(description = "患者名称")
@TableField(exist = false)
private String realName;
@Schema(description = "年龄")
@TableField(exist = false)
private String age;
@Schema(description = "身高")
@TableField(exist = false)
private String height;
@Schema(description = "体重")
@TableField(exist = false)
private String weight;
@Schema(description = "医生")
private Integer doctorId;
@Schema(description = "医生名称")
@TableField(exist = false)
private String doctorName;
@Schema(description = "医生资格")
@TableField(exist = false)
private String qualification;
@Schema(description = "订单编号")
private String orderNo;
private Integer orderId;
@Schema(description = "0未付款1已付款")
@TableField(exist = false)
private Boolean payStatus;
@Schema(description = "0未使用1已完成2已取消3取消中4退款申请中5退款被拒绝6退款成功7客户端申请退款")
@TableField(exist = false)
private Integer orderStatus;
@Schema(description = "关联就诊表")
private Integer visitRecordId;
@Schema(description = "处方类型 0中药 1西药")
private Integer prescriptionType;
@Schema(description = "诊断结果")
private String diagnosis;
@Schema(description = "治疗方案")
private String treatmentPlan;
@Schema(description = "煎药说明")
private String decoctionInstructions;
@Schema(description = "上传附件")
private String image;
@Schema(description = "订单总金额")
private BigDecimal orderPrice;
@Schema(description = "单价")
private BigDecimal price;
@Schema(description = "实付金额")
private BigDecimal payPrice;
@Schema(description = "订单是否失效(0未失效 1已失效)")
private Integer isInvalid;
@Schema(description = "结算(0未结算 1已结算)")
private Integer isSettled;
@Schema(description = "结算时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime settleTime;
@Schema(description = "状态, 0正常, 1已完成2已支付3已取消")
private Integer status;
@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;
@Schema(description = "处方明细")
@TableField(exist = false)
private List<ClinicPrescriptionItem> items;
@TableField(exist = false)
private Boolean showPayButton;
@TableField(exist = false)
private Order shopOrder;
}

View File

@@ -0,0 +1,99 @@
package com.gxwebsoft.clinic.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 处方明细表
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Schema(name = "ClinicPrescriptionItem对象", description = "处方明细表")
public class ClinicPrescriptionItem implements Serializable {
private static final long serialVersionUID = 1L;
@Schema(description = "自增ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@Schema(description = "关联处方")
private Integer prescriptionId;
@Schema(description = "订单编号")
private String prescriptionNo;
@Schema(description = "关联药品")
private Integer medicineId;
@Schema(description = "药品名称")
@TableField(exist = false)
private String medicineName;
@Schema(description = "规格")
@TableField(exist = false)
private String specification;
@Schema(description = "单位")
@TableField(exist = false)
private String unit;
@Schema(description = "单价")
@TableField(exist = false)
private BigDecimal pricePerUnit;
@Schema(description = "药品")
@TableField(exist = false)
private ClinicMedicine clinicMedicine;
@Schema(description = "剂量如“10g”")
private String dosage;
@Schema(description = "用法频率(如“每日三次”)")
private String usageFrequency;
@Schema(description = "服用天数")
private Integer days;
@Schema(description = "购买数量")
private Integer amount;
@Schema(description = "单价")
private BigDecimal unitPrice;
@Schema(description = "数量")
private Integer quantity;
@Schema(description = "排序号")
private Integer sortNumber;
@Schema(description = "备注")
private String comments;
@Schema(description = "用户id")
private Integer userId;
@Schema(description = "租户id")
private Integer tenantId;
@Schema(description = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
@Schema(description = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,148 @@
package com.gxwebsoft.clinic.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.List;
import com.gxwebsoft.shop.entity.Order;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 处方主表
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "PrescriptionOrder对象", description = "处方主表")
@TableName("clinic_prescription_order")
public class PrescriptionOrder implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer clinicId;
@ApiModelProperty(value = "患者")
private Integer userId;
@ApiModelProperty(value = "医生")
private Integer doctorId;
private Integer orderId;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "关联就诊表")
private Integer visitRecordId;
@ApiModelProperty(value = "处方类型 0中药 1西药")
private Integer prescriptionType;
@ApiModelProperty(value = "诊断结果")
private String diagnosis;
@ApiModelProperty(value = "治疗方案")
private String treatmentPlan;
@ApiModelProperty(value = "煎药说明")
private String decoctionInstructions;
@ApiModelProperty(value = "上传照片")
private String image;
@ApiModelProperty(value = "订单总金额")
private BigDecimal orderPrice;
@ApiModelProperty(value = "单价")
private BigDecimal price;
@ApiModelProperty(value = "实付金额")
private BigDecimal payPrice;
@ApiModelProperty(value = "煎药金额")
private BigDecimal decoctionAmount;
@ApiModelProperty(value = "快递金额")
private BigDecimal expressAmount;
@ApiModelProperty(value = "订单是否失效(0未失效 1已失效)")
private Integer isInvalid;
@ApiModelProperty(value = "结算(0未结算 1已结算)")
private Integer isSettled;
@ApiModelProperty(value = "结算时间")
private LocalDateTime settleTime;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "手机号码")
private String phone;
@ApiModelProperty(value = "所在国家")
private String country;
@ApiModelProperty(value = "所在省份")
private String province;
@ApiModelProperty(value = "所在城市")
private String city;
@ApiModelProperty(value = "所在辖区")
private String region;
@ApiModelProperty(value = "收货地址")
private String address;
private String fullAddress;
private String expressName;
private String expressNo;
@ApiModelProperty(value = "排序号")
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1已完成2已支付3已取消")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "商城ID")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
@ApiModelProperty(value = "修改时间")
private LocalDateTime updateTime;
@Schema(description = "处方明细")
@TableField(exist = false)
private List<PrescriptionOrderItem> items;
@TableField(exist = false)
private Boolean showPayButton;
@TableField(exist = false)
private Order shopOrder;
}

View File

@@ -0,0 +1,77 @@
package com.gxwebsoft.clinic.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 处方明细表
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "PrescriptionOrderItem对象", description = "处方明细表")
@TableName("clinic_prescription_order_item")
public class PrescriptionOrderItem implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "关联处方")
private Integer prescriptionId;
@ApiModelProperty(value = "订单编号")
private String prescriptionNo;
@ApiModelProperty(value = "关联药品")
private Integer medicineId;
@ApiModelProperty(value = "剂量如“10g”")
private String dosage;
@ApiModelProperty(value = "用法频率(如“每日三次”)")
private String usageFrequency;
@ApiModelProperty(value = "服用天数")
private Integer days;
@ApiModelProperty(value = "购买数量")
private Integer amount;
@ApiModelProperty(value = "单价")
private BigDecimal unitPrice;
@ApiModelProperty(value = "数量")
private Integer quantity;
@ApiModelProperty(value = "排序号")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "用户id")
private Integer userId;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
}

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-19 09:27:03
*/
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.ClinicCase;
import com.gxwebsoft.clinic.param.ClinicCaseParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 病例列表Mapper
*
* @author LX
* @since 2025-12-25 17:24:55
*/
public interface ClinicCaseMapper extends BaseMapper<ClinicCase> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicCase>
*/
List<ClinicCase> selectPageRel(@Param("page") IPage<ClinicCase> page,
@Param("param") ClinicCaseParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicCase> selectListRel(@Param("param") ClinicCaseParam 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-19 09:27:04
*/
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,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.ClinicDoctorUser;
import com.gxwebsoft.clinic.param.ClinicDoctorUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 分销商用户记录表Mapper
*
* @author 科技小王子
* @since 2025-10-19 09:27:04
*/
public interface ClinicDoctorUserMapper extends BaseMapper<ClinicDoctorUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicDoctorUser>
*/
List<ClinicDoctorUser> selectPageRel(@Param("page") IPage<ClinicDoctorUser> page,
@Param("param") ClinicDoctorUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicDoctorUser> selectListRel(@Param("param") ClinicDoctorUserParam 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.ClinicList;
import com.gxwebsoft.clinic.param.ClinicListParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 诊所列表Mapper
*
* @author LX
* @since 2025-12-09 17:29:44
*/
public interface ClinicListMapper extends BaseMapper<ClinicList> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicList>
*/
List<ClinicList> selectPageRel(@Param("page") IPage<ClinicList> page,
@Param("param") ClinicListParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicList> selectListRel(@Param("param") ClinicListParam 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.ClinicMedicineInout;
import com.gxwebsoft.clinic.param.ClinicMedicineInoutParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 出入库Mapper
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
public interface ClinicMedicineInoutMapper extends BaseMapper<ClinicMedicineInout> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicMedicineInout>
*/
List<ClinicMedicineInout> selectPageRel(@Param("page") IPage<ClinicMedicineInout> page,
@Param("param") ClinicMedicineInoutParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicMedicineInout> selectListRel(@Param("param") ClinicMedicineInoutParam 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.ClinicMedicine;
import com.gxwebsoft.clinic.param.ClinicMedicineParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 药品库Mapper
*
* @author 科技小王子
* @since 2025-10-22 02:06:31
*/
public interface ClinicMedicineMapper extends BaseMapper<ClinicMedicine> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicMedicine>
*/
List<ClinicMedicine> selectPageRel(@Param("page") IPage<ClinicMedicine> page,
@Param("param") ClinicMedicineParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicMedicine> selectListRel(@Param("param") ClinicMedicineParam 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.ClinicMedicineStock;
import com.gxwebsoft.clinic.param.ClinicMedicineStockParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 药品库存Mapper
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
public interface ClinicMedicineStockMapper extends BaseMapper<ClinicMedicineStock> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicMedicineStock>
*/
List<ClinicMedicineStock> selectPageRel(@Param("page") IPage<ClinicMedicineStock> page,
@Param("param") ClinicMedicineStockParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicMedicineStock> selectListRel(@Param("param") ClinicMedicineStockParam 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.ClinicPatientUser;
import com.gxwebsoft.clinic.param.ClinicPatientUserParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 患者Mapper
*
* @author 科技小王子
* @since 2025-10-19 09:27:04
*/
public interface ClinicPatientUserMapper extends BaseMapper<ClinicPatientUser> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicPatientUser>
*/
List<ClinicPatientUser> selectPageRel(@Param("page") IPage<ClinicPatientUser> page,
@Param("param") ClinicPatientUserParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicPatientUser> selectListRel(@Param("param") ClinicPatientUserParam param);
}

View File

@@ -0,0 +1,38 @@
package com.gxwebsoft.clinic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.param.ClinicPrescriptionItemParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 处方明细表
Mapper
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
public interface ClinicPrescriptionItemMapper extends BaseMapper<ClinicPrescriptionItem> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicPrescriptionItem>
*/
List<ClinicPrescriptionItem> selectPageRel(@Param("page") IPage<ClinicPrescriptionItem> page,
@Param("param") ClinicPrescriptionItemParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicPrescriptionItem> selectListRel(@Param("param") ClinicPrescriptionItemParam param);
}

View File

@@ -0,0 +1,38 @@
package com.gxwebsoft.clinic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.clinic.entity.ClinicPrescription;
import com.gxwebsoft.clinic.param.ClinicPrescriptionParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 处方主表
Mapper
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
public interface ClinicPrescriptionMapper extends BaseMapper<ClinicPrescription> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<ClinicPrescription>
*/
List<ClinicPrescription> selectPageRel(@Param("page") IPage<ClinicPrescription> page,
@Param("param") ClinicPrescriptionParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<ClinicPrescription> selectListRel(@Param("param") ClinicPrescriptionParam param);
}

View File

@@ -0,0 +1,38 @@
package com.gxwebsoft.clinic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.clinic.entity.PrescriptionOrderItem;
import com.gxwebsoft.clinic.param.PrescriptionOrderItemParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 处方明细表
Mapper
*
* @author LX
* @since 2025-12-10 11:28:03
*/
public interface PrescriptionOrderItemMapper extends BaseMapper<PrescriptionOrderItem> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<PrescriptionOrderItem>
*/
List<PrescriptionOrderItem> selectPageRel(@Param("page") IPage<PrescriptionOrderItem> page,
@Param("param") PrescriptionOrderItemParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<PrescriptionOrderItem> selectListRel(@Param("param") PrescriptionOrderItemParam param);
}

View File

@@ -0,0 +1,38 @@
package com.gxwebsoft.clinic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.clinic.entity.PrescriptionOrder;
import com.gxwebsoft.clinic.param.PrescriptionOrderParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 处方主表
Mapper
*
* @author LX
* @since 2025-12-10 11:28:03
*/
public interface PrescriptionOrderMapper extends BaseMapper<PrescriptionOrder> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<PrescriptionOrder>
*/
List<PrescriptionOrder> selectPageRel(@Param("page") IPage<PrescriptionOrder> page,
@Param("param") PrescriptionOrderParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<PrescriptionOrder> selectListRel(@Param("param") PrescriptionOrderParam param);
}

View File

@@ -0,0 +1,62 @@
<?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.*, b.nickname, b.phone, c.real_name as doctorName, c.position as doctorPosition
FROM clinic_appointment a
LEFT JOIN gxwebsoft_core.sys_user b ON a.user_id = b.user_id
LEFT JOIN clinic_doctor_user c ON a.doctor_id = c.user_id
<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,75 @@
<?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.ClinicCaseMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_case a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.doctorUserId != null">
AND a.doctor_user_id = #{param.doctorUserId}
</if>
<if test="param.patientCondition != null">
AND a.patient_condition LIKE CONCAT('%', #{param.patientCondition}, '%')
</if>
<if test="param.pastHistory != null">
AND a.past_history LIKE CONCAT('%', #{param.pastHistory}, '%')
</if>
<if test="param.allergyHistory != null">
AND a.allergy_history LIKE CONCAT('%', #{param.allergyHistory}, '%')
</if>
<if test="param.diagnostic != null">
AND a.diagnostic LIKE CONCAT('%', #{param.diagnostic}, '%')
</if>
<if test="param.plan != null">
AND a.plan LIKE CONCAT('%', #{param.plan}, '%')
</if>
<if test="param.photoList != null">
AND a.photo_list LIKE CONCAT('%', #{param.photoList}, '%')
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</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.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</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.ClinicCase">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicCase">
<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,88 @@
<?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.ClinicDoctorUserMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_doctor_user a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.clinicId != null">
AND a.clinic_id = #{param.clinicId}
</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.phone != null">
AND a.phone LIKE CONCAT('%', #{param.phone}, '%')
</if>
<if test="param.departmentId != null">
AND a.department_id = #{param.departmentId}
</if>
<if test="param.specialty != null">
AND a.specialty LIKE CONCAT('%', #{param.specialty}, '%')
</if>
<if test="param.position != null">
AND a.position LIKE CONCAT('%', #{param.position}, '%')
</if>
<if test="param.qualification != null">
AND a.qualification LIKE CONCAT('%', #{param.qualification}, '%')
</if>
<if test="param.introduction != null">
AND a.introduction LIKE CONCAT('%', #{param.introduction}, '%')
</if>
<if test="param.consultationFee != null">
AND a.consultation_fee = #{param.consultationFee}
</if>
<if test="param.workYears != null">
AND a.work_years = #{param.workYears}
</if>
<if test="param.consultationCount != null">
AND a.consultation_count = #{param.consultationCount}
</if>
<if test="param.qrcode != null">
AND a.qrcode LIKE CONCAT('%', #{param.qrcode}, '%')
</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}, '%')
OR a.real_name = #{param.keywords}
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.clinic.entity.ClinicDoctorUser">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicDoctorUser">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,87 @@
<?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.ClinicListMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_clinic_list a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.name != null">
AND a.name LIKE CONCAT('%', #{param.name}, '%')
</if>
<if test="param.clinicId != null">
AND a.clinic_id = #{param.clinicId}
</if>
<if test="param.provinceId != null">
AND a.province_id = #{param.provinceId}
</if>
<if test="param.cityId != null">
AND a.city_id = #{param.cityId}
</if>
<if test="param.regionId != null">
AND a.region_id = #{param.regionId}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.address != null">
AND a.address LIKE CONCAT('%', #{param.address}, '%')
</if>
<if test="param.contact != null">
AND a.contact LIKE CONCAT('%', #{param.contact}, '%')
</if>
<if test="param.logo != null">
AND a.logo LIKE CONCAT('%', #{param.logo}, '%')
</if>
<if test="param.qualify != null">
AND a.qualify LIKE CONCAT('%', #{param.qualify}, '%')
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</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.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</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.lat != null">
AND a.lat LIKE CONCAT('%', #{param.lat}, '%')
</if>
<if test="param.lng != null">
AND a.lng LIKE CONCAT('%', #{param.lng}, '%')
</if>
<if test="param.keywords != null">
AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%')
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.clinic.entity.ClinicList">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicList">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,93 @@
<?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.ClinicMedicineInoutMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_medicine_inout a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.orderNo != null">
AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%')
</if>
<if test="param.firstUserId != null">
AND a.first_user_id = #{param.firstUserId}
</if>
<if test="param.secondUserId != null">
AND a.second_user_id = #{param.secondUserId}
</if>
<if test="param.thirdUserId != null">
AND a.third_user_id = #{param.thirdUserId}
</if>
<if test="param.firstMoney != null">
AND a.first_money = #{param.firstMoney}
</if>
<if test="param.secondMoney != null">
AND a.second_money = #{param.secondMoney}
</if>
<if test="param.thirdMoney != null">
AND a.third_money = #{param.thirdMoney}
</if>
<if test="param.price != null">
AND a.price = #{param.price}
</if>
<if test="param.orderPrice != null">
AND a.order_price = #{param.orderPrice}
</if>
<if test="param.settledPrice != null">
AND a.settled_price = #{param.settledPrice}
</if>
<if test="param.degreePrice != null">
AND a.degree_price = #{param.degreePrice}
</if>
<if test="param.payPrice != null">
AND a.pay_price = #{param.payPrice}
</if>
<if test="param.rate != null">
AND a.rate = #{param.rate}
</if>
<if test="param.month != null">
AND a.month LIKE CONCAT('%', #{param.month}, '%')
</if>
<if test="param.isInvalid != null">
AND a.is_invalid = #{param.isInvalid}
</if>
<if test="param.isSettled != null">
AND a.is_settled = #{param.isSettled}
</if>
<if test="param.settleTime != null">
AND a.settle_time LIKE CONCAT('%', #{param.settleTime}, '%')
</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.ClinicMedicineInout">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicMedicineInout">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,69 @@
<?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.ClinicMedicineMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_medicine a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.name != null">
AND a.name LIKE CONCAT('%', #{param.name}, '%')
</if>
<if test="param.clinicId != null">
AND a.clinic_id = #{param.clinicId}
</if>
<if test="param.pinyin != null">
AND a.pinyin LIKE CONCAT('%', #{param.pinyin}, '%')
</if>
<if test="param.category != null">
AND a.category LIKE CONCAT('%', #{param.category}, '%')
</if>
<if test="param.specification != null">
AND a.specification LIKE CONCAT('%', #{param.specification}, '%')
</if>
<if test="param.unit != null">
AND a.unit LIKE CONCAT('%', #{param.unit}, '%')
</if>
<if test="param.content != null">
AND a.content LIKE CONCAT('%', #{param.content}, '%')
</if>
<if test="param.pricePerUnit != null">
AND a.price_per_unit = #{param.pricePerUnit}
</if>
<if test="param.isActive != null">
AND a.is_active = #{param.isActive}
</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.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.ClinicMedicine">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicMedicine">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,54 @@
<?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.ClinicMedicineStockMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_medicine_stock a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.medicineId != null">
AND a.medicine_id = #{param.medicineId}
</if>
<if test="param.stockQuantity != null">
AND a.stock_quantity = #{param.stockQuantity}
</if>
<if test="param.minStockLevel != null">
AND a.min_stock_level = #{param.minStockLevel}
</if>
<if test="param.lastUpdated != null">
AND a.last_updated LIKE CONCAT('%', #{param.lastUpdated}, '%')
</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.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.ClinicMedicineStock">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicMedicineStock">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,73 @@
<?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.ClinicPatientUserMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_patient_user a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.clinicId != null">
AND a.clinic_id = #{param.clinicId}
</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.age != null">
AND a.age LIKE CONCAT('%', #{param.age}, '%')
</if>
<if test="param.qrcode != null">
AND a.qrcode LIKE CONCAT('%', #{param.qrcode}, '%')
</if>
<if test="param.height != null">
AND a.height LIKE CONCAT('%', #{param.height}, '%')
</if>
<if test="param.weight != null">
AND a.weight LIKE CONCAT('%', #{param.weight}, '%')
</if>
<if test="param.allergyHistory != null">
AND a.allergy_history LIKE CONCAT('%', #{param.allergyHistory}, '%')
</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}, '%')
OR a.real_name = #{param.keywords}
)
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.clinic.entity.ClinicPatientUser">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicPatientUser">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,73 @@
<?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.ClinicPrescriptionItemMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.name AS medicineName, b.specification, b.unit, b.price_per_unit AS pricePerUnit
FROM clinic_prescription_item a
LEFT JOIN clinic_medicine b ON a.id = b.id
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.prescriptionId != null">
AND a.prescription_id = #{param.prescriptionId}
</if>
<if test="param.prescriptionNo != null">
AND a.prescription_no LIKE CONCAT('%', #{param.prescriptionNo}, '%')
</if>
<if test="param.medicineId != null">
AND a.medicine_id = #{param.medicineId}
</if>
<if test="param.dosage != null">
AND a.dosage LIKE CONCAT('%', #{param.dosage}, '%')
</if>
<if test="param.usageFrequency != null">
AND a.usage_frequency LIKE CONCAT('%', #{param.usageFrequency}, '%')
</if>
<if test="param.days != null">
AND a.days = #{param.days}
</if>
<if test="param.amount != null">
AND a.amount = #{param.amount}
</if>
<if test="param.unitPrice != null">
AND a.unit_price = #{param.unitPrice}
</if>
<if test="param.quantity != null">
AND a.quantity = #{param.quantity}
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</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.ClinicPrescriptionItem">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicPrescriptionItem">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,139 @@
<?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.ClinicPrescriptionMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*, b.real_name, b.age, b.sex, b.height, b.weight, c.real_name as doctorName, c.qualification, d.order_status as orderStatus, d.pay_status as payStatus
FROM clinic_prescription a
LEFT JOIN clinic_patient_user b ON a.user_id = b.user_id
LEFT JOIN clinic_doctor_user c ON a.doctor_id = c.user_id
LEFT JOIN shop_order d ON a.order_no = d.order_no
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.clinicId != null">
AND a.clinic_id = #{param.clinicId}
</if>
<if test="param.userId != null and param.withDoctor == null">
AND a.user_id = #{param.userId}
</if>
<if test="param.userId != null and param.withDoctor != null">
AND (a.user_id = #{param.userId} OR a.doctor_id = #{param.userId})
</if>
<if test="param.doctorId != null">
AND a.doctor_id = #{param.doctorId}
</if>
<if test="param.orderNo != null">
AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%')
</if>
<if test="param.visitRecordId != null">
AND a.visit_record_id = #{param.visitRecordId}
</if>
<if test="param.prescriptionType != null">
AND a.prescription_type = #{param.prescriptionType}
</if>
<if test="param.diagnosis != null">
AND a.diagnosis LIKE CONCAT('%', #{param.diagnosis}, '%')
</if>
<if test="param.treatmentPlan != null">
AND a.treatment_plan LIKE CONCAT('%', #{param.treatmentPlan}, '%')
</if>
<if test="param.decoctionInstructions != null">
AND a.decoction_instructions LIKE CONCAT('%', #{param.decoctionInstructions}, '%')
</if>
<if test="param.orderPrice != null">
AND a.order_price = #{param.orderPrice}
</if>
<if test="param.price != null">
AND a.price = #{param.price}
</if>
<if test="param.payPrice != null">
AND a.pay_price = #{param.payPrice}
</if>
<if test="param.isInvalid != null">
AND a.is_invalid = #{param.isInvalid}
</if>
<if test="param.isSettled != null">
AND a.is_settled = #{param.isSettled}
</if>
<if test="param.ids != null">
AND a.id IN
<foreach collection="param.ids" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="param.settleTime != null">
AND a.settle_time LIKE CONCAT('%', #{param.settleTime}, '%')
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</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>
<!-- 订单状态筛选:-1全部0待支付1待发货2待核销3待收货4待评价5已完成6已退款7已删除 -->
<if test="param.statusFilter != null and param.statusFilter != -1">
<if test="param.statusFilter == 0">
<!-- 0待支付未付款 -->
AND d.pay_status = 0 AND d.order_status = 0
</if>
<if test="param.statusFilter == 1">
<!-- 1待发货已付款但未发货 -->
AND d.pay_status = 1 AND d.delivery_status = 10 AND d.order_status = 0
</if>
<if test="param.statusFilter == 2">
<!-- 2待核销已付款但订单状态为未使用 -->
AND d.pay_status = 1 AND d.order_status = 0
</if>
<if test="param.statusFilter == 3">
<!-- 3待收货已发货但订单状态不是已完成 -->
AND d.delivery_status = 20 AND d.order_status != 1
</if>
<if test="param.statusFilter == 4">
<!-- 4待评价订单已完成但可能需要评价 -->
AND d.order_status = 1 AND d.evaluate_status = 0
</if>
<if test="param.statusFilter == 5">
<!-- 5已完成订单状态为已完成 -->
AND d.order_status = 1
</if>
<if test="param.statusFilter == 6">
<!-- 6退款/售后:订单状态为退款成功 -->
AND (d.order_status = 4 OR d.order_status = 5 OR d.order_status = 6 OR d.order_status = 7)
</if>
<if test="param.statusFilter == 7">
<!-- 7已删除订单被删除 -->
AND d.deleted = 1
</if>
<if test="param.statusFilter == 8">
<!-- 8已取消订单已取消 -->
AND a.order_status = 2
</if>
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.clinic.entity.ClinicPrescription">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.ClinicPrescription">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,72 @@
<?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.PrescriptionOrderItemMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_prescription_order_item a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.prescriptionId != null">
AND a.prescription_id = #{param.prescriptionId}
</if>
<if test="param.prescriptionNo != null">
AND a.prescription_no LIKE CONCAT('%', #{param.prescriptionNo}, '%')
</if>
<if test="param.medicineId != null">
AND a.medicine_id = #{param.medicineId}
</if>
<if test="param.dosage != null">
AND a.dosage LIKE CONCAT('%', #{param.dosage}, '%')
</if>
<if test="param.usageFrequency != null">
AND a.usage_frequency LIKE CONCAT('%', #{param.usageFrequency}, '%')
</if>
<if test="param.days != null">
AND a.days = #{param.days}
</if>
<if test="param.amount != null">
AND a.amount = #{param.amount}
</if>
<if test="param.unitPrice != null">
AND a.unit_price = #{param.unitPrice}
</if>
<if test="param.quantity != null">
AND a.quantity = #{param.quantity}
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</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.PrescriptionOrderItem">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.PrescriptionOrderItem">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,96 @@
<?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.PrescriptionOrderMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM clinic_prescription_order a
<where>
<if test="param.id != null">
AND a.id = #{param.id}
</if>
<if test="param.clinicId != null">
AND a.clinic_id = #{param.clinicId}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.doctorId != null">
AND a.doctor_id = #{param.doctorId}
</if>
<if test="param.orderId != null">
AND a.order_id = #{param.orderId}
</if>
<if test="param.orderNo != null">
AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%')
</if>
<if test="param.visitRecordId != null">
AND a.visit_record_id = #{param.visitRecordId}
</if>
<if test="param.prescriptionType != null">
AND a.prescription_type = #{param.prescriptionType}
</if>
<if test="param.diagnosis != null">
AND a.diagnosis LIKE CONCAT('%', #{param.diagnosis}, '%')
</if>
<if test="param.treatmentPlan != null">
AND a.treatment_plan LIKE CONCAT('%', #{param.treatmentPlan}, '%')
</if>
<if test="param.decoctionInstructions != null">
AND a.decoction_instructions LIKE CONCAT('%', #{param.decoctionInstructions}, '%')
</if>
<if test="param.image != null">
AND a.image LIKE CONCAT('%', #{param.image}, '%')
</if>
<if test="param.orderPrice != null">
AND a.order_price = #{param.orderPrice}
</if>
<if test="param.price != null">
AND a.price = #{param.price}
</if>
<if test="param.payPrice != null">
AND a.pay_price = #{param.payPrice}
</if>
<if test="param.isInvalid != null">
AND a.is_invalid = #{param.isInvalid}
</if>
<if test="param.isSettled != null">
AND a.is_settled = #{param.isSettled}
</if>
<if test="param.settleTime != null">
AND a.settle_time LIKE CONCAT('%', #{param.settleTime}, '%')
</if>
<if test="param.sortNumber != null">
AND a.sort_number = #{param.sortNumber}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</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.PrescriptionOrder">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.clinic.entity.PrescriptionOrder">
<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-19 09:27:03
*/
@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,69 @@
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.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 病例列表查询参数
*
* @author LX
* @since 2025-12-25 17:24:55
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "ClinicCaseParam对象", description = "病例列表查询参数")
public class ClinicCaseParam extends BaseParam {
private static final long serialVersionUID = 1L;
@QueryField(type = QueryType.EQ)
private Integer id;
@QueryField(type = QueryType.EQ)
private Integer userId;
@ApiModelProperty(value = "医生用户id")
@QueryField(type = QueryType.EQ)
private Integer doctorUserId;
@ApiModelProperty(value = "病情主诉")
private String patientCondition;
@ApiModelProperty(value = "既往史")
private String pastHistory;
@ApiModelProperty(value = "过敏史")
private String allergyHistory;
@ApiModelProperty(value = "诊断")
private String diagnostic;
@ApiModelProperty(value = "治疗方案")
private String plan;
@ApiModelProperty(value = "照片")
private String photoList;
@ApiModelProperty(value = "0待审核 1通过 2拒绝")
@QueryField(type = QueryType.EQ)
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@QueryField(type = QueryType.EQ)
private Integer deleted;
}

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-19 09:27:04
*/
@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,89 @@
package com.gxwebsoft.clinic.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 分销商用户记录表查询参数
*
* @author 科技小王子
* @since 2025-10-23 15:58:20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicDoctorUserParam对象", description = "分销商用户记录表查询参数")
public class ClinicDoctorUserParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "类型 0经销商 1企业 2集团")
@QueryField(type = QueryType.EQ)
private Integer type;
@Schema(description = "自增ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "姓名")
private String realName;
@Schema(description = "手机号")
private String phone;
@Schema(description = "部门")
@QueryField(type = QueryType.EQ)
private Integer departmentId;
@Schema(description = "专业领域")
private String specialty;
@Schema(description = "职务级别")
private String position;
@Schema(description = "执业资格")
private String qualification;
@Schema(description = "医生简介")
private String introduction;
@Schema(description = "挂号费")
@QueryField(type = QueryType.EQ)
private BigDecimal consultationFee;
@Schema(description = "工作年限")
@QueryField(type = QueryType.EQ)
private Integer workYears;
@Schema(description = "问诊人数")
@QueryField(type = QueryType.EQ)
private Integer consultationCount;
@Schema(description = "专属二维码")
private String qrcode;
@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,83 @@
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.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 诊所列表查询参数
*
* @author LX
* @since 2025-12-09 17:29:44
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "ClinicListParam对象", description = "诊所列表查询参数")
public class ClinicListParam extends BaseParam {
private static final long serialVersionUID = 1L;
@QueryField(type = QueryType.EQ)
private Integer id;
@ApiModelProperty(value = "名称")
private String name;
@Schema(description = "诊所")
private Integer clinicId;
@ApiModelProperty(value = "省份id")
@QueryField(type = QueryType.EQ)
private Integer provinceId;
@ApiModelProperty(value = "城市id")
@QueryField(type = QueryType.EQ)
private Integer cityId;
@ApiModelProperty(value = "区域id")
@QueryField(type = QueryType.EQ)
private Integer regionId;
@ApiModelProperty(value = "管理员id")
@QueryField(type = QueryType.EQ)
private Integer userId;
@ApiModelProperty(value = "详细地址")
private String address;
@ApiModelProperty(value = "联系方式")
private String contact;
@ApiModelProperty(value = "logo")
private String logo;
@ApiModelProperty(value = "资质")
private String qualify;
@ApiModelProperty(value = "0待审核 1通过 2拒绝")
@QueryField(type = QueryType.EQ)
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@QueryField(type = QueryType.EQ)
private Integer deleted;
private String lat;
private String lng;
}

View File

@@ -0,0 +1,102 @@
package com.gxwebsoft.clinic.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 出入库查询参数
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicMedicineInoutParam对象", description = "出入库查询参数")
public class ClinicMedicineInoutParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@Schema(description = "买家用户ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "订单编号")
private String orderNo;
@Schema(description = "分销商用户id(一级)")
@QueryField(type = QueryType.EQ)
private Integer firstUserId;
@Schema(description = "分销商用户id(二级)")
@QueryField(type = QueryType.EQ)
private Integer secondUserId;
@Schema(description = "分销商用户id(三级)")
@QueryField(type = QueryType.EQ)
private Integer thirdUserId;
@Schema(description = "分销佣金(一级)")
@QueryField(type = QueryType.EQ)
private BigDecimal firstMoney;
@Schema(description = "分销佣金(二级)")
@QueryField(type = QueryType.EQ)
private BigDecimal secondMoney;
@Schema(description = "分销佣金(三级)")
@QueryField(type = QueryType.EQ)
private BigDecimal thirdMoney;
@Schema(description = "单价")
@QueryField(type = QueryType.EQ)
private BigDecimal price;
@Schema(description = "订单总金额")
@QueryField(type = QueryType.EQ)
private BigDecimal orderPrice;
@Schema(description = "结算金额")
@QueryField(type = QueryType.EQ)
private BigDecimal settledPrice;
@Schema(description = "换算成度")
@QueryField(type = QueryType.EQ)
private BigDecimal degreePrice;
@Schema(description = "实发金额")
@QueryField(type = QueryType.EQ)
private BigDecimal payPrice;
@Schema(description = "税率")
@QueryField(type = QueryType.EQ)
private BigDecimal rate;
@Schema(description = "结算月份")
private String month;
@Schema(description = "订单是否失效(0未失效 1已失效)")
@QueryField(type = QueryType.EQ)
private Integer isInvalid;
@Schema(description = "佣金结算(0未结算 1已结算)")
@QueryField(type = QueryType.EQ)
private Integer isSettled;
@Schema(description = "结算时间")
private String settleTime;
@Schema(description = "备注")
private String comments;
}

View File

@@ -0,0 +1,66 @@
package com.gxwebsoft.clinic.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.models.auth.In;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 药品库查询参数
*
* @author 科技小王子
* @since 2025-10-22 02:06:31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicMedicineParam对象", description = "药品库查询参数")
public class ClinicMedicineParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
private Integer clinicId;
@Schema(description = "药名")
private String name;
@Schema(description = "拼音")
private String pinyin;
@Schema(description = "分类(如“清热解毒”、“补气养血”)")
private String category;
@Schema(description = "规格(如“饮片”、“颗粒”)")
private String specification;
@Schema(description = "单位(如“克”、“袋”)")
private String unit;
@Schema(description = "描述")
private String content;
@Schema(description = "单价")
@QueryField(type = QueryType.EQ)
private BigDecimal pricePerUnit;
@Schema(description = "是否活跃")
@QueryField(type = QueryType.EQ)
private Integer isActive;
@Schema(description = "买家用户ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "备注")
private String comments;
}

View File

@@ -0,0 +1,50 @@
package com.gxwebsoft.clinic.param;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 药品库存查询参数
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicMedicineStockParam对象", description = "药品库存查询参数")
public class ClinicMedicineStockParam 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 medicineId;
@Schema(description = "库存数量")
@QueryField(type = QueryType.EQ)
private Integer stockQuantity;
@Schema(description = "最小库存预警")
@QueryField(type = QueryType.EQ)
private Integer minStockLevel;
@Schema(description = "上次更新时间")
private String lastUpdated;
@Schema(description = "买家用户ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "备注")
private String comments;
}

View File

@@ -0,0 +1,70 @@
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-23 15:27:17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicPatientUserParam对象", description = "患者查询参数")
public class ClinicPatientUserParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "类型 0经销商 1企业 2集团")
@QueryField(type = QueryType.EQ)
private Integer type;
@Schema(description = "自增ID")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "姓名")
private String realName;
@Schema(description = "年龄")
private String age;
@Schema(description = "专属二维码")
private String qrcode;
@Schema(description = "身高")
private String height;
@Schema(description = "体重")
private String weight;
@Schema(description = "过敏史")
private String allergyHistory;
@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,81 @@
package com.gxwebsoft.clinic.param;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Set;
/**
* 处方明细表
查询参数
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicPrescriptionItemParam对象", description = "处方明细表 查询参数")
public class ClinicPrescriptionItemParam 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 prescriptionId;
@Schema(description = "订单编号")
private String prescriptionNo;
@Schema(description = "关联药品")
@QueryField(type = QueryType.EQ)
private Integer medicineId;
@Schema(description = "剂量如“10g”")
private String dosage;
@Schema(description = "用法频率(如“每日三次”)")
private String usageFrequency;
@Schema(description = "服用天数")
@QueryField(type = QueryType.EQ)
private Integer days;
@Schema(description = "购买数量")
@QueryField(type = QueryType.EQ)
private Integer amount;
@Schema(description = "单价")
@QueryField(type = QueryType.EQ)
private BigDecimal unitPrice;
@Schema(description = "数量")
@QueryField(type = QueryType.EQ)
private Integer quantity;
@Schema(description = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@Schema(description = "备注")
private String comments;
@Schema(description = "用户id")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "处方ID集查询")
@TableField(exist = false)
private Set<Integer> prescriptionIds;
}

View File

@@ -0,0 +1,109 @@
package com.gxwebsoft.clinic.param;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.gxwebsoft.common.core.annotation.QueryField;
import com.gxwebsoft.common.core.annotation.QueryType;
import com.gxwebsoft.common.core.web.BaseParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Set;
/**
* 处方主表
查询参数
*
* @author 科技小王子
* @since 2025-10-22 02:01:12
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(name = "ClinicPrescriptionParam对象", description = "处方主表查询参数")
public class ClinicPrescriptionParam extends BaseParam {
private static final long serialVersionUID = 1L;
@Schema(description = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@Schema(description = "诊所")
private Integer clinicId;
@Schema(description = "患者")
@QueryField(type = QueryType.EQ)
private Integer userId;
@Schema(description = "医生")
@QueryField(type = QueryType.EQ)
private Integer doctorId;
@Schema(description = "订单编号")
private String orderNo;
@Schema(description = "订单类型 0商城订单 1处方订单")
private Integer type;
@Schema(description = "关联就诊表")
@QueryField(type = QueryType.EQ)
private Integer visitRecordId;
@Schema(description = "处方类型 0中药 1西药")
@QueryField(type = QueryType.EQ)
private Integer prescriptionType;
@Schema(description = "诊断结果")
private String diagnosis;
@Schema(description = "治疗方案")
private String treatmentPlan;
@Schema(description = "煎药说明")
private String decoctionInstructions;
@Schema(description = "订单总金额")
@QueryField(type = QueryType.EQ)
private BigDecimal orderPrice;
@Schema(description = "单价")
@QueryField(type = QueryType.EQ)
private BigDecimal price;
@Schema(description = "实付金额")
@QueryField(type = QueryType.EQ)
private BigDecimal payPrice;
@Schema(description = "订单是否失效(0未失效 1已失效)")
@QueryField(type = QueryType.EQ)
private Integer isInvalid;
@Schema(description = "结算(0未结算 1已结算)")
@QueryField(type = QueryType.EQ)
private Integer isSettled;
@Schema(description = "结算时间")
private String settleTime;
@Schema(description = "状态, 0正常, 1已完成2已支付3已取消")
@QueryField(type = QueryType.EQ)
private Integer status;
@Schema(description = "备注")
private String comments;
@Schema(description = "处方ID集查询")
@TableField(exist = false)
private Set<Integer> ids;
@Schema(description = "订单状态筛选:-1全部0待支付1待发货2待核销3待收货4待评价5已完成6已退款7已删除")
private Integer statusFilter;
@TableField(exist = false)
private Integer loginUserId;
@TableField(exist = false)
private Boolean withDoctor;
}

View File

@@ -0,0 +1,75 @@
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.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 处方明细表
查询参数
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "PrescriptionOrderItemParam对象", description = "处方明细表查询参数")
public class PrescriptionOrderItemParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@ApiModelProperty(value = "关联处方")
@QueryField(type = QueryType.EQ)
private Integer prescriptionId;
@ApiModelProperty(value = "订单编号")
private String prescriptionNo;
@ApiModelProperty(value = "关联药品")
@QueryField(type = QueryType.EQ)
private Integer medicineId;
@ApiModelProperty(value = "剂量如“10g”")
private String dosage;
@ApiModelProperty(value = "用法频率(如“每日三次”)")
private String usageFrequency;
@ApiModelProperty(value = "服用天数")
@QueryField(type = QueryType.EQ)
private Integer days;
@ApiModelProperty(value = "购买数量")
@QueryField(type = QueryType.EQ)
private Integer amount;
@ApiModelProperty(value = "单价")
@QueryField(type = QueryType.EQ)
private BigDecimal unitPrice;
@ApiModelProperty(value = "数量")
@QueryField(type = QueryType.EQ)
private Integer quantity;
@ApiModelProperty(value = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "用户id")
@QueryField(type = QueryType.EQ)
private Integer userId;
}

View File

@@ -0,0 +1,102 @@
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.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 处方主表
查询参数
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Data
@EqualsAndHashCode(callSuper = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel(value = "PrescriptionOrderParam对象", description = "处方主表查询参数")
public class PrescriptionOrderParam extends BaseParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
@QueryField(type = QueryType.EQ)
private Integer id;
@QueryField(type = QueryType.EQ)
private Integer clinicId;
@ApiModelProperty(value = "患者")
@QueryField(type = QueryType.EQ)
private Integer userId;
@ApiModelProperty(value = "医生")
@QueryField(type = QueryType.EQ)
private Integer doctorId;
@QueryField(type = QueryType.EQ)
private Integer orderId;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "关联就诊表")
@QueryField(type = QueryType.EQ)
private Integer visitRecordId;
@ApiModelProperty(value = "处方类型 0中药 1西药")
@QueryField(type = QueryType.EQ)
private Integer prescriptionType;
@ApiModelProperty(value = "诊断结果")
private String diagnosis;
@ApiModelProperty(value = "治疗方案")
private String treatmentPlan;
@ApiModelProperty(value = "煎药说明")
private String decoctionInstructions;
@ApiModelProperty(value = "上传照片")
private String image;
@ApiModelProperty(value = "订单总金额")
@QueryField(type = QueryType.EQ)
private BigDecimal orderPrice;
@ApiModelProperty(value = "单价")
@QueryField(type = QueryType.EQ)
private BigDecimal price;
@ApiModelProperty(value = "实付金额")
@QueryField(type = QueryType.EQ)
private BigDecimal payPrice;
@ApiModelProperty(value = "订单是否失效(0未失效 1已失效)")
@QueryField(type = QueryType.EQ)
private Integer isInvalid;
@ApiModelProperty(value = "结算(0未结算 1已结算)")
@QueryField(type = QueryType.EQ)
private Integer isSettled;
@ApiModelProperty(value = "结算时间")
private String settleTime;
@ApiModelProperty(value = "排序号")
@QueryField(type = QueryType.EQ)
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1已完成2已支付3已取消")
@QueryField(type = QueryType.EQ)
private Integer status;
@ApiModelProperty(value = "备注")
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-19 09:27:04
*/
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.ClinicCase;
import com.gxwebsoft.clinic.param.ClinicCaseParam;
import java.util.List;
/**
* 病例列表Service
*
* @author LX
* @since 2025-12-25 17:24:55
*/
public interface ClinicCaseService extends IService<ClinicCase> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicCase>
*/
PageResult<ClinicCase> pageRel(ClinicCaseParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicCase>
*/
List<ClinicCase> listRel(ClinicCaseParam param);
/**
* 根据id查询
*
* @param id
* @return ClinicCase
*/
ClinicCase 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-19 09:27:04
*/
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,43 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.ClinicDoctorUser;
import com.gxwebsoft.clinic.param.ClinicDoctorUserParam;
import java.util.List;
/**
* 分销商用户记录表Service
*
* @author 科技小王子
* @since 2025-10-19 09:27:04
*/
public interface ClinicDoctorUserService extends IService<ClinicDoctorUser> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicDoctorUser>
*/
PageResult<ClinicDoctorUser> pageRel(ClinicDoctorUserParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicDoctorUser>
*/
List<ClinicDoctorUser> listRel(ClinicDoctorUserParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicDoctorUser
*/
ClinicDoctorUser getByIdRel(Integer id);
ClinicDoctorUser getByUserId(Integer userId);
}

View File

@@ -0,0 +1,43 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.ClinicList;
import com.gxwebsoft.clinic.param.ClinicListParam;
import java.util.List;
/**
* 诊所列表Service
*
* @author LX
* @since 2025-12-09 17:29:44
*/
public interface ClinicListService extends IService<ClinicList> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicList>
*/
PageResult<ClinicList> pageRel(ClinicListParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicList>
*/
List<ClinicList> listRel(ClinicListParam param);
/**
* 根据id查询
*
* @param id
* @return ClinicList
*/
ClinicList getByIdRel(Integer id);
ClinicList getByUserId(Integer userId);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.clinic.entity.ClinicMedicineInout;
import com.gxwebsoft.clinic.param.ClinicMedicineInoutParam;
import com.gxwebsoft.common.core.web.PageResult;
import java.util.List;
/**
* 出入库Service
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
public interface ClinicMedicineInoutService extends IService<ClinicMedicineInout> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicMedicineInout>
*/
PageResult<ClinicMedicineInout> pageRel(ClinicMedicineInoutParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicMedicineInout>
*/
List<ClinicMedicineInout> listRel(ClinicMedicineInoutParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicMedicineInout
*/
ClinicMedicineInout getByIdRel(Integer id);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.clinic.entity.ClinicMedicine;
import com.gxwebsoft.clinic.param.ClinicMedicineParam;
import com.gxwebsoft.common.core.web.PageResult;
import java.util.List;
/**
* 药品库Service
*
* @author 科技小王子
* @since 2025-10-22 02:06:31
*/
public interface ClinicMedicineService extends IService<ClinicMedicine> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicMedicine>
*/
PageResult<ClinicMedicine> pageRel(ClinicMedicineParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicMedicine>
*/
List<ClinicMedicine> listRel(ClinicMedicineParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicMedicine
*/
ClinicMedicine getByIdRel(Integer id);
}

View File

@@ -0,0 +1,42 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.clinic.entity.ClinicMedicineStock;
import com.gxwebsoft.clinic.param.ClinicMedicineStockParam;
import com.gxwebsoft.common.core.web.PageResult;
import java.util.List;
/**
* 药品库存Service
*
* @author 科技小王子
* @since 2025-10-22 02:06:32
*/
public interface ClinicMedicineStockService extends IService<ClinicMedicineStock> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicMedicineStock>
*/
PageResult<ClinicMedicineStock> pageRel(ClinicMedicineStockParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicMedicineStock>
*/
List<ClinicMedicineStock> listRel(ClinicMedicineStockParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicMedicineStock
*/
ClinicMedicineStock getByIdRel(Integer id);
}

View File

@@ -0,0 +1,45 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.ClinicPatientUser;
import com.gxwebsoft.clinic.param.ClinicPatientUserParam;
import java.util.List;
/**
* 患者Service
*
* @author 科技小王子
* @since 2025-10-19 09:27:04
*/
public interface ClinicPatientUserService extends IService<ClinicPatientUser> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicPatientUser>
*/
PageResult<ClinicPatientUser> pageRel(ClinicPatientUserParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicPatientUser>
*/
List<ClinicPatientUser> listRel(ClinicPatientUserParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicPatientUser
*/
ClinicPatientUser getByIdRel(Integer id);
ClinicPatientUser getByPatientUserId(Integer patientUserId);
ClinicPatientUser check(Integer doctorUserId, Integer patientUserId);
}

View File

@@ -0,0 +1,43 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.param.ClinicPrescriptionItemParam;
import com.gxwebsoft.common.core.web.PageResult;
import java.util.List;
/**
* 处方明细表
Service
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
public interface ClinicPrescriptionItemService extends IService<ClinicPrescriptionItem> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicPrescriptionItem>
*/
PageResult<ClinicPrescriptionItem> pageRel(ClinicPrescriptionItemParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicPrescriptionItem>
*/
List<ClinicPrescriptionItem> listRel(ClinicPrescriptionItemParam param);
/**
* 根据id查询
*
* @param id 自增ID
* @return ClinicPrescriptionItem
*/
ClinicPrescriptionItem getByIdRel(Integer id);
}

View File

@@ -0,0 +1,49 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.clinic.entity.ClinicPrescription;
import com.gxwebsoft.clinic.param.ClinicPrescriptionParam;
import com.gxwebsoft.common.core.web.PageResult;
import java.util.List;
/**
* 处方主表
Service
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
public interface ClinicPrescriptionService extends IService<ClinicPrescription> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<ClinicPrescription>
*/
PageResult<ClinicPrescription> pageRel(ClinicPrescriptionParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<ClinicPrescription>
*/
List<ClinicPrescription> listRel(ClinicPrescriptionParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return ClinicPrescription
*/
ClinicPrescription getByIdRel(Integer id);
// 添加成功后返回数据
ClinicPrescription getByLastId(ClinicPrescription clinicPrescription);
ClinicPrescription getByOrderNo(String orderNo);
ClinicPrescription getByOrderId(Integer orderId);
}

View File

@@ -0,0 +1,45 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.PrescriptionOrderItem;
import com.gxwebsoft.clinic.param.PrescriptionOrderItemParam;
import java.util.List;
/**
* 处方明细表
Service
*
* @author LX
* @since 2025-12-10 11:28:03
*/
public interface PrescriptionOrderItemService extends IService<PrescriptionOrderItem> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<PrescriptionOrderItem>
*/
PageResult<PrescriptionOrderItem> pageRel(PrescriptionOrderItemParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<PrescriptionOrderItem>
*/
List<PrescriptionOrderItem> listRel(PrescriptionOrderItemParam param);
List<PrescriptionOrderItem> getByOrderId(Integer orderId);
/**
* 根据id查询
*
* @param id 自增ID
* @return PrescriptionOrderItem
*/
PrescriptionOrderItem getByIdRel(Integer id);
}

View File

@@ -0,0 +1,44 @@
package com.gxwebsoft.clinic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.clinic.entity.PrescriptionOrder;
import com.gxwebsoft.clinic.param.PrescriptionOrderParam;
import java.util.List;
/**
* 处方主表
Service
*
* @author LX
* @since 2025-12-10 11:28:03
*/
public interface PrescriptionOrderService extends IService<PrescriptionOrder> {
/**
* 分页关联查询
*
* @param param 查询参数
* @return PageResult<PrescriptionOrder>
*/
PageResult<PrescriptionOrder> pageRel(PrescriptionOrderParam param);
/**
* 关联查询全部
*
* @param param 查询参数
* @return List<PrescriptionOrder>
*/
List<PrescriptionOrder> listRel(PrescriptionOrderParam param);
/**
* 根据id查询
*
* @param id 主键ID
* @return PrescriptionOrder
*/
PrescriptionOrder getByIdRel(Integer id);
PrescriptionOrder getByOrderNo(String orderNo);
}

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-19 09:27:04
*/
@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.ClinicCaseMapper;
import com.gxwebsoft.clinic.service.ClinicCaseService;
import com.gxwebsoft.clinic.entity.ClinicCase;
import com.gxwebsoft.clinic.param.ClinicCaseParam;
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 LX
* @since 2025-12-25 17:24:55
*/
@Service
public class ClinicCaseServiceImpl extends ServiceImpl<ClinicCaseMapper, ClinicCase> implements ClinicCaseService {
@Override
public PageResult<ClinicCase> pageRel(ClinicCaseParam param) {
PageParam<ClinicCase, ClinicCaseParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicCase> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicCase> listRel(ClinicCaseParam param) {
List<ClinicCase> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicCase, ClinicCaseParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicCase getByIdRel(Integer id) {
ClinicCaseParam param = new ClinicCaseParam();
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-19 09:27:04
*/
@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

@@ -0,0 +1,57 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.ClinicDoctorUserMapper;
import com.gxwebsoft.clinic.service.ClinicDoctorUserService;
import com.gxwebsoft.clinic.entity.ClinicDoctorUser;
import com.gxwebsoft.clinic.param.ClinicDoctorUserParam;
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-19 09:27:04
*/
@Service
public class ClinicDoctorUserServiceImpl extends ServiceImpl<ClinicDoctorUserMapper, ClinicDoctorUser> implements ClinicDoctorUserService {
@Override
public PageResult<ClinicDoctorUser> pageRel(ClinicDoctorUserParam param) {
PageParam<ClinicDoctorUser, ClinicDoctorUserParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicDoctorUser> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicDoctorUser> listRel(ClinicDoctorUserParam param) {
List<ClinicDoctorUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicDoctorUser, ClinicDoctorUserParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicDoctorUser getByIdRel(Integer id) {
ClinicDoctorUserParam param = new ClinicDoctorUserParam();
param.setUserId(id);
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public ClinicDoctorUser getByUserId(Integer userId) {
return getOne(
new LambdaQueryWrapper<ClinicDoctorUser>()
.eq(ClinicDoctorUser::getUserId, userId)
.last("limit 1")
);
}
}

View File

@@ -0,0 +1,73 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.ClinicListMapper;
import com.gxwebsoft.clinic.service.ClinicListService;
import com.gxwebsoft.clinic.entity.ClinicList;
import com.gxwebsoft.clinic.param.ClinicListParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.service.AreaService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 诊所列表Service实现
*
* @author LX
* @since 2025-12-09 17:29:44
*/
@Service
public class ClinicListServiceImpl extends ServiceImpl<ClinicListMapper, ClinicList> implements ClinicListService {
@Resource
private AreaService areaServicel;
@Override
public PageResult<ClinicList> pageRel(ClinicListParam param) {
PageParam<ClinicList, ClinicListParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicList> list = baseMapper.selectPageRel(page, param);
for (ClinicList clinicList : list) {
// 获取关联数据
if (clinicList.getProvinceId() != null) {
clinicList.setProvince(areaServicel.getByIdRel(clinicList.getProvinceId()));
}
if (clinicList.getCityId() != null) {
clinicList.setCity(areaServicel.getByIdRel(clinicList.getCityId()));
}
if (clinicList.getRegionId() != null) {
clinicList.setRegion(areaServicel.getByIdRel(clinicList.getRegionId()));
}
}
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicList> listRel(ClinicListParam param) {
List<ClinicList> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicList, ClinicListParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicList getByIdRel(Integer id) {
ClinicListParam param = new ClinicListParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public ClinicList getByUserId(Integer userId) {
return getOne(
new LambdaQueryWrapper<ClinicList>()
.eq(ClinicList::getUserId, userId)
.last("limit 1")
);
}
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.entity.ClinicMedicineInout;
import com.gxwebsoft.clinic.mapper.ClinicMedicineInoutMapper;
import com.gxwebsoft.clinic.param.ClinicMedicineInoutParam;
import com.gxwebsoft.clinic.service.ClinicMedicineInoutService;
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-22 02:06:32
*/
@Service
public class ClinicMedicineInoutServiceImpl extends ServiceImpl<ClinicMedicineInoutMapper, ClinicMedicineInout> implements ClinicMedicineInoutService {
@Override
public PageResult<ClinicMedicineInout> pageRel(ClinicMedicineInoutParam param) {
PageParam<ClinicMedicineInout, ClinicMedicineInoutParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicMedicineInout> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicMedicineInout> listRel(ClinicMedicineInoutParam param) {
List<ClinicMedicineInout> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicMedicineInout, ClinicMedicineInoutParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicMedicineInout getByIdRel(Integer id) {
ClinicMedicineInoutParam param = new ClinicMedicineInoutParam();
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.entity.ClinicMedicine;
import com.gxwebsoft.clinic.mapper.ClinicMedicineMapper;
import com.gxwebsoft.clinic.param.ClinicMedicineParam;
import com.gxwebsoft.clinic.service.ClinicMedicineService;
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-22 02:06:31
*/
@Service
public class ClinicMedicineServiceImpl extends ServiceImpl<ClinicMedicineMapper, ClinicMedicine> implements ClinicMedicineService {
@Override
public PageResult<ClinicMedicine> pageRel(ClinicMedicineParam param) {
PageParam<ClinicMedicine, ClinicMedicineParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<ClinicMedicine> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicMedicine> listRel(ClinicMedicineParam param) {
List<ClinicMedicine> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicMedicine, ClinicMedicineParam> page = new PageParam<>();
page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicMedicine getByIdRel(Integer id) {
ClinicMedicineParam param = new ClinicMedicineParam();
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.entity.ClinicMedicineStock;
import com.gxwebsoft.clinic.mapper.ClinicMedicineStockMapper;
import com.gxwebsoft.clinic.param.ClinicMedicineStockParam;
import com.gxwebsoft.clinic.service.ClinicMedicineStockService;
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-22 02:06:32
*/
@Service
public class ClinicMedicineStockServiceImpl extends ServiceImpl<ClinicMedicineStockMapper, ClinicMedicineStock> implements ClinicMedicineStockService {
@Override
public PageResult<ClinicMedicineStock> pageRel(ClinicMedicineStockParam param) {
PageParam<ClinicMedicineStock, ClinicMedicineStockParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicMedicineStock> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicMedicineStock> listRel(ClinicMedicineStockParam param) {
List<ClinicMedicineStock> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicMedicineStock, ClinicMedicineStockParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicMedicineStock getByIdRel(Integer id) {
ClinicMedicineStockParam param = new ClinicMedicineStockParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -0,0 +1,67 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.ClinicPatientUserMapper;
import com.gxwebsoft.clinic.service.ClinicPatientUserService;
import com.gxwebsoft.clinic.entity.ClinicPatientUser;
import com.gxwebsoft.clinic.param.ClinicPatientUserParam;
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-19 09:27:04
*/
@Service
public class ClinicPatientUserServiceImpl extends ServiceImpl<ClinicPatientUserMapper, ClinicPatientUser> implements ClinicPatientUserService {
@Override
public PageResult<ClinicPatientUser> pageRel(ClinicPatientUserParam param) {
PageParam<ClinicPatientUser, ClinicPatientUserParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicPatientUser> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicPatientUser> listRel(ClinicPatientUserParam param) {
List<ClinicPatientUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicPatientUser, ClinicPatientUserParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicPatientUser getByIdRel(Integer id) {
ClinicPatientUserParam param = new ClinicPatientUserParam();
param.setUserId(id);
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public ClinicPatientUser getByPatientUserId(Integer patientUserId) {
return getOne(
new LambdaQueryWrapper<ClinicPatientUser>()
.eq(ClinicPatientUser::getPatientUserId, patientUserId)
.last("limit 1")
);
}
@Override
public ClinicPatientUser check(Integer doctorUserId, Integer patientUserId) {
return getOne(
new LambdaQueryWrapper<ClinicPatientUser>()
.eq(ClinicPatientUser::getUserId, doctorUserId)
.eq(ClinicPatientUser::getPatientUserId, patientUserId)
.last("limit 1")
);
}
}

View File

@@ -0,0 +1,48 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.mapper.ClinicPrescriptionItemMapper;
import com.gxwebsoft.clinic.param.ClinicPrescriptionItemParam;
import com.gxwebsoft.clinic.service.ClinicPrescriptionItemService;
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-22 02:01:13
*/
@Service
public class ClinicPrescriptionItemServiceImpl extends ServiceImpl<ClinicPrescriptionItemMapper, ClinicPrescriptionItem> implements ClinicPrescriptionItemService {
@Override
public PageResult<ClinicPrescriptionItem> pageRel(ClinicPrescriptionItemParam param) {
PageParam<ClinicPrescriptionItem, ClinicPrescriptionItemParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<ClinicPrescriptionItem> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicPrescriptionItem> listRel(ClinicPrescriptionItemParam param) {
List<ClinicPrescriptionItem> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicPrescriptionItem, ClinicPrescriptionItemParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public ClinicPrescriptionItem getByIdRel(Integer id) {
ClinicPrescriptionItemParam param = new ClinicPrescriptionItemParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.entity.ClinicMedicine;
import com.gxwebsoft.clinic.entity.ClinicPrescription;
import com.gxwebsoft.clinic.entity.ClinicPrescriptionItem;
import com.gxwebsoft.clinic.mapper.ClinicPrescriptionMapper;
import com.gxwebsoft.clinic.param.ClinicPrescriptionItemParam;
import com.gxwebsoft.clinic.param.ClinicPrescriptionParam;
import com.gxwebsoft.clinic.service.ClinicMedicineService;
import com.gxwebsoft.clinic.service.ClinicPrescriptionItemService;
import com.gxwebsoft.clinic.service.ClinicPrescriptionService;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.shop.service.OrderService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 处方主表
* Service实现
*
* @author 科技小王子
* @since 2025-10-22 02:01:13
*/
@Service
public class ClinicPrescriptionServiceImpl extends ServiceImpl<ClinicPrescriptionMapper, ClinicPrescription> implements ClinicPrescriptionService {
@Resource
private ClinicPrescriptionItemService clinicPrescriptionItemService;
@Resource
private ClinicMedicineService clinicMedicineService;
@Resource
private OrderService shopOrderService;
@Override
public PageResult<ClinicPrescription> pageRel(ClinicPrescriptionParam param) {
PageParam<ClinicPrescription, ClinicPrescriptionParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<ClinicPrescription> list = baseMapper.selectPageRel(page, param);
// 查询处方明细
Set<Integer> collectIds = list.stream().map(ClinicPrescription::getId).collect(Collectors.toSet());
final ClinicPrescriptionItemParam itemParam = new ClinicPrescriptionItemParam();
itemParam.setPrescriptionIds(collectIds);
final List<ClinicPrescriptionItem> clinicPrescriptionItems = clinicPrescriptionItemService.listRel(itemParam);
final Map<Integer, List<ClinicPrescriptionItem>> collect = clinicPrescriptionItems.stream().collect(Collectors.groupingBy(ClinicPrescriptionItem::getPrescriptionId));
list.forEach(d -> {
if (param.getLoginUserId() != null) d.setShowPayButton(d.getUserId().equals(param.getLoginUserId()));
List<ClinicPrescriptionItem> items = clinicPrescriptionItems.stream().filter(p -> p.getPrescriptionId().equals(d.getId())).toList();
if (!items.isEmpty()) {
for (ClinicPrescriptionItem item : items) {
ClinicMedicine medicine = clinicMedicineService.getById(item.getMedicineId());
if (medicine != null) item.setMedicineName(medicine.getName());
}
}
d.setItems(items);
d.setShopOrder(shopOrderService.getByOrderNo(d.getOrderNo(), d.getTenantId()));
});
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ClinicPrescription> listRel(ClinicPrescriptionParam param) {
List<ClinicPrescription> list = baseMapper.selectListRel(param);
// 排序
PageParam<ClinicPrescription, ClinicPrescriptionParam> page = new PageParam<>();
page.setDefaultOrder("create_time desc");
final ClinicPrescriptionItemParam itemParam = new ClinicPrescriptionItemParam();
Set<Integer> collectIds = list.stream().map(ClinicPrescription::getId).collect(Collectors.toSet());
itemParam.setPrescriptionIds(collectIds);
final List<ClinicPrescriptionItem> clinicPrescriptionItems = clinicPrescriptionItemService.listRel(itemParam);
list.forEach(d -> {
if (param.getLoginUserId() != null) d.setShowPayButton(d.getUserId().equals(param.getLoginUserId()));
List<ClinicPrescriptionItem> items = clinicPrescriptionItems.stream().filter(p -> p.getPrescriptionId().equals(d.getId())).toList();
if (!items.isEmpty()) {
for (ClinicPrescriptionItem item : items) {
ClinicMedicine medicine = clinicMedicineService.getById(item.getMedicineId());
if (medicine != null) item.setMedicineName(medicine.getName());
}
}
d.setItems(items);
d.setShopOrder(shopOrderService.getByOrderNo(d.getOrderNo(), d.getTenantId()));
});
return page.sortRecords(list);
}
@Override
public ClinicPrescription getByIdRel(Integer id) {
ClinicPrescriptionParam param = new ClinicPrescriptionParam();
param.setId(id);
ClinicPrescription clinicPrescription = param.getOne(baseMapper.selectListRel(param));
if (clinicPrescription != null) {
List<ClinicPrescriptionItem> items = clinicPrescriptionItemService.listRel(new ClinicPrescriptionItemParam(){{
setPrescriptionId(id);
}});
if (!items.isEmpty()) {
for (ClinicPrescriptionItem item : items) {
ClinicMedicine medicine = clinicMedicineService.getById(item.getMedicineId());
if (medicine != null) item.setMedicineName(medicine.getName());
}
}
clinicPrescription.setItems(items);
}
return clinicPrescription;
}
@Override
public ClinicPrescription getByLastId(ClinicPrescription clinicPrescription) {
return getOne(new LambdaQueryWrapper<ClinicPrescription>().orderByDesc(ClinicPrescription::getId).eq(ClinicPrescription::getUserId, clinicPrescription.getUserId()).last("limit 1"));
}
@Override
public ClinicPrescription getByOrderNo(String orderNo) {
return getOne(
new LambdaQueryWrapper<ClinicPrescription>()
.eq(ClinicPrescription::getOrderNo, orderNo)
.last("limit 1"));
}
@Override
public ClinicPrescription getByOrderId(Integer orderId) {
return getOne(
new LambdaQueryWrapper<ClinicPrescription>()
.eq(ClinicPrescription::getOrderId, orderId)
.last("limit 1"));
}
}

View File

@@ -0,0 +1,57 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.PrescriptionOrderItemMapper;
import com.gxwebsoft.clinic.service.PrescriptionOrderItemService;
import com.gxwebsoft.clinic.entity.PrescriptionOrderItem;
import com.gxwebsoft.clinic.param.PrescriptionOrderItemParam;
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 LX
* @since 2025-12-10 11:28:03
*/
@Service
public class PrescriptionOrderItemServiceImpl extends ServiceImpl<PrescriptionOrderItemMapper, PrescriptionOrderItem> implements PrescriptionOrderItemService {
@Override
public PageResult<PrescriptionOrderItem> pageRel(PrescriptionOrderItemParam param) {
PageParam<PrescriptionOrderItem, PrescriptionOrderItemParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<PrescriptionOrderItem> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<PrescriptionOrderItem> listRel(PrescriptionOrderItemParam param) {
List<PrescriptionOrderItem> list = baseMapper.selectListRel(param);
// 排序
PageParam<PrescriptionOrderItem, PrescriptionOrderItemParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public List<PrescriptionOrderItem> getByOrderId(Integer orderId) {
return list(
new LambdaQueryWrapper<PrescriptionOrderItem>()
.eq(PrescriptionOrderItem::getPrescriptionId, orderId)
);
}
@Override
public PrescriptionOrderItem getByIdRel(Integer id) {
PrescriptionOrderItemParam param = new PrescriptionOrderItemParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}

View File

@@ -0,0 +1,64 @@
package com.gxwebsoft.clinic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.clinic.mapper.PrescriptionOrderMapper;
import com.gxwebsoft.clinic.service.PrescriptionOrderItemService;
import com.gxwebsoft.clinic.service.PrescriptionOrderService;
import com.gxwebsoft.clinic.entity.PrescriptionOrder;
import com.gxwebsoft.clinic.param.PrescriptionOrderParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 处方主表
Service实现
*
* @author LX
* @since 2025-12-10 11:28:03
*/
@Service
public class PrescriptionOrderServiceImpl extends ServiceImpl<PrescriptionOrderMapper, PrescriptionOrder> implements PrescriptionOrderService {
@Resource
private PrescriptionOrderItemService prescriptionOrderItemService;
@Override
public PageResult<PrescriptionOrder> pageRel(PrescriptionOrderParam param) {
PageParam<PrescriptionOrder, PrescriptionOrderParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<PrescriptionOrder> list = baseMapper.selectPageRel(page, param);
for (PrescriptionOrder prescriptionOrder : list) {
prescriptionOrder.setItems(prescriptionOrderItemService.getByOrderId(prescriptionOrder.getId()));
}
return new PageResult<>(list, page.getTotal());
}
@Override
public List<PrescriptionOrder> listRel(PrescriptionOrderParam param) {
List<PrescriptionOrder> list = baseMapper.selectListRel(param);
// 排序
PageParam<PrescriptionOrder, PrescriptionOrderParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public PrescriptionOrder getByIdRel(Integer id) {
PrescriptionOrderParam param = new PrescriptionOrderParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public PrescriptionOrder getByOrderNo(String orderNo) {
return getOne(
new LambdaQueryWrapper<PrescriptionOrder>()
.eq(PrescriptionOrder::getOrderNo, orderNo)
.last("limit 1")
);
}
}

View File

@@ -114,7 +114,7 @@ public class ArticleCheckController extends BaseController {
passNum++;
}
}
if (passNum == articleCheckList.size()) {
if (passNum > 0) {
article.setStatus(0);
articleService.updateById(article);
sendMsg = true;

View File

@@ -157,7 +157,7 @@ public class ArticleController extends BaseController {
// final ArticleCategory category = articleCategoryService.getById(article.getCategoryId());
// article.setType(category.getType());
if (articleService.save(article)) {
if (article.getBucket() != null) aliOssController.videoTrans(article.getBucket());
// if (article.getBucket() != null) aliOssController.videoTrans(article.getBucket());
// 保存文章内容
final ArticleContent content = new ArticleContent();
content.setArticleId(article.getArticleId());

View File

@@ -76,7 +76,6 @@ public class MpController extends BaseController {
return success(mpService.listRel(param));
}
@PreAuthorize("hasAuthority('cms:mp:list')")
@ApiOperation("根据id查询小程序")
@GetMapping("/{id}")
public ApiResult<Mp> get(@PathVariable("id") Integer id) {
@@ -84,7 +83,6 @@ public class MpController extends BaseController {
return success(mpService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('cms:mp:save')")
@ApiOperation("添加小程序")
@PostMapping()
public ApiResult<?> save(@RequestBody Mp mp) {
@@ -99,7 +97,6 @@ public class MpController extends BaseController {
return fail("添加失败");
}
@PreAuthorize("hasAuthority('cms:mp:update')")
@ApiOperation("修改小程序")
@PutMapping()
public ApiResult<?> update(@RequestBody Mp mp) {
@@ -113,7 +110,6 @@ public class MpController extends BaseController {
return fail("修改失败");
}
@PreAuthorize("hasAuthority('cms:mp:remove')")
@ApiOperation("删除小程序")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
@@ -123,7 +119,6 @@ public class MpController extends BaseController {
return fail("删除失败");
}
@PreAuthorize("hasAuthority('cms:mp:save')")
@ApiOperation("批量添加小程序")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<Mp> list) {
@@ -133,7 +128,6 @@ public class MpController extends BaseController {
return fail("添加失败");
}
@PreAuthorize("hasAuthority('cms:mp:update')")
@ApiOperation("批量修改小程序")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<Mp> batchParam) {
@@ -143,7 +137,6 @@ public class MpController extends BaseController {
return fail("修改失败");
}
@PreAuthorize("hasAuthority('cms:mp:remove')")
@ApiOperation("批量删除小程序")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
@@ -314,15 +307,15 @@ public class MpController extends BaseController {
BigDecimal originPrice = goods.getPrice();
goods.setPrice(goods.getSalePrice());
// 会员
if (parentUser != null) {
// if (parentUser != null) {
if (goods.getPriceGift()) goods.setShowGift(true);
// goods.setPrice(originPrice);
}
// }
// 会员店
if (getLoginUser().getGradeId() > 30 && goods.getBuyingPriceOpen().equals(1)) {
goods.setPrice(goods.getBuyingPrice());
// if (goods.getPriceGift()) goods.setShowGift(true);
}
// if (getLoginUser().getGradeId() > 30 && goods.getBuyingPriceOpen().equals(1)) {
// goods.setPrice(goods.getBuyingPrice());
//// if (goods.getPriceGift()) goods.setShowGift(true);
// }
}
} else {
for (Goods goods : goodsList) {
@@ -335,7 +328,6 @@ public class MpController extends BaseController {
return success(layout);
}
@PreAuthorize("hasAuthority('cms:mp:remove')")
@ApiOperation("清除缓存")
@DeleteMapping("/clearMpInfo/{key}")
public ApiResult<?> clearSiteInfo(@PathVariable("key") String key) {

Some files were not shown because too many files have changed in this diff Show More