package com.zjrs.ggfw.rlzysc.blo.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang.StringUtils;
import org.mohrss.leaf.core.framework.domain.blo.impl.BLOImpl;
import org.mohrss.leaf.core.framework.persistens.PageResult;
import org.mohrss.leaf.core.framework.persistens.PageUtil;
import org.mohrss.leaf.core.framework.util.CurrentUser;
import com.zjrs.ggfw.portal.blo.UserBLO;
import com.zjrs.ggfw.portal.po.VRsGgfwUser;
import com.zjrs.ggfw.rlzysc.blo.ZwxxBLO;
import com.zjrs.ggfw.rlzysc.dto.ZwxxListDTO;
import com.zjrs.ggfw.rlzysc.dto.ZwxxQueryDTO;
import com.zjrs.ggfw.rlzysc.entity.RsRlzyZwxxfwLogMapper;
import com.zjrs.ggfw.rlzysc.entity.ZwxxMapper;
import com.zjrs.ggfw.rlzysc.po.RsRlzyZwxxPO;
import com.zjrs.ggfw.rlzysc.po.RsRlzyZwxxfwLogPO;
import org.springframework.stereotype.Service;

import jakarta.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

@Service
public class ZwxxBLOImpl extends BLOImpl implements ZwxxBLO {

    @Resource
    private ZwxxMapper zwxxMapper;

    @Resource
    private RsRlzyZwxxfwLogMapper rsRlzyZwxxfwLogMapper;

    @Resource
    UserBLO userBLO;

    @Override
    public RsRlzyZwxxPO getZyxxById(ZwxxQueryDTO dto) {
        RsRlzyZwxxPO result = this.zwxxMapper.getZyxxById(dto);
        setZwxxLog(dto);
        return result;
    }

    @Override
    public PageResult getZyxxList(ZwxxQueryDTO dto, int page, int rows) {
        Page<ZwxxListDTO> page1 = new Page<>(page, rows);
        Page<ZwxxListDTO> pageResult = null;
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.DAY_OF_MONTH,1);
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
        String currentDate = sdf2.format(calendar.getTime()); //当前日期

        //先获取用户userid，如果没有获取到，则是没有登录，显示所有已发布职业
        //如果获取到，则查询是单位还是个人，单位的话，与没有登录是同等效果，个人的话，要额外处理，不能查询到个人屏蔽企业的职位

        CurrentUser currentUser = getCurrentUser();
        String userid = currentUser.getUsername() == null ? "" : currentUser.getUsername().trim();
        boolean gr = false;
        if (StringUtils.isNotBlank(userid)){
            VRsGgfwUser vRsGgfwUser = userBLO.getVRsGgfwUser(userid);
            String fwdx = vRsGgfwUser.getFwdx();//获取服务对象
            if ("1".equals(fwdx)){
                //个人用户
                gr = true;
            }
        }

        if (StringUtils.isNotBlank(dto.getRq())){
              if(dto.getRq().equals("1")){
                  calendar.add(Calendar.DATE, -3);
              }
              if (dto.getRq().equals("2")){
                  calendar.add(Calendar.DATE, -7);
              }
              if(dto.getRq().equals("3")){
                  calendar.add(Calendar.DATE, -15);
              }
              if(dto.getRq().equals("4")){
                  calendar.add(Calendar.DATE, -30);
              }
              if (dto.getRq().equals("5")){
                  calendar.add(Calendar.DATE, -30);
              }
        }
        PageResult result = PageUtil.PageResult(pageResult);
        return result;
    }

    //获取最近浏览职位信息
    @Override
    public List<ZwxxListDTO> getRecentZyxxList() {
        return null;
    }

    @Override
    public List<RsRlzyZwxxPO> getXszw(String zwlx,String zwxxlsh) {
        List<RsRlzyZwxxPO> xszw = this.zwxxMapper.getXszw(zwlx,zwxxlsh);
        return xszw;
    }

    public void setZwxxLog(ZwxxQueryDTO dto) {
        CurrentUser currentUser = getCurrentUser();
        String userid = currentUser.getUsername() == null ? "" : currentUser.getUsername().trim();
        String tsrylx = "03";
        Date t = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        RsRlzyZwxxfwLogPO po = new RsRlzyZwxxfwLogPO();
        po.setRsrlzyzwxxlsh(dto.getRsrlzyzwxxlsh());
        if(StringUtils.isBlank(userid))
            po.setRsyhlsh("guest");
        if (StringUtils.isNotBlank(dto.getLyqd()))
         po.setTslyqd(dto.getLyqd());//来源渠道：公共服务
        po.setTscjsj(df.format(t));
        po.setTsrylx(tsrylx);
        rsRlzyZwxxfwLogMapper.insert(po);
    }
}



