package com.docus.server.collect.mq.dept;

import com.docus.server.sys.common.pojo.dto.DeptDTO;
import com.docus.server.sys.service.IPowerDeptService;
import lombok.extern.slf4j.Slf4j;

import javax.annotation.Resource;

/**
 * 每家mq 都不一样，这部分无法预先写好写入，需要根据每家独立编写。
 */
@Slf4j
public abstract class AbstractDeptMqCollectService implements IMqDeptCollectService {

    @Resource
    private IPowerDeptService deptService;

    /**
     * 订阅队列（注册科室）
     *
     * @param message 科室信息
     */
    @Override
    public void addDept(String message) {
        log.info("注册科室 队列接收信息：{}", message);
        DeptDTO dept = this.parseAddDeptXml(message);
        deptService.saveOrUpdatePowerDept(dept);
    }


    /**
     * 订阅队列（变更科室）
     *
     * @param message 科室信息
     */
    @Override
    public void updateDept(String message) {
        log.info("变更科室 队列接收信息：{}", message);
        DeptDTO deptDto = this.parseUpdateDeptXml(message);
        deptService.saveOrUpdatePowerDept(deptDto);
    }

    protected abstract DeptDTO parseAddDeptXml(String message);

    protected abstract DeptDTO parseUpdateDeptXml(String message);


}
