提交 e403d0df authored 作者: zhu's avatar zhu

1.develop

上级 bd4398c5
...@@ -44,6 +44,8 @@ public class SaTokenConfig implements WebMvcConfigurer { ...@@ -44,6 +44,8 @@ public class SaTokenConfig implements WebMvcConfigurer {
.excludePathPatterns("/v1/system/user/getPhoneNumber") .excludePathPatterns("/v1/system/user/getPhoneNumber")
.excludePathPatterns("/v1/system/sms/sendSms") .excludePathPatterns("/v1/system/sms/sendSms")
.excludePathPatterns("/v1/system/home/patientMiniAppHome") .excludePathPatterns("/v1/system/home/patientMiniAppHome")
.excludePathPatterns("/v1/system/payment/payNotify")
.excludePathPatterns("/v1/system/payment/refundNotify")
// swagger 放行 // swagger 放行
.excludePathPatterns("/webjars/**") .excludePathPatterns("/webjars/**")
.excludePathPatterns("/doc.html") .excludePathPatterns("/doc.html")
......
...@@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; ...@@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.xwd.hospital.server.base.BaseDomain; import com.xwd.hospital.server.base.BaseDomain;
import com.xwd.hospital.server.enums.SexTypeEnum; import com.xwd.hospital.server.enums.SexTypeEnum;
import com.xwd.hospital.server.enums.ReportStateEnum; import com.xwd.hospital.server.enums.ReportStateEnum;
import com.xwd.hospital.server.domain.DoctorInfo;
@Data @Data
@Builder(builderMethodName = "newBuilder") @Builder(builderMethodName = "newBuilder")
...@@ -99,6 +100,18 @@ public class MedicalReport extends BaseDomain { ...@@ -99,6 +100,18 @@ public class MedicalReport extends BaseDomain {
@TableField(value = "report_state") @TableField(value = "report_state")
@Schema(description = "影像报告状态", nullable = false) @Schema(description = "影像报告状态", nullable = false)
private ReportStateEnum reportState; private ReportStateEnum reportState;
/**
* 医生Id
*/
@TableField(value = "doctor_id")
@Schema(description = "医生Id")
private Long doctorId;
/**
* 医生Id
*/
@Schema(description = "医生Id")
@TableField(exist = false)
private DoctorInfo doctor;
/** /**
* 医生医嘱 * 医生医嘱
*/ */
...@@ -132,6 +145,9 @@ public class MedicalReport extends BaseDomain { ...@@ -132,6 +145,9 @@ public class MedicalReport extends BaseDomain {
@Schema(description = "更新时间", nullable = false) @Schema(description = "更新时间", nullable = false)
private java.util.Date updateTime; private java.util.Date updateTime;
@TableField(exist = false)
private List<String> pictureList;
/** /**
* 设置默认值 * 设置默认值
*/ */
......
...@@ -264,13 +264,18 @@ public class Order extends BaseDomain { ...@@ -264,13 +264,18 @@ public class Order extends BaseDomain {
/** /**
* 患者自述图片链接 * 患者自述图片链接
*/ */
@TableField(exist = false)
private List<String> pictureList; private List<String> pictureList;
/** /**
* 患者所提交的处方 * 患者所提交的处方
*/ */
@TableField(exist = false)
private PatientPrescriptionInfo patientPrescriptionInfo; private PatientPrescriptionInfo patientPrescriptionInfo;
@TableField(exist = false)
private PrescriptionOrderRecord prescriptionOrderRecord;
/** /**
* 设置默认值 * 设置默认值
*/ */
......
...@@ -110,6 +110,7 @@ public class PatientPrescriptionInfo extends BaseDomain { ...@@ -110,6 +110,7 @@ public class PatientPrescriptionInfo extends BaseDomain {
/** /**
* 图片列表 * 图片列表
*/ */
@TableField(exist = false)
private List<String> pictureList; private List<String> pictureList;
/** /**
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.xwd.hospital.server.enums.SexTypeEnum; import com.xwd.hospital.server.enums.SexTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.List; import java.util.List;
...@@ -58,6 +59,14 @@ public class ReportDto { ...@@ -58,6 +59,14 @@ public class ReportDto {
@Schema(description = "报告医生", nullable = false) @Schema(description = "报告医生", nullable = false)
private String reportDoctor; private String reportDoctor;
/**
* 报告时间
*/
@TableField(value = "report_time")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@Schema(description = "报告时间", nullable = false)
private java.util.Date reportTime;
private List<String> pictureList; private List<String> pictureList;
} }
...@@ -22,6 +22,6 @@ import com.xwd.hospital.server.repository.base.MedicalReportPictureBaseMapper; ...@@ -22,6 +22,6 @@ import com.xwd.hospital.server.repository.base.MedicalReportPictureBaseMapper;
@Repository @Repository
public interface MedicalReportPictureMapper extends MedicalReportPictureBaseMapper { public interface MedicalReportPictureMapper extends MedicalReportPictureBaseMapper {
List<String> selectByReportId(Long reportId);
} }
...@@ -24,6 +24,7 @@ import com.xwd.hospital.server.base.BaseController; ...@@ -24,6 +24,7 @@ import com.xwd.hospital.server.base.BaseController;
import com.xwd.hospital.server.domain.User; import com.xwd.hospital.server.domain.User;
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.enums.OrderTypeEnum;
import com.xwd.hospital.server.rest.res.ApiCode; import com.xwd.hospital.server.rest.res.ApiCode;
import com.xwd.hospital.server.domain.Order; import com.xwd.hospital.server.domain.Order;
import com.xwd.hospital.server.rest.req.OrderParam; import com.xwd.hospital.server.rest.req.OrderParam;
...@@ -89,6 +90,15 @@ public class OrderController extends BaseController<OrderService, Order, OrderPa ...@@ -89,6 +90,15 @@ public class OrderController extends BaseController<OrderService, Order, OrderPa
return ApiResponse.ok(this.service.saveBatch(entityList)); return ApiResponse.ok(this.service.saveBatch(entityList));
} }
@Override
@GetMapping("/{id}")
@Operation(summary = "通过主键查询")
@ApiCommon
public ApiResponse<Order> selectByPrimaryKey(@PathVariable("id") Long id) {
return ApiResponse.ok(this.service.queryOrderById(id));
}
/** /**
* 小程序端订单列表 * 小程序端订单列表
* *
......
...@@ -3,6 +3,7 @@ package com.xwd.hospital.server.rest; ...@@ -3,6 +3,7 @@ package com.xwd.hospital.server.rest;
import com.xwd.hospital.server.annotation.ApiCommon; import com.xwd.hospital.server.annotation.ApiCommon;
import com.xwd.hospital.server.enums.PayPathEnum; import com.xwd.hospital.server.enums.PayPathEnum;
import com.xwd.hospital.server.rest.res.ApiResponse; import com.xwd.hospital.server.rest.res.ApiResponse;
import com.xwd.hospital.server.rest.thirdPartReq.PayReq;
import com.xwd.hospital.server.service.PaymentService; import com.xwd.hospital.server.service.PaymentService;
import com.xwd.hospital.server.service.SmsService; import com.xwd.hospital.server.service.SmsService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
...@@ -11,10 +12,7 @@ import jakarta.annotation.Resource; ...@@ -11,10 +12,7 @@ import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@RestController @RestController
...@@ -32,9 +30,9 @@ public class PaymentController { ...@@ -32,9 +30,9 @@ public class PaymentController {
@Operation(summary = "支付行为调起") @Operation(summary = "支付行为调起")
@PostMapping("/startPay") @PostMapping("/startPay")
@ApiCommon @ApiCommon
public ApiResponse startPay(@RequestParam("orderNo") String orderNo,@RequestParam("payPath") PayPathEnum payPath) { public ApiResponse startPay(@RequestBody PayReq payReq) {
return ApiResponse.ok(paymentService.startPay(orderNo, payPath)); return ApiResponse.ok(paymentService.startPay(payReq.getOrderNo(), payReq.getPayPath()));
} }
/** /**
......
...@@ -110,6 +110,11 @@ public class MedicalReportParam extends BaseParam<MedicalReport> { ...@@ -110,6 +110,11 @@ public class MedicalReportParam extends BaseParam<MedicalReport> {
*/ */
@Parameter(description = "影像报告状态 IN值List") @Parameter(description = "影像报告状态 IN值List")
private List<String> reportStateList; private List<String> reportStateList;
/**
* 医生Id
*/
@Parameter(description = "医生Id")
private Long doctorId;
/** /**
* 医生医嘱 * 医生医嘱
*/ */
...@@ -253,6 +258,7 @@ public class MedicalReportParam extends BaseParam<MedicalReport> { ...@@ -253,6 +258,7 @@ public class MedicalReportParam extends BaseParam<MedicalReport> {
wrapper.lt(this.getReportTimeTo() != null, columnPrefix + "report_time", this.getReportTimeTo()); wrapper.lt(this.getReportTimeTo() != null, columnPrefix + "report_time", this.getReportTimeTo());
wrapper.eq(this.getReportState() != null, columnPrefix + "report_state", this.getReportState()); wrapper.eq(this.getReportState() != null, columnPrefix + "report_state", this.getReportState());
wrapper.in(this.getReportStateList() != null && this.getReportStateList().size() > 0, columnPrefix + "report_state", this.getReportStateList()); wrapper.in(this.getReportStateList() != null && this.getReportStateList().size() > 0, columnPrefix + "report_state", this.getReportStateList());
wrapper.eq(this.getDoctorId() != null, columnPrefix + "doctor_id", this.getDoctorId());
if (this.getDoctorAsks() != null) { if (this.getDoctorAsks() != null) {
if (this.getDoctorAsks().startsWith("%") && this.getDoctorAsks().endsWith("%")) { if (this.getDoctorAsks().startsWith("%") && this.getDoctorAsks().endsWith("%")) {
wrapper.like(columnPrefix + "doctor_asks", this.getDoctorAsks().substring(1, this.getDoctorAsks().length() - 1)); wrapper.like(columnPrefix + "doctor_asks", this.getDoctorAsks().substring(1, this.getDoctorAsks().length() - 1));
......
package com.xwd.hospital.server.rest.thirdPartReq;
import com.xwd.hospital.server.enums.PayPathEnum;
import lombok.Data;
@Data
public class PayReq {
private String orderNo;
private PayPathEnum payPath;
}
...@@ -21,6 +21,8 @@ import org.springframework.data.domain.jaxb.SpringDataJaxb; ...@@ -21,6 +21,8 @@ import org.springframework.data.domain.jaxb.SpringDataJaxb;
public interface OrderService extends BaseService<Order> { public interface OrderService extends BaseService<Order> {
Order queryOrderById(Long id);
IPage<OrderDto> queryOrderListForMiniApp(Page page, OrderStateEnum state); IPage<OrderDto> queryOrderListForMiniApp(Page page, OrderStateEnum state);
Order createOrder(CreateOrderDto createOrderDto); Order createOrder(CreateOrderDto createOrderDto);
......
...@@ -66,6 +66,7 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M ...@@ -66,6 +66,7 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M
medicalReport.setSex(dto.getSex()); medicalReport.setSex(dto.getSex());
medicalReport.setReportItem(dto.getReportItem()); medicalReport.setReportItem(dto.getReportItem());
medicalReport.setReportDeclare(dto.getReportDeclare()); medicalReport.setReportDeclare(dto.getReportDeclare());
medicalReport.setReportTime(dto.getReportTime());
this.save(medicalReport); this.save(medicalReport);
if(null != dto.getPictureList() if(null != dto.getPictureList()
......
...@@ -64,6 +64,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -64,6 +64,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
private SettingService settingService; private SettingService settingService;
@Resource @Resource
private OrderPayService orderPayService; private OrderPayService orderPayService;
@Resource
private PaymentService paymentService;
@Override @Override
public int updateAllFieldsById(Order entity) { public int updateAllFieldsById(Order entity) {
...@@ -84,6 +86,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -84,6 +86,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
return executeBatch(entityList, batchSize, (sqlSession, entity) -> sqlSession.insert(sqlStatement, entity)); return executeBatch(entityList, batchSize, (sqlSession, entity) -> sqlSession.insert(sqlStatement, entity));
} }
@Override
public Order queryOrderById(Long id) {
Order order = this.getBaseMapper().selectById(id);
if(order.getOrderType() == OrderTypeEnum.PRESCRIPTION){
PrescriptionOrderRecord record = prescriptionOrderRecordService.getOne(Wrappers.<PrescriptionOrderRecord>query().eq("order_id", order.getId()));
if (null != record){
order.setPrescriptionOrderRecord(record);
}
}
return order;
}
@Override @Override
public IPage<OrderDto> queryOrderListForMiniApp(Page page,OrderStateEnum param) { public IPage<OrderDto> queryOrderListForMiniApp(Page page,OrderStateEnum param) {
...@@ -291,7 +304,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -291,7 +304,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
Order order = this.getOne(Wrappers.<Order>query().eq("order_no", 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); order.setOrderState(OrderStateEnum.CANCELED);
this.save(order); this.saveOrUpdate(order);
//优惠券是否返回 //优惠券是否返回
//查询优惠券 //查询优惠券
...@@ -303,7 +316,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -303,7 +316,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
&& currentDate.before(userCouponInfo.getCouponEndDate())){ && currentDate.before(userCouponInfo.getCouponEndDate())){
userCouponInfo.setCouponUseState(CouponUseStateEnum.USEABLE); userCouponInfo.setCouponUseState(CouponUseStateEnum.USEABLE);
userCouponInfo.setEditorId(1L); userCouponInfo.setEditorId(1L);
userCouponInfoService.save(userCouponInfo); userCouponInfoService.saveOrUpdate(userCouponInfo);
} }
} }
} }
...@@ -323,7 +336,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -323,7 +336,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if(order.getOrderState() == OrderStateEnum.TO_CONFIRM){ if(order.getOrderState() == OrderStateEnum.TO_CONFIRM){
order.setOrderState(OrderStateEnum.REJECTED); order.setOrderState(OrderStateEnum.REJECTED);
order.setCancelReason(rejectOrderDto.getReason()); order.setCancelReason(rejectOrderDto.getReason());
this.save(order); this.saveOrUpdate(order);
//优惠券是否返回 //优惠券是否返回
if(null != order.getUserCouponId()){ if(null != order.getUserCouponId()){
...@@ -336,10 +349,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -336,10 +349,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
//优惠券状态设置为可用 //优惠券状态设置为可用
userCouponInfo.setCouponUseState(CouponUseStateEnum.USEABLE); userCouponInfo.setCouponUseState(CouponUseStateEnum.USEABLE);
userCouponInfo.setEditorId(1L); userCouponInfo.setEditorId(1L);
userCouponInfoService.save(userCouponInfo); userCouponInfoService.saveOrUpdate(userCouponInfo);
} }
} }
} }
//todo 全额退款
paymentService.refundPay(order.getOrderNo());
return order; return order;
} }
...@@ -348,7 +363,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -348,7 +363,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
* @param orderNo * @param orderNo
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public Order acceptOrder(String orderNo) { public Order acceptOrder(String orderNo) {
//修改订单状态 //修改订单状态
...@@ -356,7 +370,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -356,7 +370,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if(order.getOrderState() == OrderStateEnum.TO_CONFIRM){ if(order.getOrderState() == OrderStateEnum.TO_CONFIRM){
order.setOrderState(OrderStateEnum.IN_SERVICE); order.setOrderState(OrderStateEnum.IN_SERVICE);
order.setConfirmTime(new Date()); order.setConfirmTime(new Date());
this.save(order); this.saveOrUpdate(order);
} }
return order; return order;
...@@ -454,7 +468,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -454,7 +468,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if(order.getOrderState() == OrderStateEnum.IN_SERVICE){ if(order.getOrderState() == OrderStateEnum.IN_SERVICE){
order.setOrderState(OrderStateEnum.COMPLETED); order.setOrderState(OrderStateEnum.COMPLETED);
order.setCompleteTime(new Date()); order.setCompleteTime(new Date());
this.save(order); this.saveOrUpdate(order);
} }
return order; return order;
} }
......
package com.xwd.hospital.server.service.impl; package com.xwd.hospital.server.service.impl;
import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import com.wechat.pay.java.core.exception.HttpException; import com.wechat.pay.java.core.exception.HttpException;
import com.wechat.pay.java.core.exception.MalformedMessageException; import com.wechat.pay.java.core.exception.MalformedMessageException;
import com.wechat.pay.java.core.exception.ServiceException; import com.wechat.pay.java.core.exception.ServiceException;
import com.wechat.pay.java.core.exception.ValidationException;
import com.wechat.pay.java.core.notification.NotificationConfig; import com.wechat.pay.java.core.notification.NotificationConfig;
import com.wechat.pay.java.core.notification.NotificationParser; import com.wechat.pay.java.core.notification.NotificationParser;
import com.wechat.pay.java.core.notification.RequestParam; import com.wechat.pay.java.core.notification.RequestParam;
import com.wechat.pay.java.service.payments.jsapi.JsapiService;
import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension; import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension;
import com.wechat.pay.java.service.payments.jsapi.model.*; import com.wechat.pay.java.service.payments.jsapi.model.*;
import com.wechat.pay.java.service.payments.jsapi.model.Amount; import com.wechat.pay.java.service.payments.jsapi.model.Amount;
import com.wechat.pay.java.service.payments.model.Transaction; import com.wechat.pay.java.service.payments.model.Transaction;
import com.wechat.pay.java.service.payments.nativepay.NativePayService;
import com.wechat.pay.java.service.refund.RefundService; import com.wechat.pay.java.service.refund.RefundService;
import com.wechat.pay.java.service.refund.model.*; import com.wechat.pay.java.service.refund.model.*;
import com.xwd.hospital.server.domain.Order; import com.xwd.hospital.server.domain.Order;
...@@ -26,6 +22,7 @@ import com.xwd.hospital.server.enums.OrderStateEnum; ...@@ -26,6 +22,7 @@ import com.xwd.hospital.server.enums.OrderStateEnum;
import com.xwd.hospital.server.enums.PayPathEnum; import com.xwd.hospital.server.enums.PayPathEnum;
import com.xwd.hospital.server.enums.PayStateEnum; import com.xwd.hospital.server.enums.PayStateEnum;
import com.xwd.hospital.server.enums.RefundStateEnum; import com.xwd.hospital.server.enums.RefundStateEnum;
import com.xwd.hospital.server.repository.OrderMapper;
import com.xwd.hospital.server.service.OrderPayService; import com.xwd.hospital.server.service.OrderPayService;
import com.xwd.hospital.server.service.OrderRefundService; import com.xwd.hospital.server.service.OrderRefundService;
import com.xwd.hospital.server.service.OrderService; import com.xwd.hospital.server.service.OrderService;
...@@ -37,8 +34,6 @@ import jakarta.servlet.http.HttpServletResponse; ...@@ -37,8 +34,6 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -46,7 +41,6 @@ import java.io.BufferedReader; ...@@ -46,7 +41,6 @@ import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Wrapper;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
...@@ -61,7 +55,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -61,7 +55,7 @@ public class PaymentServiceImpl implements PaymentService {
public static RefundService refundService; public static RefundService refundService;
@Resource @Resource
private OrderService orderService; private OrderMapper orderMapper;
@Resource @Resource
private OrderPayService orderPayService; private OrderPayService orderPayService;
@Resource @Resource
...@@ -111,7 +105,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -111,7 +105,7 @@ public class PaymentServiceImpl implements PaymentService {
// 初始化服务 // 初始化服务
payService = new JsapiServiceExtension.Builder().config(config).build(); payService = new JsapiServiceExtension.Builder().config(config).build();
Order order = orderService.getOne(Wrappers.<Order>query().eq("order_no", orderNo)); Order order = orderMapper.selectOne(Wrappers.<Order>query().eq("order_no", orderNo));
if(order.getOrderState() != OrderStateEnum.TO_PAY){ if(order.getOrderState() != OrderStateEnum.TO_PAY){
return null; return null;
} }
...@@ -142,7 +136,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -142,7 +136,7 @@ public class PaymentServiceImpl implements PaymentService {
return response; return response;
} catch (Exception e) { // 发送HTTP请求失败 } catch (Exception e) { // 发送HTTP请求失败
// 调用e.getHttpRequest()获取请求打印日志或上报监控,更多方法见HttpException定义 // 调用e.getHttpRequest()获取请求打印日志或上报监控,更多方法见HttpException定义
log.error(e.getMessage()); log.error("微信退款接口 failed", e.getMessage());
} }
}else if(payPath.equals(PayPathEnum.ALI_PAY)){ }else if(payPath.equals(PayPathEnum.ALI_PAY)){
...@@ -152,6 +146,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -152,6 +146,7 @@ public class PaymentServiceImpl implements PaymentService {
@Override @Override
public void payNotify(HttpServletRequest request, HttpServletResponse response) { public void payNotify(HttpServletRequest request, HttpServletResponse response) {
log.info("微信支付回调开始:----------------------------------");
//获取报文 //获取报文
String requestBody = getRequestBody(request); String requestBody = getRequestBody(request);
//随机串 //随机串
...@@ -193,7 +188,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -193,7 +188,7 @@ public class PaymentServiceImpl implements PaymentService {
//记录日志信息 //记录日志信息
Transaction.TradeStateEnum state = transaction.getTradeState(); Transaction.TradeStateEnum state = transaction.getTradeState();
if (!StringUtils.equals("SUCCESS", state.toString())) { if (!StringUtils.equals("SUCCESS", state.toString())) {
log.error("微信回调失败,JsapiPayController.payNotify.transaction:{}",transaction.toString()); log.error("微信支付回调失败,JsapiPayController.payNotify.transaction:{}",transaction.toString());
//通知微信回调失败 //通知微信回调失败
response.getWriter().write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>"); response.getWriter().write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
}else { }else {
...@@ -204,23 +199,25 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -204,23 +199,25 @@ public class PaymentServiceImpl implements PaymentService {
orderPay.setPayTime(new Date()); orderPay.setPayTime(new Date());
orderPayService.saveOrUpdate(orderPay); orderPayService.saveOrUpdate(orderPay);
Order order = orderService.getById(orderPay.getOrderId()); Order order = orderMapper.selectById(orderPay.getOrderId());
order.setOrderState(OrderStateEnum.TO_CONFIRM); order.setOrderState(OrderStateEnum.TO_CONFIRM);
order.setPayTime(new Date()); order.setPayTime(new Date());
orderService.saveOrUpdate(order); orderMapper.updateById(order);
log.info("微信支付回调成功:------------------------pay_no:{}",outTradeNo);
log.info("微信支付回调成功:------------------------order_no:{}",order.getOrderNo());
response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>"); response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
} }
} catch (Exception e) { } catch (Exception e) {
// 验证失败 // 验证失败
log.error("wxPay notify failed", e); log.error("微信支付回调 failed", e.getMessage());
} }
} }
@Override @Override
public void refundNotify(HttpServletRequest request, HttpServletResponse response) { public void refundNotify(HttpServletRequest request, HttpServletResponse response) {
log.info("微信退款回调开始:----------------------------------");
//获取报文 //获取报文
String requestBody = getRequestBody(request); String requestBody = getRequestBody(request);
//随机串 //随机串
...@@ -263,7 +260,7 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -263,7 +260,7 @@ public class PaymentServiceImpl implements PaymentService {
//记录日志信息 //记录日志信息
Status status = refundNotification.getRefundStatus(); Status status = refundNotification.getRefundStatus();
if (!StringUtils.equals("SUCCESS", status.toString())) { if (!StringUtils.equals("SUCCESS", status.toString())) {
log.error("微信回调失败,JsapiPayController.refundNotification:{}",refundNotification.toString()); log.error("微信退款回调失败,JsapiPayController.refundNotification:{}",refundNotification.toString());
//通知微信回调失败 //通知微信回调失败
response.getWriter().write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>"); response.getWriter().write("<xml><return_code><![CDATA[FAIL]]></return_code></xml>");
}else { }else {
...@@ -273,13 +270,14 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -273,13 +270,14 @@ public class PaymentServiceImpl implements PaymentService {
orderRefund.setRefundState(RefundStateEnum.REFUNDED); orderRefund.setRefundState(RefundStateEnum.REFUNDED);
orderRefund.setRefundTime(new Date()); orderRefund.setRefundTime(new Date());
orderRefundService.saveOrUpdate(orderRefund); orderRefundService.saveOrUpdate(orderRefund);
log.info("微信退款回调成功:------------------------refund_no:{}",refundNo);
response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>"); response.getWriter().write("<xml><return_code><![CDATA[SUCCESS]]></return_code></xml>");
} }
} catch (Exception e) { } catch (Exception e) {
// 验证失败 // 验证失败
log.error("wxPay notify failed", e); log.error("微信退款回调 failed", e.getMessage());
} }
} }
...@@ -308,17 +306,14 @@ public class PaymentServiceImpl implements PaymentService { ...@@ -308,17 +306,14 @@ public class PaymentServiceImpl implements PaymentService {
orderRefund.setRefundMoney(orderPay.getPayMoney()); orderRefund.setRefundMoney(orderPay.getPayMoney());
orderRefund.setRefundTime(new Date()); orderRefund.setRefundTime(new Date());
orderRefundService.save(orderRefund); orderRefundService.save(orderRefund);
// ... 调用接口
try { try {
//调用接口
Refund response = refundCreate(orderRefund,orderPay.getPayNo()); Refund response = refundCreate(orderRefund,orderPay.getPayNo());
} catch (HttpException e) { // 发送HTTP请求失败 } catch (Exception e) { // 发送HTTP请求失败
// 调用e.getHttpRequest()获取请求打印日志或上报监控,更多方法见HttpException定义 log.error("微信退款接口 failed", e.getMessage());
} catch (ServiceException e) { // 服务返回状态小于200或大于等于300,例如500
// 调用e.getResponseBody()获取返回体打印日志或上报监控,更多方法见ServiceException定义
} catch (MalformedMessageException e) { // 服务返回成功,返回体类型不合法,或者解析返回体失败
// 调用e.getMessage()获取信息打印日志或上报监控,更多方法见MalformedMessageException定义
} }
} }
/** /**
......
...@@ -26,8 +26,8 @@ wx: ...@@ -26,8 +26,8 @@ wx:
token: #微信小程序消息服务器配置的token token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON msgDataFormat: JSON
- appid: wxc447fccb6a2745ce - appid: wx885ac8ebbff64434
secret: af277a664613a2276266eca024bff139 secret: 3b37dc2e14fe068e984bd7b7158e18ba
token: #微信小程序消息服务器配置的token token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON msgDataFormat: JSON
...@@ -38,8 +38,8 @@ pay: ...@@ -38,8 +38,8 @@ pay:
keyPath: /Users/zhuweidong/Documents/xinwangdao/1535738101_20231012_cert/apiclient_key.pem keyPath: /Users/zhuweidong/Documents/xinwangdao/1535738101_20231012_cert/apiclient_key.pem
merchantSerialNumber: 52849767F52ACCC2743E0C5439F3EAFA816FA1D7 merchantSerialNumber: 52849767F52ACCC2743E0C5439F3EAFA816FA1D7
apiV3Key: YG1e4n9oBPhuuYZaP7arXy232ejma6FW apiV3Key: YG1e4n9oBPhuuYZaP7arXy232ejma6FW
payNotifyUrl: http://112.134.24.1:8080/pay/notify payNotifyUrl: http://175.24.172.212:8099/v1/system/payment/payNotify
refundNotifyUrl: http://112.134.24.1:8080/pay/refund/notify refundNotifyUrl: http://175.24.172.212:8099/v1/system/payment/refundNotify
tencent: tencent:
cloud: cloud:
secretId: AKIDZzDD2e4IURBhy2sUrzsXxXu4zf7LL7ex secretId: AKIDZzDD2e4IURBhy2sUrzsXxXu4zf7LL7ex
......
...@@ -26,8 +26,8 @@ wx: ...@@ -26,8 +26,8 @@ wx:
token: #微信小程序消息服务器配置的token token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON msgDataFormat: JSON
- appid: wxc447fccb6a2745ce - appid: wx885ac8ebbff64434
secret: af277a664613a2276266eca024bff139 secret: 3b37dc2e14fe068e984bd7b7158e18ba
token: #微信小程序消息服务器配置的token token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON msgDataFormat: JSON
...@@ -38,8 +38,8 @@ pay: ...@@ -38,8 +38,8 @@ pay:
keyPath: /home/ubuntu/1535738101_20231012_cert/apiclient_key.pem keyPath: /home/ubuntu/1535738101_20231012_cert/apiclient_key.pem
merchantSerialNumber: 52849767F52ACCC2743E0C5439F3EAFA816FA1D7 merchantSerialNumber: 52849767F52ACCC2743E0C5439F3EAFA816FA1D7
apiV3Key: YG1e4n9oBPhuuYZaP7arXy232ejma6FW apiV3Key: YG1e4n9oBPhuuYZaP7arXy232ejma6FW
payNotifyUrl: http://175.24.172.212:8099/pay/notify payNotifyUrl: http://175.24.172.212:8099/v1/system/payment/payNotify
refundNotifyUrl: http://175.24.172.212:8099/pay/refund/notify refundNotifyUrl: http://175.24.172.212:8099/v1/system/payment/refundNotify
tencent: tencent:
cloud: cloud:
secretId: AKIDZzDD2e4IURBhy2sUrzsXxXu4zf7LL7ex secretId: AKIDZzDD2e4IURBhy2sUrzsXxXu4zf7LL7ex
......
...@@ -210,6 +210,7 @@ create table `pms_medical_report` ...@@ -210,6 +210,7 @@ create table `pms_medical_report`
report_doctor varchar(255) not null comment '报告医生', report_doctor varchar(255) not null comment '报告医生',
report_time datetime not null comment '报告时间', report_time datetime not null comment '报告时间',
report_state varchar(50) not null default 'TO_INTERPRET' comment '影像报告状态 [TO_INTERPRET.待解读 INTERPRETED.已解读 CONFIRMED.已确认]', report_state varchar(50) not null default 'TO_INTERPRET' comment '影像报告状态 [TO_INTERPRET.待解读 INTERPRETED.已解读 CONFIRMED.已确认]',
doctor_id int(11) null comment '医生Id',
doctor_asks varchar(512) null comment '医生医嘱', doctor_asks varchar(512) null comment '医生医嘱',
editor_id int(11) not null default 1 comment '操作人Id', editor_id int(11) not null default 1 comment '操作人Id',
editor_name varchar(255) not null default 'admin' comment '操作人', editor_name varchar(255) not null default 'admin' comment '操作人',
......
...@@ -36,4 +36,11 @@ ...@@ -36,4 +36,11 @@
from pms_medical_report_picture from pms_medical_report_picture
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="selectByReportId" resultType="string">
select
report_picture
from pms_medical_report_picture
where medical_report_id = #{reportId}
</select>
</mapper> </mapper>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
INNER JOIN pms_medical_qualifications pmq on pmq.doctor_id = di.id INNER JOIN pms_medical_qualifications pmq on pmq.doctor_id = di.id
INNER JOIN pms_department_info pdi on pdi.id = pmq.department_id INNER JOIN pms_department_info pdi on pdi.id = pmq.department_id
INNER JOIN sys_user su on su.obj_id = di.id INNER JOIN sys_user su on su.obj_id = di.id
WHERE di.id = (select a.doctorId FROM WHERE di.id in (select a.doctorId FROM
(SELECT count(o.id) orderNum, o.doctor_id doctorId (SELECT count(o.id) orderNum, o.doctor_id doctorId
FROM pms_order o FROM pms_order o
WHERE 1=1 GROUP BY o.doctor_id ORDER BY orderNum desc LIMIT 3) a) WHERE 1=1 GROUP BY o.doctor_id ORDER BY orderNum desc LIMIT 3) a)
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<result column="report_doctor" jdbcType="VARCHAR" property="reportDoctor" /> <result column="report_doctor" jdbcType="VARCHAR" property="reportDoctor" />
<result column="report_time" jdbcType="TIMESTAMP" property="reportTime" /> <result column="report_time" jdbcType="TIMESTAMP" property="reportTime" />
<result column="report_state" jdbcType="VARCHAR" property="reportState" /> <result column="report_state" jdbcType="VARCHAR" property="reportState" />
<result column="doctor_id" jdbcType="BIGINT" property="doctorId" />
<result column="editor_id" jdbcType="BIGINT" property="editorId" /> <result column="editor_id" jdbcType="BIGINT" property="editorId" />
<result column="editor_name" jdbcType="VARCHAR" property="editorName" /> <result column="editor_name" jdbcType="VARCHAR" property="editorName" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
...@@ -20,27 +21,31 @@ ...@@ -20,27 +21,31 @@
<result column="report_item" jdbcType="VARCHAR" property="reportItem" /> <result column="report_item" jdbcType="VARCHAR" property="reportItem" />
<result column="report_declare" jdbcType="VARCHAR" property="reportDeclare" /> <result column="report_declare" jdbcType="VARCHAR" property="reportDeclare" />
<result column="doctor_asks" jdbcType="VARCHAR" property="doctorAsks" /> <result column="doctor_asks" jdbcType="VARCHAR" property="doctorAsks" />
<association column="doctor_id" property="doctor" javaType="com.xwd.hospital.server.domain.DoctorInfo"
select="com.xwd.hospital.server.repository.DoctorInfoMapper.selectById" />
<collection column="id" property="pictureList" javaType="list"
select="com.xwd.hospital.server.repository.MedicalReportPictureMapper.selectByReportId" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
`id`, `patient_name`, `patient_id_no`, `sex`, `age`, `report_hospital`, `report_doctor`, `report_time`, `report_state`, `editor_id`, `editor_name`, `create_time`, `update_time` `id`, `patient_name`, `patient_id_no`, `sex`, `age`, `report_hospital`, `report_doctor`, `report_time`, `report_state`, `doctor_id`, `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.`patient_name`, t.`patient_id_no`, t.`sex`, t.`age`, t.`report_hospital`, t.`report_doctor`, t.`report_time`, t.`report_state`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time` t.`id`, t.`patient_name`, t.`patient_id_no`, t.`sex`, t.`age`, t.`report_hospital`, t.`report_doctor`, t.`report_time`, t.`report_state`, t.`doctor_id`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql> </sql>
<sql id="Base_Column_List_Full"> <sql id="Base_Column_List_Full">
`id`, `patient_name`, `patient_id_no`, `sex`, `age`, `report_item`, `report_declare`, `report_hospital`, `report_doctor`, `report_time`, `report_state`, `doctor_asks`, `editor_id`, `editor_name`, `create_time`, `update_time` `id`, `patient_name`, `patient_id_no`, `sex`, `age`, `report_item`, `report_declare`, `report_hospital`, `report_doctor`, `report_time`, `report_state`, `doctor_id`, `doctor_asks`, `editor_id`, `editor_name`, `create_time`, `update_time`
</sql> </sql>
<sql id="Base_Column_List_Full_With_Prefix"> <sql id="Base_Column_List_Full_With_Prefix">
t.`id`, t.`patient_name`, t.`patient_id_no`, t.`sex`, t.`age`, t.`report_item`, t.`report_declare`, t.`report_hospital`, t.`report_doctor`, t.`report_time`, t.`report_state`, t.`doctor_asks`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time` t.`id`, t.`patient_name`, t.`patient_id_no`, t.`sex`, t.`age`, t.`report_item`, t.`report_declare`, t.`report_hospital`, t.`report_doctor`, t.`report_time`, t.`report_state`, t.`doctor_id`, t.`doctor_asks`, t.`editor_id`, t.`editor_name`, t.`create_time`, t.`update_time`
</sql> </sql>
<insert id="batchInsert"> <insert id="batchInsert">
insert into pms_medical_report ( insert into pms_medical_report (
`patient_name`, `patient_id_no`, `sex`, `age`, `report_item`, `report_declare`, `report_hospital`, `report_doctor`, `report_time`, `report_state`, `doctor_asks`, `editor_id`, `editor_name` `patient_name`, `patient_id_no`, `sex`, `age`, `report_item`, `report_declare`, `report_hospital`, `report_doctor`, `report_time`, `report_state`, `doctor_id`, `doctor_asks`, `editor_id`, `editor_name`
) )
values values
<foreach collection="records" item="record" separator=","> <foreach collection="records" item="record" separator=",">
( (
#{record.patientName, jdbcType=VARCHAR}, #{record.patientIdNo, jdbcType=VARCHAR}, #{record.sex, jdbcType=VARCHAR}, #{record.age, jdbcType=INTEGER}, #{record.reportItem, jdbcType=VARCHAR}, #{record.reportDeclare, jdbcType=VARCHAR}, #{record.reportHospital, jdbcType=VARCHAR}, #{record.reportDoctor, jdbcType=VARCHAR}, #{record.reportTime, jdbcType=TIMESTAMP}, #{record.reportState, jdbcType=VARCHAR}, #{record.doctorAsks, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR} #{record.patientName, jdbcType=VARCHAR}, #{record.patientIdNo, jdbcType=VARCHAR}, #{record.sex, jdbcType=VARCHAR}, #{record.age, jdbcType=INTEGER}, #{record.reportItem, jdbcType=VARCHAR}, #{record.reportDeclare, jdbcType=VARCHAR}, #{record.reportHospital, jdbcType=VARCHAR}, #{record.reportDoctor, jdbcType=VARCHAR}, #{record.reportTime, jdbcType=TIMESTAMP}, #{record.reportState, jdbcType=VARCHAR}, #{record.doctorId, jdbcType=BIGINT}, #{record.doctorAsks, jdbcType=VARCHAR}, #{record.editorId, jdbcType=BIGINT}, #{record.editorName, jdbcType=VARCHAR}
) )
</foreach> </foreach>
</insert> </insert>
...@@ -57,6 +62,7 @@ ...@@ -57,6 +62,7 @@
report_doctor = #{et.reportDoctor, jdbcType=VARCHAR}, report_doctor = #{et.reportDoctor, jdbcType=VARCHAR},
report_time = #{et.reportTime, jdbcType=TIMESTAMP}, report_time = #{et.reportTime, jdbcType=TIMESTAMP},
report_state = #{et.reportState, jdbcType=VARCHAR}, report_state = #{et.reportState, jdbcType=VARCHAR},
doctor_id = #{et.doctorId, jdbcType=BIGINT},
doctor_asks = #{et.doctorAsks, jdbcType=VARCHAR}, doctor_asks = #{et.doctorAsks, jdbcType=VARCHAR},
editor_id = #{et.editorId, jdbcType=BIGINT}, editor_id = #{et.editorId, jdbcType=BIGINT},
editor_name = #{et.editorName, jdbcType=VARCHAR}, editor_name = #{et.editorName, jdbcType=VARCHAR},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论