diff --git a/pz-admin/src/main/java/com/pz/web/controller/system/UserAddressController.java b/pz-admin/src/main/java/com/pz/web/controller/system/UserAddressController.java new file mode 100644 index 0000000..e70f433 --- /dev/null +++ b/pz-admin/src/main/java/com/pz/web/controller/system/UserAddressController.java @@ -0,0 +1,106 @@ +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)); + } +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletArticleController.java b/pz-applet/src/main/java/com/pz/applet/AppletArticleController.java new file mode 100644 index 0000000..a3ad116 --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletArticleController.java @@ -0,0 +1,95 @@ +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)); + } + +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletCompanyController.java b/pz-applet/src/main/java/com/pz/applet/AppletCompanyController.java new file mode 100644 index 0000000..00bad7f --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletCompanyController.java @@ -0,0 +1,50 @@ +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); + } + +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletDepartmentController.java b/pz-applet/src/main/java/com/pz/applet/AppletDepartmentController.java new file mode 100644 index 0000000..4d00dda --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletDepartmentController.java @@ -0,0 +1,49 @@ +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)); + } + + +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletEmployeesController.java b/pz-applet/src/main/java/com/pz/applet/AppletEmployeesController.java new file mode 100644 index 0000000..f9eddc7 --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletEmployeesController.java @@ -0,0 +1,74 @@ +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)); + } + + + +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletHospitalController.java b/pz-applet/src/main/java/com/pz/applet/AppletHospitalController.java new file mode 100644 index 0000000..e86128a --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletHospitalController.java @@ -0,0 +1,62 @@ +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)); + } + + +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletInformationController.java b/pz-applet/src/main/java/com/pz/applet/AppletInformationController.java new file mode 100644 index 0000000..913059f --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletInformationController.java @@ -0,0 +1,61 @@ +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)); + } + + +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletUserAddressController.java b/pz-applet/src/main/java/com/pz/applet/AppletUserAddressController.java new file mode 100644 index 0000000..a1b734e --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletUserAddressController.java @@ -0,0 +1,99 @@ +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)); + } +} diff --git a/pz-applet/src/main/java/com/pz/applet/AppletUserVsitorController.java b/pz-applet/src/main/java/com/pz/applet/AppletUserVsitorController.java new file mode 100644 index 0000000..55342ec --- /dev/null +++ b/pz-applet/src/main/java/com/pz/applet/AppletUserVsitorController.java @@ -0,0 +1,49 @@ +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)); + } +} diff --git a/pz-system/src/main/java/com/pz/merchant/domain/bo/EmployeesBo.java b/pz-system/src/main/java/com/pz/merchant/domain/bo/EmployeesBo.java index b72e1cb..4a6b564 100644 --- a/pz-system/src/main/java/com/pz/merchant/domain/bo/EmployeesBo.java +++ b/pz-system/src/main/java/com/pz/merchant/domain/bo/EmployeesBo.java @@ -127,5 +127,9 @@ public class EmployeesBo extends BaseEntity { @NotNull(message = "取消订单次数不能为空", groups = { AddGroup.class, EditGroup.class }) private Integer killOrder; + /** + * 好评率 + */ + private String favorableRate; } diff --git a/pz-system/src/main/java/com/pz/merchant/domain/vo/EmployeesVo.java b/pz-system/src/main/java/com/pz/merchant/domain/vo/EmployeesVo.java index 25b35b1..42d6d9f 100644 --- a/pz-system/src/main/java/com/pz/merchant/domain/vo/EmployeesVo.java +++ b/pz-system/src/main/java/com/pz/merchant/domain/vo/EmployeesVo.java @@ -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; } diff --git a/pz-system/src/main/java/com/pz/merchant/domain/vo/OrderInfoVO.java b/pz-system/src/main/java/com/pz/merchant/domain/vo/OrderInfoVO.java index 6be4463..c5d5042 100644 --- a/pz-system/src/main/java/com/pz/merchant/domain/vo/OrderInfoVO.java +++ b/pz-system/src/main/java/com/pz/merchant/domain/vo/OrderInfoVO.java @@ -1,5 +1,6 @@ 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; + } diff --git a/pz-system/src/main/java/com/pz/merchant/domain/vo/SonOrderVo.java b/pz-system/src/main/java/com/pz/merchant/domain/vo/SonOrderVo.java new file mode 100644 index 0000000..7a21e4d --- /dev/null +++ b/pz-system/src/main/java/com/pz/merchant/domain/vo/SonOrderVo.java @@ -0,0 +1,25 @@ +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; + +} diff --git a/pz-system/src/main/java/com/pz/merchant/mapper/EmployeesMapper.java b/pz-system/src/main/java/com/pz/merchant/mapper/EmployeesMapper.java index 340e88f..6f56778 100644 --- a/pz-system/src/main/java/com/pz/merchant/mapper/EmployeesMapper.java +++ b/pz-system/src/main/java/com/pz/merchant/mapper/EmployeesMapper.java @@ -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); } diff --git a/pz-system/src/main/java/com/pz/merchant/service/IEmployeesService.java b/pz-system/src/main/java/com/pz/merchant/service/IEmployeesService.java index 3f0aeda..0a0f623 100644 --- a/pz-system/src/main/java/com/pz/merchant/service/IEmployeesService.java +++ b/pz-system/src/main/java/com/pz/merchant/service/IEmployeesService.java @@ -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); } diff --git a/pz-system/src/main/java/com/pz/merchant/service/ISonOrderService.java b/pz-system/src/main/java/com/pz/merchant/service/ISonOrderService.java new file mode 100644 index 0000000..e396d70 --- /dev/null +++ b/pz-system/src/main/java/com/pz/merchant/service/ISonOrderService.java @@ -0,0 +1,21 @@ +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); + +} diff --git a/pz-system/src/main/java/com/pz/merchant/service/impl/EmployeesServiceImpl.java b/pz-system/src/main/java/com/pz/merchant/service/impl/EmployeesServiceImpl.java index 828531c..d419521 100644 --- a/pz-system/src/main/java/com/pz/merchant/service/impl/EmployeesServiceImpl.java +++ b/pz-system/src/main/java/com/pz/merchant/service/impl/EmployeesServiceImpl.java @@ -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; } diff --git a/pz-system/src/main/java/com/pz/system/domain/UserAddress.java b/pz-system/src/main/java/com/pz/system/domain/UserAddress.java new file mode 100644 index 0000000..70a8861 --- /dev/null +++ b/pz-system/src/main/java/com/pz/system/domain/UserAddress.java @@ -0,0 +1,61 @@ +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; + +} diff --git a/pz-system/src/main/java/com/pz/system/domain/bo/ArticleBo.java b/pz-system/src/main/java/com/pz/system/domain/bo/ArticleBo.java index dcdedc9..b08c7b0 100644 --- a/pz-system/src/main/java/com/pz/system/domain/bo/ArticleBo.java +++ b/pz-system/src/main/java/com/pz/system/domain/bo/ArticleBo.java @@ -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; } diff --git a/pz-system/src/main/java/com/pz/system/domain/bo/ArticleCommentBo.java b/pz-system/src/main/java/com/pz/system/domain/bo/ArticleCommentBo.java index 26e7c7c..95ba794 100644 --- a/pz-system/src/main/java/com/pz/system/domain/bo/ArticleCommentBo.java +++ b/pz-system/src/main/java/com/pz/system/domain/bo/ArticleCommentBo.java @@ -30,7 +30,7 @@ public class ArticleCommentBo extends BaseEntity { /** * 用户 */ - private Long uid; + private Integer uid; /** * 评论 diff --git a/pz-system/src/main/java/com/pz/system/domain/bo/UserAddressBo.java b/pz-system/src/main/java/com/pz/system/domain/bo/UserAddressBo.java new file mode 100644 index 0000000..344fa01 --- /dev/null +++ b/pz-system/src/main/java/com/pz/system/domain/bo/UserAddressBo.java @@ -0,0 +1,66 @@ +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; + + +} diff --git a/pz-system/src/main/java/com/pz/system/domain/vo/ArticleCommentVo.java b/pz-system/src/main/java/com/pz/system/domain/vo/ArticleCommentVo.java index f11dc0e..cf0750a 100644 --- a/pz-system/src/main/java/com/pz/system/domain/vo/ArticleCommentVo.java +++ b/pz-system/src/main/java/com/pz/system/domain/vo/ArticleCommentVo.java @@ -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; } diff --git a/pz-system/src/main/java/com/pz/system/domain/vo/ArticleVo.java b/pz-system/src/main/java/com/pz/system/domain/vo/ArticleVo.java index 0e623d1..d77741b 100644 --- a/pz-system/src/main/java/com/pz/system/domain/vo/ArticleVo.java +++ b/pz-system/src/main/java/com/pz/system/domain/vo/ArticleVo.java @@ -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; } diff --git a/pz-system/src/main/java/com/pz/system/domain/vo/UserAddressVo.java b/pz-system/src/main/java/com/pz/system/domain/vo/UserAddressVo.java new file mode 100644 index 0000000..66fe3f0 --- /dev/null +++ b/pz-system/src/main/java/com/pz/system/domain/vo/UserAddressVo.java @@ -0,0 +1,71 @@ +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; + + +} diff --git a/pz-system/src/main/java/com/pz/system/mapper/DbghOrderMapper.java b/pz-system/src/main/java/com/pz/system/mapper/DbghOrderMapper.java index e0b5085..63d751c 100644 --- a/pz-system/src/main/java/com/pz/system/mapper/DbghOrderMapper.java +++ b/pz-system/src/main/java/com/pz/system/mapper/DbghOrderMapper.java @@ -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); } diff --git a/pz-system/src/main/java/com/pz/system/mapper/DbwzOrderMapper.java b/pz-system/src/main/java/com/pz/system/mapper/DbwzOrderMapper.java index 0b5ef0f..6f75cc1 100644 --- a/pz-system/src/main/java/com/pz/system/mapper/DbwzOrderMapper.java +++ b/pz-system/src/main/java/com/pz/system/mapper/DbwzOrderMapper.java @@ -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); } diff --git a/pz-system/src/main/java/com/pz/system/mapper/UserAddressMapper.java b/pz-system/src/main/java/com/pz/system/mapper/UserAddressMapper.java new file mode 100644 index 0000000..d3286fe --- /dev/null +++ b/pz-system/src/main/java/com/pz/system/mapper/UserAddressMapper.java @@ -0,0 +1,15 @@ +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> { + +} diff --git a/pz-system/src/main/java/com/pz/system/mapper/UserVsitorMapper.java b/pz-system/src/main/java/com/pz/system/mapper/UserVsitorMapper.java index 633b59f..f5a2a38 100644 --- a/pz-system/src/main/java/com/pz/system/mapper/UserVsitorMapper.java +++ b/pz-system/src/main/java/com/pz/system/mapper/UserVsitorMapper.java @@ -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> { } diff --git a/pz-system/src/main/java/com/pz/system/mapper/YypzOrderMapper.java b/pz-system/src/main/java/com/pz/system/mapper/YypzOrderMapper.java index e0f5879..2794be5 100644 --- a/pz-system/src/main/java/com/pz/system/mapper/YypzOrderMapper.java +++ b/pz-system/src/main/java/com/pz/system/mapper/YypzOrderMapper.java @@ -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); } diff --git a/pz-system/src/main/java/com/pz/system/mapper/ZyphOrderMapper.java b/pz-system/src/main/java/com/pz/system/mapper/ZyphOrderMapper.java index adfa497..eab4490 100644 --- a/pz-system/src/main/java/com/pz/system/mapper/ZyphOrderMapper.java +++ b/pz-system/src/main/java/com/pz/system/mapper/ZyphOrderMapper.java @@ -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); } diff --git a/pz-system/src/main/java/com/pz/system/service/IArticleService.java b/pz-system/src/main/java/com/pz/system/service/IArticleService.java index 0d7129c..3a8e9fd 100644 --- a/pz-system/src/main/java/com/pz/system/service/IArticleService.java +++ b/pz-system/src/main/java/com/pz/system/service/IArticleService.java @@ -1,6 +1,13 @@ 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); diff --git a/pz-system/src/main/java/com/pz/system/service/IUserAddressService.java b/pz-system/src/main/java/com/pz/system/service/IUserAddressService.java new file mode 100644 index 0000000..5ace28f --- /dev/null +++ b/pz-system/src/main/java/com/pz/system/service/IUserAddressService.java @@ -0,0 +1,49 @@ +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); +} diff --git a/pz-system/src/main/java/com/pz/system/service/impl/ArticleServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/ArticleServiceImpl.java index dcb99cc..55fadf1 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/ArticleServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/ArticleServiceImpl.java @@ -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 diff --git a/pz-system/src/main/java/com/pz/system/service/impl/DbghOrderServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/DbghOrderServiceImpl.java index 62ae2a6..2ad248e 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/DbghOrderServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/DbghOrderServiceImpl.java @@ -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); + } } diff --git a/pz-system/src/main/java/com/pz/system/service/impl/DbwzOrderServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/DbwzOrderServiceImpl.java index c0b5535..c4a6d47 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/DbwzOrderServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/DbwzOrderServiceImpl.java @@ -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); + } } diff --git a/pz-system/src/main/java/com/pz/system/service/impl/UserAddressServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/UserAddressServiceImpl.java new file mode 100644 index 0000000..ef5f138 --- /dev/null +++ b/pz-system/src/main/java/com/pz/system/service/impl/UserAddressServiceImpl.java @@ -0,0 +1,114 @@ +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; + } +} diff --git a/pz-system/src/main/java/com/pz/system/service/impl/YypzOrderServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/YypzOrderServiceImpl.java index 46c17fe..afdfff4 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/YypzOrderServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/YypzOrderServiceImpl.java @@ -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); + } } diff --git a/pz-system/src/main/java/com/pz/system/service/impl/ZyphOrderServiceImpl.java b/pz-system/src/main/java/com/pz/system/service/impl/ZyphOrderServiceImpl.java index 69659ff..60d1652 100644 --- a/pz-system/src/main/java/com/pz/system/service/impl/ZyphOrderServiceImpl.java +++ b/pz-system/src/main/java/com/pz/system/service/impl/ZyphOrderServiceImpl.java @@ -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); + } } diff --git a/pz-system/src/main/resources/mapper/merchant/EmployeesMapper.xml b/pz-system/src/main/resources/mapper/merchant/EmployeesMapper.xml index ac8cc11..6ae4cf4 100644 --- a/pz-system/src/main/resources/mapper/merchant/EmployeesMapper.xml +++ b/pz-system/src/main/resources/mapper/merchant/EmployeesMapper.xml @@ -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> diff --git a/pz-system/src/main/resources/mapper/system/DbghOrderMapper.xml b/pz-system/src/main/resources/mapper/system/DbghOrderMapper.xml index 0bd0137..3224453 100644 --- a/pz-system/src/main/resources/mapper/system/DbghOrderMapper.xml +++ b/pz-system/src/main/resources/mapper/system/DbghOrderMapper.xml @@ -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> diff --git a/pz-system/src/main/resources/mapper/system/DbwzOrderMapper.xml b/pz-system/src/main/resources/mapper/system/DbwzOrderMapper.xml index 054e489..3c3232f 100644 --- a/pz-system/src/main/resources/mapper/system/DbwzOrderMapper.xml +++ b/pz-system/src/main/resources/mapper/system/DbwzOrderMapper.xml @@ -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> diff --git a/pz-system/src/main/resources/mapper/system/YypzOrderMapper.xml b/pz-system/src/main/resources/mapper/system/YypzOrderMapper.xml index 3b0e493..1a92914 100644 --- a/pz-system/src/main/resources/mapper/system/YypzOrderMapper.xml +++ b/pz-system/src/main/resources/mapper/system/YypzOrderMapper.xml @@ -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> diff --git a/pz-system/src/main/resources/mapper/system/ZyphOrderMapper.xml b/pz-system/src/main/resources/mapper/system/ZyphOrderMapper.xml index 6a7691b..2611448 100644 --- a/pz-system/src/main/resources/mapper/system/ZyphOrderMapper.xml +++ b/pz-system/src/main/resources/mapper/system/ZyphOrderMapper.xml @@ -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>