Commit ff32f400 by Wangmin

新增 [陪诊员端]

1.需求广场
2.接单
3.根据订单ID查询详情
parent 6dc4e78c
package com.pz.accompany;
import cn.dev33.satoken.annotation.SaIgnore;
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.system.domain.vo.AccompanyDemandVo;
import com.pz.system.service.ITotalOrderService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 陪诊员端[小程序]
* <p>created in 2023/9/13 16:57
*
* @author WangMin
* @version 1.0
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("app/accompany")
@SaIgnore
public class EmployeesAccompanyController extends BaseController {
private final ITotalOrderService totalOrderService;
/**
* 需求广场 列表
*
* @param page 分页参数
* @return 未分配陪诊员的业务订单
*/
@GetMapping("/demands")
public TableDataInfo<AccompanyDemandVo> demandSquareList(PageQuery page) {
return totalOrderService.queryUndistributedOrder(page);
}
public R<AccompanyDemandVo> getOrderInfoById(@NotNull(message = "订单ID不能为空") Long orderId) {
return R.ok(totalOrderService.queryTotalOrderById(orderId));
}
/**
* 陪诊员接单
*
* @param emId 陪诊员ID
* @param orderId 主订单ID
* @return 操作结果
*/
@PostMapping("/order/receive")
public R<Boolean> orderReceiving(@NotNull(message = "陪诊员ID不能为空") Integer emId, @NotNull(message = "订单ID不能为空") Integer orderId) {
return R.ok(totalOrderService.orderReceiving(emId, orderId));
}
}
...@@ -239,7 +239,11 @@ springdoc: ...@@ -239,7 +239,11 @@ springdoc:
- group: 5.小程序用户模块 - group: 5.小程序用户模块
packages-to-scan: com.pz.applet packages-to-scan: com.pz.applet
- group: 6.小程序商户模块 - group: 6.小程序商户模块
packages-to-scan: com.pz.merchant.controller packages-to-scan:
- com.pz.merchant.controller
- com.pz.accompany
paths-to-exclude:
- com.pz.merchant.controller.pc.EmployeesController
# 防止XSS攻击 # 防止XSS攻击
xss: xss:
......
...@@ -8,6 +8,7 @@ import com.pz.common.core.domain.R; ...@@ -8,6 +8,7 @@ import com.pz.common.core.domain.R;
import com.pz.common.core.validate.AddGroup; import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup; import com.pz.common.core.validate.EditGroup;
import com.pz.common.enums.BusinessType; import com.pz.common.enums.BusinessType;
import com.pz.common.helper.LoginHelper;
import com.pz.common.utils.poi.ExcelUtil; import com.pz.common.utils.poi.ExcelUtil;
import com.pz.system.domain.Department; import com.pz.system.domain.Department;
import com.pz.system.domain.bo.DepartmentBo; import com.pz.system.domain.bo.DepartmentBo;
......
...@@ -28,7 +28,6 @@ import javax.validation.constraints.NotNull; ...@@ -28,7 +28,6 @@ import javax.validation.constraints.NotNull;
@RestController("AppCompanyController") @RestController("AppCompanyController")
@RequestMapping("/merchant/app/company") @RequestMapping("/merchant/app/company")
@RequiredArgsConstructor @RequiredArgsConstructor
@SaIgnore
public class CompanyController extends BaseController { public class CompanyController extends BaseController {
private final ICompanyService companyService; private final ICompanyService companyService;
......
...@@ -29,6 +29,9 @@ public class SonOrderVo { ...@@ -29,6 +29,9 @@ public class SonOrderVo {
*/ */
private String avatar; private String avatar;
/**
* 医院
*/
private String hospital; private String hospital;
/** /**
......
...@@ -13,9 +13,19 @@ public interface ISonOrderService { ...@@ -13,9 +13,19 @@ public interface ISonOrderService {
/** /**
* 根据主订单ID查询子订单相关信息 * 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID * @param totalId 主订单ID
* @return 子订单相关信息 * @return 子订单相关信息
*/ */
SonOrderVo getSonOrderInfoByTotalId(Integer totalId); SonOrderVo getSonOrderInfoByTotalId(Integer totalId);
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
boolean switchSonOrderStatus(Long totalId, Integer target);
} }
package com.pz.system.domain.vo; package com.pz.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.Date; import java.util.Date;
...@@ -10,6 +11,7 @@ import java.util.Date; ...@@ -10,6 +11,7 @@ import java.util.Date;
* @author WangMin * @author WangMin
* @version 1.0 * @version 1.0
*/ */
@Data
public class AccompanyDemandVo { public class AccompanyDemandVo {
/** /**
...@@ -48,6 +50,16 @@ public class AccompanyDemandVo { ...@@ -48,6 +50,16 @@ public class AccompanyDemandVo {
private Date visitTime; private Date visitTime;
/** /**
* 需求描述
*/
private String description;
/**
* 服务状态,0:已发布,1:已接单,2:已完成,3:退款中 ,4:已退款,6:进行中
*/
private Integer sonOrderStatus;
/**
* 订单所属业务 * 订单所属业务
*/ */
@JsonIgnore @JsonIgnore
......
...@@ -32,4 +32,12 @@ public interface TotalOrderMapper extends BaseMapperPlus<TotalOrderMapper, Total ...@@ -32,4 +32,12 @@ public interface TotalOrderMapper extends BaseMapperPlus<TotalOrderMapper, Total
*/ */
IPage<AccompanyDemandVo> selectUndistributedTotalOrder(IPage<AccompanyDemandVo> page, @Param(Constants.WRAPPER) Wrapper<TotalOrder> queryWrapper); IPage<AccompanyDemandVo> selectUndistributedTotalOrder(IPage<AccompanyDemandVo> page, @Param(Constants.WRAPPER) Wrapper<TotalOrder> queryWrapper);
/**
* 查询订单信息
*
* @param id 订单ID
* @return 订单信息
*/
AccompanyDemandVo selectTotalOrderById(Long id);
} }
...@@ -8,6 +8,7 @@ import com.pz.system.domain.bo.TotalOrderBo; ...@@ -8,6 +8,7 @@ import com.pz.system.domain.bo.TotalOrderBo;
import com.pz.common.core.page.TableDataInfo; import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery; import com.pz.common.core.domain.PageQuery;
import javax.validation.constraints.NotNull;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
...@@ -64,4 +65,22 @@ public interface ITotalOrderService { ...@@ -64,4 +65,22 @@ public interface ITotalOrderService {
*/ */
TableDataInfo<AccompanyDemandVo> queryUndistributedOrder(PageQuery page); TableDataInfo<AccompanyDemandVo> queryUndistributedOrder(PageQuery page);
/**
* 陪诊员接单
*
* @param emId 陪诊员ID
* @param orderId 主订单ID
* @return 操作结果
*/
boolean orderReceiving(Integer emId, Integer orderId);
/**
* 查询订单信息
*
* @param id 订单ID
* @return 订单信息
*/
AccompanyDemandVo queryTotalOrderById(Long id);
} }
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder;
import com.pz.system.mapper.UserVsitorMapper; import com.pz.system.mapper.UserVsitorMapper;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -17,11 +18,9 @@ import com.pz.system.domain.vo.DbghOrderVo; ...@@ -17,11 +18,9 @@ import com.pz.system.domain.vo.DbghOrderVo;
import com.pz.system.domain.DbghOrder; import com.pz.system.domain.DbghOrder;
import com.pz.system.mapper.DbghOrderMapper; import com.pz.system.mapper.DbghOrderMapper;
import com.pz.system.service.IDbghOrderService; import com.pz.system.service.IDbghOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/** /**
* 代办挂号订单Service业务层处理 * 代办挂号订单Service业务层处理
...@@ -131,4 +130,20 @@ public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService ...@@ -131,4 +130,20 @@ public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) { public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId); return baseMapper.selectSonOrderInfoByTotalId(totalId);
} }
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean switchSonOrderStatus(Long totalId, Integer target) {
DbghOrder sonOrder = baseMapper.selectOne(Wrappers.<DbghOrder>lambdaQuery().eq(DbghOrder::getOrderId, totalId));
Objects.requireNonNull(sonOrder, "子订单不存在,请检查");
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
} }
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.DbmyOrderBo; import com.pz.system.domain.bo.DbmyOrderBo;
...@@ -16,10 +17,12 @@ import com.pz.system.domain.vo.DbmyOrderVo; ...@@ -16,10 +17,12 @@ import com.pz.system.domain.vo.DbmyOrderVo;
import com.pz.system.domain.DbmyOrder; import com.pz.system.domain.DbmyOrder;
import com.pz.system.mapper.DbmyOrderMapper; import com.pz.system.mapper.DbmyOrderMapper;
import com.pz.system.service.IDbmyOrderService; import com.pz.system.service.IDbmyOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Objects;
/** /**
* 代办买药订单Service业务层处理 * 代办买药订单Service业务层处理
...@@ -129,4 +132,20 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService ...@@ -129,4 +132,20 @@ public class DbmyOrderServiceImpl implements IDbmyOrderService, ISonOrderService
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) { public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId); return baseMapper.selectSonOrderInfoByTotalId(totalId);
} }
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean switchSonOrderStatus(Long totalId, Integer target) {
DbmyOrder sonOrder = baseMapper.selectOne(Wrappers.<DbmyOrder>lambdaQuery().eq(DbmyOrder::getOrderId, totalId));
Objects.requireNonNull(sonOrder, "子订单不存在,请检查");
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
} }
...@@ -17,11 +17,9 @@ import com.pz.system.domain.vo.DbwzOrderVo; ...@@ -17,11 +17,9 @@ import com.pz.system.domain.vo.DbwzOrderVo;
import com.pz.system.domain.DbwzOrder; import com.pz.system.domain.DbwzOrder;
import com.pz.system.mapper.DbwzOrderMapper; import com.pz.system.mapper.DbwzOrderMapper;
import com.pz.system.service.IDbwzOrderService; import com.pz.system.service.IDbwzOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/** /**
* 代办问诊订单Service业务层处理 * 代办问诊订单Service业务层处理
...@@ -138,4 +136,20 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService ...@@ -138,4 +136,20 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) { public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId); return baseMapper.selectSonOrderInfoByTotalId(totalId);
} }
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean switchSonOrderStatus(Long totalId, Integer target) {
DbwzOrder sonOrder = baseMapper.selectOne(Wrappers.<DbwzOrder>lambdaQuery().eq(DbwzOrder::getOrderId, totalId));
Objects.requireNonNull(sonOrder, "子订单不存在,请检查");
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
} }
...@@ -494,11 +494,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService { ...@@ -494,11 +494,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
userIdentityVo.setUserType(1); userIdentityVo.setUserType(1);
}else if(sysUser.getUserType().equals(UserType.APP_USER.getUserType())){ }else if(sysUser.getUserType().equals(UserType.APP_USER.getUserType())){
Employees employees = employeesMapper.selectOne(new LambdaQueryWrapper<Employees>().eq(Employees::getUid, sysUser.getUserId())); Employees employees = employeesMapper.selectOne(new LambdaQueryWrapper<Employees>().eq(Employees::getUid, sysUser.getUserId()));
userIdentityVo.setUserType(employees.getStatus()); userIdentityVo.setUserType(2);
userIdentityVo.setEmCmId(employees.getId()); userIdentityVo.setEmCmId(employees.getId());
}else if(sysUser.getUserType().equals(UserType.AMERCHANT_USER.getUserType())){ }else if(sysUser.getUserType().equals(UserType.AMERCHANT_USER.getUserType())){
Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getUid, sysUser.getUserId())); Company company = companyMapper.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getUid, sysUser.getUserId()));
userIdentityVo.setUserType(company.getStatus()); userIdentityVo.setUserType(3);
userIdentityVo.setEmCmId(company.getId()); userIdentityVo.setEmCmId(company.getId());
} }
return userIdentityVo; return userIdentityVo;
......
...@@ -9,6 +9,10 @@ import com.pz.common.core.domain.PageQuery; ...@@ -9,6 +9,10 @@ import com.pz.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.common.exception.ServiceException;
import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService;
import com.pz.merchant.service.impl.SonOrderServiceBuilder;
import com.pz.system.domain.bo.CreateOrderBo; import com.pz.system.domain.bo.CreateOrderBo;
import com.pz.system.domain.vo.AccompanyDemandVo; import com.pz.system.domain.vo.AccompanyDemandVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -18,10 +22,12 @@ import com.pz.system.domain.vo.TotalOrderVo; ...@@ -18,10 +22,12 @@ import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.system.domain.TotalOrder; import com.pz.system.domain.TotalOrder;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.service.ITotalOrderService; import com.pz.system.service.ITotalOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Objects;
/** /**
* 总订单Service业务层处理 * 总订单Service业务层处理
...@@ -35,6 +41,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService { ...@@ -35,6 +41,8 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
private final TotalOrderMapper baseMapper; private final TotalOrderMapper baseMapper;
private final SonOrderServiceBuilder serviceBuilder;
/** /**
* 查询总订单 * 查询总订单
*/ */
...@@ -139,7 +147,71 @@ public class TotalOrderServiceImpl implements ITotalOrderService { ...@@ -139,7 +147,71 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
wrapper.apply("total_order.em_id = 0") wrapper.apply("total_order.em_id = 0")
.between("total_order.business_id", 1, 5); .between("total_order.business_id", 1, 5);
IPage<AccompanyDemandVo> result = baseMapper.selectUndistributedTotalOrder(page.build(), wrapper); 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) {
order.setAvatar(sonOrder.getAvatar());
order.setSonOrderStatus(sonOrder.getOrderStatus());
order.setHospital(sonOrder.getHospital());
order.setVisitTime(sonOrder.getVisitTime());
order.setUserName(sonOrder.getUserName());
}
});
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
/**
* 陪诊员接单
*
* @param emId 陪诊员ID
* @param orderId 主订单ID
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean orderReceiving(Integer emId, Integer orderId) {
TotalOrder totalOrder = baseMapper.selectById(orderId);
Objects.requireNonNull(totalOrder, "订单不存在");
if (totalOrder.getEmId() != 0) {
throw new ServiceException("该订单已分配给其他陪诊员,不允许重复分配");
}
ISonOrderService orderService = serviceBuilder.getSonOrderService(totalOrder.getBusinessId());
Objects.requireNonNull(orderService, "订单业务属性出错");
// 修改子订单状态为已接单
boolean sonOrderFlag = orderService.switchSonOrderStatus(totalOrder.getId(), 1);
if (!sonOrderFlag) {
throw new ServiceException("子订单状态修改出错,接单失败");
}
totalOrder.setEmId(emId);
boolean flag = baseMapper.updateById(totalOrder) > 0;
if (!flag) {
throw new ServiceException("接单失败");
}
return true;
}
/**
* 查询订单信息
*
* @param id 订单ID
* @return 订单信息
*/
@Override
public AccompanyDemandVo queryTotalOrderById(Long id) {
AccompanyDemandVo order = baseMapper.selectTotalOrderById(id);
Objects.requireNonNull(order, "未查询到订单信息");
// 装载子订单数据
ISonOrderService orderService = serviceBuilder.getSonOrderService(order.getBid());
SonOrderVo sonOrder;
if (orderService != null && (sonOrder = orderService.getSonOrderInfoByTotalId(order.getOrderId())) != null) {
order.setSonOrderStatus(sonOrder.getOrderStatus());
order.setAvatar(sonOrder.getAvatar());
order.setHospital(sonOrder.getHospital());
order.setVisitTime(sonOrder.getVisitTime());
order.setUserName(sonOrder.getUserName());
}
return order;
}
} }
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder;
import com.pz.system.mapper.CityMapper; import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.TotalOrderMapper; import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.mapper.UserVsitorMapper; import com.pz.system.mapper.UserVsitorMapper;
...@@ -19,12 +20,10 @@ import com.pz.system.domain.vo.YypzOrderVo; ...@@ -19,12 +20,10 @@ import com.pz.system.domain.vo.YypzOrderVo;
import com.pz.system.domain.YypzOrder; import com.pz.system.domain.YypzOrder;
import com.pz.system.mapper.YypzOrderMapper; import com.pz.system.mapper.YypzOrderMapper;
import com.pz.system.service.IYypzOrderService; import com.pz.system.service.IYypzOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/** /**
* 预约陪诊订单Service业务层处理 * 预约陪诊订单Service业务层处理
...@@ -139,4 +138,20 @@ public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService ...@@ -139,4 +138,20 @@ public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) { public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId); return baseMapper.selectSonOrderInfoByTotalId(totalId);
} }
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean switchSonOrderStatus(Long totalId, Integer target) {
YypzOrder sonOrder = baseMapper.selectOne(Wrappers.<YypzOrder>lambdaQuery().eq(YypzOrder::getOrderId, totalId));
Objects.requireNonNull(sonOrder, "子订单不存在,请检查");
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
} }
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.ZqghOrderBo; import com.pz.system.domain.bo.ZqghOrderBo;
...@@ -16,10 +17,12 @@ import com.pz.system.domain.vo.ZqghOrderVo; ...@@ -16,10 +17,12 @@ import com.pz.system.domain.vo.ZqghOrderVo;
import com.pz.system.domain.ZqghOrder; import com.pz.system.domain.ZqghOrder;
import com.pz.system.mapper.ZqghOrderMapper; import com.pz.system.mapper.ZqghOrderMapper;
import com.pz.system.service.IZqghOrderService; import com.pz.system.service.IZqghOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Objects;
/** /**
* 诊前挂号订单Service业务层处理 * 诊前挂号订单Service业务层处理
...@@ -120,4 +123,21 @@ public class ZqghOrderServiceImpl implements IZqghOrderService, ISonOrderService ...@@ -120,4 +123,21 @@ public class ZqghOrderServiceImpl implements IZqghOrderService, ISonOrderService
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) { public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId); return baseMapper.selectSonOrderInfoByTotalId(totalId);
} }
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean switchSonOrderStatus(Long totalId, Integer target) {
ZqghOrder sonOrder = baseMapper.selectOne(Wrappers.<ZqghOrder>lambdaQuery().eq(ZqghOrder::getOrderId, totalId));
Objects.requireNonNull(sonOrder, "子订单不存在,请检查");
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
} }
...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.merchant.domain.vo.SonOrderVo; import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService; import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.DbwzOrder;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.ZyphOrderBo; import com.pz.system.domain.bo.ZyphOrderBo;
...@@ -16,10 +17,12 @@ import com.pz.system.domain.vo.ZyphOrderVo; ...@@ -16,10 +17,12 @@ import com.pz.system.domain.vo.ZyphOrderVo;
import com.pz.system.domain.ZyphOrder; import com.pz.system.domain.ZyphOrder;
import com.pz.system.mapper.ZyphOrderMapper; import com.pz.system.mapper.ZyphOrderMapper;
import com.pz.system.service.IZyphOrderService; import com.pz.system.service.IZyphOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Objects;
/** /**
* 住院陪诊订单Service业务层处理 * 住院陪诊订单Service业务层处理
...@@ -128,4 +131,20 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic ...@@ -128,4 +131,20 @@ public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderServic
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) { public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId); return baseMapper.selectSonOrderInfoByTotalId(totalId);
} }
/**
* 切换子订单状态
*
* @param totalId 主订单ID
* @param target 子订单目标状态
* @return 操作结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean switchSonOrderStatus(Long totalId, Integer target) {
ZyphOrder sonOrder = baseMapper.selectOne(Wrappers.<ZyphOrder>lambdaQuery().eq(ZyphOrder::getOrderId, totalId));
Objects.requireNonNull(sonOrder, "子订单不存在,请检查");
sonOrder.setStatus(target);
return baseMapper.updateById(sonOrder) > 0;
}
} }
...@@ -52,10 +52,15 @@ ...@@ -52,10 +52,15 @@
</select> </select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo"> <select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.name as userName, select vsitor.name as userName,
dbgh_order.status as orderStatus dbgh_order.status as orderStatus,
sys_user.avatar,
hospital.name as hospital,
dbgh_order.visit_time
from dbgh_order from dbgh_order
left join user_vsitor as user on user.id = dbgh_order.visitor left join user_vsitor as vsitor on vsitor.id = dbgh_order.visitor
left join sys_user on sys_user.user_id = vsitor.uid
left join hospital on hospital.id = dbgh_order.hid
where dbgh_order.order_id = #{id} where dbgh_order.order_id = #{id}
</select> </select>
......
...@@ -57,7 +57,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -57,7 +57,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo"> <select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select dbmy_order.status as orderStatus, select dbmy_order.status as orderStatus,
sys_user.nick_name as userName sys_user.nick_name as userName,
sys_user.avatar
from dbmy_order from dbmy_order
left join total_order on total_order.id = dbmy_order.order_id left join total_order on total_order.id = dbmy_order.order_id
left join sys_user on sys_user.user_id = total_order.uid left join sys_user on sys_user.user_id = total_order.uid
......
...@@ -56,10 +56,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -56,10 +56,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo"> <select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user_vsitor.name as userName, select vsitor.name as userName,
dbwz_order.status as orderStatus dbwz_order.status as orderStatus,
sys_user.avatar,
dbwz_order.visit_time
from dbwz_order from dbwz_order
left join user_vsitor on user_vsitor.id = dbwz_order.visitor left join user_vsitor as vsitor on vsitor.id = dbwz_order.visitor
left join sys_user on sys_user.user_id = vsitor.uid
where dbwz_order.order_id = #{id} where dbwz_order.order_id = #{id}
</select> </select>
......
...@@ -4,18 +4,28 @@ ...@@ -4,18 +4,28 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pz.system.mapper.TotalOrderMapper"> <mapper namespace="com.pz.system.mapper.TotalOrderMapper">
<select id="selectUndistributedTotalOrder" resultType="com.pz.system.domain.vo.AccompanyDemandVo"> <sql id="OrderCommon">
select total_order.id as orderId, select total_order.id as orderId,
services.name as project, services.name as project,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) * CONVERT((1 - services.fenmo / 100), decimal(10, 2)) *
CONVERT(services.price, decimal(10, 2)) as commission, CONVERT(services.price, decimal(10, 2)) as commission,
services.bid services.bid,
total_order.remark as description
from total_order from total_order
left join services on total_order.service_id = services.id left join services on total_order.service_id = services.id
</sql>
<select id="selectUndistributedTotalOrder" resultType="com.pz.system.domain.vo.AccompanyDemandVo">
<include refid="OrderCommon"/>
<where> <where>
<if test="ew.emptyOfWhere == false"> <if test="ew.emptyOfWhere == false">
and ${ew.sqlSegment} and ${ew.sqlSegment}
</if> </if>
</where> </where>
</select> </select>
<select id="selectTotalOrderById" resultType="com.pz.system.domain.vo.AccompanyDemandVo">
<include refid="OrderCommon"/>
where total_order.id = #{id}
</select>
</mapper> </mapper>
...@@ -54,10 +54,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -54,10 +54,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo"> <select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.name as userName, select vsitor.name as userName,
yypz_order.status as orderStatus yypz_order.status as orderStatus,
sys_user.avatar,
hospital.name as hospital,
yypz_order.visit_time
from yypz_order from yypz_order
left join user_vsitor as user on user.id = yypz_order.visitor left join user_vsitor as vsitor on vsitor.id = yypz_order.visitor
left join sys_user on sys_user.user_id = vsitor.uid
left join hospital on hospital.id = yypz_order.hid
where yypz_order.order_id = #{id} where yypz_order.order_id = #{id}
</select> </select>
</mapper> </mapper>
...@@ -58,11 +58,15 @@ ...@@ -58,11 +58,15 @@
</select> </select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo"> <select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.name as userName, select vsitor.name as userName,
zyph_order.status as orderStatus zyph_order.status as orderStatus,
sys_user.avatar,
hospital.name as hospital,
zyph_order.start_day as visitTime
from zyph_order from zyph_order
left join user_vsitor as user left join user_vsitor as vsitor on vsitor.id = zyph_order.visitor
on user.id = zyph_order.visitor left join sys_user on sys_user.user_id = vsitor.uid
left join hospital on hospital.id = zyph_order.hid
where zyph_order.order_id = #{id} where zyph_order.order_id = #{id}
</select> </select>
......
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