Commit 18f74cd2 by Wangmin

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

parents 40b78f19 a7f3a84a
......@@ -90,6 +90,13 @@
<scope>import</scope>
</dependency>
<!-- Spring WebSocket -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- hutool 的依赖配置-->
<dependency>
<groupId>cn.hutool</groupId>
......
......@@ -32,6 +32,11 @@
<groupId>com.pz</groupId>
<artifactId>pz-system</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
</project>
//package com.pz.accompany;
//
//import com.pz.system.domain.ChatMessage;
//import lombok.RequiredArgsConstructor;
//import org.springframework.messaging.handler.annotation.DestinationVariable;
//import org.springframework.messaging.handler.annotation.MessageMapping;
//import org.springframework.messaging.simp.SimpMessagingTemplate;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.socket.WebSocketSession;
//
//import java.util.List;
//import java.util.Map;
//import java.util.concurrent.ConcurrentHashMap;
//
//@Validated
//@RequiredArgsConstructor
//@RestController
//@RequestMapping("/accompany/chat")
//public class ChatController {
//
//
//
// private final Map<String, WebSocketSession> sessions = new ConcurrentHashMap<>();
//
// private final SimpMessagingTemplate messagingTemplate;
//
// @GetMapping("/history/{userId}")
// public List<ChatMessage> getChatHistory(@PathVariable String userId) {
// return chatMessageRepository.findByUserId(userId);
// }
//
// @GetMapping("/offline/{userId}")
// public void sendOfflineMessages(@PathVariable String userId) {
// List<ChatMessage> offlineMessages = chatMessageRepository.findOfflineMessages(userId);
// for (ChatMessage message : offlineMessages) {
// WebSocketSession session = sessions.get(userId);
// if (session != null && session.isOpen()) {
// messagingTemplate.convertAndSendToUser(userId, "/queue/messages", message);
// message.setSent(true);
// chatMessageRepository.save(message);
// }
// }
// }
//
// @MessageMapping("/connect/{userId}")
// public void connect(@DestinationVariable String userId, WebSocketSession session) {
// sessions.put(userId, session);
//
// // 发送离线消息
// sendOfflineMessages(userId);
// }
//
// @MessageMapping("/send/{userId}")
// public void sendMessage(@DestinationVariable String userId, ChatMessage message) {
// WebSocketSession session = sessions.get(userId);
// if (session != null && session.isOpen()) {
// messagingTemplate.convertAndSendToUser(userId, "/queue/messages", message);
// message.setSent(true);
// chatMessageRepository.save(message);
// } else {
// message.setSent(false);
// chatMessageRepository.save(message);
// }
// }
//}
......@@ -77,6 +77,18 @@
<artifactId>pz-merchant</artifactId>
</dependency>
<!-- 陪诊员模块 -->
<dependency>
<groupId>com.pz</groupId>
<artifactId>pz-accompany</artifactId>
</dependency>
<!-- 小程序用户模块 -->
<dependency>
<groupId>com.pz</groupId>
<artifactId>pz-applet</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
......
package com.pz.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.enums.HospitalLevel;
import com.pz.common.enums.HospitalType;
import com.pz.system.domain.bo.BusinessBo;
import com.pz.system.domain.bo.CityBo;
import com.pz.system.domain.vo.BusinessVo;
import com.pz.system.domain.vo.CityVo;
import com.pz.system.domain.vo.CommonKeyValuesVo;
import com.pz.system.service.ICityService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 公共接口
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/common")
public class CommonController extends BaseController {
private final ICityService iCityService;
/**
* 医院等级列表
*/
@GetMapping("/hospitalLevelList")
public R<List<CommonKeyValuesVo>> hospitalLevelList() {
List<CommonKeyValuesVo> enumList = Arrays.stream(HospitalLevel.values())
.map(e -> {
CommonKeyValuesVo commonKeyValuesVo = new CommonKeyValuesVo();
commonKeyValuesVo.setCode(e.getCode());
commonKeyValuesVo.setName(e.getName());
return commonKeyValuesVo;
})
.collect(Collectors.toList());
return R.ok(enumList);
}
/**
* 医院类别列表
*/
@GetMapping("/hospitalTypeList")
public R<List<CommonKeyValuesVo>> hospitalTypeList() {
List<CommonKeyValuesVo> enumList = Arrays.stream(HospitalType.values())
.map(e -> {
CommonKeyValuesVo commonKeyValuesVo = new CommonKeyValuesVo();
commonKeyValuesVo.setCode(e.getCode());
commonKeyValuesVo.setName(e.getName());
return commonKeyValuesVo;
})
.collect(Collectors.toList());
return R.ok(enumList);
}
/**
* 城市列表
*/
@GetMapping("/cityVoList")
public R<List<CityVo>> cityVoList(CityBo bo) {
return R.ok(iCityService.queryList(bo));
}
}
......@@ -4,8 +4,10 @@ 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;
......@@ -42,8 +44,8 @@ public class DepartmentController extends BaseController {
*/
@SaCheckPermission("system:department:list")
@GetMapping("/list")
public List<DepartmentVo> list(DepartmentBo bo) {
return iDepartmentService.queryPageList(bo);
public R<List<DepartmentVo>> list(DepartmentBo bo) {
return R.ok(iDepartmentService.queryPageList(bo));
}
/**
......
......@@ -72,11 +72,10 @@ public class HospitalController extends BaseController {
/**
* 新增医院
*/
@SaCheckPermission("system:hospital:add")
@Log(title = "医院", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody HospitalBo bo) {
public R<Void> add(@RequestBody HospitalBo bo) {
return toAjax(iHospitalService.insertByBo(bo));
}
......
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.StoreGoodsVo;
import com.pz.system.domain.bo.StoreGoodsBo;
import com.pz.system.service.IStoreGoodsService;
import com.pz.common.core.page.TableDataInfo;
/**
* 商品
*
* @author ruoyi
* @date 2023-09-08
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/goods")
public class StoreGoodsController extends BaseController {
private final IStoreGoodsService iStoreGoodsService;
/**
* 查询商品列表
*/
@SaCheckPermission("system:goods:list")
@GetMapping("/list")
public TableDataInfo<StoreGoodsVo> list(StoreGoodsBo bo, PageQuery pageQuery) {
return iStoreGoodsService.queryPageList(bo, pageQuery);
}
/**
* 导出商品列表
*/
@SaCheckPermission("system:goods:export")
@Log(title = "商品", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(StoreGoodsBo bo, HttpServletResponse response) {
List<StoreGoodsVo> list = iStoreGoodsService.queryList(bo);
ExcelUtil.exportExcel(list, "商品", StoreGoodsVo.class, response);
}
/**
* 获取商品详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:goods:query")
@GetMapping("/{id}")
public R<StoreGoodsVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iStoreGoodsService.queryById(id));
}
/**
* 新增商品
*/
@SaCheckPermission("system:goods:add")
@Log(title = "商品", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody StoreGoodsBo bo) {
return toAjax(iStoreGoodsService.insertByBo(bo));
}
/**
* 修改商品
*/
@SaCheckPermission("system:goods:edit")
@Log(title = "商品", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody StoreGoodsBo bo) {
return toAjax(iStoreGoodsService.updateByBo(bo));
}
/**
* 删除商品
*
* @param ids 主键串
*/
@SaCheckPermission("system:goods:remove")
@Log(title = "商品", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iStoreGoodsService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
package com.pz.web.controller.system;
import java.util.List;
import java.util.Arrays;
import com.pz.system.domain.vo.StoreAdminOrderVo;
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.StoreOrderVo;
import com.pz.system.domain.bo.StoreOrderBo;
import com.pz.system.service.IStoreOrderService;
import com.pz.common.core.page.TableDataInfo;
/**
* 商城订单
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/order")
public class StoreOrderController extends BaseController {
private final IStoreOrderService iStoreOrderService;
/**
* 查询商城订单列表
*/
@SaCheckPermission("system:order:list")
@GetMapping("/list")
public TableDataInfo<StoreAdminOrderVo> list(StoreOrderBo bo, PageQuery pageQuery) {
return iStoreOrderService.queryPageList(bo, pageQuery);
}
/**
* 导出商城订单列表
*/
@SaCheckPermission("system:order:export")
@Log(title = "商城订单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(StoreOrderBo bo, HttpServletResponse response) {
List<StoreOrderVo> list = iStoreOrderService.queryList(bo);
ExcelUtil.exportExcel(list, "商城订单", StoreOrderVo.class, response);
}
/**
* 获取商城订单详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:order:query")
@GetMapping("/{id}")
public R<StoreOrderVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Integer id) {
return R.ok(iStoreOrderService.queryById(id));
}
/**
* 新增商城订单
*/
@SaCheckPermission("system:order:add")
@Log(title = "商城订单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody StoreOrderBo bo) {
return toAjax(iStoreOrderService.insertByBo(bo));
}
/**
* 修改商城订单
*/
@SaCheckPermission("system:order:edit")
@Log(title = "商城订单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody StoreOrderBo bo) {
return toAjax(iStoreOrderService.updateByBo(bo));
}
/**
* 删除商城订单
*
* @param ids 主键串
*/
@SaCheckPermission("system:order:remove")
@Log(title = "商城订单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Integer[] ids) {
return toAjax(iStoreOrderService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
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.TotalOrderVo;
import com.pz.system.domain.bo.TotalOrderBo;
import com.pz.system.service.ITotalOrderService;
import com.pz.common.core.page.TableDataInfo;
/**
* 总订单
*
* @author ruoyi
* @date 2023-09-08
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/totalOrder")
public class TotalOrderController extends BaseController {
private final ITotalOrderService iTotalOrderService;
/**
* 查询总订单列表
*/
@SaCheckPermission("system:totalOrder:list")
@GetMapping("/list")
public TableDataInfo<TotalOrderVo> list(TotalOrderBo bo, PageQuery pageQuery) {
return iTotalOrderService.queryPageList(bo, pageQuery);
}
/**
* 导出总订单列表
*/
@SaCheckPermission("system:totalOrder:export")
@Log(title = "总订单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TotalOrderBo bo, HttpServletResponse response) {
List<TotalOrderVo> list = iTotalOrderService.queryList(bo);
ExcelUtil.exportExcel(list, "总订单", TotalOrderVo.class, response);
}
/**
* 获取总订单详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:totalOrder:query")
@GetMapping("/{id}")
public R<TotalOrderVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(iTotalOrderService.queryById(id));
}
/**
* 新增总订单
*/
@SaCheckPermission("system:totalOrder:add")
@Log(title = "总订单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TotalOrderBo bo) {
return toAjax(iTotalOrderService.insertByBo(bo));
}
/**
* 修改总订单
*/
@SaCheckPermission("system:totalOrder:edit")
@Log(title = "总订单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TotalOrderBo bo) {
return toAjax(iTotalOrderService.updateByBo(bo));
}
/**
* 删除总订单
*
* @param ids 主键串
*/
@SaCheckPermission("system:totalOrder:remove")
@Log(title = "总订单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(iTotalOrderService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
......@@ -140,6 +140,7 @@ security:
- /actuator/**
# system 仅用于调试阶段
- /system/**
- /applet/**
# MyBatisPlus配置
# https://baomidou.com/config/
......@@ -172,7 +173,7 @@ mybatis-plus:
dbConfig:
# 主键类型
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
idType: ASSIGN_ID
idType: AUTO
# 逻辑已删除值
logicDeleteValue: 2
# 逻辑未删除值
......@@ -245,7 +246,7 @@ xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
excludes: /system/notice,/system/hospital
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
......
package com.pz.system.domain;
import lombok.Data;
import java.io.Serializable;
@Data
public class ChatMessage implements Serializable {
private Long id;
private String userId;
private String content;
private boolean sent;
}
package com.pz.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 商品对象 store_goods
*
* @author ruoyi
* @date 2023-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("store_goods")
public class StoreGoods extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Integer id;
/**
* 城市
*/
private Long cityId;
/**
*
*/
private Integer storeId;
/**
* 商品名称
*/
private String title;
/**
* 标签
*/
private String tags;
/**
* 原价
*/
private String price;
/**
* 售价
*/
private String salePrice;
/**
* 小封面图
*/
private String smallCover;
/**
* 封面图
*/
private String cover;
/**
* 商品分类
*/
private Integer categoryId;
/**
* 介绍
*/
private String intro;
/**
* 浏览数
*/
private Integer lookNum;
/**
* 库存
*/
private Integer inventory;
/**
*
*/
private Integer saleNum;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
package com.pz.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 商城订单对象 store_order
*
* @author ruoyi
* @date 2023-09-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("store_order")
public class StoreOrder extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Integer id;
/**
*
*/
private Integer storeId;
/**
* 主订单
*/
private Integer orderId;
/**
* 商品
*/
private Integer goodsId;
/**
* 数量
*/
private Integer num;
/**
* 收获地址id
*/
private Integer addressId;
/**
* 当前状态
*/
private Integer status;
/**
* 服务结束时间
*/
private Date overTime;
/**
* 完成凭证
*/
private String voucher;
/**
*
*/
private String logistics;
/**
*
*/
private String logisticsCode;
/**
*
*/
private String refundLogistics;
/**
*
*/
private String refundLogisticsCode;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
package com.pz.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 总订单对象 total_order
*
* @author ruoyi
* @date 2023-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("total_order")
public class TotalOrder extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* 订单号
*/
private String orderSn;
/**
* 用户id
*/
private Integer uid;
/**
* 接单人员
*/
private Integer emId;
/**
* 城市
*/
private Integer cityId;
/**
* 对应业务表id,但是0代表该订单为商城订单
*/
private Integer businessId;
/**
* 服务
*/
private Integer serviceId;
/**
* 订单价格
*/
private String payMoney;
/**
* 订单状态
*/
private Integer status;
/**
* 订单备注
*/
private String remark;
/**
* 是否好评,0-未评价,1-好评,2-差评
*/
private Integer isSatisfaction;
/**
* 评价内容
*/
private String evaluationContent;
/**
* 退款理由
*/
private String refundReason;
/**
* 退款金额
*/
private String refundAmount;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
......@@ -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;
/**
......@@ -65,7 +66,7 @@ public class HospitalBo extends BaseEntity {
/**
* 科室
*/
private String departments;
private List<String> departments;
/**
* 状态:0-禁用,1-启用
......
package com.pz.system.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 商品业务对象 store_goods
*
* @author ruoyi
* @date 2023-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class StoreGoodsBo extends BaseEntity {
/**
*
*/
private Integer id;
/**
* 城市
*/
private Long cityId;
/**
*
*/
private Integer storeId;
/**
* 商品名称
*/
private String title;
/**
* 标签
*/
private String tags;
/**
* 原价
*/
private String price;
/**
* 售价
*/
private String salePrice;
/**
* 小封面图
*/
private String smallCover;
/**
* 封面图
*/
private String cover;
/**
* 商品分类
*/
private Integer categoryId;
/**
* 介绍
*/
private String intro;
/**
* 浏览数
*/
private Integer lookNum;
/**
* 库存
*/
private Integer inventory;
/**
*
*/
private Integer saleNum;
}
package com.pz.system.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 商城订单业务对象 store_order
*
* @author ruoyi
* @date 2023-09-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class StoreOrderBo extends BaseEntity {
/**
*
*/
private Integer id;
/**
*
*/
private Integer storeId;
/**
* 主订单
*/
private Integer orderId;
/**
* 商品
*/
private Integer goodsId;
/**
* 数量
*/
private Integer num;
/**
* 收获地址id
*/
private Integer addressId;
/**
* 当前状态
*/
private Integer status;
/**
* 服务结束时间
*/
private Date overTime;
/**
* 完成凭证
*/
private String voucher;
/**
*
*/
private String logistics;
/**
*
*/
private String logisticsCode;
/**
*
*/
private String refundLogistics;
/**
*
*/
private String refundLogisticsCode;
}
package com.pz.system.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 总订单业务对象 total_order
*
* @author ruoyi
* @date 2023-09-08
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class TotalOrderBo extends BaseEntity {
/**
*
*/
private Long id;
/**
* 订单号
*/
private String orderSn;
/**
* 用户id
*/
private Integer uid;
/**
* 接单人员
*/
private Integer emId;
/**
* 城市
*/
private Integer cityId;
/**
* 对应业务表id,但是0代表该订单为商城订单
*/
private Integer businessId;
/**
* 服务
*/
private Integer serviceId;
/**
* 订单价格
*/
private String payMoney;
/**
* 订单状态
*/
private Integer status;
/**
* 订单备注
*/
private String remark;
/**
* 是否好评,0-未评价,1-好评,2-差评
*/
private Integer isSatisfaction;
/**
* 评价内容
*/
private String evaluationContent;
/**
* 退款理由
*/
private String refundReason;
/**
* 退款金额
*/
private String refundAmount;
}
......@@ -61,5 +61,5 @@ public class CarouselVo {
@ExcelProperty(value = "状态;0-禁用,1-启用")
private Integer status;
private String cityName;
}
package com.pz.system.domain.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CommonKeyValuesVo implements Serializable {
private Integer code;
private String name;
}
......@@ -47,5 +47,7 @@ public class DepartmentVo {
private List<DepartmentVo> children;
private String label;
}
......@@ -98,7 +98,17 @@ public class HospitalVo {
private String levelName;
/**
* 城市名称
*/
private String cityName;
/**
* 关联科室集
*/
private List<DepartmentVo> departmentVoList;
/**
* 关联科室集ids
*/
private List<Integer> ids;
}
......@@ -43,5 +43,5 @@ public class NoticeVo {
@ExcelProperty(value = "位置")
private Integer site;
private String cityName;
}
package com.pz.system.domain.vo;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 后台商城订单视图VO
*/
@Data
public class StoreAdminOrderVo implements Serializable {
private Integer id;
/**
* 城市
*/
private String cityName;
/**
* 商品名称
*/
private String title;
/**
* 订单数量
*/
private Integer num;
/**
* 金额
*/
private BigDecimal payMoney;
/**
* 商户名称
*/
private String sName;
/**
* 用户名称
*/
private String userName;
/**
* 订单状态
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
}
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;
/**
* 商品视图对象 store_goods
*
* @author ruoyi
* @date 2023-09-08
*/
@Data
@ExcelIgnoreUnannotated
public class StoreGoodsVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Integer id;
/**
* 城市
*/
@ExcelProperty(value = "城市")
private Long cityId;
/**
*
*/
@ExcelProperty(value = "")
private Integer storeId;
/**
* 商品名称
*/
@ExcelProperty(value = "商品名称")
private String title;
/**
* 标签
*/
@ExcelProperty(value = "标签")
private String tags;
/**
* 原价
*/
@ExcelProperty(value = "原价")
private String price;
/**
* 售价
*/
@ExcelProperty(value = "售价")
private String salePrice;
/**
* 小封面图
*/
@ExcelProperty(value = "小封面图")
private String smallCover;
/**
* 封面图
*/
@ExcelProperty(value = "封面图")
private String cover;
/**
* 商品分类
*/
@ExcelProperty(value = "商品分类")
private Integer categoryId;
/**
* 介绍
*/
@ExcelProperty(value = "介绍")
private String intro;
/**
* 浏览数
*/
@ExcelProperty(value = "浏览数")
private Integer lookNum;
/**
* 库存
*/
@ExcelProperty(value = "库存")
private Integer inventory;
/**
*
*/
@ExcelProperty(value = "")
private Integer saleNum;
}
package com.pz.system.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
/**
* 商城订单视图对象 store_order
*
* @author ruoyi
* @date 2023-09-07
*/
@Data
@ExcelIgnoreUnannotated
public class StoreOrderVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Integer id;
/**
*
*/
@ExcelProperty(value = "")
private Integer storeId;
/**
* 主订单
*/
@ExcelProperty(value = "主订单")
private Integer orderId;
/**
* 商品
*/
@ExcelProperty(value = "商品")
private Integer goodsId;
/**
* 数量
*/
@ExcelProperty(value = "数量")
private Integer num;
/**
* 收获地址id
*/
@ExcelProperty(value = "收获地址id ")
private Integer addressId;
/**
* 当前状态
*/
@ExcelProperty(value = "当前状态")
private Integer status;
/**
* 服务结束时间
*/
@ExcelProperty(value = "服务结束时间")
private Date overTime;
/**
* 完成凭证
*/
@ExcelProperty(value = "完成凭证")
private String voucher;
/**
*
*/
@ExcelProperty(value = "")
private String logistics;
/**
*
*/
@ExcelProperty(value = "")
private String logisticsCode;
/**
*
*/
@ExcelProperty(value = "")
private String refundLogistics;
/**
*
*/
@ExcelProperty(value = "")
private String refundLogisticsCode;
/**
* 城市
*/
private String cityName;
}
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;
/**
* 总订单视图对象 total_order
*
* @author ruoyi
* @date 2023-09-08
*/
@Data
@ExcelIgnoreUnannotated
public class TotalOrderVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long id;
/**
* 订单号
*/
@ExcelProperty(value = "订单号")
private String orderSn;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Integer uid;
/**
* 接单人员
*/
@ExcelProperty(value = "接单人员")
private Integer emId;
/**
* 城市
*/
@ExcelProperty(value = "城市")
private Integer cityId;
/**
* 对应业务表id,但是0代表该订单为商城订单
*/
@ExcelProperty(value = "对应业务表id,但是0代表该订单为商城订单")
private Integer businessId;
/**
* 服务
*/
@ExcelProperty(value = "服务")
private Integer serviceId;
/**
* 订单价格
*/
@ExcelProperty(value = "订单价格")
private String payMoney;
/**
* 订单状态
*/
@ExcelProperty(value = "订单状态")
private Integer status;
/**
* 订单备注
*/
@ExcelProperty(value = "订单备注")
private String remark;
/**
* 是否好评,0-未评价,1-好评,2-差评
*/
@ExcelProperty(value = "是否好评,0-未评价,1-好评,2-差评")
private Integer isSatisfaction;
/**
* 评价内容
*/
@ExcelProperty(value = "评价内容")
private String evaluationContent;
/**
* 退款理由
*/
@ExcelProperty(value = "退款理由")
private String refundReason;
/**
* 退款金额
*/
@ExcelProperty(value = "退款金额")
private String refundAmount;
}
package com.pz.system.mapper;
import com.pz.system.domain.StoreGoods;
import com.pz.system.domain.vo.StoreGoodsVo;
import com.pz.common.core.mapper.BaseMapperPlus;
/**
* 商品Mapper接口
*
* @author ruoyi
* @date 2023-09-08
*/
public interface StoreGoodsMapper extends BaseMapperPlus<StoreGoodsMapper, StoreGoods, StoreGoodsVo> {
}
package com.pz.system.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pz.system.domain.StoreOrder;
import com.pz.system.domain.bo.StoreOrderBo;
import com.pz.system.domain.vo.StoreAdminOrderVo;
import com.pz.system.domain.vo.StoreOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
/**
* 商城订单Mapper接口
*
* @author ruoyi
* @date 2023-09-07
*/
public interface StoreOrderMapper extends BaseMapperPlus<StoreOrderMapper, StoreOrder, StoreOrderVo> {
/**
* 商城订单列表
* @param iPage
* @param bo
* @return
*/
Page<StoreAdminOrderVo> findStoreAdminOrderVoPage(IPage<StoreOrder> iPage, @Param("bo") StoreOrderBo bo);
}
package com.pz.system.mapper;
import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.common.core.mapper.BaseMapperPlus;
/**
* 总订单Mapper接口
*
* @author ruoyi
* @date 2023-09-08
*/
public interface TotalOrderMapper extends BaseMapperPlus<TotalOrderMapper, TotalOrder, TotalOrderVo> {
}
package com.pz.system.service;
import com.pz.system.domain.StoreGoods;
import com.pz.system.domain.vo.StoreGoodsVo;
import com.pz.system.domain.bo.StoreGoodsBo;
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-08
*/
public interface IStoreGoodsService {
/**
* 查询商品
*/
StoreGoodsVo queryById(Integer id);
/**
* 查询商品列表
*/
TableDataInfo<StoreGoodsVo> queryPageList(StoreGoodsBo bo, PageQuery pageQuery);
/**
* 查询商品列表
*/
List<StoreGoodsVo> queryList(StoreGoodsBo bo);
/**
* 新增商品
*/
Boolean insertByBo(StoreGoodsBo bo);
/**
* 修改商品
*/
Boolean updateByBo(StoreGoodsBo bo);
/**
* 校验并批量删除商品信息
*/
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
}
package com.pz.system.service;
import com.pz.system.domain.StoreOrder;
import com.pz.system.domain.vo.StoreAdminOrderVo;
import com.pz.system.domain.vo.StoreOrderVo;
import com.pz.system.domain.bo.StoreOrderBo;
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-07
*/
public interface IStoreOrderService {
/**
* 查询商城订单
*/
StoreOrderVo queryById(Integer id);
/**
* 查询商城订单列表
*/
TableDataInfo<StoreAdminOrderVo> queryPageList(StoreOrderBo bo, PageQuery pageQuery);
/**
* 查询商城订单列表
*/
List<StoreOrderVo> queryList(StoreOrderBo bo);
/**
* 新增商城订单
*/
Boolean insertByBo(StoreOrderBo bo);
/**
* 修改商城订单
*/
Boolean updateByBo(StoreOrderBo bo);
/**
* 校验并批量删除商城订单信息
*/
Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);
}
package com.pz.system.service;
import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.system.domain.bo.TotalOrderBo;
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-08
*/
public interface ITotalOrderService {
/**
* 查询总订单
*/
TotalOrderVo queryById(Long id);
/**
* 查询总订单列表
*/
TableDataInfo<TotalOrderVo> queryPageList(TotalOrderBo bo, PageQuery pageQuery);
/**
* 查询总订单列表
*/
List<TotalOrderVo> queryList(TotalOrderBo bo);
/**
* 新增总订单
*/
Boolean insertByBo(TotalOrderBo bo);
/**
* 修改总订单
*/
Boolean updateByBo(TotalOrderBo bo);
/**
* 校验并批量删除总订单信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}
......@@ -7,6 +7,7 @@ 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.mapper.CityMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.CarouselBo;
......@@ -18,6 +19,7 @@ import com.pz.system.service.ICarouselService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/**
* 轮播图Service业务层处理
......@@ -31,11 +33,13 @@ public class CarouselServiceImpl implements ICarouselService {
private final CarouselMapper baseMapper;
private final CityMapper cityMapper;
/**
* 查询轮播图
*/
@Override
public CarouselVo queryById(Integer id){
public CarouselVo queryById(Integer id) {
return baseMapper.selectVoById(id);
}
......@@ -46,6 +50,14 @@ public class CarouselServiceImpl implements ICarouselService {
public TableDataInfo<CarouselVo> queryPageList(CarouselBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<Carousel> lqw = buildQueryWrapper(bo);
Page<CarouselVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Optional.ofNullable(result.getRecords()).ifPresent(noticeVos -> {
noticeVos.forEach(noticeVo -> {
Optional.ofNullable(cityMapper.selectVoById(noticeVo.getCityId()))
.ifPresent(cityVo -> {
noticeVo.setCityName(cityVo.getName());
});
});
});
return TableDataInfo.build(result);
}
......@@ -97,7 +109,7 @@ public class CarouselServiceImpl implements ICarouselService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Carousel entity){
private void validEntityBeforeSave(Carousel entity) {
//TODO 做一些数据校验,如唯一约束
}
......@@ -106,7 +118,7 @@ public class CarouselServiceImpl implements ICarouselService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
......
......@@ -61,8 +61,6 @@ public class CityServiceImpl implements ICityService {
private LambdaQueryWrapper<City> buildQueryWrapper(CityBo bo) {
LambdaQueryWrapper<City> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), City::getName, bo.getName());
lqw.eq(bo.getProvincialId() != null, City::getProvincialId, bo.getProvincialId());
lqw.eq(StringUtils.isNotBlank(bo.getSy()), City::getSy, bo.getSy());
return lqw;
}
......
......@@ -48,15 +48,28 @@ public class DepartmentServiceImpl implements IDepartmentService {
if (CollectionUtils.isNotEmpty(result)) {
//查询所有菜单
List<DepartmentVo> allMenu = result;
// 对父菜单进行排序
Collections.sort(allMenu, new Comparator<DepartmentVo>() {
@Override
public int compare(DepartmentVo o1, DepartmentVo o2) {
// 根据需要进行排序比较,可以根据实际情况修改
return Integer.compare(o1.getSortord(), o2.getSortord());
}
});
//根节点集合
List<DepartmentVo> rootMenu = new ArrayList<>();
for (DepartmentVo entity : allMenu) {
entity.setLabel(entity.getTitle());
if (entity.getParentId() == 0) { //父节点是0的,为根节点。
rootMenu.add(entity);
}
}
//为根菜单设置子菜单,getClild是递归调用的
for (DepartmentVo entity : rootMenu) {
entity.setLabel(entity.getTitle());
/* 获取根节点下的所有子节点 使用getChild方法*/
List<DepartmentVo> childList = getChild(entity.getId().toString(), allMenu);
entity.setChildren(childList);//给根节点设置子节点
......
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.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
......@@ -11,6 +12,7 @@ import com.pz.common.enums.HospitalLevel;
import com.pz.common.enums.HospitalType;
import com.pz.common.utils.JsonUtils;
import com.pz.system.domain.Department;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.DepartmentMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
......@@ -39,12 +41,28 @@ public class HospitalServiceImpl implements IHospitalService {
private final DepartmentMapper departmentMapper;
private final CityMapper cityMapper;
/**
* 查询医院
*/
@Override
public HospitalVo queryById(Integer id) {
return baseMapper.selectVoById(id);
HospitalVo hospitalVo = baseMapper.selectVoById(id);
//获取医院类型名称
hospitalVo.setCategoryName(HospitalType.getTypeName(hospitalVo.getCategory()));
//获取医院等级名称
hospitalVo.setLevelName(HospitalLevel.getLevelName(hospitalVo.getLevel()));
//获取医院科室
if (StringUtils.isNotBlank(hospitalVo.getDepartments())) {
//关联科室编号
List<Integer> ids = JsonUtils.parseArray(hospitalVo.getDepartments(), Integer.class);
hospitalVo.setIds(ids);
}
return hospitalVo;
}
/**
......@@ -62,6 +80,13 @@ public class HospitalServiceImpl implements IHospitalService {
//获取医院等级名称
hospitalVo.setLevelName(HospitalLevel.getLevelName(hospitalVo.getLevel()));
//获取城市名称
Optional.ofNullable(cityMapper.selectVoById(hospitalVo.getCityId())).ifPresent(
cityVo -> {
hospitalVo.setCityName(cityVo.getName());
}
);
//获取医院科室
if (StringUtils.isNotBlank(hospitalVo.getDepartments())) {
//关联科室编号
......@@ -97,7 +122,6 @@ public class HospitalServiceImpl implements IHospitalService {
lqw.eq(StringUtils.isNotBlank(bo.getLat()), Hospital::getLat, bo.getLat());
lqw.eq(bo.getCategory() != null, Hospital::getCategory, bo.getCategory());
lqw.eq(StringUtils.isNotBlank(bo.getIntroduce()), Hospital::getIntroduce, bo.getIntroduce());
lqw.eq(StringUtils.isNotBlank(bo.getDepartments()), Hospital::getDepartments, bo.getDepartments());
lqw.eq(bo.getStatus() != null, Hospital::getStatus, bo.getStatus());
return lqw;
}
......@@ -109,6 +133,9 @@ public class HospitalServiceImpl implements IHospitalService {
public Boolean insertByBo(HospitalBo bo) {
Hospital add = BeanUtil.toBean(bo, Hospital.class);
validEntityBeforeSave(add);
if (CollectionUtils.isNotEmpty(bo.getDepartments())) {
add.setDepartments(JsonUtils.toJsonString(bo.getDepartments()));
}
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
......
......@@ -7,6 +7,7 @@ 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.mapper.CityMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.NoticeBo;
......@@ -18,6 +19,7 @@ import com.pz.system.service.INoticeService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/**
* 公告Service业务层处理
......@@ -31,11 +33,13 @@ public class NoticeServiceImpl implements INoticeService {
private final NoticeMapper baseMapper;
private final CityMapper cityMapper;
/**
* 查询公告
*/
@Override
public NoticeVo queryById(Integer id){
public NoticeVo queryById(Integer id) {
return baseMapper.selectVoById(id);
}
......@@ -46,6 +50,14 @@ public class NoticeServiceImpl implements INoticeService {
public TableDataInfo<NoticeVo> queryPageList(NoticeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<Notice> lqw = buildQueryWrapper(bo);
Page<NoticeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Optional.ofNullable(result.getRecords()).ifPresent(noticeVos -> {
noticeVos.forEach(noticeVo -> {
Optional.ofNullable(cityMapper.selectVoById(noticeVo.getCityId()))
.ifPresent(cityVo -> {
noticeVo.setCityName(cityVo.getName());
});
});
});
return TableDataInfo.build(result);
}
......@@ -94,7 +106,7 @@ public class NoticeServiceImpl implements INoticeService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(Notice entity){
private void validEntityBeforeSave(Notice entity) {
//TODO 做一些数据校验,如唯一约束
}
......@@ -103,7 +115,7 @@ public class NoticeServiceImpl implements INoticeService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
......
package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.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.StoreGoodsBo;
import com.pz.system.domain.vo.StoreGoodsVo;
import com.pz.system.domain.StoreGoods;
import com.pz.system.mapper.StoreGoodsMapper;
import com.pz.system.service.IStoreGoodsService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 商品Service业务层处理
*
* @author ruoyi
* @date 2023-09-08
*/
@RequiredArgsConstructor
@Service
public class StoreGoodsServiceImpl implements IStoreGoodsService {
private final StoreGoodsMapper baseMapper;
/**
* 查询商品
*/
@Override
public StoreGoodsVo queryById(Integer id){
return baseMapper.selectVoById(id);
}
/**
* 查询商品列表
*/
@Override
public TableDataInfo<StoreGoodsVo> queryPageList(StoreGoodsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<StoreGoods> lqw = buildQueryWrapper(bo);
Page<StoreGoodsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询商品列表
*/
@Override
public List<StoreGoodsVo> queryList(StoreGoodsBo bo) {
LambdaQueryWrapper<StoreGoods> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<StoreGoods> buildQueryWrapper(StoreGoodsBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<StoreGoods> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCityId() != null, StoreGoods::getCityId, bo.getCityId());
lqw.eq(bo.getStoreId() != null, StoreGoods::getStoreId, bo.getStoreId());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), StoreGoods::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getTags()), StoreGoods::getTags, bo.getTags());
lqw.eq(StringUtils.isNotBlank(bo.getPrice()), StoreGoods::getPrice, bo.getPrice());
lqw.eq(StringUtils.isNotBlank(bo.getSalePrice()), StoreGoods::getSalePrice, bo.getSalePrice());
lqw.eq(StringUtils.isNotBlank(bo.getSmallCover()), StoreGoods::getSmallCover, bo.getSmallCover());
lqw.eq(StringUtils.isNotBlank(bo.getCover()), StoreGoods::getCover, bo.getCover());
lqw.eq(bo.getCategoryId() != null, StoreGoods::getCategoryId, bo.getCategoryId());
lqw.eq(StringUtils.isNotBlank(bo.getIntro()), StoreGoods::getIntro, bo.getIntro());
lqw.eq(bo.getLookNum() != null, StoreGoods::getLookNum, bo.getLookNum());
lqw.eq(bo.getInventory() != null, StoreGoods::getInventory, bo.getInventory());
lqw.eq(bo.getSaleNum() != null, StoreGoods::getSaleNum, bo.getSaleNum());
return lqw;
}
/**
* 新增商品
*/
@Override
public Boolean insertByBo(StoreGoodsBo bo) {
StoreGoods add = BeanUtil.toBean(bo, StoreGoods.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改商品
*/
@Override
public Boolean updateByBo(StoreGoodsBo bo) {
StoreGoods update = BeanUtil.toBean(bo, StoreGoods.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(StoreGoods entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除商品
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
package com.pz.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.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 com.pz.system.domain.vo.StoreAdminOrderVo;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.TotalOrderMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.StoreOrderBo;
import com.pz.system.domain.vo.StoreOrderVo;
import com.pz.system.domain.StoreOrder;
import com.pz.system.mapper.StoreOrderMapper;
import com.pz.system.service.IStoreOrderService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Optional;
/**
* 商城订单Service业务层处理
*
* @author ruoyi
* @date 2023-09-07
*/
@RequiredArgsConstructor
@Service
public class StoreOrderServiceImpl implements IStoreOrderService {
private final StoreOrderMapper baseMapper;
private final TotalOrderMapper totalOrderMapper;
private final CityMapper cityMapper;
/**
* 查询商城订单
*/
@Override
public StoreOrderVo queryById(Integer id) {
return baseMapper.selectVoById(id);
}
/**
* 查询商城订单列表
*/
@Override
public TableDataInfo<StoreAdminOrderVo> queryPageList(StoreOrderBo bo, PageQuery pageQuery) {
Page<StoreAdminOrderVo> result = baseMapper.findStoreAdminOrderVoPage(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
/**
* 查询商城订单列表
*/
@Override
public List<StoreOrderVo> queryList(StoreOrderBo bo) {
LambdaQueryWrapper<StoreOrder> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<StoreOrder> buildQueryWrapper(StoreOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<StoreOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getStoreId() != null, StoreOrder::getStoreId, bo.getStoreId());
lqw.eq(bo.getOrderId() != null, StoreOrder::getOrderId, bo.getOrderId());
lqw.eq(bo.getGoodsId() != null, StoreOrder::getGoodsId, bo.getGoodsId());
lqw.eq(bo.getNum() != null, StoreOrder::getNum, bo.getNum());
lqw.eq(bo.getAddressId() != null, StoreOrder::getAddressId, bo.getAddressId());
lqw.eq(bo.getStatus() != null, StoreOrder::getStatus, bo.getStatus());
lqw.eq(bo.getOverTime() != null, StoreOrder::getOverTime, bo.getOverTime());
lqw.eq(StringUtils.isNotBlank(bo.getVoucher()), StoreOrder::getVoucher, bo.getVoucher());
lqw.eq(StringUtils.isNotBlank(bo.getLogistics()), StoreOrder::getLogistics, bo.getLogistics());
lqw.eq(StringUtils.isNotBlank(bo.getLogisticsCode()), StoreOrder::getLogisticsCode, bo.getLogisticsCode());
lqw.eq(StringUtils.isNotBlank(bo.getRefundLogistics()), StoreOrder::getRefundLogistics, bo.getRefundLogistics());
lqw.eq(StringUtils.isNotBlank(bo.getRefundLogisticsCode()), StoreOrder::getRefundLogisticsCode, bo.getRefundLogisticsCode());
return lqw;
}
/**
* 新增商城订单
*/
@Override
public Boolean insertByBo(StoreOrderBo bo) {
StoreOrder add = BeanUtil.toBean(bo, StoreOrder.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改商城订单
*/
@Override
public Boolean updateByBo(StoreOrderBo bo) {
StoreOrder update = BeanUtil.toBean(bo, StoreOrder.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(StoreOrder entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除商城订单
*/
@Override
public Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
......@@ -75,6 +75,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
Map<String, Object> params = user.getParams();
QueryWrapper<SysUser> wrapper = Wrappers.query();
wrapper.eq("u.del_flag", UserConstants.USER_NORMAL)
.eq(StringUtils.isNotBlank(user.getUserType()), "u.user_type", user.getUserType())
.eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId())
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
......
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.TotalOrderBo;
import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.system.domain.TotalOrder;
import com.pz.system.mapper.TotalOrderMapper;
import com.pz.system.service.ITotalOrderService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 总订单Service业务层处理
*
* @author ruoyi
* @date 2023-09-08
*/
@RequiredArgsConstructor
@Service
public class TotalOrderServiceImpl implements ITotalOrderService {
private final TotalOrderMapper baseMapper;
/**
* 查询总订单
*/
@Override
public TotalOrderVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 查询总订单列表
*/
@Override
public TableDataInfo<TotalOrderVo> queryPageList(TotalOrderBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TotalOrder> lqw = buildQueryWrapper(bo);
Page<TotalOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询总订单列表
*/
@Override
public List<TotalOrderVo> queryList(TotalOrderBo bo) {
LambdaQueryWrapper<TotalOrder> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<TotalOrder> buildQueryWrapper(TotalOrderBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TotalOrder> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getOrderSn()), TotalOrder::getOrderSn, bo.getOrderSn());
lqw.eq(bo.getUid() != null, TotalOrder::getUid, bo.getUid());
lqw.eq(bo.getEmId() != null, TotalOrder::getEmId, bo.getEmId());
lqw.eq(bo.getCityId() != null, TotalOrder::getCityId, bo.getCityId());
lqw.eq(bo.getBusinessId() != null, TotalOrder::getBusinessId, bo.getBusinessId());
lqw.eq(bo.getServiceId() != null, TotalOrder::getServiceId, bo.getServiceId());
lqw.eq(StringUtils.isNotBlank(bo.getPayMoney()), TotalOrder::getPayMoney, bo.getPayMoney());
lqw.eq(bo.getStatus() != null, TotalOrder::getStatus, bo.getStatus());
lqw.eq(bo.getIsSatisfaction() != null, TotalOrder::getIsSatisfaction, bo.getIsSatisfaction());
lqw.eq(StringUtils.isNotBlank(bo.getEvaluationContent()), TotalOrder::getEvaluationContent, bo.getEvaluationContent());
lqw.eq(StringUtils.isNotBlank(bo.getRefundReason()), TotalOrder::getRefundReason, bo.getRefundReason());
lqw.eq(StringUtils.isNotBlank(bo.getRefundAmount()), TotalOrder::getRefundAmount, bo.getRefundAmount());
return lqw;
}
/**
* 新增总订单
*/
@Override
public Boolean insertByBo(TotalOrderBo bo) {
TotalOrder add = BeanUtil.toBean(bo, TotalOrder.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改总订单
*/
@Override
public Boolean updateByBo(TotalOrderBo bo) {
TotalOrder update = BeanUtil.toBean(bo, TotalOrder.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TotalOrder entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除总订单
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pz.system.mapper.StoreOrderMapper">
<resultMap type="com.pz.system.domain.StoreOrder" id="StoreOrderResult">
<result property="id" column="id"/>
<result property="storeId" column="store_id"/>
<result property="orderId" column="order_id"/>
<result property="goodsId" column="goods_id"/>
<result property="num" column="num"/>
<result property="addressId" column="address_id"/>
<result property="status" column="status"/>
<result property="overTime" column="over_time"/>
<result property="voucher" column="voucher"/>
<result property="logistics" column="logistics"/>
<result property="logisticsCode" column="logistics_code"/>
<result property="refundLogistics" column="refund_logistics"/>
<result property="refundLogisticsCode" column="refund_logistics_code"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<select id="findStoreAdminOrderVoPage" resultType="com.pz.system.domain.vo.StoreAdminOrderVo">
SELECT
c.NAME AS cityName,
sg.title AS title,
so.num AS num,
tao.pay_money payMoney,
si.name AS sName,
su.user_name AS userName,
so.`status` AS orderStatus,
so.create_time AS createTime
FROM
store_order AS so
LEFT JOIN total_order AS tao ON tao.id = so.order_id
LEFT JOIN city AS c ON c.id = tao.city_id
LEFT JOIN store_info AS si ON si.id = so.store_id
LEFT JOIN store_goods AS sg ON sg.id = so.goods_id
LEFT JOIN sys_user AS su ON su.user_id = tao.uid
<if test="bo.title != null and bo.title != ''">
where sg.title LIKE CONCAT('%', #{bo.title}, '%')
</if>
</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