Commit e41ea363 by sdif

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	pz-system/src/main/java/com/pz/system/service/impl/TotalOrderServiceImpl.java
parents f484d3e3 4fad4a21
......@@ -35,6 +35,8 @@
<xxl-job.version>2.4.0</xxl-job.version>
<lombok.version>1.18.26</lombok.version>
<bouncycastle.version>1.72</bouncycastle.version>
<joda.time.version>2.9.9</joda.time.version>
<!-- 离线IP地址定位库 -->
<ip2region.version>2.7.0</ip2region.version>
......@@ -273,6 +275,12 @@
<version>${snakeyaml.version}</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda.time.version}</version>
</dependency>
<!-- 加密包引入 -->
<dependency>
<groupId>org.bouncycastle</groupId>
......@@ -342,6 +350,7 @@
<version>${PeiZhen-Java.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
......@@ -356,7 +365,6 @@
<module>pz-accompany</module>
<module>pz-merchant</module>
<module>pz-applet</module>
<module>pz-chat</module>
</modules>
<packaging>pom</packaging>
......
......@@ -5,6 +5,9 @@ import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
import com.pz.common.core.page.TableDataInfo;
import com.pz.merchant.domain.bo.OrderBo;
import com.pz.merchant.domain.vo.OrderInfoVO;
import com.pz.merchant.service.IEmployeesService;
import com.pz.system.domain.vo.AccompanyDemandVo;
import com.pz.system.service.ITotalOrderService;
import lombok.RequiredArgsConstructor;
......@@ -32,6 +35,8 @@ public class EmployeesAccompanyController extends BaseController {
private final ITotalOrderService totalOrderService;
private final IEmployeesService employeesService;
/**
* 需求广场 列表
......@@ -44,6 +49,12 @@ public class EmployeesAccompanyController extends BaseController {
return totalOrderService.queryUndistributedOrder(page);
}
/**
* 获取需求广场订单详细信息
*
* @param orderId 订单ID
* @return 待接单订单详情
*/
public R<AccompanyDemandVo> getOrderInfoById(@NotNull(message = "订单ID不能为空") Long orderId) {
return R.ok(totalOrderService.queryTotalOrderById(orderId));
}
......@@ -60,4 +71,16 @@ public class EmployeesAccompanyController extends BaseController {
return R.ok(totalOrderService.orderReceiving(emId, orderId));
}
/**
* 查询员工所有订单
*
* @param bo 筛选条件
* @param pageQuery 分页
* @return 订单列表
*/
@GetMapping("/order/list")
public TableDataInfo<OrderInfoVO> getAllOrders(OrderBo bo, PageQuery pageQuery) {
return employeesService.queryAllOrder(bo, pageQuery);
}
}
......@@ -52,6 +52,11 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>com.pz</groupId>
<artifactId>pz-system</artifactId>
</dependency>
......
package com.pz.chat.controller;
import java.util.List;
import java.util.Arrays;
import com.pz.common.core.domain.entity.SysUser;
import com.pz.system.domain.SessionList;
import com.pz.system.mapper.SessionListMapper;
import com.pz.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
package com.pz.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.pz.common.annotation.RepeatSubmit;
import com.pz.common.annotation.Log;
import com.pz.common.annotation.RepeatSubmit;
import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
import com.pz.common.core.domain.entity.SysUser;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import com.pz.common.enums.BusinessType;
import com.pz.common.utils.poi.ExcelUtil;
import com.pz.system.domain.vo.SessionListVo;
import com.pz.system.domain.SessionList;
import com.pz.system.domain.bo.SessionListBo;
import com.pz.system.service.ISessionListService;
import com.pz.common.core.page.TableDataInfo;
import com.pz.system.mapper.SessionListMapper;
import com.pz.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
/**
* 会话列
......
package com.pz.web.controller.system;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.pz.common.utils.DateUtils;
import com.pz.system.domain.Message;
import com.pz.system.mapper.MessageMapper;
import com.pz.system.mapper.SysUserMapper;
import com.pz.system.service.ISysUserService;
import com.pz.web.controller.websocket.SpringContextUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author lisw
* @program ly-project
* @description 聊天
* @createDate 2021-05-30 11:32:39
* <p>
* 描述:
* 一对一聊天
* @ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端,
* 注解的值将被用于监听用户连接的终端访问URL地址,客户端可以通过这个URL来连接到WebSocket服务器端
*/
@Component
@Slf4j
@ServerEndpoint("/webSocketOneToOne/{sendId}/{roomId}")
public class WebSocketOneToOneController {
// 静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。
private static int onlineCount;
//实现服务端与单一客户端通信的话,可以使用Map来存放,其中Key为用户标识
private static final Map<Long, WebSocketOneToOneController> connections = new ConcurrentHashMap<>();
// 与某个客户端的连接会话,需要通过它来给客户端发送数据
private Session session;
private Long sendId;
private String roomId;
@Resource
private MessageMapper messageMapper;
/**
* 连接建立成功调用的方法
*
* @param session 可选的参数。session为与某个客户端的连接会话,需要通过它来给客户端发送数据
*/
@OnOpen
public void onOpen(@PathParam("sendId") Long sendId, @PathParam("roomId") String roomId, Session session) {
this.session = session;
this.sendId = sendId; //用户标识
this.roomId = roomId; //会话标识
connections.put(sendId, this); //添加到map中
addOnlineCount(); // 在线数加
log.info("sendId:" + sendId + "roomId:" + roomId);
System.out.println(this.session);
System.out.println("有新连接加入!新用户:" + sendId + ",当前在线人数为" + getOnlineCount());
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose() {
connections.remove(sendId); // 从map中移除
subOnlineCount(); // 在线数减
System.out.println("有一连接关闭!当前在线人数为" + getOnlineCount());
}
/**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息
* @param session 可选的参数
*/
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("来自客户端的消息:" + message);
JSONObject json = JSON.parseObject(message);
String msg = json.getString("content"); //需要发送的信息
String requestId = json.getString("requestId");
int msgType = json.getIntValue("messageType");
String lastMessageTime = null;
if (json.containsKey("lastMessageTime")) {
lastMessageTime = json.getString("lastMessageTime");
}
Long giftId = null;
Long receiveId = json.getLong("receiveId"); //发送对象的用户标识(接收者)
send(msg, sendId, receiveId, roomId, msgType, requestId, lastMessageTime);
}
/**
* 发生错误时调用
*
* @param session
* @param error
*/
@OnError
public void onError(Session session, Throwable error) {
System.out.println("发生错误");
error.printStackTrace();
}
/**
* @param msg 消息内容
* @param sendId 发送人
* @param receiveId 接收人
* @param roomId 房间ID
* @param msgType 消息类型
* @param requestId 消息请求ID
* @param lastMessageTime 最后一次的消息时间
*/
public void send(String msg, Long sendId, Long receiveId, String roomId, int msgType, String requestId, String lastMessageTime) {
Message message = new Message();
message.setContent(msg);
Date now = new Date();
message.setReceiver(receiveId);
message.setSender(sendId);
message.setContentType(msgType);
message.setIsRead("0");
message.setRequestId(requestId);
message.setType(0);
if (StringUtils.isNotBlank(lastMessageTime)) {
Date lastTime = DateUtils.stringToDate(lastMessageTime, "yyyy-MM-dd HH:mm");
long minute = (now.getTime() - lastTime.getTime()) / 1000 / 60;
log.info("此二人聊天,距离上一次聊天时间相差分钟数:" + minute);
if (minute > 5) {
message.setType(1);
}
}
if (messageMapper == null) {
this.messageMapper = (MessageMapper) SpringContextUtil.getBean("messageMapper");
}
try {
int res = messageMapper.insert(message);
if (res == 1) {
message.setStatus("-1");
}
//发送
WebSocketOneToOneController con = connections.get(receiveId);
if (con != null) {
if (roomId.equals(con.roomId)) {
con.session.getBasicRemote().sendText(JSON.toJSONString(message));
message.setIsRead("1");
messageMapper.updateById(message);
}
}
//通知发送消息的用户,消息已经发送成功
WebSocketOneToOneController confrom = connections.get(sendId);
if (confrom != null) {
if (roomId.equals(confrom.roomId)) {
confrom.session.getBasicRemote().sendText(JSON.toJSONString(message));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static synchronized int getOnlineCount() {
return onlineCount;
}
public static synchronized void addOnlineCount() {
WebSocketOneToOneController.onlineCount++;
}
public static synchronized void subOnlineCount() {
WebSocketOneToOneController.onlineCount--;
}
}
package com.pz.chat.util;
package com.pz.web.controller.websocket;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
......
package com.pz.web.controller.websocket;
import lombok.Data;
import javax.websocket.Session;
@Data
public class WebSocketData {
/**
* 当前连接
*/
private Session session;
/**
* 当前通讯ID
*/
private String communicationId;
}
......@@ -82,7 +82,7 @@ spring:
devtools:
restart:
# 热部署开关
enabled: true
enabled: false
mvc:
format:
date-time: yyyy-MM-dd HH:mm:ss
......@@ -141,6 +141,7 @@ security:
# system 仅用于调试阶段
- /system/**
- /applet/**
- /websocket/**
# MyBatisPlus配置
# https://baomidou.com/config/
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.pz</groupId>
<artifactId>PeiZhen-Java</artifactId>
<version>4.8.0</version>
</parent>
<artifactId>pz-chat</artifactId>
<description>
聊天服务模块
</description>
<dependencies>
<!-- 通用工具-->
<dependency>
<groupId>com.pz</groupId>
<artifactId>pz-common</artifactId>
</dependency>
<dependency>
<groupId>com.pz</groupId>
<artifactId>pz-sms</artifactId>
</dependency>
<dependency>
<groupId>com.pz</groupId>
<artifactId>pz-system</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
</project>
package com.pz.chat.controller;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.chat.util.CurPool;
import com.pz.chat.util.JsonUtils;
import com.pz.chat.util.SpringContextUtil;
import com.pz.common.core.domain.entity.SysUser;
import com.pz.system.domain.MsgInfo;
import com.pz.system.domain.SessionList;
import com.pz.system.mapper.MsgInfoMapper;
import com.pz.system.mapper.SessionListMapper;
import com.pz.system.mapper.SysUserMapper;
import com.pz.system.service.IMsgInfoService;
import com.pz.system.service.ISessionListService;
import com.pz.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Component
@ServerEndpoint("/websocket/{userId}/{sessionId}")
public class ChatController {
@Resource
private SessionListMapper sessionListMapper;
@Resource
private SysUserMapper sysUserMapper;
@Resource
private MsgInfoMapper msgInfoMapper;
private Session session;
@OnOpen
public void onOpen(Session session, @PathParam(value = "userId") Integer userId, @PathParam(value = "sessionId") String sessionId) {
this.session = session;
// 打开连接时保存WebSocket的会话对象
CurPool.webSockets.put(userId, this);
// 将WebSocket对象放入WebSocket连接池中
List<Object> list = new ArrayList<>();
list.add(sessionId);
list.add(session);
// 将会话ID和会话对象放入会话池中
CurPool.sessionPool.put(userId, list);
}
@OnClose
public void onClose() {
// 断开连接删除用户删除session
Long userId = Long.parseLong(this.session.getRequestParameterMap().get("userId").get(0));
// 获取用户ID
CurPool.sessionPool.remove(userId);
CurPool.webSockets.remove(userId);
// 从会话池和连接池中移除WebSocket对象
if (sysUserMapper == null) {
this.sysUserMapper = (SysUserMapper) SpringContextUtil.getBean("sysUserMapper");
}
SysUser user = sysUserMapper.selectUserById(userId);
// 从用户池中移除用户
CurPool.curUserPool.remove(user.getNickName());
}
@OnMessage
public void onMessage(String message) {
String sessionId = this.session.getRequestParameterMap().get("sessionId").get(0);
// 获取会话ID
if (sessionId == null) {
System.out.println("sessionId 错误");
}
if (sessionListMapper == null) {
this.sessionListMapper = (SessionListMapper) SpringContextUtil.getBean("sessionListMapper");
}
// 根据会话ID注入SeesionListMapper
if (sysUserMapper == null) {
this.sysUserMapper = (SysUserMapper) SpringContextUtil.getBean("sysUserMapper");
}
// 根据会话ID注入UserMapper
if (msgInfoMapper == null) {
this.msgInfoMapper = (MsgInfoMapper) SpringContextUtil.getBean("msgInfoMapper");
}
SessionList sessionList = sessionListMapper.selectById(Long.parseLong(sessionId));
// 根据会话ID查询会话列表
SysUser user = sysUserMapper.selectUserById(sessionList.getUserId());
// 根据会话列表中的用户ID查询用户信息
MsgInfo msgInfo = new MsgInfo();
msgInfo.setContent(message);
msgInfo.setFromUserId(sessionList.getUserId());
msgInfo.setFromUserName(user.getNickName());
msgInfo.setToUserId(sessionList.getToUserId());
msgInfo.setToUserName(sessionList.getListName());
msgInfo.setUnReadFlag(0L);
// 创建消息对象,设置消息的内容、创建时间、发送方和接收方的信息
msgInfoMapper.insert(msgInfo);
// 将消息持久化到数据库中
List<Object> list = CurPool.sessionPool.get(sessionList.getToUserId());
// 根据接收方的用户ID从会话池中获取会话列表
if (list == null || list.isEmpty()) {
sessionListMapper.addUnReadCount(sessionList.getToUserId(), sessionList.getUserId());
// 用户不存在,更新未读消息数量
} else {
String id = sessionListMapper.selectIdByUser(sessionList.getToUserId(), sessionList.getUserId()) + "";
String o = list.get(0) + "";
if (id.equals(o)) {
sendTextMessage(sessionList.getToUserId(), JsonUtils.objectToJson(msgInfo));
// 会话存在,直接发送消息
} else {
if (StringUtils.isNotBlank(id)) {
SessionList tmpSessionList = new SessionList();
tmpSessionList.setUserId(sessionList.getToUserId());
tmpSessionList.setToUserId(sessionList.getUserId());
tmpSessionList.setListName(user.getNickName());
tmpSessionList.setUnReadCount(1L);
sessionListMapper.insert(tmpSessionList);
// 新增会话列表
} else {
sessionListMapper.addUnReadCount(sessionList.getToUserId(), sessionList.getUserId());
// 更新未读消息数量
}
List<SessionList> sessionLists = sessionListMapper.selectList(Wrappers.<SessionList>lambdaQuery().eq(SessionList::getUserId, sessionList.getToUserId()));
// 会话不存在,发送会话列表消息
sendTextMessage(sessionList.getToUserId(), JsonUtils.objectToJson(sessionLists));
}
}
// 输出收到的消息
System.out.println("【websocket消息】收到客户端消息:" + message);
}
public void sendTextMessage(Long userId, String message) {
Session session = (Session) CurPool.sessionPool.get(userId).get(1);
// 根据用户ID从会话池中获取会话对象
if (session != null) {
try {
session.getBasicRemote().sendText(message);
// 发送文本消息
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package com.pz.chat.util;
import com.pz.chat.controller.ChatController;
import com.pz.common.core.domain.entity.SysUser;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 统一管理session、websocket、curUser
*/
public class CurPool {
// public static CopyOnWriteArraySet<WebSocket> webSockets =new CopyOnWriteArraySet<>();
public static Map<Integer, ChatController> webSockets = new ConcurrentHashMap<>();
// list 里面第一个存sessionId,第二个存session
public static Map<Integer, List<Object>> sessionPool = new ConcurrentHashMap<>();
// 当前登录用户x
public static Map<String, SysUser> curUserPool = new ConcurrentHashMap<>();
}
......@@ -113,6 +113,17 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-extra</artifactId>
</dependency>
......
package com.pz.chat.util;
package com.pz.common;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
......
package com.pz.chat.config;
package com.pz.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......
......@@ -2,7 +2,10 @@ package com.pz.common.utils;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import java.lang.management.ManagementFactory;
import java.text.ParseException;
......@@ -12,6 +15,7 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;
/**
......@@ -92,6 +96,20 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
}
/**
* 字符串转换成日期
* @param strDate 日期字符串
* @param pattern 日期的格式,如:DateUtils.DATE_TIME_PATTERN
*/
public static Date stringToDate(String strDate, String pattern) {
if (StringUtils.isBlank(strDate)){
return null;
}
DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
return fmt.parseLocalDateTime(strDate).toDate();
}
/**
* 日期路径 即年/月/日 如20180808
*/
public static String dateTime() {
......
......@@ -5,7 +5,9 @@ import com.dtflys.forest.annotation.Get;
import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
import com.pz.common.core.domain.model.LoginUser;
import com.pz.common.core.validate.EditGroup;
import com.pz.common.helper.LoginHelper;
import com.pz.merchant.domain.bo.CompanyBalanceBo;
import com.pz.merchant.domain.bo.ModifyCompanyInfoBo;
import com.pz.merchant.domain.vo.CompanyAppVo;
......
package com.pz.merchant.controller.applet;
import cn.dev33.satoken.annotation.SaIgnore;
import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.R;
import com.pz.common.exception.ServiceException;
import com.pz.merchant.service.ISonOrderService;
import com.pz.merchant.service.impl.SonOrderServiceBuilder;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 订单
* <p>created in 2023/9/14 15:44
*
* @author WangMin
* @version 1.0
*/
@Validated
@RestController()
@RequestMapping("/app/order")
@RequiredArgsConstructor
@SaIgnore
public class OrderController extends BaseController {
private final SonOrderServiceBuilder sonOrderServiceBuilder;
/**
* 查询订单详情
*
* @param businessId 业务ID
* @param totalId 主订单ID
* @return 订单详情
*/
@GetMapping("/detail")
public R<Object> getOrderDetailByTotalId(@NotNull(message = "业务ID不能为空") Integer businessId, @NotNull(message = "订单ID不能为空") Integer totalId) {
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(businessId);
if (orderService == null) {
throw new ServiceException("业务异常");
}
return R.ok(orderService.getSonOrderDetailDataByTotalId(totalId));
}
}
......@@ -2,6 +2,8 @@ package com.pz.merchant.domain.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 查询员工订单实体
* <p>created in 2023/9/11 14:14
......@@ -20,6 +22,7 @@ public class OrderBo {
/**
* 员工ID
*/
@NotNull(message = "陪诊员ID不能为空")
private Integer emId;
/**
......
package com.pz.merchant.domain.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
/**
......@@ -47,7 +46,12 @@ public class OrderInfoVO {
*/
private String userName;
@JsonIgnore
private Integer bid;
private String emName;
/**
* 业务ID
*/
private Integer businessId;
}
......@@ -17,7 +17,7 @@ public interface ISonOrderService {
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo getSonOrderInfoByTotalId(Integer totalId);
SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId);
/**
* 切换子订单状态
......@@ -28,4 +28,15 @@ public interface ISonOrderService {
*/
boolean switchSonOrderStatus(Long totalId, Integer target);
/**
* 查询订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
default Object getSonOrderDetailDataByTotalId(Integer totalId) {
throw new UnsupportedOperationException("不支持该操作");
}
}
......@@ -195,9 +195,9 @@ public class CompanyServiceImpl implements ICompanyService {
result.setTotal(pageResult.getTotal());
// 根据不同子订单装载就诊人员信息和子订单状态
pageResult.getRecords().forEach(suborder -> {
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBid());
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBusinessId());
SonOrderVo orderStatus;
if (orderService != null && (orderStatus = orderService.getSonOrderInfoByTotalId(suborder.getOrderId())) != null) {
if (orderService != null && (orderStatus = orderService.getSonOrderSimpleDataByTotalId(suborder.getOrderId())) != null) {
suborder.setUserName(orderStatus.getUserName());
suborder.setSonOrderStatus(orderStatus.getOrderStatus());
}
......
......@@ -3,9 +3,7 @@ package com.pz.merchant.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dtflys.forest.annotation.Get;
import com.pz.common.core.domain.entity.SysUser;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
......@@ -37,7 +35,6 @@ import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.merchant.domain.Employees;
import com.pz.merchant.mapper.EmployeesMapper;
import com.pz.merchant.service.IEmployeesService;
import org.springframework.web.bind.annotation.GetMapping;
import java.time.LocalDate;
import java.util.*;
......@@ -162,7 +159,7 @@ public class EmployeesServiceImpl implements IEmployeesService {
sysUserMapper.updateById(sysUser);
}
return flag;
} else if (bo.getIdentity() == 3) {//商户新增
} else if (bo.getIdentity() == 3) {// 商户新增
Company add = BeanUtil.toBean(bo, Company.class);
boolean flag = companyMapper.insert(add) > 0;
......@@ -348,9 +345,9 @@ public class EmployeesServiceImpl implements IEmployeesService {
// 根据不同子订单装载就诊人员信息和子订单状态
List<OrderInfoVO> orders = page.getRecords();
orders.forEach(suborder -> {
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBid());
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBusinessId());
SonOrderVo orderStatus;
if (orderService != null && (orderStatus = orderService.getSonOrderInfoByTotalId(suborder.getOrderId())) != null) {
if (orderService != null && (orderStatus = orderService.getSonOrderSimpleDataByTotalId(suborder.getOrderId())) != null) {
suborder.setUserName(orderStatus.getUserName());
suborder.setSonOrderStatus(orderStatus.getOrderStatus());
}
......@@ -370,14 +367,14 @@ public class EmployeesServiceImpl implements IEmployeesService {
public TableDataInfo<OrderInfoVO> queryAllOrder(OrderBo bo, PageQuery pageQuery) {
QueryWrapper<Employees> query = Wrappers.query();
query.eq(bo.getEmId() != null, "total_order.em_id", bo.getEmId())
.eq(bo.getServiceStatus() != null, "total_order.status", bo.getServiceStatus())
.ne("total_order.business_id", 0); // 排除商城订单
.eq(bo.getServiceStatus() != null, "total_order.suborder_status", bo.getServiceStatus())
.between("total_order.business_id", 1, 5); // 陪诊员只能查询1-5的订单
IPage<OrderInfoVO> page = baseMapper.selectOrder(pageQuery.build(), query);
// 根据不同子订单装载就诊人员信息和子订单状态
page.getRecords().forEach(suborder -> {
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBid());
ISonOrderService orderService = sonOrderServiceBuilder.getSonOrderService(suborder.getBusinessId());
SonOrderVo orderStatus;
if (orderService != null && (orderStatus = orderService.getSonOrderInfoByTotalId(suborder.getOrderId())) != null) {
if (orderService != null && (orderStatus = orderService.getSonOrderSimpleDataByTotalId(suborder.getOrderId())) != null) {
suborder.setUserName(orderStatus.getUserName());
suborder.setSonOrderStatus(orderStatus.getOrderStatus());
}
......
package com.pz.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author lisw
* @program message
* @description
* @createDate 2021-08-18 17:03:58
**/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("message")
public class Message extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 是否显示时间
* 0:否 1:是
*/
private Integer type;
/**
* 消息内容
*/
private String content;
/**
* 内容类型 0文字1图片2视频 3礼物
*/
private Integer contentType;
/**
* 是否已读
*/
private String isRead;
/**
* 发送人
*/
private Long sender;
/**
* 接收人
*/
private Long receiver;
/**
* 发送消息请求ID
*/
private String requestId;
/**
* 是否已读
*/
private Boolean isLast;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}
package com.pz.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 消息对象 msg_info
*
* @author ruoyi
* @date 2023-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("msg_info")
public class MsgInfo extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 消息id
*/
@TableId(value = "id")
private Long id;
/**
* 消息发送者id
*/
private Long fromUserId;
/**
* 消息发送者名称
*/
private String fromUserName;
/**
* 消息接收者id
*/
private Long toUserId;
/**
* 消息接收者名称
*/
private String toUserName;
/**
* 消息内容
*/
private String content;
/**
* 是否已读(1 已读)
*/
private Long unReadFlag;
}
......@@ -13,9 +13,8 @@ import lombok.EqualsAndHashCode;
* @date 2023-09-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("session_list")
public class SessionList extends BaseEntity {
public class SessionList {
private static final long serialVersionUID=1L;
......
......@@ -17,7 +17,7 @@ import lombok.EqualsAndHashCode;
@TableName("total_order")
public class TotalOrder extends BaseEntity {
private static final long serialVersionUID=1L;
private static final long serialVersionUID = 1L;
/**
*
......@@ -56,6 +56,11 @@ public class TotalOrder extends BaseEntity {
* 订单状态
*/
private Integer status;
/**
* 子订单状态
*/
private Integer suborderStatus;
/**
* 订单备注
*/
......
package com.pz.system.domain.bo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author lisw
* @program message
* @description
* @createDate 2021-08-18 17:03:58
**/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("message")
public class MessageBo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 是否显示时间
* 0:否 1:是
*/
private Integer type;
/**
* 消息内容
*/
private String content;
/**
* 内容类型 0文字1图片2视频 3礼物
*/
private Integer contentType;
/**
* 是否已读
*/
private String isRead;
/**
* 发送人
*/
private Long sender;
/**
* 接收人
*/
private Long receiver;
/**
* 发送消息请求ID
*/
private String requestId;
/**
* 是否已读
*/
private Boolean isLast;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}
package com.pz.system.domain.bo;
package com.pz.system.domain.vo;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
/**
* 消息业务对象 msg_info
* <p>created in 2023/9/14 14:37
*
* @author ruoyi
* @date 2023-09-09
* @author WangMin
* @version 1.0
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class MsgInfoBo extends BaseEntity {
@Data
public class DbghOrderItemVo extends OrderCommonVo {
/**
* 消息id
* 业务项目
*/
private Long id;
private String project;
/**
* 消息发送者id
* 用户名称
*/
private Long fromUserId;
private String userName;
/**
* 消息发送者名称
* 科室
*/
private String fromUserName;
private String department;
/**
* 消息接收者id
* 医院
*/
private Long toUserId;
private String hospital;
/**
* 消息接收者名称
* 陪诊时间
*/
private String toUserName;
private Date visitTime;
/**
* 消息内容
* 其他需求
*/
private String content;
private String description;
/**
* 是否已读(1 已读)
* 订单佣金
*/
private Long unReadFlag;
private Float commission;
}
package com.pz.system.domain.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>created in 2023/9/14 15:22
*
* @author WangMin
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class DbmyOrderItemVo extends OrderCommonVo {
/**
* 业务项目
*/
private String project;
/**
* 药品名称
*/
private String ypName;
/**
* 药店地址
*/
private String ydAddress;
/**
* 取药方式:0-邮寄到家,1-送货上门
*/
private Integer way;
/**
* 是否处方药
*/
private Boolean isCf;
/**
* 处方附件
*/
private String prescriptionAttachment;
/**
* 联系电话
*/
private String phone;
/**
* 收件人
*/
private String recipient;
/**
* 收获地址
*/
private String address;
/**
* 详细地址
*/
private String addressInfo;
/**
* 是否需要冷藏
*/
private Boolean isRefrigerate;
/**
* 备注
*/
private String remark;
/**
* 订单佣金
*/
private Float commission;
}
package com.pz.system.domain.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* <p>created in 2023/9/14 14:49
*
* @author WangMin
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class DbwzOrderItemVo extends OrderCommonVo {
/**
* 业务项目
*/
private String project;
/**
* 用户名称
*/
private String userName;
/**
* 科室
*/
private String department;
/**
* 预约时间
*/
private Date visitTime;
/**
* 订单佣金
*/
private Float commission;
/**
* 主诉
*/
private String chiefComplaint;
/**
* 现病史
*/
private String historyOfPresentIllness;
/**
* 即往史
*/
private String pastHistory;
/**
* 相关报告链接
*/
private String relatedReports;
/**
* 服务要求
*/
private String serviceRequirements;
/**
* 备注
*/
private String remark;
}
package com.pz.system.domain.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
@Data
public class MessageVo implements Serializable {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 是否显示时间
* 0:否 1:是
*/
private Integer type;
/**
* 消息内容
*/
private String content;
/**
* 内容类型 0文字1图片2视频 3礼物
*/
private Integer contentType;
/**
* 是否已读
*/
private String isRead;
/**
* 发送人
*/
private Long sender;
/**
* 接收人
*/
private Long receiver;
/**
* 发送消息请求ID
*/
private String requestId;
/**
* 是否已读
*/
private Boolean isLast;
/**
* 状态
*/
private String status;
/**
* 备注
*/
private String remark;
}
package com.pz.system.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 消息视图对象 msg_info
*
* @author ruoyi
* @date 2023-09-09
*/
@Data
@ExcelIgnoreUnannotated
public class MsgInfoVo {
private static final long serialVersionUID = 1L;
/**
* 消息id
*/
@ExcelProperty(value = "消息id")
private Long id;
/**
* 消息发送者id
*/
@ExcelProperty(value = "消息发送者id")
private Long fromUserId;
/**
* 消息发送者名称
*/
@ExcelProperty(value = "消息发送者名称")
private String fromUserName;
/**
* 消息接收者id
*/
@ExcelProperty(value = "消息接收者id")
private Long toUserId;
/**
* 消息接收者名称
*/
@ExcelProperty(value = "消息接收者名称")
private String toUserName;
/**
* 消息内容
*/
@ExcelProperty(value = "消息内容")
private String content;
/**
* 是否已读(1 已读)
*/
@ExcelProperty(value = "是否已读", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=,已=读")
private Long unReadFlag;
}
package com.pz.system.domain.vo;
import lombok.Data;
/**
* <p>created in 2023/9/14 12:01
*
* @author WangMin
* @version 1.0
*/
@Data
public class OrderCommonVo {
/**
* 主订单ID
*/
private Integer orderId;
/**
* 子订单ID
*/
private Integer serviceOrderId;
/**
* 业务ID
*/
private Integer businessId;
/**
* 主订单状态 0:待支付,1:已支付,2:已完成,7:已取消 ,8:已退款
*/
private Integer orderStatus;
/**
* 子订单状态 0:已发布,1:已接单,2:已完成,3:退款中 ,4:已退款,6:进行中
*/
private Integer serviceStatus;
}
package com.pz.system.domain.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 预约陪诊列表项实体
* <p>created in 2023/9/14 11:19
*
* @author WangMin
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class YypzOrderItemVo extends OrderCommonVo {
/**
* 业务项目
*/
private String project;
/**
* 用户名称
*/
private String userName;
/**
* 科室
*/
private String department;
/**
* 医院
*/
private String hospital;
/**
* 订单佣金
*/
private Float commission;
/**
* 预约电话
*/
private String phone;
/**
* 陪诊时间
*/
private Date visitTime;
/**
* 评价标志 0-未评价,1-好评,2-差评
*/
private Integer evaluationFlag;
/**
* 需求描述
*/
private String description;
/**
* 用户评价
*/
private String evaluationContent;
/**
* 完成凭证
*/
private String voucher;
/**
* 备注
*/
private String remark;
}
package com.pz.system.domain.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* <p>created in 2023/9/14 13:49
*
* @author WangMin
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ZqghOrderItemVo extends OrderCommonVo {
/**
* 医生
*/
private String doctor;
/**
* 科室
*/
private String department;
/**
* 医院
*/
private String hospital;
/**
* 预约时间
*/
private Date visitTime;
}
package com.pz.system.domain.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>created in 2023/9/14 15:12
*
* @author WangMin
* @version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ZyphOrderItemVo extends OrderCommonVo {
/**
* 业务项目
*/
private String project;
/**
* 用户名称
*/
private String userName;
/**
* 科室
*/
private String department;
/**
* 医院
*/
private String hospital;
/**
* 订单佣金
*/
private Float commission;
/**
* 其他需求
*/
private String description;
}
......@@ -7,6 +7,7 @@ import com.pz.system.domain.DbghOrder;
import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.DbghOrderBo;
import com.pz.system.domain.bo.YypzOrderBo;
import com.pz.system.domain.vo.DbghOrderItemVo;
import com.pz.system.domain.vo.DbghOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.system.domain.vo.YypzOrderVo;
......@@ -26,8 +27,17 @@ public interface DbghOrderMapper extends BaseMapperPlus<DbghOrderMapper, DbghOrd
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
/**
* 查询代办挂号订单数据表
*
* @param totalId 主订单ID
* @return 代办挂号订单
*/
DbghOrderItemVo selectDbghOrderDetailDateByTotalId(Integer totalId);
}
......@@ -7,6 +7,7 @@ import com.pz.system.domain.DbmyOrder;
import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.bo.DbmyOrderBo;
import com.pz.system.domain.bo.DbwzOrderBo;
import com.pz.system.domain.vo.DbmyOrderItemVo;
import com.pz.system.domain.vo.DbmyOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.system.domain.vo.DbwzOrderVo;
......@@ -25,8 +26,18 @@ public interface DbmyOrderMapper extends BaseMapperPlus<DbmyOrderMapper, DbmyOrd
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
/**
* 查询代办买药订单数据
*
* @param totalId 主订单ID
* @return 代办买药
*/
DbmyOrderItemVo selectDbmyOrderDetailDataByTotalId(Integer totalId);
}
......@@ -8,6 +8,7 @@ import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.bo.DbghOrderBo;
import com.pz.system.domain.bo.DbwzOrderBo;
import com.pz.system.domain.vo.DbghOrderVo;
import com.pz.system.domain.vo.DbwzOrderItemVo;
import com.pz.system.domain.vo.DbwzOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
......@@ -26,8 +27,17 @@ public interface DbwzOrderMapper extends BaseMapperPlus<DbwzOrderMapper, DbwzOrd
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
/**
* 查询代办挂号详情数据
*
* @param totalId 主订单ID
* @return 代办挂号
*/
DbwzOrderItemVo selectDbwzOrderDetailDataByTotalId(Integer totalId);
}
......@@ -3,6 +3,7 @@ package com.pz.system.mapper;
import com.pz.system.domain.Information;
import com.pz.system.domain.vo.InformationVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
/**
* 新闻资讯Mapper接口
......@@ -10,6 +11,7 @@ import com.pz.common.core.mapper.BaseMapperPlus;
* @author ruoyi
* @date 2023-09-07
*/
@Mapper
public interface InformationMapper extends BaseMapperPlus<InformationMapper, Information, InformationVo> {
}
package com.pz.system.mapper;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.system.domain.Information;
import com.pz.system.domain.Message;
import com.pz.system.domain.vo.InformationVo;
import com.pz.system.domain.vo.MessageVo;
import org.apache.ibatis.annotations.Mapper;
/**
* 聊天消息Mapper接口
*/
@Mapper
public interface MessageMapper extends BaseMapperPlus<MessageMapper, Message, MessageVo> {
}
package com.pz.system.mapper;
import com.pz.system.domain.MsgInfo;
import com.pz.system.domain.vo.MsgInfoVo;
import com.pz.common.core.mapper.BaseMapperPlus;
/**
* 消息Mapper接口
*
* @author ruoyi
* @date 2023-09-09
*/
public interface MsgInfoMapper extends BaseMapperPlus<MsgInfoMapper, MsgInfo, MsgInfoVo> {
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.YypzOrderBo;
import com.pz.system.domain.vo.YypzOrderItemVo;
import com.pz.system.domain.vo.YypzOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
......@@ -19,12 +20,22 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface YypzOrderMapper extends BaseMapperPlus<YypzOrderMapper, YypzOrder, YypzOrderVo> {
Page<YypzOrderVo> findYypzOrderVoPage(IPage<YypzOrder> iPage, @Param("bo")YypzOrderBo yypzOrderBo);
Page<YypzOrderVo> findYypzOrderVoPage(IPage<YypzOrder> iPage, @Param("bo") YypzOrderBo yypzOrderBo);
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
/**
* 查询预约陪诊数据
*
* @param totalId 主订单ID
* @return 预约陪诊相关信息
*/
YypzOrderItemVo selectYypzOrderDetailDataByTotalId(Integer totalId);
}
......@@ -7,6 +7,7 @@ import com.pz.system.domain.ZqghOrder;
import com.pz.system.domain.ZyphOrder;
import com.pz.system.domain.bo.ZqghOrderBo;
import com.pz.system.domain.bo.ZyphOrderBo;
import com.pz.system.domain.vo.ZqghOrderItemVo;
import com.pz.system.domain.vo.ZqghOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.system.domain.vo.ZyphOrderVo;
......@@ -27,9 +28,18 @@ public interface ZqghOrderMapper extends BaseMapperPlus<ZqghOrderMapper, ZqghOrd
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
/**
* 查询诊前挂号订单ID
*
* @param totalId 主订单Id
* @return 诊前挂号订单
*/
ZqghOrderItemVo selectZqghOrderDetailDateByTotalId(Integer totalId);
}
......@@ -8,6 +8,7 @@ import com.pz.system.domain.ZyphOrder;
import com.pz.system.domain.bo.YypzOrderBo;
import com.pz.system.domain.bo.ZyphOrderBo;
import com.pz.system.domain.vo.YypzOrderVo;
import com.pz.system.domain.vo.ZyphOrderItemVo;
import com.pz.system.domain.vo.ZyphOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
......@@ -26,8 +27,17 @@ public interface ZyphOrderMapper extends BaseMapperPlus<ZyphOrderMapper, ZyphOrd
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
/**
* 查询住院陪护订单数据
*
* @param totalId 主订单ID
* @return 住院陪护订单
*/
ZyphOrderItemVo selectZyphOrderDetailDataByTotalId(Integer totalId);
}
package com.pz.system.service;
public interface IMessageService {
}
package com.pz.system.service;
import com.pz.system.domain.MsgInfo;
import com.pz.system.domain.vo.MsgInfoVo;
import com.pz.system.domain.bo.MsgInfoBo;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 消息Service接口
*
* @author ruoyi
* @date 2023-09-09
*/
public interface IMsgInfoService {
/**
* 查询消息
*/
MsgInfoVo queryById(Long id);
/**
* 查询消息列表
*/
TableDataInfo<MsgInfoVo> queryPageList(MsgInfoBo bo, PageQuery pageQuery);
/**
* 查询消息列表
*/
List<MsgInfoVo> queryList(MsgInfoBo bo);
/**
* 新增消息
*/
Boolean insertByBo(MsgInfoBo bo);
/**
* 修改消息
*/
Boolean updateByBo(MsgInfoBo bo);
/**
* 校验并批量删除消息信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
......@@ -127,7 +127,7 @@ public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService
}
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
public SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
......@@ -146,4 +146,15 @@ public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
/**
* 查询订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
@Override
public Object getSonOrderDetailDataByTotalId(Integer totalId) {
return baseMapper.selectDbghOrderDetailDateByTotalId(totalId);
}
}
......@@ -129,7 +129,7 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService
}
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
public SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
......@@ -148,4 +148,15 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
/**
* 查询代办买药订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
@Override
public Object getSonOrderDetailDataByTotalId(Integer totalId) {
return baseMapper.selectDbmyOrderDetailDataByTotalId(totalId);
}
}
......@@ -133,7 +133,7 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService
}
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
public SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
......@@ -152,4 +152,15 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
/**
* 查询代办问诊订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
@Override
public Object getSonOrderDetailDataByTotalId(Integer totalId) {
return baseMapper.selectDbwzOrderDetailDataByTotalId(totalId);
}
}
package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.system.domain.Department;
import com.pz.system.domain.Hospital;
import com.pz.system.domain.bo.DepartmentBo;
import com.pz.system.domain.vo.DepartmentVo;
import com.pz.system.mapper.DepartmentMapper;
import com.pz.system.mapper.HospitalMapper;
import com.pz.system.service.IDepartmentService;
import com.pz.system.service.IMessageService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* 科室Service业务层处理
*
* @author ruoyi
* @date 2023-09-07
*/
@RequiredArgsConstructor
@Service
public class MessageServiceImpl implements IMessageService {
}
package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.MsgInfoBo;
import com.pz.system.domain.vo.MsgInfoVo;
import com.pz.system.domain.MsgInfo;
import com.pz.system.mapper.MsgInfoMapper;
import com.pz.system.service.IMsgInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 消息Service业务层处理
*
* @author ruoyi
* @date 2023-09-09
*/
@RequiredArgsConstructor
@Service
public class MsgInfoServiceImpl implements IMsgInfoService {
private final MsgInfoMapper baseMapper;
/**
* 查询消息
*/
@Override
public MsgInfoVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 查询消息列表
*/
@Override
public TableDataInfo<MsgInfoVo> queryPageList(MsgInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<MsgInfo> lqw = buildQueryWrapper(bo);
Page<MsgInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询消息列表
*/
@Override
public List<MsgInfoVo> queryList(MsgInfoBo bo) {
LambdaQueryWrapper<MsgInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<MsgInfo> buildQueryWrapper(MsgInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<MsgInfo> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getFromUserId() != null, MsgInfo::getFromUserId, bo.getFromUserId());
lqw.like(StringUtils.isNotBlank(bo.getFromUserName()), MsgInfo::getFromUserName, bo.getFromUserName());
lqw.eq(bo.getToUserId() != null, MsgInfo::getToUserId, bo.getToUserId());
lqw.like(StringUtils.isNotBlank(bo.getToUserName()), MsgInfo::getToUserName, bo.getToUserName());
lqw.eq(StringUtils.isNotBlank(bo.getContent()), MsgInfo::getContent, bo.getContent());
lqw.eq(bo.getUnReadFlag() != null, MsgInfo::getUnReadFlag, bo.getUnReadFlag());
return lqw;
}
/**
* 新增消息
*/
@Override
public Boolean insertByBo(MsgInfoBo bo) {
MsgInfo add = BeanUtil.toBean(bo, MsgInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改消息
*/
@Override
public Boolean updateByBo(MsgInfoBo bo) {
MsgInfo update = BeanUtil.toBean(bo, MsgInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(MsgInfo entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除消息
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.notify.WxPayRefundNotifyResult;
import com.github.binarywang.wxpay.bean.notify.WxScanPayNotifyResult;
import com.github.binarywang.wxpay.bean.request.*;
import com.github.binarywang.wxpay.bean.result.*;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryResult;
import com.github.binarywang.wxpay.bean.result.WxPayRefundQueryResult;
import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.page.TableDataInfo;
import com.pz.system.domain.City;
import com.pz.system.domain.bo.CityBo;
import com.pz.system.domain.vo.CityVo;
import com.pz.system.mapper.CityMapper;
import com.pz.system.service.ICityService;
import com.pz.system.service.IPayService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import java.io.File;
import java.util.Collection;
import java.util.List;
/**
* 城市Service业务层处理
......
......@@ -9,13 +9,11 @@ import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.pz.common.core.domain.model.LoginUser;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.common.enums.CommonOrderStatus;
import com.pz.common.enums.DBMYOrderStatus;
import com.pz.common.enums.ShopOrderStatus;
import com.pz.common.enums.TotalOrderStatus;
import com.pz.common.exception.ServiceException;
import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService;
......@@ -148,13 +146,13 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
*/
@Override
public TableDataInfo<TotalOrderVo> queryPageList(TotalOrderBo bo, PageQuery pageQuery) {
//TODO 待优化
// TODO 待优化
LambdaQueryWrapper<TotalOrder> lqw = buildQueryWrapper(bo);
IPage<TotalOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Optional.ofNullable(result.getRecords()).ifPresent(totalOrderVos -> {
totalOrderVos.forEach(totalOrderVo -> {
// 陪诊人员
if(totalOrderVo.getEmId() != 0){
if (totalOrderVo.getEmId() != 0) {
Optional.ofNullable(userVsitorMapper.selectVoById(totalOrderVo.getEmId()).getName())
.ifPresent(totalOrderVo::setEmName);
}
......@@ -163,50 +161,50 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
Business business = businessMapper.selectById(totalOrderVo.getBusinessId());
totalOrderVo.setName(business.getName());
//服务封面
// 服务封面
Services services = servicesMapper.selectById(totalOrderVo.getServiceId());
totalOrderVo.setCover(services.getCover());
if(totalOrderVo.getBusinessId() == 1){//预约陪诊
if (totalOrderVo.getBusinessId() == 1) {// 预约陪诊
totalOrderVo.setServiceStatus(
yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 2){//代办挂号
} else if (totalOrderVo.getBusinessId() == 2) {// 代办挂号
totalOrderVo.setServiceStatus(
dbghOrderMapper.selectOne(new LambdaQueryWrapper<DbghOrder>().eq(DbghOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 3){//代办问诊
} else if (totalOrderVo.getBusinessId() == 3) {// 代办问诊
totalOrderVo.setServiceStatus(
dbwzOrderMapper.selectOne(new LambdaQueryWrapper<DbwzOrder>().eq(DbwzOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 4){//住院陪护
} else if (totalOrderVo.getBusinessId() == 4) {// 住院陪护
totalOrderVo.setServiceStatus(
zyphOrderMapper.selectOne(new LambdaQueryWrapper<ZyphOrder>().eq(ZyphOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 5){//代办买药
} else if (totalOrderVo.getBusinessId() == 5) {// 代办买药
totalOrderVo.setServiceStatus(
dbmyOrderMapper.selectOne(new LambdaQueryWrapper<DbmyOrder>().eq(DbmyOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 6){//诊前挂号
} else if (totalOrderVo.getBusinessId() == 6) {// 诊前挂号
totalOrderVo.setServiceStatus(
zqghOrderMapper.selectOne(new LambdaQueryWrapper<ZqghOrder>().eq(ZqghOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 0){//商城订单
} else if (totalOrderVo.getBusinessId() == 0) {// 商城订单
StoreOrder storeOrder = storeOrderMapper.selectOne(new LambdaQueryWrapper<StoreOrder>().eq(StoreOrder::getOrderId, totalOrderVo.getId()));
totalOrderVo.setServiceStatus(
......@@ -273,7 +271,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
String orderSn = getOrderSn();
bo.setStatus(0);
//组装总订单数据新增
// 组装总订单数据新增
TotalOrder totalOrder = BeanUtil.toBean(bo, TotalOrder.class);
totalOrder.setOrderSn(orderSn);
totalOrder.setUid(loginUser.getUserId().intValue());
......@@ -283,44 +281,45 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrderVo.setOrderSn(totalOrder.getId()+"");
totalOrderVo.setPayMoney(bo.getPayMoney());
if(bo.getBusinessId() == 1){//预约陪诊
if (bo.getBusinessId() == 1) {// 预约陪诊
YypzOrder yypzOrder = BeanUtil.toBean(bo, YypzOrder.class);
yypzOrder.setHid(bo.getHospitalId());
yypzOrderMapper.insert(yypzOrder);
}else if(bo.getBusinessId() == 2){//代办挂号
} else if (bo.getBusinessId() == 2) {// 代办挂号
DbghOrder dbghOrder = BeanUtil.toBean(bo, DbghOrder.class);
dbghOrder.setHid(bo.getHospitalId());
dbghOrder.setDid(bo.getDepartmentId());
dbghOrderMapper.insert(dbghOrder);
}else if(bo.getBusinessId() == 3){//代办问诊
} else if (bo.getBusinessId() == 3) {// 代办问诊
DbwzOrder dbwzOrder = BeanUtil.toBean(bo, DbwzOrder.class);
dbwzOrder.setDid(bo.getDepartmentId());
dbwzOrder.setVisitor(bo.getVisitorId());
dbwzOrderMapper.insert(dbwzOrder);
}else if(bo.getBusinessId() == 4){//住院陪护
} else if (bo.getBusinessId() == 4) {// 住院陪护
ZyphOrder zyphOrder = BeanUtil.toBean(bo, ZyphOrder.class);
zyphOrder.setDid(bo.getDepartmentId());
zyphOrder.setVisitor(bo.getVisitorId());
zyphOrderMapper.insert(zyphOrder);
}else if(bo.getBusinessId() == 5){//代办买药
} else if (bo.getBusinessId() == 5) {// 代办买药
DbmyOrder dbmyOrder = BeanUtil.toBean(bo, DbmyOrder.class);
dbmyOrderMapper.insert(dbmyOrder);
}else if(bo.getBusinessId() == 6){//诊前挂号
} else if (bo.getBusinessId() == 6) {// 诊前挂号
ZqghOrder zqghOrder = BeanUtil.toBean(bo, ZqghOrder.class);
zqghOrderMapper.insert(zqghOrder);
}else if(bo.getBusinessId() == 0){//商城订单
} else if (bo.getBusinessId() == 0) {// 商城订单
StoreOrder storeOrder = BeanUtil.toBean(bo, StoreOrder.class);
storeOrderMapper.insert(storeOrder);
......@@ -382,97 +381,97 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
totalOrder.setRefundAmount(totalOrder.getPayMoney());
totalOrder.setRefundReason(bo.getRefundReason());
if(totalOrder.getBusinessId() == 1){//预约陪诊
if (totalOrder.getBusinessId() == 1) {// 预约陪诊
YypzOrder yypzOrder = yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId, totalOrder.getId()));
if(yypzOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())){
if (yypzOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())) {
throw new ServiceException("陪诊员已接单,不允许退款!");
}
}else if(totalOrder.getBusinessId() == 2){//代办挂号
} else if (totalOrder.getBusinessId() == 2) {// 代办挂号
DbghOrder dbghOrder = dbghOrderMapper.selectOne(new LambdaQueryWrapper<DbghOrder>().eq(DbghOrder::getOrderId, totalOrder.getId()));
if(dbghOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())){
if (dbghOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())) {
throw new ServiceException("陪诊员已接单,不允许退款!");
}
}else if(totalOrder.getBusinessId() == 3){//代办问诊
} else if (totalOrder.getBusinessId() == 3) {// 代办问诊
DbwzOrder dbwzOrder = dbwzOrderMapper.selectOne(new LambdaQueryWrapper<DbwzOrder>().eq(DbwzOrder::getOrderId, totalOrder.getId()));
if(dbwzOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())){
if (dbwzOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())) {
throw new ServiceException("陪诊员已接单,不允许退款!");
}
}else if(totalOrder.getBusinessId() == 4){//住院陪护
} else if (totalOrder.getBusinessId() == 4) {// 住院陪护
ZyphOrder zyphOrder = zyphOrderMapper.selectOne(new LambdaQueryWrapper<ZyphOrder>().eq(ZyphOrder::getOrderId, totalOrder.getId()));
if(zyphOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())){
if (zyphOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())) {
throw new ServiceException("陪诊员已接单,不允许退款!");
}
}else if(totalOrder.getBusinessId() == 5){//代办买药
} else if (totalOrder.getBusinessId() == 5) {// 代办买药
DbmyOrder dbmyOrder = dbmyOrderMapper.selectOne(new LambdaQueryWrapper<DbmyOrder>().eq(DbmyOrder::getOrderId, totalOrder.getId()));
if(dbmyOrder.getStatus().equals(DBMYOrderStatus.TAKE_ORDER.getCode())){
if (dbmyOrder.getStatus().equals(DBMYOrderStatus.TAKE_ORDER.getCode())) {
throw new ServiceException("陪诊员已接单,不允许退款!");
}
}else if(totalOrder.getBusinessId() == 6){//诊前挂号
} else if (totalOrder.getBusinessId() == 6) {// 诊前挂号
ZqghOrder zqghOrder = zqghOrderMapper.selectOne(new LambdaQueryWrapper<ZqghOrder>().eq(ZqghOrder::getOrderId, totalOrder.getId()));
if(zqghOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())){
if (zqghOrder.getStatus().equals(CommonOrderStatus.TAKE_ORDER.getCode())) {
throw new ServiceException("陪诊员已接单,不允许退款!");
}
}else if(totalOrder.getBusinessId() == 0){//商城订单
} else if (totalOrder.getBusinessId() == 0) {// 商城订单
StoreOrder storeOrder = storeOrderMapper.selectOne(new LambdaQueryWrapper<StoreOrder>().eq(StoreOrder::getOrderId, totalOrder.getId()));
if(storeOrder.getStatus().equals(ShopOrderStatus.DELIVER.getCode())){
if (storeOrder.getStatus().equals(ShopOrderStatus.DELIVER.getCode())) {
throw new ServiceException("商品已发货,不允许退款!");
}
}
//修改主订单退款理由
// 修改主订单退款理由
baseMapper.updateById(totalOrder);
if(totalOrder.getBusinessId() == 1){//预约陪诊
yypzOrderMapper.update(null,new LambdaUpdateWrapper<YypzOrder>()
.eq(YypzOrder::getOrderId,totalOrder.getId())
.set(YypzOrder::getStatus,CommonOrderStatus.BEING_REFUND.getCode()));
if (totalOrder.getBusinessId() == 1) {// 预约陪诊
yypzOrderMapper.update(null, new LambdaUpdateWrapper<YypzOrder>()
.eq(YypzOrder::getOrderId, totalOrder.getId())
.set(YypzOrder::getStatus, CommonOrderStatus.BEING_REFUND.getCode()));
}else if(totalOrder.getBusinessId() == 2){//代办挂号
} else if (totalOrder.getBusinessId() == 2) {// 代办挂号
dbghOrderMapper.update(null,new LambdaUpdateWrapper<DbghOrder>()
.eq(DbghOrder::getOrderId,totalOrder.getId())
.set(DbghOrder::getStatus,CommonOrderStatus.BEING_REFUND.getCode()));
dbghOrderMapper.update(null, new LambdaUpdateWrapper<DbghOrder>()
.eq(DbghOrder::getOrderId, totalOrder.getId())
.set(DbghOrder::getStatus, CommonOrderStatus.BEING_REFUND.getCode()));
}else if(totalOrder.getBusinessId() == 3){//代办问诊
} else if (totalOrder.getBusinessId() == 3) {// 代办问诊
dbwzOrderMapper.update(null,new LambdaUpdateWrapper<DbwzOrder>()
.eq(DbwzOrder::getOrderId,totalOrder.getId())
.set(DbwzOrder::getStatus,CommonOrderStatus.BEING_REFUND.getCode()));
dbwzOrderMapper.update(null, new LambdaUpdateWrapper<DbwzOrder>()
.eq(DbwzOrder::getOrderId, totalOrder.getId())
.set(DbwzOrder::getStatus, CommonOrderStatus.BEING_REFUND.getCode()));
}else if(totalOrder.getBusinessId() == 4){//住院陪护
} else if (totalOrder.getBusinessId() == 4) {// 住院陪护
zyphOrderMapper.update(null,new LambdaUpdateWrapper<ZyphOrder>()
.eq(ZyphOrder::getOrderId,totalOrder.getId())
.set(ZyphOrder::getStatus,CommonOrderStatus.BEING_REFUND.getCode()));
zyphOrderMapper.update(null, new LambdaUpdateWrapper<ZyphOrder>()
.eq(ZyphOrder::getOrderId, totalOrder.getId())
.set(ZyphOrder::getStatus, CommonOrderStatus.BEING_REFUND.getCode()));
}else if(totalOrder.getBusinessId() == 5){//代办买药
} else if (totalOrder.getBusinessId() == 5) {// 代办买药
dbmyOrderMapper.update(null,new LambdaUpdateWrapper<DbmyOrder>()
.eq(DbmyOrder::getOrderId,totalOrder.getId())
.set(DbmyOrder::getStatus,DBMYOrderStatus.BEING_REFUND.getCode()));
dbmyOrderMapper.update(null, new LambdaUpdateWrapper<DbmyOrder>()
.eq(DbmyOrder::getOrderId, totalOrder.getId())
.set(DbmyOrder::getStatus, DBMYOrderStatus.BEING_REFUND.getCode()));
}else if(totalOrder.getBusinessId() == 6){//诊前挂号
} else if (totalOrder.getBusinessId() == 6) {// 诊前挂号
zqghOrderMapper.update(null,new LambdaUpdateWrapper<ZqghOrder>()
.eq(ZqghOrder::getOrderId,totalOrder.getId())
.set(ZqghOrder::getStatus,CommonOrderStatus.BEING_REFUND.getCode()));
zqghOrderMapper.update(null, new LambdaUpdateWrapper<ZqghOrder>()
.eq(ZqghOrder::getOrderId, totalOrder.getId())
.set(ZqghOrder::getStatus, CommonOrderStatus.BEING_REFUND.getCode()));
}else if(totalOrder.getBusinessId() == 0){//商城订单
} else if (totalOrder.getBusinessId() == 0) {// 商城订单
storeOrderMapper.update(null,new LambdaUpdateWrapper<StoreOrder>()
.eq(StoreOrder::getOrderId,totalOrder.getId())
.set(StoreOrder::getStatus,ShopOrderStatus.BEING_REFUND.getCode()));
storeOrderMapper.update(null, new LambdaUpdateWrapper<StoreOrder>()
.eq(StoreOrder::getOrderId, totalOrder.getId())
.set(StoreOrder::getStatus, ShopOrderStatus.BEING_REFUND.getCode()));
}
......@@ -507,13 +506,14 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
QueryWrapper<TotalOrder> wrapper = Wrappers.query();
// 筛选未分配订单
wrapper.apply("total_order.em_id = 0")
.eq("total_order.status", 1)
.between("total_order.business_id", 1, 5);
IPage<AccompanyDemandVo> result = baseMapper.selectUndistributedTotalOrder(page.build(), wrapper);
// 装载子订单信息
result.getRecords().forEach(order -> {
ISonOrderService orderService = serviceBuilder.getSonOrderService(order.getBid());
SonOrderVo sonOrder;
if (orderService != null && (sonOrder = orderService.getSonOrderInfoByTotalId(order.getOrderId())) != null) {
if (orderService != null && (sonOrder = orderService.getSonOrderSimpleDataByTotalId(order.getOrderId())) != null) {
order.setAvatar(sonOrder.getAvatar());
order.setSonOrderStatus(sonOrder.getOrderStatus());
order.setHospital(sonOrder.getHospital());
......@@ -546,7 +546,10 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
if (!sonOrderFlag) {
throw new ServiceException("子订单状态修改出错,接单失败");
}
// 绑定主订单陪诊员
totalOrder.setEmId(emId);
// 设置主订单中子订单状态为已接单
totalOrder.setSuborderStatus(1);
boolean flag = baseMapper.updateById(totalOrder) > 0;
if (!flag) {
throw new ServiceException("接单失败");
......@@ -567,7 +570,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
// 装载子订单数据
ISonOrderService orderService = serviceBuilder.getSonOrderService(order.getBid());
SonOrderVo sonOrder;
if (orderService != null && (sonOrder = orderService.getSonOrderInfoByTotalId(order.getOrderId())) != null) {
if (orderService != null && (sonOrder = orderService.getSonOrderSimpleDataByTotalId(order.getOrderId())) != null) {
order.setSonOrderStatus(sonOrder.getOrderStatus());
order.setAvatar(sonOrder.getAvatar());
order.setHospital(sonOrder.getHospital());
......@@ -577,7 +580,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
return order;
}
public String getOrderSn(){
public String getOrderSn() {
long timestamp = System.currentTimeMillis();
String timestampStr = Long.toString(timestamp);
Random random = new Random();
......@@ -586,7 +589,7 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
return timestampStr + randomStr;
}
public List<Integer> getTages(String tags){
public List<Integer> getTages(String tags) {
// 去除空格和方括号
String numbersString = tags.replaceAll("[\\[\\] ]", "");
......
......@@ -135,7 +135,7 @@ public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService
* @return 子订单相关信息
*/
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
public SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
......@@ -154,4 +154,15 @@ public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
/**
* 查询预约陪诊订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
@Override
public Object getSonOrderDetailDataByTotalId(Integer totalId) {
return baseMapper.selectYypzOrderDetailDataByTotalId(totalId);
}
}
......@@ -120,7 +120,7 @@ public class ZqghOrderServiceImpl implements IZqghOrderService, ISonOrderService
}
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
public SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
......@@ -140,4 +140,17 @@ public class ZqghOrderServiceImpl implements IZqghOrderService, ISonOrderService
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
/**
* 查询诊前挂号 订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
@Override
public Object getSonOrderDetailDataByTotalId(Integer totalId) {
// TODO: 诊前挂号暂时取消
// return baseMapper.selectZqghOrderDetailDateByTotalId(totalId);
return ISonOrderService.super.getSonOrderDetailDataByTotalId(totalId);
}
}
......@@ -32,7 +32,7 @@ import java.util.Objects;
*/
@RequiredArgsConstructor
@Service
public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderService {
public class ZyphOrderServiceImpl implements IZyphOrderService, ISonOrderService {
private final ZyphOrderMapper baseMapper;
......@@ -40,7 +40,7 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic
* 查询住院陪诊订单
*/
@Override
public ZyphOrderVo queryById(Integer id){
public ZyphOrderVo queryById(Integer id) {
return baseMapper.selectVoById(id);
}
......@@ -106,8 +106,8 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(ZyphOrder entity){
//TODO 做一些数据校验,如唯一约束
private void validEntityBeforeSave(ZyphOrder entity) {
// TODO 做一些数据校验,如唯一约束
}
/**
......@@ -115,8 +115,8 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
if (isValid) {
// TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
......@@ -128,7 +128,7 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic
* @return 子订单相关信息
*/
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
public SonOrderVo getSonOrderSimpleDataByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
......@@ -147,4 +147,15 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
/**
* 查询住院陪护订单详情
*
* @param totalId 主订单ID
* @return 订单详情
*/
@Override
public Object getSonOrderDetailDataByTotalId(Integer totalId) {
return baseMapper.selectZyphOrderDetailDataByTotalId(totalId);
}
}
......@@ -102,9 +102,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
services.name as project,
services.cover,
services.price,
employees.name as emName,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) * CONVERT(services.price, decimal(10, 2)) as commission,
services.bid
total_order.business_id as businessId
from total_order
left join employees on total_order.em_id = employees.id
left join services on total_order.service_id = services.id
<where>
<if test="ew.emptyOfWhere == false">
......
......@@ -64,5 +64,28 @@
where dbgh_order.order_id = #{id}
</select>
<select id="selectDbghOrderDetailDateByTotalId" resultType="com.pz.system.domain.vo.DbghOrderItemVo">
select total_order.id as orderId,
dbgh_order.id as serviceOrderId,
total_order.business_id,
total_order.status as orderStatus,
dbgh_order.status as serviceStatus,
services.name as project,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission,
user_vsitor.name as userName,
hospital.name as hospital,
department.title as department,
dbgh_order.visit_time,
total_order.remark as description
from total_order
left join dbgh_order on dbgh_order.order_id = total_order.id
left join services on total_order.service_id = services.id
left join user_vsitor on user_vsitor.id = dbgh_order.visitor
left join hospital on dbgh_order.hid = hospital.id
left join department on department.id = dbgh_order.did
where total_order.id = #{id}
</select>
</mapper>
......@@ -65,5 +65,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dbmy_order.order_id = #{id}
</select>
<select id="selectDbmyOrderDetailDataByTotalId" resultType="com.pz.system.domain.vo.DbmyOrderItemVo">
select total_order.id as orderId,
dbmy_order.id as serviceOrderId,
total_order.business_id,
total_order.status as orderStatus,
dbmy_order.status as serviceStatus,
services.name as project,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission,
dbmy_order.yp_name,
dbmy_order.yd_address,
dbmy_order.way,
dbmy_order.is_cf,
dbmy_order.prescription_attachment,
dbmy_order.phone,
dbmy_order.recipient,
dbmy_order.adress as address,
dbmy_order.address_info,
dbmy_order.is_refrigerate,
total_order.remark
from total_order
left join dbmy_order on dbmy_order.order_id = total_order.id
left join services on total_order.service_id = services.id
where total_order.id = #{id}
</select>
</mapper>
......@@ -66,5 +66,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dbwz_order.order_id = #{id}
</select>
<select id="selectDbwzOrderDetailDataByTotalId" resultType="com.pz.system.domain.vo.DbwzOrderItemVo">
select total_order.id as orderId,
dbwz_order.id as serviceOrderId,
total_order.business_id,
total_order.status as orderStatus,
dbwz_order.status as serviceStatus,
services.name as project,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission,
user_vsitor.name as userName,
dbwz_order.visit_time,
department.title as department,
dbwz_order.chief_complaint,
dbwz_order.history_of_present_illness,
dbwz_order.past_history,
dbwz_order.related_reports,
dbwz_order.service_requirements,
total_order.remark
from total_order
left join dbwz_order on dbwz_order.order_id = total_order.id
left join services on total_order.service_id = services.id
left join user_vsitor on user_vsitor.id = dbwz_order.visitor
left join department on department.id = dbwz_order.did
where total_order.id = #{id}
</select>
</mapper>
......@@ -65,4 +65,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join hospital on hospital.id = yypz_order.hid
where yypz_order.order_id = #{id}
</select>
<select id="selectYypzOrderDetailDataByTotalId" resultType="com.pz.system.domain.vo.YypzOrderItemVo">
select total_order.id as orderId,
yypz_order.id as serviceOrderId,
total_order.business_id,
total_order.status as orderStatus,
yypz_order.status as serviceStatus,
yypz_order.phone,
yypz_order.visit_time,
services.name as project,
total_order.evaluation_content,
total_order.is_satisfaction as evaluation_flag,
total_order.remark as description,
yypz_order.voucher,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission,
user_vsitor.name as userName,
hospital.name as hospital,
department.title as department,
yypz_order.remark
from total_order
left join yypz_order on yypz_order.order_id = total_order.id
left join services on total_order.service_id = services.id
left join user_vsitor on user_vsitor.id = yypz_order.visitor
left join hospital on yypz_order.hid = hospital.id
left join department on department.id = yypz_order.did
where total_order.id = #{id}
</select>
</mapper>
......@@ -62,4 +62,22 @@
where zqgh_order.order_id = #{id}
</select>
<select id="selectZqghOrderDetailDateByTotalId" resultType="com.pz.system.domain.vo.ZqghOrderItemVo">
select total_order.id as orderId,
zqgh_order.id as serviceOrderId,
total_order.business_id,
total_order.status as orderStatus,
zqgh_order.status as serviceStatus,
hospital.name as hospital,
department.title as department,
zqgh_order.time_of_appointment as visitTime,
doctor.name as doctor
from total_order
left join zqgh_order on zqgh_order.id = total_order.id
left join hospital on zqgh_order.hid = hospital.id
left join department on department.id = zqgh_order.did
left join doctor on zqgh_order.doctor_id = doctor.id
where total_order.id = #{id}
</select>
</mapper>
......@@ -70,5 +70,27 @@
where zyph_order.order_id = #{id}
</select>
<select id="selectZyphOrderDetailDataByTotalId" resultType="com.pz.system.domain.vo.ZyphOrderItemVo">
select total_order.id as orderId,
zyph_order.id as serviceOrderId,
total_order.business_id,
total_order.status as orderStatus,
zyph_order.status as serviceStatus,
services.name as project,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission,
user_vsitor.name as userName,
hospital.name as hospital,
department.title as department,
total_order.remark as description
from total_order
left join zyph_order on zyph_order.order_id = total_order.id
left join services on total_order.service_id = services.id
left join user_vsitor on user_vsitor.id = zyph_order.visitor
left join hospital on zyph_order.hid = hospital.id
left join department on department.id = zyph_order.did
where total_order.id = #{id}
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment