package com.sptg.estate.biz.service.impl;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.sptg.common.core.beans.ResultBean;
import com.sptg.common.core.beans.ResultEnum;
import com.sptg.estate.api.dto.PratiqueDto;
import com.sptg.estate.api.entity.Pratique;
import com.sptg.estate.biz.mapper.PratiqueMapper;
import com.sptg.estate.biz.service.PratiqueServiceInterface;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * Created By lidexi in 2021/1/8
 * 防疫通行 服务实现
 **/
@Service
public class PratiqueServiceImpl extends ServiceImpl<PratiqueMapper, Pratique> implements PratiqueServiceInterface {
    @Override
    public ResultBean<Page<Pratique>> showPratiqueList(PratiqueDto pratiqueDto) {
        Wrapper<Pratique> wrapper = new EntityWrapper<>();
//        wrapper.eq("i_status",0);
        if(pratiqueDto.getMemberId() != null){
            wrapper.eq("l_member_id",pratiqueDto.getMemberId());
        }
        if(pratiqueDto.getCreateDate() != null){
            wrapper.ge("t_create_date",pratiqueDto.getCreateDate());
        }
        if(pratiqueDto.getResidentialId() != null){
            wrapper.eq("l_residential_id",pratiqueDto.getResidentialId());
        }
        if(pratiqueDto.getResidentialName() != null){
            wrapper.eq("s_residential_name",pratiqueDto.getResidentialName());
        }
        wrapper.orderBy("t_create_date",false);
        return new ResultBean(ResultEnum.SUCCESS,this.selectPage(pratiqueDto.getPage(),wrapper));
    }

    @Override
    public ResultBean<Pratique> addPratique(PratiqueDto pratiqueDto) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            pratiqueDto.setCreateDate(df.parse(df.format(new Date())));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        boolean insert = this.insert(pratiqueDto);
        if(insert){
            return new ResultBean<>(ResultEnum.SUCCESS,pratiqueDto);
        }else {
            return new ResultBean<>(ResultEnum.ERROR);
        }

    }

    @Override
    public Pratique findPratiqueById(Long id) {
        return this.selectById(id);
    }

    @Override
    public ResultBean<Boolean> updatePratique(PratiqueDto pratiqueDto) {
        return new ResultBean<>(ResultEnum.SUCCESS,this.updateById(pratiqueDto));
    }

    @Override
    public ResultBean<Boolean> deletePratique(PratiqueDto pratiqueDto) {
        return new ResultBean<>(ResultEnum.SUCCESS,this.deleteById(pratiqueDto.getId()));
    }

    @Override
    public ResultBean<Boolean> deletePratiqueList(PratiqueDto pratiqueDto) throws Exception {
        return null;
    }


    @Override
    public List<Pratique> getListByCondition(PratiqueDto pratiqueDto) {
        return null;
    }
}
