package com.starnetSecurity.parkcloudServer.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.starnetSecurity.common.exception.BizException;
import com.starnetSecurity.common.utils.CommonUtils;
import com.starnetSecurity.parkcloudServer.ChargeEnum.ParkPayStatusEnum;
import com.starnetSecurity.parkcloudServer.ChargeEnum.ParkPayTypeEnum;
import com.starnetSecurity.parkcloudServer.dao.*;
import com.starnetSecurity.parkcloudServer.element.*;
import com.starnetSecurity.parkcloudServer.entity.*;
import com.starnetSecurity.parkcloudServer.service.ParkInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Created by JAMESBANG on 2018/11/14.
*/
@Slf4j
@Service("parkInfoServiceImpl")
@Transactional
public class ParkInfoServiceImpl implements ParkInfoService {
@Autowired
CarparkInfoMapper carparkInfoMapper;
@Autowired
CarRoadInfoMapper carRoadInfoMapper;
@Autowired
OperatorInfoMapper operatorInfoMapper;
@Autowired
PostComputerInfoMapper postComputerInfoMapper;
@Autowired
MemberKindMapper memberKindMapper;
@Autowired
MemberWalletMapper memberWalletMapper;
@Autowired
ChargeTypeMapper chargeTypeMapper;
@Autowired
FeeSetMapper feeSetMapper;
@Autowired
OrderPrechargeRecordMapper orderPrechargeRecordMapper;
@Autowired
OrderTransactionMapper orderTransactionMapper;
@Override
public int submitParkInfoToCloud(CarparkInfoElement carparkInfoElement) {
Integer useMark = carparkInfoElement.getUseMark();
int res = 0;
if (useMark.equals(-1)){
res = carparkInfoMapper.deleteByPrimaryKey(carparkInfoElement.getCarparkId());
}else if (useMark.equals(0)){
if (isCarparkInfoLegal("",carparkInfoElement.getCarparkId(),carparkInfoElement.getServiceId())){
CarparkInfo carparkInfo = new CarparkInfo();
carparkInfo.setCarparkId(carparkInfoElement.getCarparkId());
carparkInfo.setCarparkName(carparkInfoElement.getCarparkName());
carparkInfo.setTotalCarSpace(carparkInfoElement.getTotalCarSpace());
carparkInfo.setAvailableCarSpace(carparkInfoElement.getAvailableCarSpace());
carparkInfo.setOwnCarparkNo(carparkInfoElement.getOwnCarparkNo());
carparkInfo.setOperationSource(carparkInfoElement.getOperationSource());
carparkInfo.setPassTimeWhenBig(carparkInfoElement.getPassTimeWhenBig());
carparkInfo.setIfIncludeCaculate(carparkInfoElement.getIfIncludeCaculate());
carparkInfo.setIsTestRunning(carparkInfoElement.getIsTestRunning());
carparkInfo.setIsClose(carparkInfoElement.getIsClose());
carparkInfo.setCriticalValue(carparkInfoElement.getCriticalValue());
carparkInfo.setIsAutoOpen(carparkInfoElement.getIsAutoOpen());
carparkInfo.setCloseType(carparkInfoElement.getCloseType());
carparkInfo.setLedMemberCriticalValue(carparkInfoElement.getLedMemberCriticalValue());
carparkInfo.setServiceId(carparkInfoElement.getServiceId());
carparkInfo.setAddTime(CommonUtils.getTimestamp());
carparkInfo.setUseMark(carparkInfoElement.getUseMark());
res = carparkInfoMapper.insert(carparkInfo);
}else {
throw new BizException("车场名称不能相同!");
}
}else if (useMark.equals(1)){
if (isCarparkInfoLegal(carparkInfoElement.getCarparkId(),carparkInfoElement.getCarparkName(),carparkInfoElement.getServiceId())){
CarparkInfo carparkInfo = carparkInfoMapper.selectByPrimaryKey(carparkInfoElement.getCarparkId());
if (!CommonUtils.isEmpty(carparkInfo)){
carparkInfo.setCarparkName(carparkInfoElement.getCarparkName());
carparkInfo.setTotalCarSpace(carparkInfoElement.getTotalCarSpace());
carparkInfo.setAvailableCarSpace(carparkInfoElement.getAvailableCarSpace());
carparkInfo.setOwnCarparkNo(carparkInfoElement.getOwnCarparkNo());
carparkInfo.setOperationSource(carparkInfoElement.getOperationSource());
carparkInfo.setPassTimeWhenBig(carparkInfoElement.getPassTimeWhenBig());
carparkInfo.setIfIncludeCaculate(carparkInfoElement.getIfIncludeCaculate());
carparkInfo.setIsTestRunning(carparkInfoElement.getIsTestRunning());
carparkInfo.setIsClose(carparkInfoElement.getIsClose());
carparkInfo.setCriticalValue(carparkInfoElement.getCriticalValue());
carparkInfo.setIsAutoOpen(carparkInfoElement.getIsAutoOpen());
carparkInfo.setCloseType(carparkInfoElement.getCloseType());
carparkInfo.setLedMemberCriticalValue(carparkInfoElement.getLedMemberCriticalValue());
carparkInfo.setServiceId(carparkInfoElement.getServiceId());
carparkInfo.setUpdateTime(CommonUtils.getTimestamp());
carparkInfo.setUseMark(carparkInfoElement.getUseMark());
res = carparkInfoMapper.updateByPrimaryKey(carparkInfo);
}else {
CarparkInfo carparkInfoAdd = new CarparkInfo();
if (isCarparkInfoLegal("",carparkInfoElement.getCarparkId(),carparkInfoElement.getServiceId())){
carparkInfoAdd.setCarparkId(carparkInfoElement.getCarparkId());
carparkInfoAdd.setCarparkName(carparkInfoElement.getCarparkName());
carparkInfoAdd.setTotalCarSpace(carparkInfoElement.getTotalCarSpace());
carparkInfoAdd.setAvailableCarSpace(carparkInfoElement.getAvailableCarSpace());
carparkInfoAdd.setOwnCarparkNo(carparkInfoElement.getOwnCarparkNo());
carparkInfoAdd.setOperationSource(carparkInfoElement.getOperationSource());
carparkInfoAdd.setPassTimeWhenBig(carparkInfoElement.getPassTimeWhenBig());
carparkInfoAdd.setIfIncludeCaculate(carparkInfoElement.getIfIncludeCaculate());
carparkInfoAdd.setIsTestRunning(carparkInfoElement.getIsTestRunning());
carparkInfoAdd.setIsClose(carparkInfoElement.getIsClose());
carparkInfoAdd.setCriticalValue(carparkInfoElement.getCriticalValue());
carparkInfoAdd.setIsAutoOpen(carparkInfoElement.getIsAutoOpen());
carparkInfoAdd.setCloseType(carparkInfoElement.getCloseType());
carparkInfoAdd.setLedMemberCriticalValue(carparkInfoElement.getLedMemberCriticalValue());
carparkInfoAdd.setServiceId(carparkInfoElement.getServiceId());
carparkInfoAdd.setAddTime(CommonUtils.getTimestamp());
carparkInfoAdd.setUseMark(carparkInfoElement.getUseMark());
res = carparkInfoMapper.insert(carparkInfoAdd);
}else {
throw new BizException("车场名称不能相同!");
}
}
}else {
throw new BizException("车场名称不能相同!");
}
}else {
throw new BizException("上传记录无效");
}
return res;
}
@Override
public int submitRoadInfoToCloud(RoadElement roadElement) {
int res = 0;
Integer useMark = roadEl