From 8aebedf8bf403a7f3d337100831232c3b74e3563 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 25 Dec 2020 16:14:04 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/app/action/ApiServiceOrderAction.java    |   39 +++++++++
 zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderItemDto.java   |   41 ++++++++++
 zq-erp/src/main/java/com/matrix/system/app/mapper/SysBeauticianStateMapper.java |   23 +++++
 zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java                |   11 ++
 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml                 |    5 +
 zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java       |   74 ++++++++++++++++++
 6 files changed, 190 insertions(+), 3 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..7ec1b50 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,15 +1,23 @@
 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.WebUtil;
+import com.matrix.system.app.dto.CreateServiceOrderDto;
 import com.matrix.system.app.dto.ServiceOrderListDto;
+import com.matrix.system.app.mapper.SysBeauticianStateMapper;
 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.common.bean.SysUsers;
 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;
@@ -24,6 +32,7 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -91,8 +100,34 @@
 
     @ApiOperation(value = "提交服务单", notes = "提交服务单")
     @PostMapping(value = "/createServiceOrder")
-    public AjaxResult createServiceOrder() {
-        return null;
+    public AjaxResult createServiceOrder(@RequestBody @Validated CreateServiceOrderDto serviceOrderDto) {
+        if (CollectionUtils.isNotEmpty(serviceOrderDto.getProjItems())) {
+            throw new GlobleException("请选择服务");
+        }
+
+        SysProjServices sysProjServices = new SysProjServices();
+        sysProjServices.setVipId(serviceOrderDto.getVipId());
+        sysProjServices.setYyTime(serviceOrderDto.getYyTime());
+        sysProjServices.setRemark(serviceOrderDto.getRemark());
+        List<SysBeauticianState> sysBeauticianStates = SysBeauticianStateMapper.INSTANCE.orderItmesVoToEntityList(serviceOrderDto.getProjItems());
+        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(Arrays.asList(newSysProjServices));
+        } else {
+            return new AjaxResult(AjaxResult.STATUS_FAIL, "下单失败!");
+        }
     }
 
     @ApiOperation(value = "查询服务单列表", notes = "查询服务单列表")
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java
new file mode 100644
index 0000000..a07855f
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderDto.java
@@ -0,0 +1,74 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-25
+ **/
+@ApiModel(value = "CreateServiceOrderDto", description = "创建服务单接口接收参数类")
+public class CreateServiceOrderDto {
+
+    @NotNull(message = "请选择会员")
+    @ApiModelProperty(value = "会员ID")
+    private Long vipId;
+
+    @NotNull(message = "请选择美疗师")
+    @ApiModelProperty(value = "美疗师ID")
+    private Long beautyId;
+
+    @NotNull(message = "请选择预约时间")
+    @ApiModelProperty(value = "预约时间")
+    private Date yyTime;
+
+    @ApiModelProperty(value = "选择的项目")
+    private List<CreateServiceOrderItemDto> projItems;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    public Long getVipId() {
+        return vipId;
+    }
+
+    public void setVipId(Long vipId) {
+        this.vipId = vipId;
+    }
+
+    public Long getBeautyId() {
+        return beautyId;
+    }
+
+    public void setBeautyId(Long beautyId) {
+        this.beautyId = beautyId;
+    }
+
+    public Date getYyTime() {
+        return yyTime;
+    }
+
+    public void setYyTime(Date yyTime) {
+        this.yyTime = yyTime;
+    }
+
+    public List<CreateServiceOrderItemDto> getProjItems() {
+        return projItems;
+    }
+
+    public void setProjItems(List<CreateServiceOrderItemDto> projItems) {
+        this.projItems = projItems;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderItemDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderItemDto.java
new file mode 100644
index 0000000..6d886ae
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/dto/CreateServiceOrderItemDto.java
@@ -0,0 +1,41 @@
+package com.matrix.system.app.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wzy
+ * @date 2020-12-25
+ **/
+@ApiModel(value = "CreateServiceOrderItemDto", description = "创建服务单参数接收类")
+public class CreateServiceOrderItemDto {
+
+    @NotNull(message = "请选择项目")
+    @ApiModelProperty(value = "项目ID")
+    private Long puseId;
+
+    @NotNull(message = "请输入数量")
+    @Min(1)
+    @ApiModelProperty(value = "数量")
+    private Integer count;
+
+
+    public Long getPuseId() {
+        return puseId;
+    }
+
+    public void setPuseId(Long puseId) {
+        this.puseId = puseId;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/mapper/SysBeauticianStateMapper.java b/zq-erp/src/main/java/com/matrix/system/app/mapper/SysBeauticianStateMapper.java
new file mode 100644
index 0000000..571a397
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/app/mapper/SysBeauticianStateMapper.java
@@ -0,0 +1,23 @@
+package com.matrix.system.app.mapper;
+
+import com.matrix.system.app.dto.CreateServiceOrderItemDto;
+import com.matrix.system.hive.bean.SysBeauticianState;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2020-12-25
+ **/
+@Mapper
+public abstract class SysBeauticianStateMapper {
+    public static final SysBeauticianStateMapper INSTANCE = Mappers.getMapper(SysBeauticianStateMapper.class);
+
+
+    public abstract SysBeauticianState serviceOrderItemVoToEntity(CreateServiceOrderItemDto dto);
+
+    public abstract List<SysBeauticianState> orderItmesVoToEntityList(List<CreateServiceOrderItemDto> dtoList);
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
index bbe4758..89504e2 100644
--- a/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/app/vo/ServiceProjVo.java
@@ -14,6 +14,9 @@
 @ApiModel(value = "ServiceProjVo", description = "用户项目返回参数类")
 public class ServiceProjVo {
 
+    @ApiModelProperty(value = "id")
+    private Long id;
+
     @ApiModelProperty(value = "订单ID")
     private Long projId;
 
@@ -80,4 +83,12 @@
     public void setImg(String img) {
         this.img = img;
     }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
 }
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
index 29058ae..fee7b2f 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
@@ -424,8 +424,11 @@
     <!-- 根据对象查询 -->
     <select id="selectByModel" resultMap="SysProjUseMap">
         select
-        a.*
+        a.*,
+        b.time_length,
+        b.img
         from sys_proj_use a
+        left join shopping_goods b on a.proj_id=b.id
         where 1=1
         <if test="record!=null">
             <if test="record.id != null and record.id !='' ">

--
Gitblit v1.9.1