From ed55b07e0000d99d0aeb796649077d178256fbb8 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 09 Jan 2021 17:17:08 +0800
Subject: [PATCH] modify
---
zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 163 insertions(+), 13 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
index 8e97ddf..e0c59eb 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java
@@ -1,18 +1,29 @@
package com.matrix.system.app.action;
+import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
+import com.matrix.core.pojo.VerifyResult;
+import com.matrix.core.tools.DateUtil;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.app.dto.CreateServiceOrderDto;
import com.matrix.system.app.dto.ServiceOrderListDto;
+import com.matrix.system.app.dto.ServiceVipProjDto;
+import com.matrix.system.app.mapper.SysBeauticianStateMapper;
+import com.matrix.system.app.mapper.SysProjServiceMapper;
import com.matrix.system.app.mapper.SysProjUseMapper;
-import com.matrix.system.app.vo.ServiceOrderListVo;
-import com.matrix.system.app.vo.ServiceProductListVo;
-import com.matrix.system.app.vo.ServiceProjVo;
-import com.matrix.system.app.vo.ServiceTcVo;
+import com.matrix.system.app.vo.*;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.constance.Dictionary;
+import com.matrix.system.hive.bean.SysBeauticianState;
+import com.matrix.system.hive.bean.SysProjServices;
import com.matrix.system.hive.bean.SysProjUse;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.plugin.util.CollectionUtils;
+import com.matrix.system.hive.service.SysBeauticianStateService;
import com.matrix.system.hive.service.SysProjServicesService;
import com.matrix.system.hive.service.SysProjUseService;
import com.matrix.system.hive.service.SysVipInfoService;
@@ -24,6 +35,9 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
import java.util.List;
/**
@@ -44,13 +58,16 @@
@Autowired
private SysProjServicesService projServicesService;
+ @Autowired
+ private SysBeauticianStateService sysBeauticianStateService;
+
@ApiOperation(value ="获取用户项目/套餐列表", notes = "获取用户项目/套餐列表")
@ApiResponses({
@ApiResponse(code = 200, message = "ok", response = ServiceProductListVo.class)
})
- @GetMapping(value = "/findVipProject/{vipId}")
- public AjaxResult findVipProject(@PathVariable("vipId") Long vipId) {
- SysVipInfo vipInfo = sysVipInfoService.findById(vipId);
+ @PostMapping(value = "/findVipProject")
+ public AjaxResult findVipProject(@RequestBody @Validated ServiceVipProjDto serviceVipProjDto) {
+ SysVipInfo vipInfo = sysVipInfoService.findById(serviceVipProjDto.getVipId());
if (vipInfo == null) {
throw new GlobleException("会员不存在");
@@ -58,14 +75,38 @@
ServiceProductListVo productListVo = new ServiceProductListVo();
productListVo.setName(vipInfo.getVipName());
- productListVo.setVipId(vipId);
+ productListVo.setVipId(serviceVipProjDto.getVipId());
SysProjUse queryUse = new SysProjUse();
- queryUse.setVipId(vipId);
+ queryUse.setVipId(serviceVipProjDto.getVipId());
queryUse.setType(Dictionary.SHOPPING_GOODS_TYPE_XM);
queryUse.setTaocanId(-1L);
- queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
- queryUse.setIsOver(Dictionary.FLAG_NO_N);
+ if (serviceVipProjDto.getType() != null) {
+ switch (serviceVipProjDto.getType()) {
+ case "0":
+ break;
+ case "1":
+ queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
+ queryUse.setIsOver(Dictionary.FLAG_NO_N);
+ break;
+ case "2":
+ queryUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
+ queryUse.setIsOver(Dictionary.FLAG_YES_Y);
+ break;
+ case "3":
+ queryUse.setTargetFailTime(DateUtil.getDateAfterMonth(new Date(), 1));
+ break;
+ default:
+ queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
+ queryUse.setIsOver(Dictionary.FLAG_NO_N);
+ break;
+ }
+ } else {
+ queryUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
+ queryUse.setIsOver(Dictionary.FLAG_NO_N);
+ }
+
+ queryUse.setQueryKey(serviceVipProjDto.getQueryKey());
List<SysProjUse> projList = projUseService.findInPage(queryUse, null);
List<ServiceProjVo> serviceProjVos = SysProjUseMapper.INSTANCE.entityListToProjVoList(projList);
@@ -91,8 +132,52 @@
@ApiOperation(value = "提交服务单", notes = "提交服务单")
@PostMapping(value = "/createServiceOrder")
- public AjaxResult createServiceOrder() {
- return null;
+ public AjaxResult createServiceOrder(@RequestBody @Validated CreateServiceOrderDto serviceOrderDto) {
+ if (CollectionUtils.isEmpty(serviceOrderDto.getProjItems())) {
+ throw new GlobleException("请选择服务");
+ }
+ SysVipInfo vipInfo = sysVipInfoService.findById(serviceOrderDto.getVipId());
+ if (StringUtils.isBlank(vipInfo.getPassWord())) {
+ return AjaxResult.buildFailInstance("未设置资金密码");
+ }
+
+ if (!vipInfo.getPassWord().equals(serviceOrderDto.getPassword())) {
+ return AjaxResult.buildSuccessInstance("资金密码错误");
+ }
+
+ SysProjServices sysProjServices = new SysProjServices();
+ sysProjServices.setVipId(serviceOrderDto.getVipId());
+ sysProjServices.setYyTime(serviceOrderDto.getYyTime());
+ sysProjServices.setRemark(serviceOrderDto.getRemark());
+
+ List<SysBeauticianState> sysBeauticianStates = new ArrayList<>();
+ serviceOrderDto.getProjItems().forEach(item ->{
+ SysBeauticianState sysBeauticianState = SysBeauticianStateMapper.INSTANCE.serviceOrderItemVoToEntity(item);
+
+ sysBeauticianState.setBeginTime(serviceOrderDto.getYyTime());
+ sysBeauticianState.setEndTime(DateUtil.getDateAfterMinute(serviceOrderDto.getYyTime(), serviceOrderDto.getTotalTime()));
+ sysBeauticianState.setStaffId(serviceOrderDto.getBeautyId());
+ sysBeauticianStates.add(sysBeauticianState);
+ });
+
+ sysProjServices.setServiceItems(sysBeauticianStates);
+
+ //检测欠款
+ VerifyResult arrearsVerifyResult = projServicesService.checkArrears(sysProjServices);
+ if (arrearsVerifyResult.isError()) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, arrearsVerifyResult.getMsg());
+ }
+ //检测余次
+ VerifyResult balanceverifyResult = projServicesService.checkBalance(sysProjServices);
+ if (balanceverifyResult.isError()) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, balanceverifyResult.getMsg());
+ }
+ SysProjServices newSysProjServices = projServicesService.addSysProjServices(sysProjServices);
+ if (newSysProjServices != null) {
+ return AjaxResult.buildSuccessInstance("下单成功");
+ } else {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "下单失败!");
+ }
}
@ApiOperation(value = "查询服务单列表", notes = "查询服务单列表")
@@ -106,7 +191,72 @@
int limit = orderListDto.getPageSize();
pageVo.setOffset(offset);
pageVo.setLimit(limit);
+
+ if (!DataAuthUtil.hasAllShopAuth()) {
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ orderListDto.setShopId(user.getShopId());
+ orderListDto.setUserId(user.getSuId());
+ }
return AjaxResult.buildSuccessInstance(projServicesService.findApiServiceOrderListInPage(orderListDto, pageVo), projServicesService.findApiServiceOrderListTotal(orderListDto));
}
+ @ApiOperation(value = "获取服务单详情", notes = "获取服务单详情")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "ok", response = ServiceOrderDetailVo.class)
+ })
+ @GetMapping(value = "/findServiceOrderDetail/{id}")
+ public AjaxResult findServiceOrderDetail(@PathVariable("id") Long id) {
+ SysProjServices projServices = projServicesService.findById(id);
+ if (projServices == null) {
+ return AjaxResult.buildFailInstance("服务单不存在");
+ }
+
+ ServiceOrderDetailVo detailVo = SysProjServiceMapper.INSTANCE.projServiceToDetailVo(projServices);
+
+ List<SysBeauticianState> beauticianStates = sysBeauticianStateService.findBySerId(projServices.getId());
+ List<ServiceOrderDetailItemVo> items = SysBeauticianStateMapper.INSTANCE.entitiesToDetailItemsVo(beauticianStates);
+ detailVo.setItems(items);
+
+ AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+ ajaxResult.putInMap("detail", detailVo);
+ return ajaxResult;
+ }
+
+ @ApiOperation(value = "开始服务", notes = "开始服务")
+ @GetMapping(value = "/startService/{id}")
+ public AjaxResult startService(@PathVariable("id") Long id) {
+ SysProjServices sysProjServices = new SysProjServices();
+ sysProjServices.setId(id);
+ int i = projServicesService.modifyFWKSProjServices(sysProjServices);
+ if (i > 0) {
+ return AjaxResult.buildSuccessInstance("开始服务成功");
+ }
+ return AjaxResult.buildFailInstance("开始服务失败");
+ }
+
+ @ApiOperation(value = "结束服务", notes = "结束服务")
+ @GetMapping(value = "/stopService/{id}")
+ public AjaxResult stopService(@PathVariable("id") Long id) {
+ SysProjServices projServvices = new SysProjServices();
+ projServvices.setId(id);
+ int result = projServicesService.modifyFWJSrojServices(projServvices);
+ if (result > 0) {
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, "结束服务成功");
+ } else {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "结束服务失败");
+ }
+ }
+
+ @ApiOperation(value = "取消服务", notes = "取消服务")
+ @GetMapping(value = "/cancelService/{id}")
+ public AjaxResult cancelService(@PathVariable("id") Long id) {
+ SysProjServices services = new SysProjServices();
+ services.setId(id);
+ int i = projServicesService.modifyCancelProjServices(services);
+ if (i > 0) {
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, "取消预约成功");
+ } else {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "取消预约失败");
+ }
+ }
}
--
Gitblit v1.9.1