Commit 20fab6ea by 邹磊浩

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

parents 83d3322b 8329dc47
package com.pz.web.controller.system;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
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.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
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.UserAddressVo;
import com.pz.system.domain.bo.UserAddressBo;
import com.pz.system.service.IUserAddressService;
import com.pz.common.core.page.TableDataInfo;
/**
* 用户收货地址
*
* @author ruoyi
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/address")
public class UserAddressController extends BaseController {
private final IUserAddressService iUserAddressService;
/**
* 查询用户收货地址列表
*/
@SaCheckPermission("system:address:list")
@GetMapping("/list")
public TableDataInfo<UserAddressVo> list(UserAddressBo bo, PageQuery pageQuery) {
return iUserAddressService.queryPageList(bo, pageQuery);
}
/**
* 导出用户收货地址列表
*/
@SaCheckPermission("system:address:export")
@Log(title = "用户收货地址", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(UserAddressBo bo, HttpServletResponse response) {
List<UserAddressVo> list = iUserAddressService.queryList(bo);
ExcelUtil.exportExcel(list, "用户收货地址", UserAddressVo.class, response);
}
/**
* 获取用户收货地址详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:address:query")
@GetMapping("/{id}")
public R<UserAddressVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iUserAddressService.queryById(id));
}
/**
* 新增用户收货地址
*/
@SaCheckPermission("system:address:add")
@Log(title = "用户收货地址", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserAddressBo bo) {
return toAjax(iUserAddressService.insertByBo(bo));
}
/**
* 修改用户收货地址
*/
@SaCheckPermission("system:address:edit")
@Log(title = "用户收货地址", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserAddressBo bo) {
return toAjax(iUserAddressService.updateByBo(bo));
}
/**
* 删除用户收货地址
*
* @param ids 主键串
*/
@SaCheckPermission("system:address:remove")
@Log(title = "用户收货地址", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iUserAddressService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
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.UserAppreciate;
import com.pz.system.domain.bo.ArticleBo;
import com.pz.system.domain.bo.ArticleCommentBo;
import com.pz.system.domain.bo.UserAppreciateBo;
import com.pz.system.domain.bo.UserCollectBo;
import com.pz.system.domain.vo.ArticleVo;
import com.pz.system.service.IArticleService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 文章
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/article")
public class AppletArticleController extends BaseController {
private final IArticleService iArticleService;
/**
* 查询文章列表
*/
@GetMapping("/list")
public TableDataInfo<ArticleVo> list(ArticleBo bo, PageQuery pageQuery) {
return iArticleService.queryPageListByApp(bo, pageQuery);
}
/**
* 获取文章详细信息
*
* @param id 主键
*/
@GetMapping("/{id}")
public R<ArticleVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iArticleService.queryById(id));
}
/**
* 新增点赞
*/
@RepeatSubmit()
@PostMapping("/Appreciate")
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserAppreciateBo bo) {
bo.setUid(1);
return toAjax(iArticleService.insertByAppreciate(bo));
}
/**
* 新增收藏
*/
@RepeatSubmit()
@PostMapping("/Collect")
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserCollectBo bo) {
bo.setUid(1);
return toAjax(iArticleService.insertByCollect(bo));
}
/**
* 新增评论
*/
@RepeatSubmit()
@PostMapping("/Comment")
public R<Void> add(@Validated(AddGroup.class) @RequestBody ArticleCommentBo bo) {
bo.setUid(1);
return toAjax(iArticleService.insertByComment(bo));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
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.merchant.domain.bo.CompanyBo;
import com.pz.merchant.domain.vo.CompanyVo;
import com.pz.merchant.service.ICompanyService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 商户
*
* @author WangMin
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/company")
public class AppletCompanyController extends BaseController {
private final ICompanyService iCompanyService;
/**
* 查询商户列表
*/
@SaCheckPermission("merchant:company:list")
@GetMapping("/list")
public TableDataInfo<CompanyVo> list(CompanyBo bo, PageQuery pageQuery) {
return iCompanyService.queryPageList(bo, pageQuery);
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.R;
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.bo.DepartmentBo;
import com.pz.system.domain.vo.DepartmentVo;
import com.pz.system.service.IDepartmentService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 科室
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/department")
public class AppletDepartmentController extends BaseController {
private final IDepartmentService iDepartmentService;
/**
* 查询科室列表
*/
@SaCheckPermission("system:department:list")
@GetMapping("/list")
public R<List<DepartmentVo>> list(DepartmentBo bo) {
return R.ok(iDepartmentService.queryPageList(bo));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
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.merchant.domain.bo.EmployeesBo;
import com.pz.merchant.domain.vo.EmployeesVo;
import com.pz.merchant.service.IEmployeesService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 陪诊员
*
* @author WangMin
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/employees")
public class AppletEmployeesController extends BaseController {
private final IEmployeesService iEmployeesService;
/**
* 需求广场
*/
@SaCheckPermission("merchant:employees:list")
@GetMapping("/needList")
public TableDataInfo<EmployeesVo> needList(EmployeesBo bo, PageQuery pageQuery) {
return iEmployeesService.queryPageAppNeed(bo, pageQuery);
}
/**
* 排行榜
*/
@SaCheckPermission("merchant:employees:list")
@GetMapping("/rankingList")
public TableDataInfo<EmployeesVo> rankingList(EmployeesBo bo, PageQuery pageQuery) {
return iEmployeesService.queryPageAppRanking(bo, pageQuery);
}
/**
* 获取陪诊员详细信息
*
* @param id 主键
*/
@SaCheckPermission("merchant:employees:query")
@GetMapping("/{id}")
public R<EmployeesVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iEmployeesService.queryByApp(id));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
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.bo.HospitalBo;
import com.pz.system.domain.vo.HospitalVo;
import com.pz.system.service.IHospitalService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 医院
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/hospital")
public class AppletHospitalController extends BaseController {
private final IHospitalService iHospitalService;
/**
* 查询医院列表
*/
@GetMapping("/list")
public TableDataInfo<HospitalVo> list(HospitalBo bo, PageQuery pageQuery) {
return iHospitalService.queryPageList(bo, pageQuery);
}
/**
* 获取医院详细信息
*
* @param id 主键
*/
@GetMapping("/{id}")
public R<HospitalVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iHospitalService.queryById(id));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
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.bo.InformationBo;
import com.pz.system.domain.vo.InformationVo;
import com.pz.system.service.IInformationService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 新闻资讯
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/information")
public class AppletInformationController extends BaseController {
private final IInformationService iInformationService;
/**
* 查询新闻资讯列表
*/
@GetMapping("/list")
public TableDataInfo<InformationVo> list(InformationBo bo, PageQuery pageQuery) {
return iInformationService.queryPageList(bo, pageQuery);
}
/**
* 获取新闻资讯详细信息
*
* @param id 主键
*/
@GetMapping("/{id}")
public R<InformationVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iInformationService.queryById(id));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
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.bo.UserAddressBo;
import com.pz.system.domain.vo.UserAddressVo;
import com.pz.system.service.IUserAddressService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 用户收货地址
*
* @author ruoyi
* @date 2023-09-11
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/address")
public class AppletUserAddressController extends BaseController {
private final IUserAddressService iUserAddressService;
/**
* 查询用户收货地址列表
*/
@SaCheckPermission("system:address:list")
@GetMapping("/list")
public TableDataInfo<UserAddressVo> list(UserAddressBo bo, PageQuery pageQuery) {
return iUserAddressService.queryPageList(bo, pageQuery);
}
/**
* 获取用户收货地址详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:address:query")
@GetMapping("/{id}")
public R<UserAddressVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iUserAddressService.queryById(id));
}
/**
* 新增用户收货地址
*/
@SaCheckPermission("system:address:add")
@Log(title = "用户收货地址", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserAddressBo bo) {
bo.setUid(1);
return toAjax(iUserAddressService.insertByBo(bo));
}
/**
* 修改用户收货地址
*/
@SaCheckPermission("system:address:edit")
@Log(title = "用户收货地址", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserAddressBo bo) {
return toAjax(iUserAddressService.updateByBo(bo));
}
/**
* 删除用户收货地址
*
* @param ids 主键串
*/
@SaCheckPermission("system:address:remove")
@Log(title = "用户收货地址", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iUserAddressService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.page.TableDataInfo;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.enums.BusinessType;
import com.pz.system.domain.bo.ServicesBo;
import com.pz.system.domain.bo.UserVsitorBo;
import com.pz.system.domain.vo.ServicesVo;
import com.pz.system.domain.vo.UserVsitorVo;
import com.pz.system.service.IUserVsitorService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* 就诊人
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/vsitor")
public class AppletUserVsitorController extends BaseController {
private final IUserVsitorService iUserVsitorService;
/**
* 查询就诊人列表
*/
@GetMapping("/list")
public TableDataInfo<UserVsitorVo> list(UserVsitorBo bo, PageQuery pageQuery) {
return iUserVsitorService.queryPageList(bo, pageQuery);
}
/**
* 新增就诊人
*/
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserVsitorBo bo) {
bo.setUid(1);
return toAjax(iUserVsitorService.insertByBo(bo));
}
}
......@@ -127,5 +127,9 @@ public class EmployeesBo extends BaseEntity {
@NotNull(message = "取消订单次数不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer killOrder;
/**
* 好评率
*/
private String favorableRate;
}
......@@ -4,9 +4,11 @@ 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 com.pz.system.domain.TotalOrder;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
......@@ -108,4 +110,18 @@ public class EmployeesVo {
private String cityName;
private Integer cityId;
/**
* 好评率
*/
private Double satisfactionRate;
/**
* 头像
*/
private String avatar;
/**
* 最近好评
*/
private List<TotalOrder> totalOrderVo;
}
package com.pz.merchant.domain.vo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
/**
......@@ -46,4 +47,7 @@ public class OrderInfoVO {
*/
private String userName;
@JsonIgnore
private Integer bid;
}
package com.pz.merchant.domain.vo;
import lombok.Data;
/**
* 子订单数据实体
* <p>created in 2023/9/11 17:18
*
* @author WangMin
* @version 1.0
*/
@Data
public class SonOrderVo {
/**
* 就诊人员姓名
*/
private String userName;
/**
* 服务状态,0:已发布,1:已接单,2:已完成,3:退款中 ,4:已退款,6:进行中
*/
private Integer orderStatus;
}
......@@ -3,9 +3,11 @@ package com.pz.merchant.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.page.TableDataInfo;
import com.pz.merchant.domain.Employees;
import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.merchant.domain.bo.EmployeesListBo;
import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.domain.vo.EmployeesVo;
......@@ -47,5 +49,7 @@ public interface EmployeesMapper extends BaseMapperPlus<EmployeesMapper, Employe
*/
List<OrderInfoVO> selectTodayOrderByEid(@Param("id") Integer emId);
Page<EmployeesVo> selectEmployees(EmployeesBo bo, PageQuery pageQuery);
EmployeesVo selectEmployeesById(Integer id);
}
......@@ -77,4 +77,19 @@ public interface IEmployeesService {
* @return 订单列表
*/
List<OrderInfoVO> queryTodayOrders(Integer emId);
/**
* 排行榜
*/
TableDataInfo<EmployeesVo> queryPageAppRanking(EmployeesBo bo, PageQuery pageQuery);
/**
* 需求广场
*/
TableDataInfo<EmployeesVo> queryPageAppNeed(EmployeesBo bo, PageQuery pageQuery);
/**
* 查询陪诊员
*/
EmployeesVo queryByApp(Integer id);
}
package com.pz.merchant.service;
import com.pz.merchant.domain.vo.SonOrderVo;
/**
* 子订单业务
* <p>created in 2023/9/11 17:16
*
* @author WangMin
* @version 1.0
*/
public interface ISonOrderService {
/**
* 根据主订单ID查询子订单相关信息
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo getSonOrderInfoByTotalId(Integer totalId);
}
......@@ -17,8 +17,10 @@ import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.domain.vo.OrderInfoVO;
import com.pz.merchant.domain.vo.TodayOrderListVo;
import com.pz.merchant.mapper.CompanyMapper;
import com.pz.system.domain.TotalOrder;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.SysUserMapper;
import com.pz.system.mapper.TotalOrderMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.merchant.domain.bo.EmployeesBo;
......@@ -44,7 +46,7 @@ public class EmployeesServiceImpl implements IEmployeesService {
private final CompanyMapper companyMapper;
private final SysUserMapper sysUserMapper;
private final CityMapper cityMapper;
private final TotalOrderMapper totalOrderMapper;
/**
* 查询陪诊员
*/
......@@ -62,16 +64,16 @@ public class EmployeesServiceImpl implements IEmployeesService {
Page<EmployeesVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Optional.ofNullable(result.getRecords()).ifPresent(employeesVos -> {
employeesVos.forEach(employeesVo -> {
//获取商户名称
// 获取商户名称
Optional.ofNullable(companyMapper.selectVoById(employeesVo.getCompanyId()))
.ifPresent(companyVo -> employeesVo.setCompanyName(companyVo.getName()));
//获取用户名称
// 获取用户名称
Optional.ofNullable(sysUserMapper.selectUserById(employeesVo.getUid().longValue())).ifPresent(
sysUser -> employeesVo.setUserName(sysUser.getNickName())
);
//获取城市
// 获取城市
Optional.ofNullable(cityMapper.selectVoById(employeesVo.getCityId())).ifPresent(
cityVo -> employeesVo.setCityName(cityVo.getName())
);
......@@ -138,6 +140,65 @@ public class EmployeesServiceImpl implements IEmployeesService {
}
/**
* 需求广场
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<EmployeesVo> queryPageAppNeed(EmployeesBo bo, PageQuery pageQuery) {
Page<EmployeesVo> result = baseMapper.selectEmployees(bo,pageQuery);
Optional.ofNullable(result.getRecords()).ifPresent(EmployeesVo -> {
EmployeesVo.forEach(t -> {
List<TotalOrder> totalOrder = totalOrderMapper.selectList(Wrappers.<TotalOrder>lambdaQuery()
.eq(TotalOrder::getEmId, t.getId())
.eq(TotalOrder::getIsSatisfaction, 1)
.orderByDesc(TotalOrder::getId)
.last("LIMIT 1"));
t.setTotalOrderVo(totalOrder);
});
});
return TableDataInfo.build(result);
}
/**
* 排行榜
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<EmployeesVo> queryPageAppRanking(EmployeesBo bo, PageQuery pageQuery) {
Page<EmployeesVo> result = baseMapper.selectEmployees(bo,pageQuery);
Optional.ofNullable(result.getRecords()).ifPresent(EmployeesVo -> {
EmployeesVo.forEach(t -> {
List<TotalOrder> totalOrder = totalOrderMapper.selectList(Wrappers.<TotalOrder>lambdaQuery()
.eq(TotalOrder::getEmId, t.getId())
.eq(TotalOrder::getIsSatisfaction, 1)
.orderByDesc(TotalOrder::getId)
.last("LIMIT 1"));
t.setTotalOrderVo(totalOrder);
});
});
return TableDataInfo.build(result);
}
/**
* 查询陪诊员详情
*/
@Override
public EmployeesVo queryByApp(Integer id){
EmployeesVo employeesVo = baseMapper.selectEmployeesById(id);
List<TotalOrder> totalOrder = totalOrderMapper.selectList(Wrappers.<TotalOrder>lambdaQuery()
.eq(TotalOrder::getEmId, employeesVo.getId())
.eq(TotalOrder::getIsSatisfaction, 1)
.orderByDesc(TotalOrder::getId));
employeesVo.setTotalOrderVo(totalOrder);
return employeesVo;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Employees entity) {
......@@ -177,7 +238,9 @@ public class EmployeesServiceImpl implements IEmployeesService {
@Override
public TodayOrderListVo queryEmployeesInfo(Integer emId) {
TodayOrderListVo result = baseMapper.selectEmployeesInfoById(emId);
List<OrderInfoVO> orders = baseMapper.selectTodayOrderByEid(emId);
result.setTodayOrderList(orders);
result.setTodayOrderNum(orders.size());
return result;
}
......
package com.pz.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户收货地址对象 user_address
*
* @author ruoyi
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("user_address")
public class UserAddress extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Integer id;
/**
* 所属用户
*/
private Integer uid;
/**
* 收货人名字
*/
private String name;
/**
* 收货人电话
*/
private String phone;
/**
* 所在地区
*/
private String area;
/**
* 详细地址
*/
private String address;
/**
* 是否默认
*/
private Integer isDefult;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}
......@@ -4,6 +4,7 @@ import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.List;
/**
......@@ -47,5 +48,14 @@ public class ArticleBo extends BaseEntity {
*/
private String content;
/**
* 是否显示用户收藏(true收藏false非收藏)
*/
private boolean isCollect;
/**
* 文章列表id
*/
private List<Integer> articleId;
}
......@@ -30,7 +30,7 @@ public class ArticleCommentBo extends BaseEntity {
/**
* 用户
*/
private Long uid;
private Integer uid;
/**
* 评论
......
package com.pz.system.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 用户收货地址业务对象 user_address
*
* @author ruoyi
* @date 2023-09-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class UserAddressBo extends BaseEntity {
/**
*
*/
private Integer id;
/**
* 所属用户
*/
@NotNull(message = "所属用户不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer uid;
/**
* 收货人名字
*/
@NotBlank(message = "收货人名字不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 收货人电话
*/
@NotBlank(message = "收货人电话不能为空", groups = { AddGroup.class, EditGroup.class })
private String phone;
/**
* 所在地区
*/
private String area;
/**
* 详细地址
*/
private String address;
/**
* 是否默认
*/
private Integer isDefult;
/**
* 备注
*/
private String remark;
}
......@@ -6,6 +6,8 @@ import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;
/**
* 文章评论视图对象 article_comment
......@@ -20,7 +22,7 @@ public class ArticleCommentVo {
private static final long serialVersionUID = 1L;
/**
*
*
*/
@ExcelProperty(value = "")
private Integer id;
......@@ -43,5 +45,16 @@ public class ArticleCommentVo {
@ExcelProperty(value = "评论")
private String comment;
/**
* 创建时间
*/
private Date createTime;
/**
* 用户名称
*/
private String userName;
/**
* 用户头像
*/
private String avatar;
}
......@@ -6,6 +6,8 @@ import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.List;
/**
* 文章视图对象 article
......@@ -69,4 +71,19 @@ public class ArticleVo {
* 收藏数
*/
private Integer collectNum;
/**
* 是否点赞
*/
private boolean isAppreciate;
/**
* 是否收藏
*/
private boolean isCollect;
/**
* 评论列表
*/
private List<ArticleCommentVo> comment;
}
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;
/**
* 用户收货地址视图对象 user_address
*
* @author ruoyi
* @date 2023-09-11
*/
@Data
@ExcelIgnoreUnannotated
public class UserAddressVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Integer id;
/**
* 所属用户
*/
@ExcelProperty(value = "所属用户")
private Integer uid;
/**
* 收货人名字
*/
@ExcelProperty(value = "收货人名字")
private String name;
/**
* 收货人电话
*/
@ExcelProperty(value = "收货人电话")
private String phone;
/**
* 所在地区
*/
@ExcelProperty(value = "所在地区")
private String area;
/**
* 详细地址
*/
@ExcelProperty(value = "详细地址")
private String address;
/**
* 是否默认
*/
@ExcelProperty(value = "是否默认")
private Integer isDefult;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}
......@@ -2,6 +2,7 @@ package com.pz.system.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.system.domain.DbghOrder;
import com.pz.system.domain.YypzOrder;
import com.pz.system.domain.bo.DbghOrderBo;
......@@ -9,6 +10,7 @@ import com.pz.system.domain.bo.YypzOrderBo;
import com.pz.system.domain.vo.DbghOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import com.pz.system.domain.vo.YypzOrderVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
......@@ -17,7 +19,15 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @date 2023-09-11
*/
@Mapper
public interface DbghOrderMapper extends BaseMapperPlus<DbghOrderMapper, DbghOrder, DbghOrderVo> {
Page<DbghOrderVo> findDbghOrderVoPage(IPage<DbghOrder> iPage, @Param("bo") DbghOrderBo bo);
/**
* 根据主订单ID查询子订单相关信息
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
}
......@@ -2,6 +2,7 @@ package com.pz.system.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.merchant.domain.vo.SonOrderVo;
import com.pz.system.domain.DbghOrder;
import com.pz.system.domain.DbwzOrder;
import com.pz.system.domain.bo.DbghOrderBo;
......@@ -9,6 +10,7 @@ import com.pz.system.domain.bo.DbwzOrderBo;
import com.pz.system.domain.vo.DbghOrderVo;
import com.pz.system.domain.vo.DbwzOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
......@@ -17,6 +19,15 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @date 2023-09-11
*/
@Mapper
public interface DbwzOrderMapper extends BaseMapperPlus<DbwzOrderMapper, DbwzOrder, DbwzOrderVo> {
Page<DbwzOrderVo> findDbwzOrderVoPage(IPage<DbwzOrder> iPage, @Param("bo") DbwzOrderBo bo);
/**
* 根据主订单ID查询子订单相关信息
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
}
package com.pz.system.mapper;
import com.pz.system.domain.UserAddress;
import com.pz.system.domain.vo.UserAddressVo;
import com.pz.common.core.mapper.BaseMapperPlus;
/**
* 用户收货地址Mapper接口
*
* @author ruoyi
* @date 2023-09-11
*/
public interface UserAddressMapper extends BaseMapperPlus<UserAddressMapper, UserAddress, UserAddressVo> {
}
......@@ -3,6 +3,7 @@ package com.pz.system.mapper;
import com.pz.system.domain.UserVsitor;
import com.pz.system.domain.vo.UserVsitorVo;
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-10
*/
@Mapper
public interface UserVsitorMapper extends BaseMapperPlus<UserVsitorMapper, UserVsitor, UserVsitorVo> {
}
......@@ -2,10 +2,12 @@ package com.pz.system.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.YypzOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
......@@ -14,7 +16,15 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @date 2023-09-10
*/
@Mapper
public interface YypzOrderMapper extends BaseMapperPlus<YypzOrderMapper, YypzOrder, YypzOrderVo> {
Page<YypzOrderVo> findYypzOrderVoPage(IPage<YypzOrder> iPage, @Param("bo")YypzOrderBo yypzOrderBo);
/**
* 根据主订单ID查询子订单相关信息
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
}
......@@ -2,6 +2,7 @@ package com.pz.system.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.ZyphOrder;
import com.pz.system.domain.bo.YypzOrderBo;
......@@ -9,6 +10,7 @@ import com.pz.system.domain.bo.ZyphOrderBo;
import com.pz.system.domain.vo.YypzOrderVo;
import com.pz.system.domain.vo.ZyphOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
......@@ -17,7 +19,15 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @date 2023-09-11
*/
@Mapper
public interface ZyphOrderMapper extends BaseMapperPlus<ZyphOrderMapper, ZyphOrder, ZyphOrderVo> {
Page<ZyphOrderVo> findZyphOrderVoPage(IPage<ZyphOrder> iPage, @Param("bo") ZyphOrderBo zyphOrderBo);
/**
* 根据主订单ID查询子订单相关信息
* @param totalId 主订单ID
* @return 子订单相关信息
*/
SonOrderVo selectSonOrderInfoByTotalId(Integer totalId);
}
package com.pz.system.service;
import cn.hutool.core.bean.BeanUtil;
import com.pz.system.domain.Article;
import com.pz.system.domain.ArticleComment;
import com.pz.system.domain.UserAppreciate;
import com.pz.system.domain.UserCollect;
import com.pz.system.domain.bo.ArticleCommentBo;
import com.pz.system.domain.bo.UserAppreciateBo;
import com.pz.system.domain.bo.UserCollectBo;
import com.pz.system.domain.vo.ArticleVo;
import com.pz.system.domain.bo.ArticleBo;
import com.pz.common.core.page.TableDataInfo;
......@@ -28,11 +35,29 @@ public interface IArticleService {
TableDataInfo<ArticleVo> queryPageList(ArticleBo bo, PageQuery pageQuery);
/**
* 小程序文章列表(收藏、非收藏)
*/
TableDataInfo<ArticleVo> queryPageListByApp(ArticleBo bo, PageQuery pageQuery);
/**
* 查询文章列表
*/
List<ArticleVo> queryList(ArticleBo bo);
/**
* 新增点赞
*/
Boolean insertByAppreciate(UserAppreciateBo bo);
/**
* 新增收藏
*/
Boolean insertByCollect(UserCollectBo bo);
/**
* 新增评论
*/
Boolean insertByComment(ArticleCommentBo bo);
/**
* 新增文章
*/
Boolean insertByBo(ArticleBo bo);
......
package com.pz.system.service;
import com.pz.system.domain.UserAddress;
import com.pz.system.domain.vo.UserAddressVo;
import com.pz.system.domain.bo.UserAddressBo;
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-11
*/
public interface IUserAddressService {
/**
* 查询用户收货地址
*/
UserAddressVo queryById(Integer id);
/**
* 查询用户收货地址列表
*/
TableDataInfo<UserAddressVo> queryPageList(UserAddressBo bo, PageQuery pageQuery);
/**
* 查询用户收货地址列表
*/
List<UserAddressVo> queryList(UserAddressBo bo);
/**
* 新增用户收货地址
*/
Boolean insertByBo(UserAddressBo bo);
/**
* 修改用户收货地址
*/
Boolean updateByBo(UserAddressBo bo);
/**
* 校验并批量删除用户收货地址信息
*/
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
}
......@@ -3,23 +3,26 @@ package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.pz.common.core.domain.entity.SysUser;
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.system.domain.ArticleComment;
import com.pz.system.domain.UserAppreciate;
import com.pz.system.domain.UserCollect;
import com.pz.system.domain.bo.ArticleCommentBo;
import com.pz.system.domain.bo.UserAppreciateBo;
import com.pz.system.domain.bo.UserCollectBo;
import com.pz.system.domain.vo.ArticleCommentVo;
import com.pz.system.domain.vo.CityVo;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.UserAppreciateMapper;
import com.pz.system.mapper.UserCollectMapper;
import com.pz.system.mapper.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.ArticleBo;
import com.pz.system.domain.vo.ArticleVo;
import com.pz.system.domain.Article;
import com.pz.system.mapper.ArticleMapper;
import com.pz.system.service.IArticleService;
import java.util.*;
......@@ -43,12 +46,38 @@ public class ArticleServiceImpl implements IArticleService {
private final UserCollectMapper userCollectMapper;
private final ArticleCommentMapper articleCommentMapper;
private final SysUserMapper sysUserMapper;
/**
* 查询文章
*/
@Override
public ArticleVo queryById(Integer id) {
return baseMapper.selectVoById(id);
ArticleVo articleVo = baseMapper.selectVoById(id);
Long aLong = userAppreciateMapper.selectCount(Wrappers.<UserAppreciate>lambdaQuery().eq(UserAppreciate::getAid, id));
Long aLong1 = userCollectMapper.selectCount(Wrappers.<UserCollect>lambdaQuery().eq(UserCollect::getAid, id));
//是否点赞
articleVo.setAppreciate(aLong != 0);
//点赞数量
articleVo.setAppreciateNum(Math.toIntExact(aLong));
//是否收藏
articleVo.setCollect(aLong1 != 0);
//收藏数量
articleVo.setCollectNum(Math.toIntExact(aLong1));
//用户评论
List<ArticleCommentVo> articleCommentVos = articleCommentMapper.selectVoList(Wrappers.<ArticleComment>lambdaQuery().eq(ArticleComment::getAid, id).eq(ArticleComment::getUid, 1));
for (ArticleCommentVo articleCommentVo : articleCommentVos) {
if(null != articleCommentVo.getUid()){
SysUser sysUser = sysUserMapper.selectById(1);
articleCommentVo.setAvatar(sysUser.getAvatar());
articleCommentVo.setUserName(sysUser.getUserName());
}
}
articleVo.setComment(articleCommentVos);
return articleVo;
}
/**
......@@ -61,7 +90,7 @@ public class ArticleServiceImpl implements IArticleService {
Optional.ofNullable(result.getRecords()).ifPresent(articleVos -> {
// 获取所有文章id集合
List<Integer> articleIds = articleVos.stream()
.map(ArticleVo::getCityId)
.map(ArticleVo::getId)
.collect(Collectors.toList());
// 查询城市名称
......@@ -104,6 +133,68 @@ public class ArticleServiceImpl implements IArticleService {
return TableDataInfo.build(result);
}
@Override
public TableDataInfo<ArticleVo> queryPageListByApp(ArticleBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<Article> lqw = new LambdaQueryWrapper<>();
//Page<ArticleVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// TODO 待登录写完修改
int userId = 1;
Page<ArticleVo> result = new Page<>();
//判断是否展示收藏文章
if(bo.isCollect()){
List<UserCollect> Collect = userCollectMapper.selectList(Wrappers.<UserCollect>lambdaQuery().eq(UserCollect::getUid, userId));
// 获取所有文章id集合
List<Integer> articleIds = Collect.stream()
.map(UserCollect::getAid)
.collect(Collectors.toList());
//查询用户收藏的所有文章
bo.setArticleId(articleIds);
lqw = buildQueryWrapper(bo);
result = baseMapper.selectVoPage(pageQuery.build(), lqw);
}else {
result = baseMapper.selectVoPage(pageQuery.build(), lqw);
}
Optional.ofNullable(result.getRecords()).ifPresent(articleVos -> {
// 获取所有文章id集合
List<Integer> articleIds = articleVos.stream()
.map(ArticleVo::getId)
.collect(Collectors.toList());
// 查询点赞和收藏数
Map<Integer, Integer> appreciateNumMap = new HashMap<>();
Map<Integer, Integer> collectNumMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(articleIds)) {
List<UserAppreciate> userAppreciates = userAppreciateMapper.selectList(Wrappers.<UserAppreciate>lambdaQuery().in(UserAppreciate::getAid, articleIds));
List<UserCollect> userCollects = userCollectMapper.selectList(Wrappers.<UserCollect>lambdaQuery().in(UserCollect::getAid, articleIds));
for (UserAppreciate userAppreciate : userAppreciates) {
Integer articleId = userAppreciate.getAid();
appreciateNumMap.put(articleId, appreciateNumMap.getOrDefault(articleId, 0) + 1);
}
for (UserCollect userCollect : userCollects) {
Integer articleId = userCollect.getAid();
collectNumMap.put(articleId, collectNumMap.getOrDefault(articleId, 0) + 1);
}
// 设置城市名称、点赞数和收藏数
articleVos.forEach(articleVo -> {
// 设置点赞数
articleVo.setAppreciateNum(appreciateNumMap.getOrDefault(articleVo.getId(), 0));
// 设置收藏数
articleVo.setCollectNum(collectNumMap.getOrDefault(articleVo.getId(), 0));
});
}
});
return TableDataInfo.build(result);
}
/**
* 查询文章列表
*/
......@@ -117,10 +208,54 @@ public class ArticleServiceImpl implements IArticleService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<Article> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getTitle()), Article::getTitle, bo.getTitle());
lqw.eq(!Objects.isNull(bo.getCityId()), Article::getCityId, bo.getCityId());
lqw.in(CollectionUtils.isNotEmpty(bo.getArticleId()), Article::getId, bo.getArticleId());
return lqw;
}
/**
* 新增点赞
*/
@Override
public Boolean insertByAppreciate(UserAppreciateBo bo) {
UserAppreciate add = BeanUtil.toBean(bo, UserAppreciate.class);
boolean flag = userAppreciateMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 新增收藏
*/
@Override
public Boolean insertByCollect(UserCollectBo bo) {
UserCollect add = BeanUtil.toBean(bo, UserCollect.class);
boolean flag = userCollectMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 新增评论
*/
@Override
public Boolean insertByComment(ArticleCommentBo bo) {
ArticleComment add = BeanUtil.toBean(bo, ArticleComment.class);
boolean flag = articleCommentMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 新增文章
*/
@Override
......
......@@ -7,6 +7,8 @@ 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.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService;
import com.pz.system.mapper.UserVsitorMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
......@@ -29,7 +31,7 @@ import java.util.Optional;
*/
@RequiredArgsConstructor
@Service
public class DbghOrderServiceImpl implements IDbghOrderService {
public class DbghOrderServiceImpl implements IDbghOrderService, ISonOrderService {
private final DbghOrderMapper baseMapper;
......@@ -52,8 +54,8 @@ public class DbghOrderServiceImpl implements IDbghOrderService {
Optional.ofNullable(result.getRecords()).ifPresent(dbghOrderVos -> {
dbghOrderVos.forEach(dbghOrderVo -> {
Optional.ofNullable(userVsitorMapper.selectVoById(dbghOrderVo.getVisitor())).ifPresent(
//就诊人员
userVsitorVo -> dbghOrderVo.setUserVsitorVo(userVsitorVo)
// 就诊人员
dbghOrderVo::setUserVsitorVo
);
});
});
......@@ -111,7 +113,7 @@ public class DbghOrderServiceImpl implements IDbghOrderService {
* 保存前的数据校验
*/
private void validEntityBeforeSave(DbghOrder entity) {
//TODO 做一些数据校验,如唯一约束
// TODO 做一些数据校验,如唯一约束
}
/**
......@@ -120,8 +122,13 @@ public class DbghOrderServiceImpl implements IDbghOrderService {
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
// TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
}
......@@ -7,6 +7,8 @@ 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.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService;
import com.pz.system.mapper.UserVsitorMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
......@@ -29,7 +31,7 @@ import java.util.Optional;
*/
@RequiredArgsConstructor
@Service
public class DbwzOrderServiceImpl implements IDbwzOrderService {
public class DbwzOrderServiceImpl implements IDbwzOrderService, ISonOrderService {
private final DbwzOrderMapper baseMapper;
......@@ -52,8 +54,8 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService {
Optional.ofNullable(result.getRecords()).ifPresent(dbwzOrderVos -> {
dbwzOrderVos.forEach(dbwzOrderVo -> {
Optional.ofNullable(userVsitorMapper.selectVoById(dbwzOrderVo.getVisitor())).ifPresent(
//就诊人员
userVsitorVo -> dbwzOrderVo.setUserVsitorVo(userVsitorVo)
// 就诊人员
dbwzOrderVo::setUserVsitorVo
);
});
});
......@@ -118,7 +120,7 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService {
* 保存前的数据校验
*/
private void validEntityBeforeSave(DbwzOrder entity) {
//TODO 做一些数据校验,如唯一约束
// TODO 做一些数据校验,如唯一约束
}
/**
......@@ -127,8 +129,13 @@ public class DbwzOrderServiceImpl implements IDbwzOrderService {
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
// TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
}
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.UserAddressBo;
import com.pz.system.domain.vo.UserAddressVo;
import com.pz.system.domain.UserAddress;
import com.pz.system.mapper.UserAddressMapper;
import com.pz.system.service.IUserAddressService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 用户收货地址Service业务层处理
*
* @author ruoyi
* @date 2023-09-11
*/
@RequiredArgsConstructor
@Service
public class UserAddressServiceImpl implements IUserAddressService {
private final UserAddressMapper baseMapper;
/**
* 查询用户收货地址
*/
@Override
public UserAddressVo queryById(Integer id){
return baseMapper.selectVoById(id);
}
/**
* 查询用户收货地址列表
*/
@Override
public TableDataInfo<UserAddressVo> queryPageList(UserAddressBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<UserAddress> lqw = buildQueryWrapper(bo);
Page<UserAddressVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询用户收货地址列表
*/
@Override
public List<UserAddressVo> queryList(UserAddressBo bo) {
LambdaQueryWrapper<UserAddress> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<UserAddress> buildQueryWrapper(UserAddressBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<UserAddress> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUid() != null, UserAddress::getUid, bo.getUid());
lqw.like(StringUtils.isNotBlank(bo.getName()), UserAddress::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getPhone()), UserAddress::getPhone, bo.getPhone());
lqw.eq(StringUtils.isNotBlank(bo.getArea()), UserAddress::getArea, bo.getArea());
lqw.eq(StringUtils.isNotBlank(bo.getAddress()), UserAddress::getAddress, bo.getAddress());
lqw.eq(bo.getIsDefult() != null, UserAddress::getIsDefult, bo.getIsDefult());
return lqw;
}
/**
* 新增用户收货地址
*/
@Override
public Boolean insertByBo(UserAddressBo bo) {
UserAddress add = BeanUtil.toBean(bo, UserAddress.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改用户收货地址
*/
@Override
public Boolean updateByBo(UserAddressBo bo) {
UserAddress update = BeanUtil.toBean(bo, UserAddress.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(UserAddress entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除用户收货地址
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
......@@ -7,6 +7,8 @@ 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.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.mapper.UserVsitorMapper;
......@@ -32,7 +34,7 @@ import java.util.Optional;
*/
@RequiredArgsConstructor
@Service
public class YypzOrderServiceImpl implements IYypzOrderService {
public class YypzOrderServiceImpl implements IYypzOrderService, ISonOrderService {
private final YypzOrderMapper baseMapper;
private final UserVsitorMapper userVsitorMapper;
......@@ -53,11 +55,9 @@ public class YypzOrderServiceImpl implements IYypzOrderService {
Page<YypzOrderVo> result = baseMapper.findYypzOrderVoPage(pageQuery.build(), bo);
Optional.ofNullable(result.getRecords()).ifPresent(yypzOrderVos -> {
yypzOrderVos.forEach(yypzOrderVo -> {
Optional.ofNullable(userVsitorMapper.selectVoById(yypzOrderVo.getVisitor())).ifPresent(
userVsitorVo ->
//就诊人员
yypzOrderVo.setUserVsitorVo(userVsitorVo)
);
// 就诊人员
Optional.ofNullable(userVsitorMapper.selectVoById(yypzOrderVo.getVisitor()))
.ifPresent(yypzOrderVo::setUserVsitorVo);
});
});
return TableDataInfo.build(result);
......@@ -115,7 +115,7 @@ public class YypzOrderServiceImpl implements IYypzOrderService {
* 保存前的数据校验
*/
private void validEntityBeforeSave(YypzOrder entity) {
//TODO 做一些数据校验,如唯一约束
// TODO 做一些数据校验,如唯一约束
}
/**
......@@ -124,8 +124,19 @@ public class YypzOrderServiceImpl implements IYypzOrderService {
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
// TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
}
......@@ -7,6 +7,8 @@ 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.merchant.domain.vo.SonOrderVo;
import com.pz.merchant.service.ISonOrderService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.ZyphOrderBo;
......@@ -27,7 +29,7 @@ import java.util.Collection;
*/
@RequiredArgsConstructor
@Service
public class ZyphOrderServiceImpl implements IZyphOrderService {
public class ZyphOrderServiceImpl implements IZyphOrderService , ISonOrderService {
private final ZyphOrderMapper baseMapper;
......@@ -115,4 +117,15 @@ public class ZyphOrderServiceImpl implements IZyphOrderService {
}
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 根据主订单ID查询子订单相关信息
*
* @param totalId 主订单ID
* @return 子订单相关信息
*/
@Override
public SonOrderVo getSonOrderInfoByTotalId(Integer totalId) {
return baseMapper.selectSonOrderInfoByTotalId(totalId);
}
}
......@@ -63,7 +63,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectTodayOrderByEid" resultType="com.pz.merchant.domain.vo.OrderInfoVO">
select total_order.id as orderId,
total_order.status as orderStatus,
services.name as project,
services.cover,
services.price,
CONVERT((1 - services.fenmo / 100), decimal(10, 2)) * CONVERT(services.price, decimal(10, 2)) as commission,
services.bid
from total_order
left join services on total_order.service_id = services.id
<where>
date_format(total_order.create_time,'%Y-%m-%d')
<if test="id != null and id > 0">
and total_order.id = #{id}
</if>
</where>
</select>
<select id="selectEmployees" resultType="com.pz.merchant.domain.vo.EmployeesVo">
SELECT e.id, s.avatar ,e.name,e.working_hours,(SUM(CASE WHEN o.is_satisfaction = 1 THEN 1 ELSE 0 END) / NULLIF(COUNT(o.is_satisfaction), 0)) * 100 AS satisfaction_rate
FROM employees e
INNER join total_order o on o.em_id = e.id
left join company c on c.id = e.company_id
left join sys_user s on s.user_id = e.uid
WHERE e.`status` = 1 and e.now_type= 1 and e.del_flag= 0
<if test="companyId != null and companyId != 0">
e.company_id = #{companyId}
</if>
GROUP BY
e.id,
e.`name`
<if test="favorableRate != null">
HAVING
satisfaction_rate >= #{favorableRate};
</if>
ORDER BY satisfaction_rate desc
</select>
<select id="selectEmployeesById" resultType="com.pz.merchant.domain.vo.EmployeesVo">
SELECT e.id, s.avatar ,e.name,e.working_hours,(SUM(CASE WHEN o.is_satisfaction = 1 THEN 1 ELSE 0 END) / NULLIF(COUNT(o.is_satisfaction), 0)) * 100 AS satisfaction_rate
FROM employees e
INNER join total_order o on o.em_id = e.id
left join company c on c.id = e.company_id
left join sys_user s on s.user_id = e.uid
WHERE e.`status` = 1 and e.now_type= 1 and e.del_flag= 0 and e.id = #{id}
GROUP BY
e.id,
e.`name`
HAVING
satisfaction_rate >= #{favorableRate};
</select>
......
......@@ -50,5 +50,14 @@
</if>
</select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.nick_name as userName,
dbgh_order.status as orderStatus
from dbgh_order
left join sys_user as user on user.user_id = dbgh_order.visitor
where dbgh_order.order_id = #{id}
</select>
</mapper>
......@@ -55,5 +55,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.nick_name as userName,
dbwz_order.status as orderStatus
from dbwz_order
left join sys_user as user on user.user_id = dbwz_order.visitor
where dbwz_order.order_id = #{id}
</select>
</mapper>
......@@ -51,4 +51,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where tlo.order_sn LIKE CONCAT('%', #{bo.orderSn}, '%')
</if>
</select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.nick_name as userName,
yypz_order.status as orderStatus
from yypz_order
left join sys_user as user on user.user_id = yypz_order.visitor
where yypz_order.order_id = #{id}
</select>
</mapper>
......@@ -56,5 +56,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</select>
<select id="selectSonOrderInfoByTotalId" resultType="com.pz.merchant.domain.vo.SonOrderVo">
select user.nick_name as userName,
zyph_order.status as orderStatus
from zyph_order
left join sys_user as user on user.user_id = zyph_order.visitor
where zyph_order.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