提交 9432a4ec authored 作者: zhu's avatar zhu

dev

上级 4020d16b
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -133,7 +133,7 @@ public class Order extends BaseDomain {
*/
@TableField(value = "appointment_date")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "预约日期", nullable = false)
@Schema(description = "预约日期")
private java.util.Date appointmentDate;
/**
* 每日服务开始时间
......@@ -355,12 +355,6 @@ public class Order extends BaseDomain {
}
return false;
}
if (this.getAppointmentDate() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "预约日期不能为空!");
}
return false;
}
if (this.getServiceStartTime() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "每日服务开始时间不能为空!");
......
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.Order;
@Data
@Builder(builderMethodName = "newBuilder")
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@TableName("`pms_order_operation`")
@Schema(name = "OrderOperation", description = "订单操作变更记录表")
public class OrderOperation extends BaseDomain {
/**
* Id
*/
@TableId(value = "id", type = IdType.AUTO)
@Schema(description = "Id", nullable = false)
private Long id;
/**
* 订单id
*/
@TableField(value = "order_id")
@Schema(description = "订单id", nullable = false)
private Long orderId;
/**
* 订单id
*/
@Schema(description = "订单id")
@TableField(exist = false)
private Order order;
/**
* 订单号
*/
@TableField(value = "order_no")
@Schema(description = "订单号", nullable = false)
private String orderNo;
/**
* 订单操作变更
*/
@TableField(value = "operate_info", select = false)
@Schema(description = "订单操作变更", nullable = false)
private String operateInfo;
/**
* 操作人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 OrderOperation 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.getOrderId() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "订单id不能为空!");
}
return false;
}
if (this.getOrderNo() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "订单号不能为空!");
}
return false;
}
if (this.getOperateInfo() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "订单操作变更不能为空!");
}
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);
}
}
......@@ -82,11 +82,17 @@ public class UserInfo extends BaseDomain {
@Schema(description = "手机号码", nullable = false)
private String phoneNumber;
/**
* 证件图片
* 身份证图片正面
*/
@TableField(value = "certificate_picture")
@Schema(description = "证件图片", nullable = false)
private String certificatePicture;
@TableField(value = "id_card_picture_front")
@Schema(description = "身份证图片正面")
private String idCardPictureFront;
/**
* 身份证图片背面
*/
@TableField(value = "id_card_picture_back")
@Schema(description = "身份证图片背面")
private String idCardPictureBack;
/**
* 是否完善好个人信息
*/
......@@ -196,12 +202,6 @@ public class UserInfo extends BaseDomain {
}
return false;
}
if (this.getCertificatePicture() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "证件图片不能为空!");
}
return false;
}
if (this.getPersonalInfoFilled() == null) {
if (throwException) {
throw new ApiCode.ApiException(-1, "是否完善好个人信息不能为空!");
......
package com.xwd.hospital.server.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class AppraiseDto {
//订单评分
private BigDecimal orderScore;
//订单评价
private String orderEvaluation;
private String orderNo;
}
package com.xwd.hospital.server.dto;
import com.xwd.hospital.server.domain.DoctorServiceInfo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class DoctorInfoDto {
private Long doctorId;
private String doctorName;
private String hospitalName;
private String departmentName;
private String expertiseArea;
private String introduction;
private String title;
private String avatar;
private int orderCount;
private int fansCount;
private List<DoctorServiceInfo> doctorServiceInfoList;
}
package com.xwd.hospital.server.dto;
import lombok.Data;
@Data
public class PrescriptionInfoDto {
private String prescriptionImage;
private String prescriptionIntroduce;
private String orderNo;
}
package com.xwd.hospital.server.dto;
import lombok.Data;
@Data
public class RejectOrderDto {
private String orderNo;
//驳回原因
private String reason;
}
......@@ -4,7 +4,7 @@ import com.xwd.hospital.server.enums.UserTypeEnum;
import lombok.Data;
@Data
public class UpdateUserDto {
public class UpdateInfoDto {
private String code;
//小程序来源
private UserTypeEnum userType;
......
package com.xwd.hospital.server.dto;
import com.xwd.hospital.server.enums.SexTypeEnum;
import com.xwd.hospital.server.enums.UserTypeEnum;
import lombok.Data;
@Data
public class UpdateUserInfoDto {
private String name;
private SexTypeEnum sex;
private String idNo;
private String bornDate;
private String idCardPictureFront;
private String idCardPictureBack;
private UserTypeEnum userType;
private String expertiseArea;
private String introduction;
}
/**
* 项目:互联网医疗
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.enums;
/**
* 审核状态
*/
public enum OrderOperationEnum {
ORDER_CREATED("订单提交"),
ORDER_PAY_START("订单发起支付"),
ORDER_PAYED("订单支付完成"),
ORDER_CANCEL("订单未支付自动取消");
OrderOperationEnum(String name) {
this.name = name;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/**
* 项目:互联网医疗
* @Author: xiongwei
* @Date: 2023-09-05 09:42:00
*/
package com.xwd.hospital.server.enums;
/**
* 三种基础角色枚举
*/
public enum RoleNameEnum {
ROLE_ADMIN("管理员"),
ROLE_PATIENT("患者端用户"),
ROLE_DOCTOR("医生端用户");
RoleNameEnum(String name) {
this.name = name;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
......@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.xwd.hospital.server.dto.DoctorDto;
import com.xwd.hospital.server.dto.DoctorInfoDto;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import com.xwd.hospital.server.domain.DoctorInfo;
......@@ -28,4 +29,7 @@ public interface DoctorInfoMapper extends DoctorInfoBaseMapper {
@Param("doctorName")String doctorName,
@Param("departmentId")Long departmentId);
DoctorInfoDto queryDoctorDetail(@Param("doctorId")Long doctorId);
}
......@@ -24,5 +24,5 @@ import com.xwd.hospital.server.repository.base.OrderBaseMapper;
@Repository
public interface OrderMapper extends OrderBaseMapper {
List<OrderDto> queryOrderListForMiniApp(@Param("")Long userInfoId, @Param("state")String state);
List<OrderDto> queryOrderListForMiniApp(@Param("userInfoId")Long userInfoId, @Param("state")String state);
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.OrderOperation;
import com.xwd.hospital.server.repository.base.OrderOperationBaseMapper;
@Repository
public interface OrderOperationMapper extends OrderOperationBaseMapper {
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.OrderOperation;
@Repository
public interface OrderOperationBaseMapper extends BaseMapper<OrderOperation> {
/**
* 根据 ID 更新所有字段
*
* @param entity 实体对象
*/
int updateAllFieldsById(@Param(Constants.ENTITY) OrderOperation entity);
/**
* 批量插入
*
* @param records 实体对象列表
*/
int batchInsert(@Param("records") List<OrderOperation> records);
}
......@@ -106,5 +106,16 @@ public class DoctorInfoController extends BaseController<DoctorInfoService, Doct
return ApiResponse.ok(page);
}
/**
* 小程序医生详情
*
*/
@PostMapping("/queryDoctorDetail")
@Operation(summary = "小程序医生详情")
public ApiResponse queryDoctorDetail(Long doctorId){
return ApiResponse.ok(this.service.queryDoctorDetail(doctorId));
}
}
......@@ -22,8 +22,7 @@ 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.dto.CreateOrderDto;
import com.xwd.hospital.server.dto.OrderDto;
import com.xwd.hospital.server.dto.*;
import com.xwd.hospital.server.enums.OrderStateEnum;
import com.xwd.hospital.server.rest.res.ApiCode;
import com.xwd.hospital.server.domain.Order;
......@@ -106,7 +105,7 @@ public class OrderController extends BaseController<OrderService, Order, OrderPa
}
/**
* 创建订单
* 患者端创建订单
*
*/
@PostMapping("/createOrder")
......@@ -115,4 +114,81 @@ public class OrderController extends BaseController<OrderService, Order, OrderPa
public ApiResponse<Order> createOrder(@RequestBody CreateOrderDto createOrderDto, @AuthUser User user) {
return ApiResponse.ok( this.service.createOrder(createOrderDto));
}
/**
* 医生端驳回订单
*
*/
@PostMapping("/rejectOrder")
@Operation(summary = "医生端驳回订单")
@ApiCommon
public ApiResponse<Order> rejectOrder(@RequestBody RejectOrderDto rejectOrderDto, @AuthUser User user) {
return ApiResponse.ok( this.service.rejectOrder(rejectOrderDto));
}
/**
* 医生端接单(确认订单)
*
*/
@PostMapping("/acceptOrder")
@Operation(summary = "医生端接单")
@ApiCommon
public ApiResponse<Order> acceptOrder(@RequestParam String orderNo, @AuthUser User user) {
return ApiResponse.ok( this.service.acceptOrder(orderNo));
}
/**
* 患者端发起聊天
*
*/
@PostMapping("/stratImChat")
@Operation(summary = "患者端发起聊天")
@ApiCommon
public ApiResponse<Order> stratImChat(@RequestParam String orderNo, @AuthUser User user) {
return ApiResponse.ok( this.service.stratImChat(orderNo));
}
/**
* 患者端发起通话
*
*/
@PostMapping("/callPhone")
@Operation(summary = "患者端发起通话")
@ApiCommon
public ApiResponse<Order> callPhone(@RequestParam String orderNo, @AuthUser User user) {
return ApiResponse.ok( this.service.callPhone(orderNo));
}
/**
* 医生端医生提交处方资料
*
*/
@PostMapping("/submitPrescriptionInfo")
@Operation(summary = "医生端医生提交处方资料")
@ApiCommon
public ApiResponse<Order> submitPrescriptionInfo(@RequestBody PrescriptionInfoDto prescriptionInfoDto, @AuthUser User user) {
return ApiResponse.ok( this.service.submitPrescriptionInfo(prescriptionInfoDto));
}
/**
* 订单确认完成
*
*/
@PostMapping("/completeOrder")
@Operation(summary = "订单确认完成")
@ApiCommon
public ApiResponse<Order> completeOrder(@RequestParam String orderNo, @AuthUser User user) {
return ApiResponse.ok( this.service.completeOrder(orderNo));
}
/**
* 订单评价
*
*/
@PostMapping("/appraiseOrder")
@Operation(summary = "订单评价")
@ApiCommon
public ApiResponse<Order> appraiseOrder(@RequestBody AppraiseDto appraiseDto, @AuthUser User user) {
return ApiResponse.ok( this.service.appraiseOrder(appraiseDto));
}
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.OrderOperation;
import com.xwd.hospital.server.rest.req.OrderOperationParam;
import com.xwd.hospital.server.rest.res.ApiResponse;
import com.xwd.hospital.server.service.OrderOperationService;
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 = "OrderOperationController", description = "订单操作变更记录表管理")
@RequestMapping("/v1/pms/order-operation")
public class OrderOperationController extends BaseController<OrderOperationService, OrderOperation, OrderOperationParam> {
@Resource
public void setService(OrderOperationService service) {
this.service = service;
}
/**
* 新增
*
* @param entity 要新增的对象
* @return 新增的对象
*/
@PostMapping("/")
@Operation(summary = "新增")
@Override
public ApiResponse<OrderOperation> add(@RequestBody OrderOperation 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<OrderOperation> 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));
}
}
......@@ -30,7 +30,6 @@ public class SmsController {
@PostMapping("/sendSms")
@ApiCommon
public ApiResponse sendSms(@RequestParam("phone") String phone) {
smsService.sendSms(phone);
return ApiResponse.ok(smsService.sendSms(phone));
}
}
......@@ -23,12 +23,10 @@ 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.dto.LoginDto;
import com.xwd.hospital.server.dto.UserDto;
import com.xwd.hospital.server.dto.*;
import com.xwd.hospital.server.rest.res.ApiCode;
import com.xwd.hospital.server.domain.User;
import com.xwd.hospital.server.rest.req.UserParam;
import com.xwd.hospital.server.dto.PasswordDto;
import com.xwd.hospital.server.rest.res.ApiResponse;
import com.xwd.hospital.server.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
......@@ -171,11 +169,17 @@ public class UserController extends BaseController<UserService, User, UserParam>
@Operation(summary = "小程序用户登陆接口")
@PostMapping("/miniAppLogin")
@ApiCommon
public ApiResponse<UserDto> miniAppLogin(@RequestBody LoginDto loginDto) {
public ApiResponse<Map> miniAppLogin(@RequestBody LoginDto loginDto) {
Map<String, Object> result = new HashMap<>();
UserDto userDto = this.service.miniAppLogin(loginDto);
UserDto loginUser = this.service.miniAppLogin(loginDto);
result.put("userDto", userDto);
var loginModel = new SaLoginModel();
loginModel.setExtra("userId", userDto.getUser().getId());
StpUtil.login(userDto.getUser().getUsername(), loginModel);
result.put("token", StpUtil.getTokenValue());
return ApiResponse.ok(loginUser);
return ApiResponse.ok(result);
}
/**
......@@ -203,6 +207,52 @@ public class UserController extends BaseController<UserService, User, UserParam>
return ApiResponse.ok(this.service.register(user, "ROLE_USER"));
}
/**
* <pre>
* 微信获取用户手机号码接口
* </pre>
*/
@Operation(summary = "微信获取用户手机号码接口")
@PostMapping("/getPhoneNumber")
@ApiCommon
public ApiResponse getPhoneNumber(@RequestBody LoginDto loginDto) {
return ApiResponse.ok(this.service.getPhoneNumber(loginDto));
}
/**
* <pre>
* 小程序更新用户信息
* </pre>
*/
@Operation(summary = "小程序更新用户信息")
@PostMapping("/updateUserInfo")
@ApiCommon
public ApiResponse updateUserInfo(@RequestBody UpdateUserInfoDto updateInfoDto,@AuthUser User user) {
return ApiResponse.ok(this.service.updateUserInfo(updateInfoDto));
}
/**
* <pre>
* 小程序注册接口
* </pre>
*/
@Operation(summary = "小程序注册接口")
@PostMapping("/miniAppRegister")
@ApiCommon
public ApiResponse<Map> miniAppRegister(@RequestBody RegisterDto registserDto) {
Map<String, Object> result = new HashMap<>();
UserDto userDto = this.service.miniAppRegister(registserDto);
result.put("userDto", userDto);
var loginModel = new SaLoginModel();
loginModel.setExtra("userId", userDto.getUser().getId());
StpUtil.login(userDto.getUser().getUsername(), loginModel);
result.put("token", StpUtil.getTokenValue());
return ApiResponse.ok(result);
}
/**
* <pre>
* 查询当前登录的用户信息
......
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.OrderOperation;
@Data
@EqualsAndHashCode(callSuper = true)
@Builder(builderMethodName = "newBuilder")
@NoArgsConstructor
@AllArgsConstructor
public class OrderOperationParam extends BaseParam<OrderOperation> {
/**
* 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 orderId;
/**
* 订单号
*/
@Parameter(description = "订单号")
private String orderNo;
/**
* 订单操作变更
*/
@Parameter(description = "订单操作变更")
private String operateInfo;
/**
* 操作人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<OrderOperation> toQueryWrapper() {
return this.toQueryWrapper("");
}
/**
* 将查询参数转化为查询Wrapper
*/
@Override
public QueryWrapper<OrderOperation> toQueryWrapper(String columnPrefix) {
QueryWrapper<OrderOperation> wrapper = Wrappers.<OrderOperation>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.getOrderId() != null, columnPrefix + "order_id", this.getOrderId());
if (this.getOrderNo() != null) {
if (this.getOrderNo().startsWith("%") && this.getOrderNo().endsWith("%")) {
wrapper.like(columnPrefix + "order_no", this.getOrderNo().substring(1, this.getOrderNo().length() - 1));
} else if (this.getOrderNo().startsWith("%") && !this.getOrderNo().endsWith("%")) {
wrapper.likeLeft(columnPrefix + "order_no", this.getOrderNo().substring(1));
} else if (this.getOrderNo().endsWith("%")) {
wrapper.likeRight(columnPrefix + "order_no", this.getOrderNo().substring(0, this.getOrderNo().length() - 1));
} else {
wrapper.eq(columnPrefix + "order_no", this.getOrderNo());
}
}
if (this.getOperateInfo() != null) {
if (this.getOperateInfo().startsWith("%") && this.getOperateInfo().endsWith("%")) {
wrapper.like(columnPrefix + "operate_info", this.getOperateInfo().substring(1, this.getOperateInfo().length() - 1));
} else if (this.getOperateInfo().startsWith("%") && !this.getOperateInfo().endsWith("%")) {
wrapper.likeLeft(columnPrefix + "operate_info", this.getOperateInfo().substring(1));
} else if (this.getOperateInfo().endsWith("%")) {
wrapper.likeRight(columnPrefix + "operate_info", this.getOperateInfo().substring(0, this.getOperateInfo().length() - 1));
} else {
wrapper.eq(columnPrefix + "operate_info", this.getOperateInfo());
}
}
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;
}
}
......@@ -73,10 +73,15 @@ public class UserInfoParam extends BaseParam<UserInfo> {
@Parameter(description = "手机号码")
private String phoneNumber;
/**
* 证件图片
* 身份证图片正面
*/
@Parameter(description = "证件图片")
private String certificatePicture;
@Parameter(description = "身份证图片正面")
private String idCardPictureFront;
/**
* 身份证图片背面
*/
@Parameter(description = "身份证图片背面")
private String idCardPictureBack;
/**
* 是否完善好个人信息
*/
......@@ -208,15 +213,26 @@ public class UserInfoParam extends BaseParam<UserInfo> {
wrapper.eq(columnPrefix + "phone_number", this.getPhoneNumber());
}
}
if (this.getCertificatePicture() != null) {
if (this.getCertificatePicture().startsWith("%") && this.getCertificatePicture().endsWith("%")) {
wrapper.like(columnPrefix + "certificate_picture", this.getCertificatePicture().substring(1, this.getCertificatePicture().length() - 1));
} else if (this.getCertificatePicture().startsWith("%") && !this.getCertificatePicture().endsWith("%")) {
wrapper.likeLeft(columnPrefix + "certificate_picture", this.getCertificatePicture().substring(1));
} else if (this.getCertificatePicture().endsWith("%")) {
wrapper.likeRight(columnPrefix + "certificate_picture", this.getCertificatePicture().substring(0, this.getCertificatePicture().length() - 1));
if (this.getIdCardPictureFront() != null) {
if (this.getIdCardPictureFront().startsWith("%") && this.getIdCardPictureFront().endsWith("%")) {
wrapper.like(columnPrefix + "id_card_picture_front", this.getIdCardPictureFront().substring(1, this.getIdCardPictureFront().length() - 1));
} else if (this.getIdCardPictureFront().startsWith("%") && !this.getIdCardPictureFront().endsWith("%")) {
wrapper.likeLeft(columnPrefix + "id_card_picture_front", this.getIdCardPictureFront().substring(1));
} else if (this.getIdCardPictureFront().endsWith("%")) {
wrapper.likeRight(columnPrefix + "id_card_picture_front", this.getIdCardPictureFront().substring(0, this.getIdCardPictureFront().length() - 1));
} else {
wrapper.eq(columnPrefix + "id_card_picture_front", this.getIdCardPictureFront());
}
}
if (this.getIdCardPictureBack() != null) {
if (this.getIdCardPictureBack().startsWith("%") && this.getIdCardPictureBack().endsWith("%")) {
wrapper.like(columnPrefix + "id_card_picture_back", this.getIdCardPictureBack().substring(1, this.getIdCardPictureBack().length() - 1));
} else if (this.getIdCardPictureBack().startsWith("%") && !this.getIdCardPictureBack().endsWith("%")) {
wrapper.likeLeft(columnPrefix + "id_card_picture_back", this.getIdCardPictureBack().substring(1));
} else if (this.getIdCardPictureBack().endsWith("%")) {
wrapper.likeRight(columnPrefix + "id_card_picture_back", this.getIdCardPictureBack().substring(0, this.getIdCardPictureBack().length() - 1));
} else {
wrapper.eq(columnPrefix + "certificate_picture", this.getCertificatePicture());
wrapper.eq(columnPrefix + "id_card_picture_back", this.getIdCardPictureBack());
}
}
wrapper.eq(this.getPersonalInfoFilled() != null, columnPrefix + "personal_info_filled", this.getPersonalInfoFilled());
......
......@@ -12,6 +12,7 @@ import java.util.List;
import com.xwd.hospital.server.base.BaseService;
import com.xwd.hospital.server.domain.DoctorInfo;
import com.xwd.hospital.server.dto.DoctorDto;
import com.xwd.hospital.server.dto.DoctorInfoDto;
import com.xwd.hospital.server.rest.req.DoctorInfoParam;
import com.xwd.hospital.server.rest.req.DoctorSearchParam;
......@@ -19,4 +20,6 @@ public interface DoctorInfoService extends BaseService<DoctorInfo> {
List<DoctorDto> queryDoctorList(DoctorSearchParam param);
DoctorInfoDto queryDoctorDetail(Long doctorId);
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.OrderOperation;
import com.xwd.hospital.server.rest.req.OrderOperationParam;
public interface OrderOperationService extends BaseService<OrderOperation> {
}
......@@ -11,8 +11,7 @@ package com.xwd.hospital.server.service;
import java.util.List;
import com.xwd.hospital.server.base.BaseService;
import com.xwd.hospital.server.domain.Order;
import com.xwd.hospital.server.dto.CreateOrderDto;
import com.xwd.hospital.server.dto.OrderDto;
import com.xwd.hospital.server.dto.*;
import com.xwd.hospital.server.enums.OrderStateEnum;
import com.xwd.hospital.server.rest.req.OrderParam;
import org.springframework.data.domain.jaxb.SpringDataJaxb;
......@@ -23,5 +22,19 @@ public interface OrderService extends BaseService<Order> {
Order createOrder(CreateOrderDto createOrderDto);
void cancelOrder(String orderNo);
Order cancelOrder(String orderNo);
Order rejectOrder(RejectOrderDto rejectOrderDto);
Order acceptOrder(String orderNo);
Order stratImChat(String orderNo);
Order callPhone(String orderNo);
Order submitPrescriptionInfo(PrescriptionInfoDto prescriptionInfoDto);
Order completeOrder(String orderNo);
Order appraiseOrder(AppraiseDto appraiseDto);
}
......@@ -3,8 +3,9 @@ package com.xwd.hospital.server.service;
public interface SmsService {
/**
* 发送短信验证码
*
* @param phoneNumber
* @return
*/
boolean sendSms(String phoneNumber);
String sendSms(String phoneNumber);
}
......@@ -11,10 +11,7 @@ package com.xwd.hospital.server.service;
import java.util.List;
import com.xwd.hospital.server.base.BaseService;
import com.xwd.hospital.server.domain.User;
import com.xwd.hospital.server.dto.LoginDto;
import com.xwd.hospital.server.dto.RegisterDto;
import com.xwd.hospital.server.dto.UpdateUserDto;
import com.xwd.hospital.server.dto.UserDto;
import com.xwd.hospital.server.dto.*;
import com.xwd.hospital.server.rest.req.UserParam;
public interface UserService extends BaseService<User> {
......@@ -70,7 +67,13 @@ public interface UserService extends BaseService<User> {
* 更新用户信息
* @return
*/
UserDto updateMiniUserInfo(UpdateUserDto updateUserDto);
UserDto updateUserInfo(UpdateUserInfoDto updateInfoDto);
/**
* 微信获取手机号码
* @return
*/
String getPhoneNumber(LoginDto loginDto);
}
......@@ -15,9 +15,12 @@ import java.util.Collection;
import com.xwd.hospital.server.domain.ArticleInfo;
import com.xwd.hospital.server.domain.DepartmentInfo;
import com.xwd.hospital.server.domain.DoctorServiceInfo;
import com.xwd.hospital.server.dto.DoctorDto;
import com.xwd.hospital.server.dto.DoctorInfoDto;
import com.xwd.hospital.server.rest.req.DoctorSearchParam;
import com.xwd.hospital.server.service.DepartmentInfoService;
import com.xwd.hospital.server.service.DoctorServiceInfoService;
import jakarta.annotation.Resource;
import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -36,6 +39,8 @@ import com.xwd.hospital.server.rest.req.DoctorInfoParam;
public class DoctorInfoServiceImpl extends ServiceImpl<DoctorInfoMapper, DoctorInfo> implements DoctorInfoService {
@Resource
private DepartmentInfoService departmentInfoService;
@Resource
private DoctorServiceInfoService doctorServiceInfoService;
@Override
public int updateAllFieldsById(DoctorInfo entity) {
......@@ -65,4 +70,12 @@ public class DoctorInfoServiceImpl extends ServiceImpl<DoctorInfoMapper, DoctorI
return this.getBaseMapper().queryDoctorList(param.getSickness(),param.getDoctorName(),param.getDepartmentId());
}
@Override
public DoctorInfoDto queryDoctorDetail(Long doctorId) {
DoctorInfoDto doctorInfoDto = this.getBaseMapper().queryDoctorDetail(doctorId);
List<DoctorServiceInfo> doctorServiceInfoList = doctorServiceInfoService.list(Wrappers.<DoctorServiceInfo>query().eq("doctor_id", doctorId));
doctorInfoDto.setDoctorServiceInfoList(doctorServiceInfoList);
return doctorInfoDto;
}
}
/**
* 项目:互联网医疗
* 模型分组:服务管理
* 模型名称:订单操作变更记录表
* @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.OrderOperationService;
import com.xwd.hospital.server.repository.OrderOperationMapper;
import com.xwd.hospital.server.repository.base.OrderOperationBaseMapper;
import com.xwd.hospital.server.domain.OrderOperation;
import com.xwd.hospital.server.rest.req.OrderOperationParam;
@Service
public class OrderOperationServiceImpl extends ServiceImpl<OrderOperationMapper, OrderOperation> implements OrderOperationService {
@Override
public int updateAllFieldsById(OrderOperation entity) {
return this.getBaseMapper().updateAllFieldsById(entity);
}
/**
* 批量插入
*
* @param entityList ignore
* @param batchSize ignore
* @return ignore
*/
@Transactional(rollbackFor = Exception.class)
@Override
public boolean saveBatch(Collection<OrderOperation> entityList, int batchSize) {
String sqlStatement = SqlHelper.getSqlStatement(OrderOperationBaseMapper.class, SqlMethod.INSERT_ONE);
return executeBatch(entityList, batchSize, (sqlSession, entity) -> sqlSession.insert(sqlStatement, entity));
}
}
......@@ -16,8 +16,7 @@ import java.util.*;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xwd.hospital.server.domain.*;
import com.xwd.hospital.server.dto.CreateOrderDto;
import com.xwd.hospital.server.dto.OrderDto;
import com.xwd.hospital.server.dto.*;
import com.xwd.hospital.server.enums.OrderStateEnum;
import com.xwd.hospital.server.enums.OrderTypeEnum;
import com.xwd.hospital.server.enums.YesNoEnum;
......@@ -45,6 +44,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
private DoctorInfoService doctorInfoService;
@Resource
private PatientInfoService patientInfoService;
@Resource
private OrderAppraiseService orderAppraiseService;
@Override
public int updateAllFieldsById(Order entity) {
......@@ -67,9 +68,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Override
public List<OrderDto> queryOrderListForMiniApp(OrderStateEnum param) {
long userId = StpUtil.getLoginIdAsLong();
Object userId = StpUtil.getExtra("userId");
UserInfo userInfo = userInfoService.getOne(Wrappers.<UserInfo>query().eq("user_id", userId));
if(null == userInfo){
return null;
}
return this.getBaseMapper().queryOrderListForMiniApp(userInfo.getId(),param.toString());
}
......@@ -138,6 +141,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
order.setPatientSelfIntroduce(createOrderDto.getPatientSelfIntroduce());
this.save(order);
//写入订单操作记录
OrderOperation orderOperation = new OrderOperation();
orderOperation.setOrderId(order.getId());
orderOperation.setOrderNo(order.getOrderNo());
return order;
}
......@@ -180,14 +189,161 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
}
}
/**
* 取消订单
* @param orderNo
* @return
*/
@Override
public void cancelOrder(String orderNo) {
public Order cancelOrder(String orderNo) {
//修改订单状态
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", orderNo));
if(order.getOrderState() == OrderStateEnum.TO_PAY){
if(order.getOrderState() == OrderStateEnum.TO_PAY){//待支付的订单方可取消
order.setOrderState(OrderStateEnum.CANCELED);
this.save(order);
//todo 优惠券是否返回
//查询优惠券
if(null != order.getUserCouponId()){
UserCouponInfo userCouponInfo = userCouponInfoService.getById(order.getUserCouponId());
Date currentDate = new Date();
if(currentDate.after(userCouponInfo.getCouponStartDate())
&& currentDate.before(userCouponInfo.getCouponEndDate())){
userCouponInfo.setCouponUseState(YesNoEnum.YES);
userCouponInfo.setEditorId(1L);
userCouponInfoService.save(userCouponInfo);
}
}
}
return order;
}
/**
* 订单驳回
*
*/
@Override
public Order rejectOrder(RejectOrderDto rejectOrderDto) {
//修改订单状态
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", rejectOrderDto.getOrderNo()));
if(order.getOrderState() == OrderStateEnum.TO_CONFIRM){
order.setOrderState(OrderStateEnum.REJECTED);
order.setCancelReason(rejectOrderDto.getReason());
this.save(order);
//todo 优惠券是否返回
//查询优惠券
if(null != order.getUserCouponId()){
UserCouponInfo userCouponInfo = userCouponInfoService.getById(order.getUserCouponId());
Date currentDate = new Date();
if(currentDate.after(userCouponInfo.getCouponStartDate())
&& currentDate.before(userCouponInfo.getCouponEndDate())){
userCouponInfo.setCouponUseState(YesNoEnum.YES);
userCouponInfo.setEditorId(1L);
userCouponInfoService.save(userCouponInfo);
}
}
}
return order;
}
/**
* 医生确认接单
* @param orderNo
* @return
*/
@Override
public Order acceptOrder(String orderNo) {
//修改订单状态
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", orderNo));
if(order.getOrderState() == OrderStateEnum.TO_CONFIRM){
order.setOrderState(OrderStateEnum.IN_SERVICE);
order.setConfirmTime(new Date());
this.save(order);
}
return order;
}
/**
* 开启IM在线聊天
* @param orderNo
* @return
*/
@Override
public Order stratImChat(String orderNo) {
//todo 接入IM
return null;
}
/**
* 开启匿名通话
* @param orderNo
* @return
*/
@Override
public Order callPhone(String orderNo) {
//todo sdk接入
return null;
}
/**
* 提交续方开药处方单
* @param prescriptionInfoDto
* @return
*/
@Override
public Order submitPrescriptionInfo(PrescriptionInfoDto prescriptionInfoDto) {
//查询订单
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", prescriptionInfoDto.getOrderNo()));
if(order.getOrderState() == OrderStateEnum.IN_SERVICE){
PrescriptionOrderRecord record = new PrescriptionOrderRecord();
}
return null;
}
/**
* 确认订单完成
* @param orderNo
* @return
*/
@Override
public Order completeOrder(String orderNo) {
//修改订单状态
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", orderNo));
if(order.getOrderState() == OrderStateEnum.IN_SERVICE){
order.setOrderState(OrderStateEnum.COMPLETED);
order.setCompleteTime(new Date());
this.save(order);
}
return order;
}
/**
* 订单评价
* @param appraiseDto
* @return
*/
@Override
public Order appraiseOrder(AppraiseDto appraiseDto) {
//修改订单状态
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", appraiseDto.getOrderNo()));
if(order.getOrderState() == OrderStateEnum.COMPLETED){
//已完成订单才可以评价
OrderAppraise orderAppraise = new OrderAppraise();
orderAppraise.setOrderNo(appraiseDto.getOrderNo());
orderAppraise.setOrderId(order.getId());
orderAppraise.setOrderScore(appraiseDto.getOrderScore());
orderAppraise.setOrderEvaluation(appraiseDto.getOrderEvaluation());
orderAppraise.setEditorId(order.getEditorId());
orderAppraiseService.save(orderAppraise);
}
return null;
}
}
......@@ -115,6 +115,7 @@ public class PaymentServiceImpl implements PaymentService {
//判断是否调用过支付接口
OrderPay orderPay = orderPayService.getOne(Wrappers.<OrderPay>query().eq("order_no", orderNo).eq("pay_state",PayStateEnum.TO_PAY.toString()));
if (null != orderPay){
//关闭原有支付流水单,生成新的流水号
closeOrder(orderPay);
orderPay.setPayNo(geneartPayNo());
}else {
......
......@@ -15,7 +15,7 @@ public class SmsServiceImpl implements SmsService {
private RedisService redisService;
@Override
public boolean sendSms(String phoneNumber) {
public String sendSms(String phoneNumber) {
//随机生成六位数字验证码
Random random = new Random();
// 生成一个100000到999999之间的随机整数
......@@ -24,6 +24,6 @@ public class SmsServiceImpl implements SmsService {
//存入redis中,缓存默认5分钟失效
redisService.setExpire(Constant.SMS_PREFIX+phoneNumber,String.valueOf(randomNumber),5, TimeUnit.MINUTES);
return true;
return String.valueOf(randomNumber);
}
}
......@@ -344,7 +344,7 @@ create table `pms_order`
order_discount decimal(12, 2) not null default 0 comment '订单优惠金额',
order_actual_pay decimal(12, 2) not null comment '订单实际支付金额',
user_coupon_id int(11) null comment '优惠券Id',
appointment_date datetime not null comment '预约日期',
appointment_date datetime null comment '预约日期',
service_start_time varchar(64) not null comment '每日服务开始时间',
service_end_time varchar(64) not null comment '每日服务结束时间',
hospital_name varchar(255) not null comment '医院名称',
......@@ -382,6 +382,20 @@ create table `pms_order_picture`
primary key (`id`)
) engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci comment='订单图片表';
drop table if exists `pms_order_operation`;
create table `pms_order_operation`
(
id int(11) auto_increment not null comment 'Id',
order_id int(11) not null comment '订单id',
order_no varchar(255) not null comment '订单号',
operate_info varchar(512) not null comment '订单操作变更',
editor_id int(11) not null default 1 comment '操作人Id',
editor_name varchar(255) not null default 'admin' comment '操作人',
create_time datetime not null default CURRENT_TIMESTAMP comment '创建时间',
update_time datetime not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '更新时间',
primary key (`id`)
) engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci comment='订单操作变更记录表';
drop table if exists `pms_order_appraise`;
create table `pms_order_appraise`
(
......@@ -418,7 +432,7 @@ create table `pms_prescription_order_record`
order_id int(11) not null comment '订单id',
order_no varchar(255) not null comment '订单号',
prescription_introduce varchar(255) not null comment '处方说明',
prescription_image varchar(255) not null comment '处方图片',
r varchar(255) not null comment '处方图片',
editor_id int(11) not null default 1 comment '操作人Id',
editor_name varchar(255) not null default 'admin' comment '操作人',
create_time datetime not null default CURRENT_TIMESTAMP comment '创建时间',
......@@ -639,6 +653,9 @@ create index ix_order_type on `pms_order` (order_type);
create index ix_order_no on `pms_order_picture` (order_no);
create index ix_order_no on `pms_order_operation` (order_no);
create index ix_order_no on `pms_order_appraise` (order_no);
......
......@@ -58,7 +58,7 @@
left join pms_order o on o.doctor_id = di.id
left join pms_doctor_service_info s on s.doctor_id = di.id
left join pms_user_attention_info ua on ua.doctor_id = di.id
where di.doctor_state = 'NORMAL' and s.service_name = 'ONLINE_INQUIRY'
where di.doctor_state = 'NORMAL' and s.service_name = 'ONLINE_INQUIRY' and pmq.audit_state = 'AUDIT_SUCCESS'
<if test="sickness != null and sickness != ''">
AND di.expertise_area LIKE CONCAT('%', #{sickness}, '%')
</if>
......@@ -70,4 +70,26 @@
</if>
GROUP BY di.doctor_name, h.hospital_name, d.department_name, di.expertise_area, di.introduction, pmq.title, u.avatar, s.service_price
</select>
<!-- 小程序查询医生详情 -->
<select id="queryDoctorDetail" resultType="com.xwd.hospital.server.dto.DoctorInfoDto">
select
di.doctor_name,
h.hospital_name,
d.department_name,
di.expertise_area,
di.introduction,
pmq.title,
u.avatar,
count(o.id) as orderCount,
count(ua.id) as fansCount
from pms_doctor_info di
inner join pms_medical_qualifications pmq on di.medical_qualification_id = pmq.id
inner join pms_hospital_info h on h.id = pmq.hospital_id
inner join pms_department_info d on d.id = pmq.department_id
inner join sys_user u on di.user_id = u.id
left join pms_order o on o.doctor_id = di.id
left join pms_user_attention_info ua on ua.doctor_id = di.id
where di.id = #{doctorId}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xwd.hospital.server.repository.OrderOperationMapper">
<resultMap id="ResultMap" type="com.xwd.hospital.server.domain.OrderOperation" extends="com.xwd.hospital.server.repository.base.OrderOperationBaseMapper.ResultMap">
</resultMap>
<resultMap id="ListResultMap" type="com.xwd.hospital.server.domain.OrderOperation" extends="com.xwd.hospital.server.repository.base.OrderOperationBaseMapper.BaseResultMap">
</resultMap>
<!-- 根据主键查询 -->
<select id="selectById" parameterType="java.io.Serializable" resultMap="ResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.OrderOperationBaseMapper.Base_Column_List_Full" />
from pms_order_operation
where id = #{id}
</select>
<!-- 根据Wrapper查询 -->
<select id="selectOne" resultMap="ResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.OrderOperationBaseMapper.Base_Column_List_Full" />
from pms_order_operation
${ew.customSqlSegment}
LIMIT 1
</select>
<!-- 根据Wrapper查询 -->
<select id="selectPage" resultMap="ListResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.OrderOperationBaseMapper.Base_Column_List" />
from pms_order_operation
${ew.customSqlSegment}
</select>
<!-- 根据Wrapper查询 -->
<select id="selectList" resultMap="ResultMap">
select
<include refid="com.xwd.hospital.server.repository.base.OrderOperationBaseMapper.Base_Column_List_Full" />
from pms_order_operation
${ew.customSqlSegment}
</select>
</mapper>
......@@ -26,7 +26,7 @@
select="com.xwd.hospital.server.repository.UserMapper.selectById" />
<association column="medical_qualification_id" property="medicalQualification" javaType="com.xwd.hospital.server.domain.MedicalQualifications"
select="com.xwd.hospital.server.repository.MedicalQualificationsMapper.selectById" />
<association column="id" property="serviceInfoList" javaType="com.xwd.hospital.server.domain.DoctorServiceInfo"
<association column="id" property="serviceInfoList" javaType="list"
select="com.xwd.hospital.server.repository.DoctorServiceInfoMapper.selectByDoctorId"/>
</resultMap>
<sql id="Base_Column_List">
......
<?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.OrderOperationBaseMapper">
<resultMap id="BaseResultMap" type="com.xwd.hospital.server.domain.OrderOperation">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="order_id" jdbcType="BIGINT" property="orderId" />
<result column="order_no" jdbcType="VARCHAR" property="orderNo" />
<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.OrderOperation" extends="BaseResultMap">
<result column="operate_info" jdbcType="VARCHAR" property="operateInfo" />
<association column="order_id" property="order" javaType="com.xwd.hospital.server.domain.Order"
select="com.xwd.hospital.server.repository.OrderMapper.selectById" />
</resultMap>
<sql id="Base_Column_List">
`id`, `order_id`, `order_no`, `editor_id`, `editor_name`, `create_time`, `update_time`
</sql>
<sql id="Base_Column_List_With_Prefix">
t.`id`, t.`order_id`, t.`order_no`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql>
<sql id="Base_Column_List_Full">
`id`, `order_id`, `order_no`, `operate_info`, `editor_id`, `editor_name`, `create_time`, `update_time`
</sql>
<sql id="Base_Column_List_Full_With_Prefix">
t.`id`, t.`order_id`, t.`order_no`, t.`operate_info`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql>
<insert id="batchInsert">
insert into pms_order_operation (
`order_id`, `order_no`, `operate_info`, `editor_id`, `editor_name`
)
values
<foreach collection="records" item="record" separator=",">
(
#{record.orderId, jdbcType=BIGINT}, #{record.orderNo, jdbcType=VARCHAR}, #{record.operateInfo, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR}
)
</foreach>
</insert>
<update id="updateAllFieldsById" parameterType="com.xwd.hospital.server.domain.OrderOperation">
update pms_order_operation set
<trim suffixOverrides=",">
order_id = #{et.orderId, jdbcType=BIGINT},
order_no = #{et.orderNo, jdbcType=VARCHAR},
operate_info = #{et.operateInfo, jdbcType=VARCHAR},
editor_id = #{et.editorId, jdbcType=BIGINT},
editor_name = #{et.editorName, jdbcType=VARCHAR},
</trim>
where id = #{et.id}
</update>
</mapper>
......@@ -9,7 +9,8 @@
<result column="id_no" jdbcType="VARCHAR" property="idNo" />
<result column="born_date" jdbcType="VARCHAR" property="bornDate" />
<result column="phone_number" jdbcType="VARCHAR" property="phoneNumber" />
<result column="certificate_picture" jdbcType="VARCHAR" property="certificatePicture" />
<result column="id_card_picture_front" jdbcType="VARCHAR" property="idCardPictureFront" />
<result column="id_card_picture_back" jdbcType="VARCHAR" property="idCardPictureBack" />
<result column="personal_info_filled" jdbcType="VARCHAR" property="personalInfoFilled" />
<result column="delete_status" jdbcType="VARCHAR" property="deleteStatus" />
<result column="editor_id" jdbcType="BIGINT" property="editorId" />
......@@ -22,19 +23,19 @@
select="com.xwd.hospital.server.repository.UserMapper.selectById" />
</resultMap>
<sql id="Base_Column_List">
`id`, `user_id`, `name`, `sex`, `id_no`, `born_date`, `phone_number`, `certificate_picture`, `personal_info_filled`, `delete_status`, `editor_id`, `editor_name`, `create_time`, `update_time`
`id`, `user_id`, `name`, `sex`, `id_no`, `born_date`, `phone_number`, `id_card_picture_front`, `id_card_picture_back`, `personal_info_filled`, `delete_status`, `editor_id`, `editor_name`, `create_time`, `update_time`
</sql>
<sql id="Base_Column_List_With_Prefix">
t.`id`, t.`user_id`, t.`name`, t.`sex`, t.`id_no`, t.`born_date`, t.`phone_number`, t.`certificate_picture`, t.`personal_info_filled`, t.`delete_status`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
t.`id`, t.`user_id`, t.`name`, t.`sex`, t.`id_no`, t.`born_date`, t.`phone_number`, t.`id_card_picture_front`, t.`id_card_picture_back`, t.`personal_info_filled`, t.`delete_status`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql>
<insert id="batchInsert">
insert into pms_user_info (
`user_id`, `name`, `sex`, `id_no`, `born_date`, `phone_number`, `certificate_picture`, `personal_info_filled`, `delete_status`, `editor_id`, `editor_name`
`user_id`, `name`, `sex`, `id_no`, `born_date`, `phone_number`, `id_card_picture_front`, `id_card_picture_back`, `personal_info_filled`, `delete_status`, `editor_id`, `editor_name`
)
values
<foreach collection="records" item="record" separator=",">
(
#{record.userId, jdbcType=BIGINT}, #{record.name, jdbcType=VARCHAR}, #{record.sex, jdbcType=VARCHAR}, #{record.idNo, jdbcType=VARCHAR}, #{record.bornDate, jdbcType=VARCHAR}, #{record.phoneNumber, jdbcType=VARCHAR}, #{record.certificatePicture, jdbcType=VARCHAR}, #{record.personalInfoFilled, jdbcType=VARCHAR}, #{record.deleteStatus, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR}
#{record.userId, jdbcType=BIGINT}, #{record.name, jdbcType=VARCHAR}, #{record.sex, jdbcType=VARCHAR}, #{record.idNo, jdbcType=VARCHAR}, #{record.bornDate, jdbcType=VARCHAR}, #{record.phoneNumber, jdbcType=VARCHAR}, #{record.idCardPictureFront, jdbcType=VARCHAR}, #{record.idCardPictureBack, jdbcType=VARCHAR}, #{record.personalInfoFilled, jdbcType=VARCHAR}, #{record.deleteStatus, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR}
)
</foreach>
</insert>
......@@ -47,7 +48,8 @@
id_no = #{et.idNo, jdbcType=VARCHAR},
born_date = #{et.bornDate, jdbcType=VARCHAR},
phone_number = #{et.phoneNumber, jdbcType=VARCHAR},
certificate_picture = #{et.certificatePicture, jdbcType=VARCHAR},
id_card_picture_front = #{et.idCardPictureFront, jdbcType=VARCHAR},
id_card_picture_back = #{et.idCardPictureBack, jdbcType=VARCHAR},
personal_info_filled = #{et.personalInfoFilled, jdbcType=VARCHAR},
delete_status = #{et.deleteStatus, jdbcType=VARCHAR},
editor_id = #{et.editorId, jdbcType=BIGINT},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论