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

import com.docus.server.sys.common.pojo.dto.UserDTO;
import com.docus.server.sys.service.IPowerUserService;
import lombok.extern.slf4j.Slf4j;

import javax.annotation.Resource;

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

    @Resource
    private IPowerUserService userService;

    /**
     * 订阅队列（注册人员）
     *
     * @param message 人员信息
     */
    @Override
    public void addUser(String message) {
        log.info("人员注册 队列接收信息：{}", message);
        UserDTO userDto = this.parseAddUserXml(message);
        userService.saveOrUpdatePowerUser(userDto);
    }

    /**
     * 订阅队列（变更人员）
     *
     * @param message 人员信息
     */
    @Override
    public void updateUser(String message) {
        log.info("人员变更 队列接收信息：{}", message);
        UserDTO userDto = this.parseUpdateUserXml(message);
        userService.saveOrUpdatePowerUser(userDto);
    }

    protected abstract UserDTO parseAddUserXml(String message);

    protected abstract UserDTO parseUpdateUserXml(String message);


}
