package com.rongwei.sfcommon.sys.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rongwe.scentity.domian.CheckItemsDutyuserDo;
import com.rongwe.scentity.vo.CheckItemsVo;
import com.rongwei.rwadmincommon.system.vo.SysUserVo;
import com.rongwei.rwcommon.utils.SecurityUtil;
import com.rongwei.rwcommon.utils.StringUtils;
import com.rongwei.sfcommon.sys.dao.CheckItemsDutyuserDao;
import com.rongwei.sfcommon.sys.service.CheckItemsDutyuserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service("checkItemsDutyuserService")
public class CheckItemsDutyuserServiceImpl extends ServiceImpl<CheckItemsDutyuserDao, CheckItemsDutyuserDo> implements CheckItemsDutyuserService {

    @Autowired
    private CheckItemsDutyuserDao checkItemsDutyuserDao;

    @Override
    public List<CheckItemsVo> getCheckItemsByUserId(String userId) {
        return checkItemsDutyuserDao.getCheckItemsByUserId(userId);
    }

    @Override
    public void unbindCheckItemsByUseridAndCheckItemsIds(String userid, String checkItemsIds) {
        if (StringUtils.isNotEmpty(userid) && StringUtils.isNotEmpty(checkItemsIds)) {
            String[] checkItemsIdArray = checkItemsIds.split(",");
            for (String checkItemsId : checkItemsIdArray) {
                Map<String, Object> reMap = new HashMap<>();
                reMap.put("CHECKITEMID", checkItemsId);
                reMap.put("DUTYUSERID", userid);
                this.removeByMap(reMap);
            }
        }
    }

    @Override
    public List<CheckItemsDutyuserDo> bindCheckItemsByUserAndCheckItemsIds(SysUserVo sysUserVo, String checkItemsIds) {
        List<CheckItemsDutyuserDo> checkItemsDutyuserDos = new ArrayList<>();
        String[] cids = checkItemsIds.split(",");
        if (cids != null && cids.length > 0) {
            for (String cid : cids) {
                CheckItemsDutyuserDo checkItemsDutyuserDo = new CheckItemsDutyuserDo();
                checkItemsDutyuserDo.setId(SecurityUtil.getUUID());
                checkItemsDutyuserDo.setDutyuserid(sysUserVo.getId());
                checkItemsDutyuserDo.setDutyusername(sysUserVo.getName());
                checkItemsDutyuserDo.setDutyuserattribute(sysUserVo.getUserattribute());
                checkItemsDutyuserDo.setCheckitemid(cid);
                checkItemsDutyuserDo.setDutyuserattribute(sysUserVo.getUserattribute());
                checkItemsDutyuserDos.add(checkItemsDutyuserDo);
            }
            this.saveBatch(checkItemsDutyuserDos);
        }
        return checkItemsDutyuserDos;
    }
}
