提交 8b4124e1 authored 作者: zhu's avatar zhu

1.develop

2.fix bug
上级 e2bce3ad
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.domain;
import java.io.Serializable;
import com.xwd.hospital.server.rest.res.ApiCode;
import lombok.*;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.xwd.hospital.server.base.BaseDomain;
import com.xwd.hospital.server.domain.User;
import com.xwd.hospital.server.domain.User;
@Data
@Builder(builderMethodName = "newBuilder")
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@TableName("`pms_invite_register_record`")
@Schema(name = "InviteRegisterRecord", description = "邀请信息记录表")
public class InviteRegisterRecord extends BaseDomain {
/**
* Id
*/
@TableId(value = "id", type = IdType.AUTO)
@Schema(description = "Id", nullable = false)
private Long id;
/**
* 邀请人Id
*/
@TableField(value = "invite_user_id")
@Schema(description = "邀请人Id", nullable = false)
private Long inviteUserId;
/**
* 邀请人Id
*/
@Schema(description = "邀请人Id")
@TableField(exist = false)
private User inviteUser;
/**
* 被邀请人Id
*/
@TableField(value = "invited_user_id")
@Schema(description = "被邀请人Id", nullable = false)
private Long invitedUserId;
/**
* 被邀请人Id
*/
@Schema(description = "被邀请人Id")
@TableField(exist = false)
private User invitedUser;
/**
* 操作人Id
*/
@TableField(value = "editor_id")
@Schema(description = "操作人Id", nullable = false)
private Long editorId;
/**
* 操作人
*/
@TableField(value = "editor_name")
@Schema(description = "操作人", nullable = false)
private String editorName;
/**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建时间", nullable = false)
private java.util.Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "更新时间", nullable = false)
private java.util.Date updateTime;
/**
* 设置默认值
*/
@Override
public InviteRegisterRecord setDefault() {
if (this.getEditorId() == null) {
this.setEditorId(1L);
}
if (this.getEditorName() == null) {
this.setEditorName("admin");
}
if (this.getCreateTime() == null) {
this.setCreateTime(new java.util.Date());
}
if (this.getUpdateTime() == null) {
this.setUpdateTime(new java.util.Date());
}
return this;
}
/**
* 数据验证
*/
@Override
public boolean validate(boolean throwException) {
if (this.getInviteUserId() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "邀请人Id不能为空!");
}
return false;
}
if (this.getInvitedUserId() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "被邀请人Id不能为空!");
}
return false;
}
if (this.getEditorId() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "操作人Id不能为空!");
}
return false;
}
if (this.getEditorName() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "操作人不能为空!");
}
return false;
}
return true;
}
/**
* 数据验证
*/
@Override
public boolean validate() {
return this.validate(false);
}
}
package com.xwd.hospital.server.dto; package com.xwd.hospital.server.dto;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import net.bytebuddy.implementation.bind.annotation.SuperCall;
@Data @Getter
@Setter
public class ExcelDepartment extends DepartmentDto{ public class ExcelDepartment extends DepartmentDto{
private Long excelId; private Long excelId;
private Long excelParentId; private Long excelParentId;
......
...@@ -13,4 +13,6 @@ public class LoginDto { ...@@ -13,4 +13,6 @@ public class LoginDto {
private String smsAuthCode; private String smsAuthCode;
//小程序来源 //小程序来源
private UserTypeEnum userType; private UserTypeEnum userType;
//邀请人id
private String inviterId;
} }
package com.xwd.hospital.server.dto;
import com.xwd.hospital.server.domain.Order;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class OrderDetailDto extends Order {
private String imUserId;
}
...@@ -35,5 +35,6 @@ public class OrderDto { ...@@ -35,5 +35,6 @@ public class OrderDto {
*/ */
private String serviceEndTime; private String serviceEndTime;
private String imUserId;
} }
...@@ -9,4 +9,6 @@ public class RegisterDto { ...@@ -9,4 +9,6 @@ public class RegisterDto {
private String code; private String code;
//小程序来源 //小程序来源
private UserTypeEnum userType; private UserTypeEnum userType;
//邀请人id
private String inviterId;
} }
...@@ -67,6 +67,8 @@ public class ReportDto { ...@@ -67,6 +67,8 @@ public class ReportDto {
@Schema(description = "报告时间", nullable = false) @Schema(description = "报告时间", nullable = false)
private java.util.Date reportTime; private java.util.Date reportTime;
private String phoneNumber;
private List<String> pictureList; private List<String> pictureList;
} }
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.repository;
import java.io.Serializable;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import com.xwd.hospital.server.domain.InviteRegisterRecord;
import com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper;
@Repository
public interface InviteRegisterRecordMapper extends InviteRegisterRecordBaseMapper {
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.repository.base;
import java.io.Serializable;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import com.xwd.hospital.server.domain.InviteRegisterRecord;
@Repository
public interface InviteRegisterRecordBaseMapper extends BaseMapper<InviteRegisterRecord> {
/**
* 根据 ID 更新所有字段
*
* @param entity 实体对象
*/
int updateAllFieldsById(@Param(Constants.ENTITY) InviteRegisterRecord entity);
/**
* 批量插入
*
* @param records 实体对象列表
*/
int batchInsert(@Param("records") List<InviteRegisterRecord> records);
}
...@@ -13,6 +13,7 @@ import java.util.Arrays; ...@@ -13,6 +13,7 @@ import java.util.Arrays;
import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.IdcardUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...@@ -32,8 +33,8 @@ import io.swagger.v3.oas.annotations.tags.Tag; ...@@ -32,8 +33,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springdoc.core.annotations.ParameterObject; import org.springdoc.core.annotations.ParameterObject;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
...@@ -62,6 +63,14 @@ public class FamilyDoctorController extends BaseController<FamilyDoctorService, ...@@ -62,6 +63,14 @@ public class FamilyDoctorController extends BaseController<FamilyDoctorService,
@Operation(summary = "新增") @Operation(summary = "新增")
@Override @Override
public ApiResponse<FamilyDoctor> add(@RequestBody FamilyDoctor entity, @AuthUser User user) { public ApiResponse<FamilyDoctor> add(@RequestBody FamilyDoctor entity, @AuthUser User user) {
if(StringUtils.isEmpty(entity.getIdNo())){
return ApiResponse.fail(ApiCode.FAILED);
}
if(!IdcardUtil.isValidCard(entity.getIdNo())){
return ApiResponse.fail(ApiCode.FAILED);
}
entity.setEditorId(user.getId()); entity.setEditorId(user.getId());
entity.setEditorName(user.getUsername()); entity.setEditorName(user.getUsername());
entity.setDefault().validate(true); entity.setDefault().validate(true);
......
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.rest;
import java.util.List;
import java.util.Arrays;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xwd.hospital.server.annotation.ApiCommon;
import com.xwd.hospital.server.annotation.AuthUser;
import com.xwd.hospital.server.base.BaseController;
import com.xwd.hospital.server.domain.User;
import com.xwd.hospital.server.rest.res.ApiCode;
import com.xwd.hospital.server.domain.InviteRegisterRecord;
import com.xwd.hospital.server.rest.req.InviteRegisterRecordParam;
import com.xwd.hospital.server.rest.res.ApiResponse;
import com.xwd.hospital.server.service.InviteRegisterRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@Tag(name = "InviteRegisterRecordController", description = "邀请信息记录表管理")
@RequestMapping("/v1/pms/invite-register-record")
public class InviteRegisterRecordController extends BaseController<InviteRegisterRecordService, InviteRegisterRecord, InviteRegisterRecordParam> {
@Resource
public void setService(InviteRegisterRecordService service) {
this.service = service;
}
/**
* 新增
*
* @param entity 要新增的对象
* @return 新增的对象
*/
@PostMapping("/")
@Operation(summary = "新增")
@Override
public ApiResponse<InviteRegisterRecord> add(@RequestBody InviteRegisterRecord entity, @AuthUser User user) {
entity.setEditorId(user.getId());
entity.setEditorName(user.getUsername());
entity.setDefault().validate(true);
this.service.save(entity);
return ApiResponse.ok(this.service.getById(entity.getId()));
}
/**
* 批量新增
*
* @param entityList 要新增的对象
* @return boolean 成功或失败
*/
@PostMapping("/batch-save")
@Operation(summary = "批量新增")
@Override
public ApiResponse<Boolean> batchSave(@RequestBody List<InviteRegisterRecord> entityList, @AuthUser User user) {
entityList.forEach(entity -> {
entity.setEditorId(user.getId());
entity.setEditorName(user.getUsername());
entity.setDefault().validate(true);
});
return ApiResponse.ok(this.service.saveBatch(entityList));
}
}
...@@ -96,8 +96,13 @@ public class MedicalReportController extends BaseController<MedicalReportService ...@@ -96,8 +96,13 @@ public class MedicalReportController extends BaseController<MedicalReportService
@PostMapping("/uploadReport") @PostMapping("/uploadReport")
@Operation(summary = "上传影像报告") @Operation(summary = "上传影像报告")
public ApiResponse uploadReport(@RequestBody ReportDto dto, @AuthUser User user) { public ApiResponse uploadReport(@RequestBody ReportDto dto, @AuthUser User user) {
boolean result = this.service.uploadReport(dto);
if(result){
return ApiResponse.ok(result);
}else {
return ApiResponse.fail(ApiCode.FAILED.getCode(),"身份证信息不正确");
}
return ApiResponse.ok(this.service.uploadReport(dto));
} }
/** /**
......
...@@ -94,7 +94,7 @@ public class OrderController extends BaseController<OrderService, Order, OrderPa ...@@ -94,7 +94,7 @@ public class OrderController extends BaseController<OrderService, Order, OrderPa
@GetMapping("/{id}") @GetMapping("/{id}")
@Operation(summary = "通过主键查询") @Operation(summary = "通过主键查询")
@ApiCommon @ApiCommon
public ApiResponse<Order> selectByPrimaryKey(@PathVariable("id") Long id) { public ApiResponse selectByPrimaryKey(@PathVariable("id") Long id) {
return ApiResponse.ok(this.service.queryOrderById(id)); return ApiResponse.ok(this.service.queryOrderById(id));
} }
......
...@@ -13,6 +13,7 @@ import java.util.Arrays; ...@@ -13,6 +13,7 @@ import java.util.Arrays;
import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.IdcardUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...@@ -32,8 +33,8 @@ import io.swagger.v3.oas.annotations.tags.Tag; ...@@ -32,8 +33,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springdoc.core.annotations.ParameterObject; import org.springdoc.core.annotations.ParameterObject;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
...@@ -62,6 +63,17 @@ public class PatientInfoController extends BaseController<PatientInfoService, Pa ...@@ -62,6 +63,17 @@ public class PatientInfoController extends BaseController<PatientInfoService, Pa
@Operation(summary = "新增") @Operation(summary = "新增")
@Override @Override
public ApiResponse<PatientInfo> add(@RequestBody PatientInfo entity, @AuthUser User user) { public ApiResponse<PatientInfo> add(@RequestBody PatientInfo entity, @AuthUser User user) {
if(StringUtils.isEmpty(entity.getIdNo())){
return ApiResponse.fail(ApiCode.FAILED);
}
if(!IdcardUtil.isValidCard(entity.getIdNo())){
return ApiResponse.fail(ApiCode.FAILED);
}
if(!StringUtils.isEmpty(entity.getGuardianIdentificationNumber())){
if(!IdcardUtil.isValidCard(entity.getGuardianIdentificationNumber())){
return ApiResponse.fail(ApiCode.FAILED);
}
}
entity.setEditorId(user.getId()); entity.setEditorId(user.getId());
entity.setEditorName(user.getUsername()); entity.setEditorName(user.getUsername());
entity.setDefault().validate(true); entity.setDefault().validate(true);
......
...@@ -207,7 +207,12 @@ public class UserController extends BaseController<UserService, User, UserParam> ...@@ -207,7 +207,12 @@ public class UserController extends BaseController<UserService, User, UserParam>
@PostMapping("/updateUserInfo") @PostMapping("/updateUserInfo")
@ApiCommon @ApiCommon
public ApiResponse updateUserInfo(@RequestBody UpdateUserInfoDto updateInfoDto,@AuthUser User user) { public ApiResponse updateUserInfo(@RequestBody UpdateUserInfoDto updateInfoDto,@AuthUser User user) {
return ApiResponse.ok(this.service.updateUserInfo(updateInfoDto)); UserDto userDto = this.service.updateUserInfo(updateInfoDto);
if(null == userDto){
return ApiResponse.fail(ApiCode.FAILED);
}else {
return ApiResponse.ok(userDto);
}
} }
/** /**
...@@ -295,18 +300,32 @@ public class UserController extends BaseController<UserService, User, UserParam> ...@@ -295,18 +300,32 @@ public class UserController extends BaseController<UserService, User, UserParam>
return ApiResponse.ok(user); return ApiResponse.ok(user);
} }
// /**
// * <pre>
// * test
// * </pre>
// */
// @Operation(summary = "test")
// @GetMapping("/test")
// @ApiCommon
// public ApiResponse test(@RequestParam(value = "imUserId") String imUserId,
// @RequestParam(value = "nickName") String nickName,
// @RequestParam(value = "headUrl") String headUrl) {
// this.service.addUserToIMSystem(imUserId, nickName, headUrl);
// return ApiResponse.ok(null);
// }
/** /**
* <pre> * <pre>
* test * 获取IM签名
* </pre> * </pre>
*/ */
@Operation(summary = "test") @Operation(summary = "获取IM签名")
@GetMapping("/test") @GetMapping("/getUserSig")
@ApiCommon @ApiCommon
public ApiResponse test(@RequestParam(value = "imUserId") String imUserId, public ApiResponse getUserSig(@AuthUser User user) {
@RequestParam(value = "nickName") String nickName, Object userId = StpUtil.getExtra("userId");
@RequestParam(value = "headUrl") String headUrl) {
this.service.addUserToIMSystem(imUserId, nickName, headUrl); return ApiResponse.ok(this.service.getIMSig(Long.valueOf(userId.toString())));
return ApiResponse.ok(null);
} }
} }
...@@ -87,5 +87,15 @@ public class UserInfoController extends BaseController<UserInfoService, UserInfo ...@@ -87,5 +87,15 @@ public class UserInfoController extends BaseController<UserInfoService, UserInfo
return ApiResponse.ok(this.service.saveBatch(entityList)); return ApiResponse.ok(this.service.saveBatch(entityList));
} }
/**
* 患者用户列表
*
*/
@PostMapping("/queryUserInfoList")
@Operation(summary = "患者用户列表")
public ApiResponse queryUserInfoList(@AuthUser User user) {
return ApiResponse.ok(this.service.queryUserInfoList());
}
} }
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.rest.req;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import com.xwd.hospital.server.base.BaseParam;
import com.xwd.hospital.server.domain.InviteRegisterRecord;
@Data
@EqualsAndHashCode(callSuper = true)
@Builder(builderMethodName = "newBuilder")
@NoArgsConstructor
@AllArgsConstructor
public class InviteRegisterRecordParam extends BaseParam<InviteRegisterRecord> {
/**
* Id
*/
@Parameter(description = "Id")
private Long id;
/**
* Id IN值List
*/
@Parameter(description = "Id IN值List")
private List<Long> idList;
/**
* 邀请人Id
*/
@Parameter(description = "邀请人Id")
private Long inviteUserId;
/**
* 被邀请人Id
*/
@Parameter(description = "被邀请人Id")
private Long invitedUserId;
/**
* 操作人Id
*/
@Parameter(description = "操作人Id")
private Long editorId;
/**
* 操作人
*/
@Parameter(description = "操作人")
private String editorName;
/**
* 创建时间
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Parameter(description = "创建时间")
private java.util.Date createTime;
/**
* 创建时间 下限值(大于等于)
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Parameter(description = "创建时间 下限值(大于等于)")
private java.util.Date createTimeFrom;
/**
* 创建时间 上限值(小于)
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Parameter(description = "创建时间 上限值(小于)")
private java.util.Date createTimeTo;
/**
* 更新时间
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Parameter(description = "更新时间")
private java.util.Date updateTime;
/**
* 更新时间 下限值(大于等于)
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Parameter(description = "更新时间 下限值(大于等于)")
private java.util.Date updateTimeFrom;
/**
* 更新时间 上限值(小于)
*/
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Parameter(description = "更新时间 上限值(小于)")
private java.util.Date updateTimeTo;
/**
* 将查询参数转化为查询Wrapper
*/
@Override
public QueryWrapper<InviteRegisterRecord> toQueryWrapper() {
return this.toQueryWrapper("");
}
/**
* 将查询参数转化为查询Wrapper
*/
@Override
public QueryWrapper<InviteRegisterRecord> toQueryWrapper(String columnPrefix) {
QueryWrapper<InviteRegisterRecord> wrapper = Wrappers.<InviteRegisterRecord>query();
wrapper.eq(this.getId() != null, columnPrefix + "id", this.getId());
wrapper.in(this.getIdList() != null && this.getIdList().size() > 0, columnPrefix + "id", this.getIdList());
wrapper.eq(this.getInviteUserId() != null, columnPrefix + "invite_user_id", this.getInviteUserId());
wrapper.eq(this.getInvitedUserId() != null, columnPrefix + "invited_user_id", this.getInvitedUserId());
wrapper.eq(this.getEditorId() != null, columnPrefix + "editor_id", this.getEditorId());
if (this.getEditorName() != null) {
if (this.getEditorName().startsWith("%") && this.getEditorName().endsWith("%")) {
wrapper.like(columnPrefix + "editor_name", this.getEditorName().substring(1, this.getEditorName().length() - 1));
} else if (this.getEditorName().startsWith("%") && !this.getEditorName().endsWith("%")) {
wrapper.likeLeft(columnPrefix + "editor_name", this.getEditorName().substring(1));
} else if (this.getEditorName().endsWith("%")) {
wrapper.likeRight(columnPrefix + "editor_name", this.getEditorName().substring(0, this.getEditorName().length() - 1));
} else {
wrapper.eq(columnPrefix + "editor_name", this.getEditorName());
}
}
wrapper.eq(this.getCreateTime() != null, columnPrefix + "create_time", this.getCreateTime());
wrapper.ge(this.getCreateTimeFrom() != null, columnPrefix + "create_time", this.getCreateTimeFrom());
wrapper.lt(this.getCreateTimeTo() != null, columnPrefix + "create_time", this.getCreateTimeTo());
wrapper.eq(this.getUpdateTime() != null, columnPrefix + "update_time", this.getUpdateTime());
wrapper.ge(this.getUpdateTimeFrom() != null, columnPrefix + "update_time", this.getUpdateTimeFrom());
wrapper.lt(this.getUpdateTimeTo() != null, columnPrefix + "update_time", this.getUpdateTimeTo());
return wrapper;
}
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.service;
import java.util.List;
import com.xwd.hospital.server.base.BaseService;
import com.xwd.hospital.server.domain.InviteRegisterRecord;
import com.xwd.hospital.server.rest.req.InviteRegisterRecordParam;
public interface InviteRegisterRecordService extends BaseService<InviteRegisterRecord> {
}
...@@ -8,20 +8,16 @@ ...@@ -8,20 +8,16 @@
package com.xwd.hospital.server.service; package com.xwd.hospital.server.service;
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xwd.hospital.server.base.BaseService; import com.xwd.hospital.server.base.BaseService;
import com.xwd.hospital.server.domain.Order; import com.xwd.hospital.server.domain.Order;
import com.xwd.hospital.server.dto.*; import com.xwd.hospital.server.dto.*;
import com.xwd.hospital.server.enums.OrderStateEnum; import com.xwd.hospital.server.enums.OrderStateEnum;
import com.xwd.hospital.server.rest.req.OrderParam;
import org.springframework.data.domain.jaxb.SpringDataJaxb;
public interface OrderService extends BaseService<Order> { public interface OrderService extends BaseService<Order> {
Order queryOrderById(Long id); OrderDetailDto queryOrderById(Long id);
IPage<OrderDto> queryOrderListForMiniApp(Page page, OrderStateEnum state); IPage<OrderDto> queryOrderListForMiniApp(Page page, OrderStateEnum state);
......
...@@ -15,4 +15,5 @@ import com.xwd.hospital.server.rest.req.UserInfoParam; ...@@ -15,4 +15,5 @@ import com.xwd.hospital.server.rest.req.UserInfoParam;
public interface UserInfoService extends BaseService<UserInfo> { public interface UserInfoService extends BaseService<UserInfo> {
List<UserInfo> queryUserInfoList();
} }
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:邀请信息记录表
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.service.impl;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import jakarta.annotation.Resource;
import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.xwd.hospital.server.service.InviteRegisterRecordService;
import com.xwd.hospital.server.repository.InviteRegisterRecordMapper;
import com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper;
import com.xwd.hospital.server.domain.InviteRegisterRecord;
import com.xwd.hospital.server.rest.req.InviteRegisterRecordParam;
@Service
public class InviteRegisterRecordServiceImpl extends ServiceImpl<InviteRegisterRecordMapper, InviteRegisterRecord> implements InviteRegisterRecordService {
@Override
public int updateAllFieldsById(InviteRegisterRecord entity) {
return this.getBaseMapper().updateAllFieldsById(entity);
}
/**
* 批量插入
*
* @param entityList ignore
* @param batchSize ignore
* @return ignore
*/
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveBatch(Collection<InviteRegisterRecord> entityList, int batchSize) {
String sqlStatement = SqlHelper.getSqlStatement(InviteRegisterRecordBaseMapper.class, SqlMethod.INSERT_ONE);
return executeBatch(entityList, batchSize, (sqlSession, entity) -> sqlSession.insert(sqlStatement, entity));
}
}
...@@ -14,14 +14,15 @@ import java.util.ArrayList; ...@@ -14,14 +14,15 @@ import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import com.xwd.hospital.server.domain.MedicalReportPicture; import cn.hutool.core.date.DateTime;
import com.xwd.hospital.server.domain.User; import cn.hutool.core.date.DateUtil;
import com.xwd.hospital.server.domain.UserInfo; import cn.hutool.core.util.IdcardUtil;
import com.xwd.hospital.server.domain.*;
import com.xwd.hospital.server.dto.ReportDto; import com.xwd.hospital.server.dto.ReportDto;
import com.xwd.hospital.server.enums.PatientRelationEnum;
import com.xwd.hospital.server.enums.ReportStateEnum; import com.xwd.hospital.server.enums.ReportStateEnum;
import com.xwd.hospital.server.service.MedicalReportPictureService; import com.xwd.hospital.server.enums.YesNoEnum;
import com.xwd.hospital.server.service.UserInfoService; import com.xwd.hospital.server.service.*;
import com.xwd.hospital.server.service.UserService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import com.baomidou.mybatisplus.core.enums.SqlMethod; import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
...@@ -29,10 +30,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -29,10 +30,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.xwd.hospital.server.service.MedicalReportService;
import com.xwd.hospital.server.repository.MedicalReportMapper; import com.xwd.hospital.server.repository.MedicalReportMapper;
import com.xwd.hospital.server.repository.base.MedicalReportBaseMapper; import com.xwd.hospital.server.repository.base.MedicalReportBaseMapper;
import com.xwd.hospital.server.domain.MedicalReport;
import com.xwd.hospital.server.rest.req.MedicalReportParam; import com.xwd.hospital.server.rest.req.MedicalReportParam;
@Service @Service
...@@ -44,6 +43,8 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M ...@@ -44,6 +43,8 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M
private UserInfoService userInfoService; private UserInfoService userInfoService;
@Resource @Resource
private UserService userService; private UserService userService;
@Resource
private PatientInfoService patientInfoService;
@Override @Override
public int updateAllFieldsById(MedicalReport entity) { public int updateAllFieldsById(MedicalReport entity) {
...@@ -66,6 +67,44 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M ...@@ -66,6 +67,44 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M
@Override @Override
public boolean uploadReport(ReportDto dto) { public boolean uploadReport(ReportDto dto) {
//验证身份证号码
boolean valid = IdcardUtil.isValidCard(dto.getPatientIdNo());
if(!valid){
return false;
}
//现根据身份证号查询是否有患者信息,如果没有则新增患者信息
UserInfo userInfo = userInfoService.getOne(Wrappers.<UserInfo>query().eq("id_no", dto.getPatientIdNo()));
if(null == userInfo){
//新增患者信息
userInfo = new UserInfo();
userInfo.setUserId(0L);//关联sys_user表的id,暂时记为0
userInfo.setName(dto.getPatientName());
userInfo.setSex(dto.getSex());
userInfo.setIdNo(dto.getPatientIdNo());
userInfo.setPhoneNumber(dto.getPhoneNumber());
DateTime birthday = DateUtil.parse(IdcardUtil.getBirthByIdCard(dto.getPatientIdNo()));
userInfo.setBornDate(DateUtil.format(birthday,"yyyy-MM-dd"));
userInfo.setPersonalInfoFilled(YesNoEnum.NO);
userInfoService.save(userInfo);
PatientInfo patientInfo = patientInfoService.getOne(Wrappers.<PatientInfo>query().eq("user_info_id", userInfo.getId())
.eq("relation", PatientRelationEnum.SELF).eq("id_no",dto.getPatientIdNo()));
if(null == patientInfo){
//同时创建自身的就诊人
patientInfo = new PatientInfo();
patientInfo.setUserInfoId(userInfo.getId());
patientInfo.setRelation(PatientRelationEnum.SELF);
patientInfo.setPatientName(userInfo.getName());
patientInfo.setSex(userInfo.getSex());
patientInfo.setIdNo(userInfo.getIdNo());
patientInfo.setPhoneNumber(userInfo.getPhoneNumber());
patientInfo.setBornDate(userInfo.getBornDate());
patientInfoService.save(patientInfo);
}
}
MedicalReport medicalReport = new MedicalReport(); MedicalReport medicalReport = new MedicalReport();
medicalReport.setAge(dto.getAge()); medicalReport.setAge(dto.getAge());
...@@ -111,4 +150,10 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M ...@@ -111,4 +150,10 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M
.orderByDesc("report_state").orderByDesc("create_time").last("limit 1")); .orderByDesc("report_state").orderByDesc("create_time").last("limit 1"));
return medicalReport; return medicalReport;
} }
public static void main(String[] args) {
DateTime birthday = DateUtil.parse(IdcardUtil.getBirthByIdCard("321088199311287715"));
String format = DateUtil.format(birthday, "yyyy-MM-dd");
System.out.println(format);
}
} }
...@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.core.enums.SqlMethod; ...@@ -26,7 +26,7 @@ import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.xwd.hospital.server.repository.OrderMapper; import com.xwd.hospital.server.repository.OrderMapper;
...@@ -92,15 +92,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -92,15 +92,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
} }
@Override @Override
public Order queryOrderById(Long id) { public OrderDetailDto queryOrderById(Long id) {
OrderDetailDto orderDetailDto = new OrderDetailDto();
Order order = this.getBaseMapper().selectById(id); Order order = this.getBaseMapper().selectById(id);
if(order.getOrderType() == OrderTypeEnum.PRESCRIPTION){ BeanUtils.copyProperties(order,orderDetailDto);
if(orderDetailDto.getOrderType() == OrderTypeEnum.PRESCRIPTION){
PrescriptionOrderRecord record = prescriptionOrderRecordService.getOne(Wrappers.<PrescriptionOrderRecord>query().eq("order_id", order.getId())); PrescriptionOrderRecord record = prescriptionOrderRecordService.getOne(Wrappers.<PrescriptionOrderRecord>query().eq("order_id", order.getId()));
if (null != record){ if (null != record){
order.setPrescriptionOrderRecord(record); orderDetailDto.setPrescriptionOrderRecord(record);
} }
} }
return order; //查询返回医生的聊天id
DoctorInfo doctor = doctorInfoService.getById(orderDetailDto.getDoctorId());
orderDetailDto.setImUserId(doctor.getUser().getImUserId());
return orderDetailDto;
} }
@Override @Override
......
...@@ -49,4 +49,9 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> i ...@@ -49,4 +49,9 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> i
} }
@Override
public List<UserInfo> queryUserInfoList() {
return this.list();
}
} }
...@@ -22,6 +22,7 @@ import cn.binarywang.wx.miniapp.util.WxMaConfigHolder; ...@@ -22,6 +22,7 @@ import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.IdcardUtil;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.tencentyun.TLSSigAPIv2; import com.tencentyun.TLSSigAPIv2;
import com.xwd.hospital.server.config.WxMaProperties; import com.xwd.hospital.server.config.WxMaProperties;
...@@ -47,6 +48,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -47,6 +48,7 @@ import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -82,6 +84,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -82,6 +84,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
private PatientInfoService patientInfoService; private PatientInfoService patientInfoService;
@Resource @Resource
private DoctorServiceInfoService doctorServiceInfoService; private DoctorServiceInfoService doctorServiceInfoService;
@Resource
private InviteRegisterRecordService inviteRegisterRecordService;
@Value("${wx.miniapp.configs[0].appid}") @Value("${wx.miniapp.configs[0].appid}")
private String patientAppId; private String patientAppId;
...@@ -209,7 +213,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -209,7 +213,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if(StringUtils.isBlank(authCode) || if(StringUtils.isBlank(authCode) ||
StringUtils.isBlank(loginDto.getSmsAuthCode()) || StringUtils.isBlank(loginDto.getSmsAuthCode()) ||
!authCode.equals(loginDto.getSmsAuthCode())){ !authCode.equals(loginDto.getSmsAuthCode())){
//校验不通过,直接返回空userDto //短信验证码校验不通过,直接返回空userDto
userDto.setAuthFlag(false); userDto.setAuthFlag(false);
return userDto; return userDto;
}else { }else {
...@@ -260,7 +264,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -260,7 +264,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
Role defaultRole = this.roleMapper.selectOne(Wrappers.<Role>lambdaQuery().eq(Role::getName, roleName)); Role defaultRole = this.roleMapper.selectOne(Wrappers.<Role>lambdaQuery().eq(Role::getName, roleName));
this.userRoleMapper.insert(UserRole.newBuilder().userId(user.getId()).roleId(defaultRole.getId()).build()); this.userRoleMapper.insert(UserRole.newBuilder().userId(user.getId()).roleId(defaultRole.getId()).build());
//检查是否存在邀请
if(!StringUtils.isEmpty(loginDto.getInviterId())){
//存在邀请注册
InviteRegisterRecord inviteRegisterRecord = new InviteRegisterRecord();
//邀请人
inviteRegisterRecord.setInviteUserId(Long.valueOf(loginDto.getInviterId()));
//被邀请人
inviteRegisterRecord.setInvitedUserId(user.getId());
inviteRegisterRecordService.save(inviteRegisterRecord);
}
}else { }else {
//已存在用户,直接登录
if(null != user.getObjId()){ if(null != user.getObjId()){
//关联信息表 //关联信息表
if(user.getUserType() == UserTypeEnum.PATIENT){ if(user.getUserType() == UserTypeEnum.PATIENT){
...@@ -296,6 +311,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -296,6 +311,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
userDto.setRegisterFlag(true); userDto.setRegisterFlag(true);
return userDto; return userDto;
}else{ }else{
//已存在用户,直接登录
userDto.setUser(user); userDto.setUser(user);
if(null != user.getObjId()){ if(null != user.getObjId()){
//查询关联的信息表 //查询关联的信息表
...@@ -339,21 +355,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -339,21 +355,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
} }
@Override @Override
public UserDto miniAppRegister(RegisterDto registserDto) { public UserDto miniAppRegister(RegisterDto registerDto) {
UserDto userDto = new UserDto(); UserDto userDto = new UserDto();
//根据小程序登录源,切换相应配置 //根据小程序登录源,切换相应配置
if(registserDto.getUserType() == UserTypeEnum.PATIENT){ if(registerDto.getUserType() == UserTypeEnum.PATIENT){
wxMaService.switchover(patientAppId); wxMaService.switchover(patientAppId);
}else if(registserDto.getUserType() == UserTypeEnum.DOCTOR){ }else if(registerDto.getUserType() == UserTypeEnum.DOCTOR){
wxMaService.switchover(doctorAppId); wxMaService.switchover(doctorAppId);
} }
try { try {
WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(registserDto.getCode()); WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(registerDto.getCode());
log.debug(session.getSessionKey()); log.debug(session.getSessionKey());
log.debug(session.getOpenid()); log.debug(session.getOpenid());
//通过openId与sys_user表关联 判断是否需要进行注册流程 //通过openId与sys_user表关联 判断是否需要进行注册流程
String openid = session.getOpenid(); String openid = session.getOpenid();
User user = this.getOne(Wrappers.<User>query().eq("phone", registserDto.getPhoneNumber()).eq("user_type",registserDto.getUserType())); User user = this.getOne(Wrappers.<User>query().eq("phone", registerDto.getPhoneNumber()).eq("user_type",registerDto.getUserType()));
if(null != user ){ if(null != user ){
//此手机号已注册,直接绑定open_id //此手机号已注册,直接绑定open_id
user.setOpenId(openid); user.setOpenId(openid);
...@@ -368,21 +384,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -368,21 +384,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
}else { }else {
//尚未在系统中注册,直接注册为新用户 //尚未在系统中注册,直接注册为新用户
user = new User(); user = new User();
if(registserDto.getUserType() == UserTypeEnum.PATIENT){ if(registerDto.getUserType() == UserTypeEnum.PATIENT){
user.setUsername(UserTypeEnum.PATIENT.getName()+"_"+registserDto.getPhoneNumber()); user.setUsername(UserTypeEnum.PATIENT.getName()+"_"+registerDto.getPhoneNumber());
}else if(registserDto.getUserType() == UserTypeEnum.DOCTOR){ }else if(registerDto.getUserType() == UserTypeEnum.DOCTOR){
user.setUsername(UserTypeEnum.DOCTOR.getName()+"_"+registserDto.getPhoneNumber()); user.setUsername(UserTypeEnum.DOCTOR.getName()+"_"+registerDto.getPhoneNumber());
} }
user.setUserType(registserDto.getUserType()); user.setUserType(registerDto.getUserType());
user.setRegisterSource(RegisterSourceEnum.WX); user.setRegisterSource(RegisterSourceEnum.WX);
user.setPhone(registserDto.getPhoneNumber()); user.setPhone(registerDto.getPhoneNumber());
user.setOpenId(openid); user.setOpenId(openid);
user.setImUserId(IdUtil.getSnowflakeNextIdStr()); user.setImUserId(IdUtil.getSnowflakeNextIdStr());
addUserToIMSystem(user.getImUserId(),user.getUsername(),user.getAvatar()); addUserToIMSystem(user.getImUserId(),user.getUsername(),user.getAvatar());
this.saveOrUpdate(user); this.saveOrUpdate(user);
//分配用户角色role //分配用户角色role
String roleName = ""; String roleName = "";
if(registserDto.getUserType() == UserTypeEnum.PATIENT){ if(registerDto.getUserType() == UserTypeEnum.PATIENT){
roleName = RoleNameEnum.ROLE_PATIENT.toString(); roleName = RoleNameEnum.ROLE_PATIENT.toString();
//同时生成相关信息表 //同时生成相关信息表
UserInfo userInfo = new UserInfo(); UserInfo userInfo = new UserInfo();
...@@ -392,7 +408,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -392,7 +408,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
userInfoService.save(userInfo); userInfoService.save(userInfo);
userDto.setUserInfo(userInfo); userDto.setUserInfo(userInfo);
user.setObjId(userInfo.getId()); user.setObjId(userInfo.getId());
}else if(registserDto.getUserType() == UserTypeEnum.DOCTOR){ }else if(registerDto.getUserType() == UserTypeEnum.DOCTOR){
roleName = RoleNameEnum.ROLE_DOCTOR.toString(); roleName = RoleNameEnum.ROLE_DOCTOR.toString();
//同时生成相关信息表 //同时生成相关信息表
DoctorInfo doctorInfo = new DoctorInfo(); DoctorInfo doctorInfo = new DoctorInfo();
...@@ -406,6 +422,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -406,6 +422,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
Role defaultRole = this.roleMapper.selectOne(Wrappers.<Role>lambdaQuery().eq(Role::getName, roleName)); Role defaultRole = this.roleMapper.selectOne(Wrappers.<Role>lambdaQuery().eq(Role::getName, roleName));
this.userRoleMapper.insert(UserRole.newBuilder().userId(user.getId()).roleId(defaultRole.getId()).build()); this.userRoleMapper.insert(UserRole.newBuilder().userId(user.getId()).roleId(defaultRole.getId()).build());
//检查是否存在邀请
if(!StringUtils.isEmpty(registerDto.getInviterId())){
//存在邀请注册
InviteRegisterRecord inviteRegisterRecord = new InviteRegisterRecord();
//邀请人
inviteRegisterRecord.setInviteUserId(Long.valueOf(registerDto.getInviterId()));
//被邀请人
inviteRegisterRecord.setInvitedUserId(user.getId());
inviteRegisterRecordService.save(inviteRegisterRecord);
}
} }
userDto.setUser(user); userDto.setUser(user);
this.saveOrUpdate(user); this.saveOrUpdate(user);
...@@ -420,6 +447,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -420,6 +447,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
@Override @Override
public UserDto updateUserInfo(UpdateUserInfoDto updateUserDto) { public UserDto updateUserInfo(UpdateUserInfoDto updateUserDto) {
boolean valid = IdcardUtil.isValidCard(updateUserDto.getIdNo());
if(!valid){
return null;
}
Long userId = Long.valueOf(StpUtil.getExtra("userId").toString()); Long userId = Long.valueOf(StpUtil.getExtra("userId").toString());
User user = this.getById(userId); User user = this.getById(userId);
...@@ -430,49 +462,118 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us ...@@ -430,49 +462,118 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if(updateUserDto.getUserType() == UserTypeEnum.PATIENT){ if(updateUserDto.getUserType() == UserTypeEnum.PATIENT){
UserInfo userInfo = userInfoService.getOne(Wrappers.<UserInfo>query().eq("user_id", userId)); UserInfo userInfo = userInfoService.getOne(Wrappers.<UserInfo>query().eq("user_id", userId));
if(null == userInfo){ if(null == userInfo){
userInfo = new UserInfo(); UserInfo oldUserInfo = userInfoService.getOne(Wrappers.<UserInfo>query().eq("id_no", updateUserDto.getIdNo()).eq("phone_number",user.getPhone()));
} if(null != oldUserInfo && oldUserInfo.getUserId() == 0L){
userInfo.setUserId(userId); //如果存在个人报告上传时预先创建的用户信息,且手机号码一致,则将其合并
//更新IM系统用户信息 oldUserInfo.setUserId(userId);
if(!userInfo.getName().equals(updateUserDto.getName())){ user.setObjId(oldUserInfo.getId());
updateIMUserProfile(user.getImUserId(),updateUserDto.getName());
} if(!oldUserInfo.getName().equals(updateUserDto.getName())){
updateIMUserProfile(user.getImUserId(),updateUserDto.getName());
}
oldUserInfo.setName(updateUserDto.getName());
oldUserInfo.setSex(updateUserDto.getSex());
oldUserInfo.setIdNo(updateUserDto.getIdNo());
oldUserInfo.setBornDate(updateUserDto.getBornDate());
oldUserInfo.setPhoneNumber(user.getPhone());
oldUserInfo.setIdCardPictureBack(updateUserDto.getIdCardPictureBack());
oldUserInfo.setIdCardPictureFront(updateUserDto.getIdCardPictureFront());
oldUserInfo.setPersonalInfoFilled(YesNoEnum.NO);
if(checkInfoFilled(oldUserInfo)){
oldUserInfo.setPersonalInfoFilled(YesNoEnum.YES);
}
userInfoService.saveOrUpdate(oldUserInfo);
userDto.setUserInfo(oldUserInfo);
}else {
//全新的用户
userInfo = new UserInfo();
userInfo.setUserId(userId);
//更新IM系统用户信息
if(!userInfo.getName().equals(updateUserDto.getName())){
updateIMUserProfile(user.getImUserId(),updateUserDto.getName());
}
userInfo.setName(updateUserDto.getName());
userInfo.setSex(updateUserDto.getSex());
userInfo.setIdNo(updateUserDto.getIdNo());
userInfo.setBornDate(updateUserDto.getBornDate());
userInfo.setPhoneNumber(user.getPhone());
userInfo.setIdCardPictureBack(updateUserDto.getIdCardPictureBack());
userInfo.setIdCardPictureFront(updateUserDto.getIdCardPictureFront());
userInfo.setPersonalInfoFilled(YesNoEnum.NO);
userInfo.setName(updateUserDto.getName());
userInfo.setSex(updateUserDto.getSex()); if(checkInfoFilled(userInfo)){
userInfo.setIdNo(updateUserDto.getIdNo()); userInfo.setPersonalInfoFilled(YesNoEnum.YES);
userInfo.setBornDate(updateUserDto.getBornDate()); }
userInfo.setPhoneNumber(user.getPhone()); userInfoService.saveOrUpdate(userInfo);
userInfo.setIdCardPictureBack(updateUserDto.getIdCardPictureBack());
userInfo.setIdCardPictureFront(updateUserDto.getIdCardPictureFront()); if(updateUserDto.getDefaultFlag()){
userInfo.setPersonalInfoFilled(YesNoEnum.NO); PatientInfo patientInfo = patientInfoService.getOne(Wrappers.<PatientInfo>query().eq("user_info_id", userInfo.getId())
.eq("relation", PatientRelationEnum.SELF));
if(null == patientInfo){
//同时创建自身的就诊人
patientInfo = new PatientInfo();
patientInfo.setUserInfoId(userInfo.getId());
patientInfo.setRelation(PatientRelationEnum.SELF);
patientInfo.setPatientName(userInfo.getName());
patientInfo.setSex(userInfo.getSex());
patientInfo.setIdNo(userInfo.getIdNo());
patientInfo.setPhoneNumber(userInfo.getPhoneNumber());
patientInfo.setBornDate(userInfo.getBornDate());
patientInfoService.save(patientInfo);
}
}
if(checkInfoFilled(userInfo)){ user.setObjId(userInfo.getId());
userInfo.setPersonalInfoFilled(YesNoEnum.YES); userDto.setUserInfo(userInfo);
} }
userInfoService.saveOrUpdate(userInfo); }else {
//已有user_info用户更新个人信息
if(updateUserDto.getDefaultFlag()){ userInfo.setUserId(userId);
PatientInfo patientInfo = patientInfoService.getOne(Wrappers.<PatientInfo>query().eq("user_info_id", userInfo.getId()) //更新IM系统用户信息
.eq("relation", PatientRelationEnum.SELF)); if(!userInfo.getName().equals(updateUserDto.getName())){
if(null == patientInfo){ updateIMUserProfile(user.getImUserId(),updateUserDto.getName());
//同时创建自身的就诊人 }
patientInfo = new PatientInfo(); userInfo.setName(updateUserDto.getName());
patientInfo.setUserInfoId(userInfo.getId()); userInfo.setSex(updateUserDto.getSex());
patientInfo.setRelation(PatientRelationEnum.SELF); userInfo.setIdNo(updateUserDto.getIdNo());
patientInfo.setPatientName(userInfo.getName()); userInfo.setBornDate(updateUserDto.getBornDate());
patientInfo.setSex(userInfo.getSex()); userInfo.setPhoneNumber(user.getPhone());
patientInfo.setIdNo(userInfo.getIdNo()); userInfo.setIdCardPictureBack(updateUserDto.getIdCardPictureBack());
patientInfo.setPhoneNumber(userInfo.getPhoneNumber()); userInfo.setIdCardPictureFront(updateUserDto.getIdCardPictureFront());
patientInfo.setBornDate(userInfo.getBornDate()); userInfo.setPersonalInfoFilled(YesNoEnum.NO);
patientInfoService.save(patientInfo);
if(checkInfoFilled(userInfo)){
userInfo.setPersonalInfoFilled(YesNoEnum.YES);
} }
userInfoService.saveOrUpdate(userInfo);
if(updateUserDto.getDefaultFlag()){
PatientInfo patientInfo = patientInfoService.getOne(Wrappers.<PatientInfo>query().eq("user_info_id", userInfo.getId())
.eq("relation", PatientRelationEnum.SELF));
if(null == patientInfo){
//同时创建自身的就诊人
patientInfo = new PatientInfo();
patientInfo.setUserInfoId(userInfo.getId());
patientInfo.setRelation(PatientRelationEnum.SELF);
patientInfo.setPatientName(userInfo.getName());
patientInfo.setSex(userInfo.getSex());
patientInfo.setIdNo(userInfo.getIdNo());
patientInfo.setPhoneNumber(userInfo.getPhoneNumber());
patientInfo.setBornDate(userInfo.getBornDate());
patientInfoService.save(patientInfo);
}
}
user.setObjId(userInfo.getId());
userDto.setUserInfo(userInfo);
} }
user.setObjId(userInfo.getId());
userDto.setUserInfo(userInfo);
}else if(updateUserDto.getUserType() == UserTypeEnum.DOCTOR){ }else if(updateUserDto.getUserType() == UserTypeEnum.DOCTOR){
DoctorInfo doctorInfo = doctorInfoService.getOne(Wrappers.<DoctorInfo>query().eq("user_id", userId)); DoctorInfo doctorInfo = doctorInfoService.getOne(Wrappers.<DoctorInfo>query().eq("user_id", userId));
if(null == doctorInfo){ if(null == doctorInfo){
......
<?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.xwd.hospital.server.repository.InviteRegisterRecordMapper">
<resultMap id="ResultMap" type="com.xwd.hospital.server.domain.InviteRegisterRecord" extends="com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper.ResultMap">
</resultMap>
<resultMap id="ListResultMap" type="com.xwd.hospital.server.domain.InviteRegisterRecord" extends="com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper.BaseResultMap">
</resultMap>
<!-- 根据主键查询 -->
<select id="selectById" parameterType="java.io.Serializable" resultMap="ResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper.Base_Column_List" />
from pms_invite_register_record
where id = #{id}
</select>
<!-- 根据Wrapper查询 -->
<select id="selectOne" resultMap="ResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper.Base_Column_List" />
from pms_invite_register_record
${ew.customSqlSegment}
LIMIT 1
</select>
<!-- 根据Wrapper查询 -->
<select id="selectPage" resultMap="ListResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper.Base_Column_List" />
from pms_invite_register_record
${ew.customSqlSegment}
</select>
<!-- 根据Wrapper查询 -->
<select id="selectList" resultMap="ResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper.Base_Column_List" />
from pms_invite_register_record
${ew.customSqlSegment}
</select>
</mapper>
...@@ -39,29 +39,32 @@ ...@@ -39,29 +39,32 @@
<select id="queryOrderListForMiniApp" resultType="com.xwd.hospital.server.dto.OrderDto"> <select id="queryOrderListForMiniApp" resultType="com.xwd.hospital.server.dto.OrderDto">
select select
id as orderId, po.id as orderId,
order_no, po.order_no,
hospital_name, po.hospital_name,
doctor_name, po.doctor_name,
department_name, po.department_name,
patient_name, po.patient_name,
patient_sex, po.patient_sex,
order_state, po.order_state,
order_actual_pay as actualPrice, po.order_actual_pay as actualPrice,
order_type, po.order_type,
create_time, po.create_time,
appointment_date, po.appointment_date,
service_start_time, po.service_start_time,
service_end_time po.service_end_time,
from pms_order su.im_user_id as imUserId
where user_info_id = #{userInfoId} from pms_order po
left join pms_doctor_info pdi on po.doctor_id = pdi.id
left join sys_user su on pdi.user_id = su.id
where po.user_info_id = #{userInfoId} and su.user_type = 'DOCTOR'
<if test="state != null and state != 'COMPLETED'"> <if test="state != null and state != 'COMPLETED'">
AND order_state = #{state} AND po.order_state = #{state}
</if> </if>
<if test="state != null and state == 'COMPLETED' "> <if test="state != null and state == 'COMPLETED' ">
AND ( order_state = 'CANCELED'or order_state = 'REJECTED' or order_state = 'COMPLETED' ) AND ( po.order_state = 'CANCELED'or po.order_state = 'REJECTED' or po.order_state = 'COMPLETED' )
</if> </if>
order by create_time desc order by po.create_time desc
</select> </select>
<select id="selectDoctorListByOrderCount" resultType="com.xwd.hospital.server.dto.PatientMiniAppHomeDto"> <select id="selectDoctorListByOrderCount" resultType="com.xwd.hospital.server.dto.PatientMiniAppHomeDto">
SELECT di.doctor_name,pmq.title,pdi.department_name,su.avatar,di.id as doctorId SELECT di.doctor_name,pmq.title,pdi.department_name,su.avatar,di.id as doctorId
......
<?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.xwd.hospital.server.repository.base.InviteRegisterRecordBaseMapper">
<resultMap id="BaseResultMap" type="com.xwd.hospital.server.domain.InviteRegisterRecord">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="invite_user_id" jdbcType="BIGINT" property="inviteUserId" />
<result column="invited_user_id" jdbcType="BIGINT" property="invitedUserId" />
<result column="editor_id" jdbcType="BIGINT" property="editorId" />
<result column="editor_name" jdbcType="VARCHAR" property="editorName" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<resultMap id="ResultMap" type="com.xwd.hospital.server.domain.InviteRegisterRecord" extends="BaseResultMap">
<association column="invite_user_id" property="inviteUser" javaType="com.xwd.hospital.server.domain.User"
select="com.xwd.hospital.server.repository.UserMapper.selectById" />
<association column="invited_user_id" property="invitedUser" javaType="com.xwd.hospital.server.domain.User"
select="com.xwd.hospital.server.repository.UserMapper.selectById" />
</resultMap>
<sql id="Base_Column_List">
`id`, `invite_user_id`, `invited_user_id`, `editor_id`, `editor_name`, `create_time`, `update_time`
</sql>
<sql id="Base_Column_List_With_Prefix">
t.`id`, t.`invite_user_id`, t.`invited_user_id`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql>
<insert id="batchInsert">
insert into pms_invite_register_record (
`invite_user_id`, `invited_user_id`, `editor_id`, `editor_name`
)
values
<foreach collection="records" item="record" separator=",">
(
#{record.inviteUserId, jdbcType=BIGINT}, #{record.invitedUserId, jdbcType=BIGINT}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR}
)
</foreach>
</insert>
<update id="updateAllFieldsById" parameterType="com.xwd.hospital.server.domain.InviteRegisterRecord">
update pms_invite_register_record set
<trim suffixOverrides=",">
invite_user_id = #{et.inviteUserId, jdbcType=BIGINT},
invited_user_id = #{et.invitedUserId, jdbcType=BIGINT},
editor_id = #{et.editorId, jdbcType=BIGINT},
editor_name = #{et.editorName, jdbcType=VARCHAR},
</trim>
where id = #{et.id}
</update>
</mapper>
...@@ -38,8 +38,8 @@ ...@@ -38,8 +38,8 @@
<result column="patient_self_introduce" jdbcType="VARCHAR" property="patientSelfIntroduce" /> <result column="patient_self_introduce" jdbcType="VARCHAR" property="patientSelfIntroduce" />
<association column="user_info_id" property="userInfo" javaType="com.xwd.hospital.server.domain.UserInfo" <association column="user_info_id" property="userInfo" javaType="com.xwd.hospital.server.domain.UserInfo"
select="com.xwd.hospital.server.repository.UserInfoMapper.selectById" /> select="com.xwd.hospital.server.repository.UserInfoMapper.selectById" />
<!-- <association column="doctor_id" property="doctor" javaType="com.xwd.hospital.server.domain.DoctorInfo"--> <association column="doctor_id" property="doctor" javaType="com.xwd.hospital.server.domain.DoctorInfo"
<!-- select="com.xwd.hospital.server.repository.DoctorInfoMapper.selectById" />--> select="com.xwd.hospital.server.repository.DoctorInfoMapper.selectById" />
<!-- <association column="patient_id" property="patient" javaType="com.xwd.hospital.server.domain.PatientInfo"--> <!-- <association column="patient_id" property="patient" javaType="com.xwd.hospital.server.domain.PatientInfo"-->
<!-- select="com.xwd.hospital.server.repository.PatientInfoMapper.selectById" />--> <!-- select="com.xwd.hospital.server.repository.PatientInfoMapper.selectById" />-->
<!-- <association column="user_coupon_id" property="userCoupon" javaType="com.xwd.hospital.server.domain.UserCouponInfo"--> <!-- <association column="user_coupon_id" property="userCoupon" javaType="com.xwd.hospital.server.domain.UserCouponInfo"-->
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="com.xwd.hospital.server.domain.User"> <resultMap id="BaseResultMap" type="com.xwd.hospital.server.domain.User">
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" /> <result column="username" jdbcType="VARCHAR" property="username" />
<result column="im_user_id" jdbcType="VARCHAR" property="imUserId" />
<result column="open_id" jdbcType="VARCHAR" property="openId" /> <result column="open_id" jdbcType="VARCHAR" property="openId" />
<result column="user_type" jdbcType="VARCHAR" property="userType" /> <result column="user_type" jdbcType="VARCHAR" property="userType" />
<result column="register_source" jdbcType="VARCHAR" property="registerSource" /> <result column="register_source" jdbcType="VARCHAR" property="registerSource" />
...@@ -22,10 +23,10 @@ ...@@ -22,10 +23,10 @@
<collection column="id" property="roleList" select="queryRoleById" /> <collection column="id" property="roleList" select="queryRoleById" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
`id`, `username`, `open_id`, `user_type`, `register_source`, `obj_id`, `delete_status`, `password`, `real_name`, `phone`, `avatar`, `editor_id`, `editor_name`, `create_time`, `update_time` `id`, `username`, `im_user_id`, `open_id`, `user_type`, `register_source`, `obj_id`, `delete_status`, `password`, `real_name`, `phone`, `avatar`, `editor_id`, `editor_name`, `create_time`, `update_time`
</sql> </sql>
<sql id="Base_Column_List_With_Prefix"> <sql id="Base_Column_List_With_Prefix">
t.`id`, t.`username`, t.`open_id`, t.`user_type`, t.`register_source`, t.`obj_id`, t.`delete_status`, t.`password`, t.`real_name`, t.`phone`, t.`avatar`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time` t.`id`, t.`username`, t.`im_user_id`, t.`open_id`, t.`user_type`, t.`register_source`, t.`obj_id`, t.`delete_status`, t.`password`, t.`real_name`, t.`phone`, t.`avatar`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql> </sql>
<select id="queryRoleById" resultMap="com.xwd.hospital.server.repository.base.RoleBaseMapper.ResultMap"> <select id="queryRoleById" resultMap="com.xwd.hospital.server.repository.base.RoleBaseMapper.ResultMap">
select select
...@@ -37,12 +38,12 @@ ...@@ -37,12 +38,12 @@
</select> </select>
<insert id="batchInsert"> <insert id="batchInsert">
insert into sys_user ( insert into sys_user (
`username`, `open_id`, `user_type`, `register_source`, `obj_id`, `delete_status`, `password`, `real_name`, `phone`, `avatar`, `editor_id`, `editor_name` `username`, `im_user_id`, `open_id`, `user_type`, `register_source`, `obj_id`, `delete_status`, `password`, `real_name`, `phone`, `avatar`, `editor_id`, `editor_name`
) )
values values
<foreach collection="records" item="record" separator=","> <foreach collection="records" item="record" separator=",">
( (
#{record.username, jdbcType=VARCHAR}, #{record.openId, jdbcType=VARCHAR}, #{record.userType, jdbcType=VARCHAR}, #{record.registerSource, jdbcType=VARCHAR}, #{record.objId, jdbcType=BIGINT}, #{record.deleteStatus, jdbcType=VARCHAR}, #{record.password, jdbcType=VARCHAR}, #{record.realName, jdbcType=VARCHAR}, #{record.phone, jdbcType=VARCHAR}, #{record.avatar, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR} #{record.username, jdbcType=VARCHAR}, #{record.imUserId, jdbcType=VARCHAR}, #{record.openId, jdbcType=VARCHAR}, #{record.userType, jdbcType=VARCHAR}, #{record.registerSource, jdbcType=VARCHAR}, #{record.objId, jdbcType=BIGINT}, #{record.deleteStatus, jdbcType=VARCHAR}, #{record.password, jdbcType=VARCHAR}, #{record.realName, jdbcType=VARCHAR}, #{record.phone, jdbcType=VARCHAR}, #{record.avatar, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -50,6 +51,7 @@ ...@@ -50,6 +51,7 @@
update sys_user set update sys_user set
<trim suffixOverrides=","> <trim suffixOverrides=",">
username = #{et.username, jdbcType=VARCHAR}, username = #{et.username, jdbcType=VARCHAR},
im_user_id = #{et.imUserId, jdbcType=VARCHAR},
open_id = #{et.openId, jdbcType=VARCHAR}, open_id = #{et.openId, jdbcType=VARCHAR},
user_type = #{et.userType, jdbcType=VARCHAR}, user_type = #{et.userType, jdbcType=VARCHAR},
register_source = #{et.registerSource, jdbcType=VARCHAR}, register_source = #{et.registerSource, jdbcType=VARCHAR},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论