package com.njcn.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.user.pojo.param.UserParam;
import com.njcn.user.pojo.po.UserSet;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hongawen
 * @since 2021-12-13
 */
public interface IUserSetService extends IService<UserSet> {

    /**
     * 功能描述:
     * 新增用户时，去用户配置表存储工作秘钥和SM4密码
     *
     * @param addUserParam 新增用户参数
     * @return com.njcn.user.pojo.po.UserSet
     * @author xy
     * @date 2021/12/30 16:03
     */
    UserSet addUserSet(UserParam.UserAddParam addUserParam);

    /**
     * 功能描述: 登陆后 修改用户密码
     *
     * @param id          用户id
     * @param newPassword 新密码
     * @return java.lang.String
     * @author xy
     * @date 2022/1/21 12:39
     */
    String updatePassword(String id,String newPassword, Boolean result);

    /**
     * 功能描述: 未登录 修改用户密码
     *
     * @param id          用户id
     * @param newPassword 新密码
     * @param name        用户名
     * @param ip          ip
     * @return java.lang.String
     * @author xy
     * @date 2022/1/21 12:39
     */
    String updateFirstPassword(String id, String newPassword, String name, String ip);

    /**
     * App用户忘记密码
     * @param id 用户id
     * @param newPassword 新密码
     * @param name 用户名
     * @param ip ip
     */
    String forgetPassword(String id, String newPassword, String name, String ip);


    /**
     * 功能描述:
     *
     * @param password 密码
     * @return java.lang.String
     * @author xy
     * @date 2022/1/19 16:58
     */
    String getDecryptPassword(String password);

    /**
     * 功能描述: 获取当前用户配置信息
     *
     * @param userId 用户id
     * @return com.njcn.user.pojo.po.UserSet
     * @author xy
     * @date 2022/1/19 17:03
     */
    UserSet getUserSetByUserId(String userId);

    /**
     * 功能描述: 生成app用户的信息
     */
    UserSet addAppUserSet();
}
