java110
2023-05-31 dd9759eaa3dabd3d55943fc0c741fd5018d2d76e
service-store/src/main/java/com/java110/store/cmd/reserveOrder/DoDiningCmd.java
@@ -9,6 +9,7 @@
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.community.CommunitySpacePersonTimeDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.reserve.ReserveGoodsConfirmOrderDto;
import com.java110.dto.reserve.ReserveGoodsDto;
import com.java110.dto.reserve.ReserveGoodsOrderDto;
@@ -18,6 +19,7 @@
import com.java110.intf.store.IReserveGoodsOrderTimeV1InnerServiceSMO;
import com.java110.intf.store.IReserveGoodsOrderV1InnerServiceSMO;
import com.java110.intf.store.IReserveGoodsV1InnerServiceSMO;
import com.java110.intf.user.IOwnerV1InnerServiceSMO;
import com.java110.intf.user.IUserV1InnerServiceSMO;
import com.java110.po.reserveGoodsConfirmOrder.ReserveGoodsConfirmOrderPo;
import com.java110.po.reserveGoodsOrder.ReserveGoodsOrderPo;
@@ -57,12 +59,66 @@
    @Autowired
    private IReserveGoodsConfirmOrderV1InnerServiceSMO reserveGoodsConfirmOrderV1InnerServiceSMOImpl;
    @Autowired
    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
        Assert.hasKeyAndValue(reqJson, "qrCode", "未包含二维码");
        Assert.hasKeyAndValue(reqJson, "goodsId", "未包含商品");
        String userId = userV1InnerServiceSMOImpl.getUserIdByQrCode(reqJson.getString("qrCode"));
        if (StringUtil.isEmpty(userId)) {
            throw new CmdException("二维码过期");
        }
        UserDto userDto = new UserDto();
        userDto.setUserId(userId);
        List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
        Assert.listOnlyOne(userDtos, "用户不存在");
        // todo 判断用户是否为这个小区业主
        OwnerDto ownerDto = new OwnerDto();
        ownerDto.setCommunityId(reqJson.getString("communityId"));
        ownerDto.setLink(userDtos.get(0).getTel());
        int count = ownerV1InnerServiceSMOImpl.queryOwnersCount(ownerDto);
        if (count < 1) {
            throw new CmdException("业主不存在");
        }
        reqJson.put("userId", userId);
        ReserveGoodsDto reserveGoodsDto = new ReserveGoodsDto();
        reserveGoodsDto.setGoodsId(reqJson.getString("goodsId"));
        List<ReserveGoodsDto> reserveGoodsDtos = reserveGoodsV1InnerServiceSMOImpl.queryReserveGoodss(reserveGoodsDto);
        Assert.listOnlyOne(reserveGoodsDtos, "就餐不存在");
        ReserveGoodsOrderTimeDto reserveGoodsOrderTimeDto = null;
        int flag = 0;
        int quantity = 0;
        Calendar calendar = Calendar.getInstance();
        reserveGoodsOrderTimeDto = new ReserveGoodsOrderTimeDto();
        reserveGoodsOrderTimeDto.setCommunityId(reqJson.getString("communityId"));
        reserveGoodsOrderTimeDto.setAppointmentTime(DateUtil.getFormatTimeStringB(DateUtil.getCurrentDate()));
        reserveGoodsOrderTimeDto.setHours(calendar.get(Calendar.HOUR) + "");
        reserveGoodsOrderTimeDto.setGoodsId(reqJson.getString("goodsId"));
        reserveGoodsOrderTimeDto.setPersonTel(userDtos.get(0).getTel());
        flag = reserveGoodsOrderTimeV1InnerServiceSMOImpl.queryReserveGoodsOrderTimesCount(reserveGoodsOrderTimeDto);
        if (flag > 0) {
            throw new CmdException(reserveGoodsOrderTimeDto.getAppointmentTime() + "," + reserveGoodsOrderTimeDto.getHours() + "已经就餐");
        }
        reserveGoodsOrderTimeDto = new ReserveGoodsOrderTimeDto();
        reserveGoodsOrderTimeDto.setCommunityId(reqJson.getString("communityId"));
        reserveGoodsOrderTimeDto.setAppointmentTime(DateUtil.getFormatTimeStringB(DateUtil.getCurrentDate()));
        reserveGoodsOrderTimeDto.setGoodsId(reqJson.getString("goodsId"));
        quantity = reserveGoodsOrderTimeV1InnerServiceSMOImpl.queryReserveGoodsOrderTimesCount(reserveGoodsOrderTimeDto);
        if (quantity > Integer.parseInt(reserveGoodsDtos.get(0).getHoursMaxQuantity())) {
            throw new CmdException("就餐数量超过设定数量");
        }
    }
@@ -75,17 +131,13 @@
        List<ReserveGoodsDto> reserveGoodsDtos = reserveGoodsV1InnerServiceSMOImpl.queryReserveGoodss(reserveGoodsDto);
        Assert.listOnlyOne(reserveGoodsDtos, "就餐不存在");
        String userId = userV1InnerServiceSMOImpl.getUserIdByQrCode(reqJson.getString("qrCode"));
        if(StringUtil.isEmpty(userId)){
            throw new CmdException("二维码过期");
        }
        UserDto userDto = new UserDto();
        userDto.setUserId(userId);
        userDto.setUserId(reqJson.getString("userId"));
        List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
        Assert.listOnlyOne(userDtos, "用户不存在");
        ReserveGoodsOrderPo reserveGoodsOrderPo = new ReserveGoodsOrderPo();
        reserveGoodsOrderPo.setOrderId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
@@ -98,7 +150,7 @@
        reserveGoodsOrderPo.setPersonTel(userDtos.get(0).getTel());
        reserveGoodsOrderPo.setReceivableAmount(reserveGoodsDtos.get(0).getPrice());
        reserveGoodsOrderPo.setReceivedAmount("0");
        reserveGoodsOrderPo.setType("type");
        reserveGoodsOrderPo.setType(reserveGoodsDtos.get(0).getType());
        if (StringUtil.isEmpty(reserveGoodsOrderPo.getExtOrderId())) {
            reserveGoodsOrderPo.setExtOrderId("-1");
        }