Your Name
2023-01-27 5589528feb385d7881f8dbf9314b3abf5d4f4e9e
service-store/src/main/java/com/java110/store/cmd/scheduleClasses/SaveScheduleClassesCmd.java
@@ -15,6 +15,7 @@
 */
package com.java110.store.cmd.scheduleClasses;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
@@ -22,11 +23,19 @@
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.scheduleClasses.ScheduleClassesDto;
import com.java110.dto.scheduleClassesDay.ScheduleClassesDayDto;
import com.java110.intf.store.IScheduleClassesDayV1InnerServiceSMO;
import com.java110.intf.store.IScheduleClassesTimeV1InnerServiceSMO;
import com.java110.intf.store.IScheduleClassesV1InnerServiceSMO;
import com.java110.po.scheduleClasses.ScheduleClassesPo;
import com.java110.po.scheduleClassesDay.ScheduleClassesDayPo;
import com.java110.po.scheduleClassesTime.ScheduleClassesTimePo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.slf4j.Logger;
@@ -52,12 +61,46 @@
    @Autowired
    private IScheduleClassesV1InnerServiceSMO scheduleClassesV1InnerServiceSMOImpl;
    @Autowired
    private IScheduleClassesDayV1InnerServiceSMO scheduleClassesDayV1InnerServiceSMOImpl;
    @Autowired
    private IScheduleClassesTimeV1InnerServiceSMO scheduleClassesTimeV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "name", "请求报文中未包含name");
Assert.hasKeyAndValue(reqJson, "scheduleType", "请求报文中未包含scheduleType");
Assert.hasKeyAndValue(reqJson, "scheduleCycle", "请求报文中未包含scheduleCycle");
Assert.hasKeyAndValue(reqJson, "computeTime", "请求报文中未包含computeTime");
        Assert.hasKeyAndValue(reqJson, "scheduleType", "请求报文中未包含scheduleType");
        Assert.hasKeyAndValue(reqJson, "scheduleCycle", "请求报文中未包含scheduleCycle");
        if(!reqJson.containsKey("days")){
            throw new CmdException("未包含天");
        }
        JSONArray days = reqJson.getJSONArray("days");
        if(days.size() <1){
            throw new CmdException("未包含天");
        }
        JSONObject day = null;
        JSONArray times = null;
        for(int dayIndex = 0 ; dayIndex < days.size(); dayIndex++){
            day = days.getJSONObject(dayIndex);
            if(ScheduleClassesDayDto.WORKDAY_NO.equals(day.getString("workday"))){
                continue;
            }
            if(!day.containsKey("times")){
                throw new CmdException("未包时间");
            }
            times = day.getJSONArray("times");
            if(times.size() <1){
                throw new CmdException("未包时间");
            }
        }
    }
@@ -65,14 +108,56 @@
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
       ScheduleClassesPo scheduleClassesPo = BeanConvertUtil.covertBean(reqJson, ScheduleClassesPo.class);
        String storeId = cmdDataFlowContext.getReqHeaders().get("store-id");
        ScheduleClassesPo scheduleClassesPo = BeanConvertUtil.covertBean(reqJson, ScheduleClassesPo.class);
        scheduleClassesPo.setScheduleId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
        scheduleClassesPo.setStoreId(storeId);
        scheduleClassesPo.setState(ScheduleClassesDto.STATE_START);
        scheduleClassesPo.setComputeTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
        int flag = scheduleClassesV1InnerServiceSMOImpl.saveScheduleClasses(scheduleClassesPo);
        if (flag < 1) {
            throw new CmdException("保存数据失败");
        }
        JSONArray days = reqJson.getJSONArray("days");
        JSONObject day = null;
        ScheduleClassesDayPo scheduleClassesDayPo = null;
        JSONObject time = null;
        ScheduleClassesTimePo scheduleClassesTimePo = null;
        JSONArray times = null;
        for(int dayIndex = 0 ; dayIndex < days.size(); dayIndex++){
            day = days.getJSONObject(dayIndex);
            scheduleClassesDayPo = new ScheduleClassesDayPo();
            scheduleClassesDayPo.setDayId(GenerateCodeFactory.getGeneratorId("11"));
            scheduleClassesDayPo.setDay(day.getString("day"));
            scheduleClassesDayPo.setScheduleId(scheduleClassesPo.getScheduleId());
            scheduleClassesDayPo.setWeekFlag(StringUtil.isEmpty(day.getString("weekFlag"))?"1":day.getString("weekFlag"));
            scheduleClassesDayPo.setWorkday(day.getString("workday"));
            flag = scheduleClassesDayV1InnerServiceSMOImpl.saveScheduleClassesDay(scheduleClassesDayPo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
            times = day.getJSONArray("times");
            for(int timeIndex = 0 ;timeIndex < times.size();timeIndex++){
                time = times.getJSONObject(timeIndex);
                scheduleClassesTimePo = new ScheduleClassesTimePo();
                scheduleClassesTimePo.setDayId(scheduleClassesDayPo.getDayId());
                scheduleClassesTimePo.setEndTime(time.getString("endTime"));
                scheduleClassesTimePo.setScheduleId(scheduleClassesPo.getScheduleId());
                scheduleClassesTimePo.setStartTime(time.getString("startTime"));
                scheduleClassesTimePo.setTimeId(GenerateCodeFactory.getGeneratorId("11"));
                flag = scheduleClassesTimeV1InnerServiceSMOImpl.saveScheduleClassesTime(scheduleClassesTimePo);
                if (flag < 1) {
                    throw new CmdException("保存数据失败");
                }
            }
        }
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
    }
}