Your Name %!s(int64=3) %!d(string=hai) anos
pai
achega
1008d7e665

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/reserveGoodsOrderTime/ReserveGoodsOrderTimeDto.java

@@ -30,6 +30,8 @@ public class ReserveGoodsOrderTimeDto extends PageDto implements Serializable {
 
 
     private String statusCd = "0";
     private String statusCd = "0";
 
 
+    private String appointmentTime;
+
 
 
     public String getHours() {
     public String getHours() {
         return hours;
         return hours;
@@ -111,4 +113,12 @@ public class ReserveGoodsOrderTimeDto extends PageDto implements Serializable {
     public void setGoodsIds(String[] goodsIds) {
     public void setGoodsIds(String[] goodsIds) {
         this.goodsIds = goodsIds;
         this.goodsIds = goodsIds;
     }
     }
+
+    public String getAppointmentTime() {
+        return appointmentTime;
+    }
+
+    public void setAppointmentTime(String appointmentTime) {
+        this.appointmentTime = appointmentTime;
+    }
 }
 }

+ 8 - 0
java110-db/src/main/resources/mapper/store/ReserveGoodsOrderTimeV1ServiceDaoImplMapper.xml

@@ -20,7 +20,11 @@
         select t.hours,t.quantity,t.time_id,t.time_id timeId,t.order_id,t.order_id orderId,t.goods_id,t.goods_id
         select t.hours,t.quantity,t.time_id,t.time_id timeId,t.order_id,t.order_id orderId,t.goods_id,t.goods_id
         goodsId,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId
         goodsId,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId
         from reserve_goods_order_time t
         from reserve_goods_order_time t
+        left join reserve_goods_order rgo on t.goods_id = rgo.goods_id and rgo.status_cd='0'
         where 1 =1
         where 1 =1
+        <if test="appointmentTime !=null and appointmentTime != ''">
+            and rgo.appointment_time = #{appointmentTime}
+        </if>
         <if test="hours !=null and hours != ''">
         <if test="hours !=null and hours != ''">
             and t.hours= #{hours}
             and t.hours= #{hours}
         </if>
         </if>
@@ -94,7 +98,11 @@
     <select id="queryReserveGoodsOrderTimesCount" parameterType="Map" resultType="Map">
     <select id="queryReserveGoodsOrderTimesCount" parameterType="Map" resultType="Map">
         select count(1) count
         select count(1) count
         from reserve_goods_order_time t
         from reserve_goods_order_time t
+        left join reserve_goods_order rgo on t.goods_id = rgo.goods_id and rgo.status_cd='0'
         where 1 =1
         where 1 =1
+        <if test="appointmentTime !=null and appointmentTime != ''">
+            and rgo.appointment_time = #{appointmentTime}
+        </if>
         <if test="hours !=null and hours != ''">
         <if test="hours !=null and hours != ''">
             and t.hours= #{hours}
             and t.hours= #{hours}
         </if>
         </if>

+ 55 - 4
service-store/src/main/java/com/java110/store/cmd/reserveOrder/SaveReserveGoodsOrderCmd.java

@@ -15,6 +15,7 @@
  */
  */
 package com.java110.store.cmd.reserveOrder;
 package com.java110.store.cmd.reserveOrder;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.annotation.Java110Transactional;
@@ -22,11 +23,18 @@ import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.communitySpacePerson.CommunitySpacePersonDto;
+import com.java110.dto.communitySpacePersonTime.CommunitySpacePersonTimeDto;
+import com.java110.dto.reserveGoodsOrderTime.ReserveGoodsOrderTimeDto;
+import com.java110.intf.store.IReserveGoodsOrderTimeV1InnerServiceSMO;
 import com.java110.intf.store.IReserveGoodsOrderV1InnerServiceSMO;
 import com.java110.intf.store.IReserveGoodsOrderV1InnerServiceSMO;
+import com.java110.po.communitySpacePersonTime.CommunitySpacePersonTimePo;
 import com.java110.po.reserveGoodsOrder.ReserveGoodsOrderPo;
 import com.java110.po.reserveGoodsOrder.ReserveGoodsOrderPo;
+import com.java110.po.reserveGoodsOrderTime.ReserveGoodsOrderTimePo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -52,35 +60,78 @@ public class SaveReserveGoodsOrderCmd extends Cmd {
     @Autowired
     @Autowired
     private IReserveGoodsOrderV1InnerServiceSMO reserveGoodsOrderV1InnerServiceSMOImpl;
     private IReserveGoodsOrderV1InnerServiceSMO reserveGoodsOrderV1InnerServiceSMOImpl;
 
 
+    @Autowired
+    private IReserveGoodsOrderTimeV1InnerServiceSMO reserveGoodsOrderTimeV1InnerServiceSMOImpl;
+
     @Override
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        Assert.hasKeyAndValue(reqJson, "orderId", "请求报文中未包含orderId");
         Assert.hasKeyAndValue(reqJson, "goodsId", "请求报文中未包含goodsId");
         Assert.hasKeyAndValue(reqJson, "goodsId", "请求报文中未包含goodsId");
         Assert.hasKeyAndValue(reqJson, "type", "请求报文中未包含type");
         Assert.hasKeyAndValue(reqJson, "type", "请求报文中未包含type");
         Assert.hasKeyAndValue(reqJson, "personName", "请求报文中未包含personName");
         Assert.hasKeyAndValue(reqJson, "personName", "请求报文中未包含personName");
         Assert.hasKeyAndValue(reqJson, "personTel", "请求报文中未包含personTel");
         Assert.hasKeyAndValue(reqJson, "personTel", "请求报文中未包含personTel");
         Assert.hasKeyAndValue(reqJson, "appointmentTime", "请求报文中未包含appointmentTime");
         Assert.hasKeyAndValue(reqJson, "appointmentTime", "请求报文中未包含appointmentTime");
-        Assert.hasKeyAndValue(reqJson, "receivableAmount", "请求报文中未包含receivableAmount");
         Assert.hasKeyAndValue(reqJson, "receivedAmount", "请求报文中未包含receivedAmount");
         Assert.hasKeyAndValue(reqJson, "receivedAmount", "请求报文中未包含receivedAmount");
         Assert.hasKeyAndValue(reqJson, "payWay", "请求报文中未包含payWay");
         Assert.hasKeyAndValue(reqJson, "payWay", "请求报文中未包含payWay");
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId");
-        Assert.hasKeyAndValue(reqJson, "state", "请求报文中未包含state");
         Assert.hasKeyAndValue(reqJson, "extOrderId", "请求报文中未包含extOrderId");
         Assert.hasKeyAndValue(reqJson, "extOrderId", "请求报文中未包含extOrderId");
 
 
+        if(!reqJson.containsKey("openTimes")){
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+            return ;
+        }
+
+        JSONArray openTimes = reqJson.getJSONArray("openTimes");
+
+        if(openTimes == null || openTimes.size() <1){
+            cmdDataFlowContext.setResponseEntity(ResultVo.success());
+            return ;
+        }
+        ReserveGoodsOrderTimeDto reserveGoodsOrderTimeDto = null;
+        int flag = 0;
+        for(int timeIndex = 0 ;timeIndex < openTimes.size(); timeIndex++) {
+            reserveGoodsOrderTimeDto = new ReserveGoodsOrderTimeDto();
+            reserveGoodsOrderTimeDto.setCommunityId(reqJson.getString("communityId"));
+            reserveGoodsOrderTimeDto.setAppointmentTime(reqJson.getString("appointmentTime"));
+            reserveGoodsOrderTimeDto.setHours(openTimes.getJSONObject(timeIndex).getString("hours"));
+            reserveGoodsOrderTimeDto.setGoodsId(reqJson.getString("goodsId"));
+            flag = reserveGoodsOrderTimeV1InnerServiceSMOImpl.queryReserveGoodsOrderTimesCount(reserveGoodsOrderTimeDto);
+            if(flag > 0){
+                throw new CmdException(reqJson.getString("appointmentTime")+","+openTimes.getJSONObject(timeIndex).getString("hours")+"已经被预约");
+            }
+        }
     }
     }
 
 
     @Override
     @Override
     @Java110Transactional
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
-
         ReserveGoodsOrderPo reserveGoodsOrderPo = BeanConvertUtil.covertBean(reqJson, ReserveGoodsOrderPo.class);
         ReserveGoodsOrderPo reserveGoodsOrderPo = BeanConvertUtil.covertBean(reqJson, ReserveGoodsOrderPo.class);
         reserveGoodsOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
         reserveGoodsOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+        if(StringUtil.isEmpty(reserveGoodsOrderPo.getExtOrderId())){
+            reserveGoodsOrderPo.setExtOrderId("-1");
+        }
+        if(StringUtil.isEmpty(reserveGoodsOrderPo.getState())){
+            reserveGoodsOrderPo.setState(CommunitySpacePersonDto.STATE_W);
+        }
         int flag = reserveGoodsOrderV1InnerServiceSMOImpl.saveReserveGoodsOrder(reserveGoodsOrderPo);
         int flag = reserveGoodsOrderV1InnerServiceSMOImpl.saveReserveGoodsOrder(reserveGoodsOrderPo);
 
 
         if (flag < 1) {
         if (flag < 1) {
             throw new CmdException("保存数据失败");
             throw new CmdException("保存数据失败");
         }
         }
 
 
+        JSONArray openTimes = reqJson.getJSONArray("openTimes");
+
+        ReserveGoodsOrderTimePo reserveGoodsOrderTimePo = null;
+        for(int timeIndex = 0 ;timeIndex < openTimes.size(); timeIndex++) {
+            reserveGoodsOrderTimePo = new ReserveGoodsOrderTimePo();
+            reserveGoodsOrderTimePo.setCommunityId(reserveGoodsOrderPo.getCommunityId());
+            reserveGoodsOrderTimePo.setGoodsId(reserveGoodsOrderPo.getGoodsId());
+            reserveGoodsOrderTimePo.setHours(openTimes.getJSONObject(timeIndex).getString("hours"));
+            reserveGoodsOrderTimePo.setQuantity(openTimes.getJSONObject(timeIndex).getString("quantity"));
+            reserveGoodsOrderTimePo.setTimeId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+            reserveGoodsOrderTimePo.setState(CommunitySpacePersonTimeDto.STATE_WAIT_CONFIRM);
+            reserveGoodsOrderTimeV1InnerServiceSMOImpl.saveReserveGoodsOrderTime(reserveGoodsOrderTimePo);
+        }
+
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
         cmdDataFlowContext.setResponseEntity(ResultVo.success());
     }
     }
 }
 }