package pwc.taxtech.atms.dao; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.session.RowBounds; import pwc.taxtech.atms.MyMapper; import pwc.taxtech.atms.dpo.RoleInfo; import pwc.taxtech.atms.dpo.UserDto; import pwc.taxtech.atms.dpo.UserOrgRoleDto; import pwc.taxtech.atms.entity.User; import pwc.taxtech.atms.entity.UserExample; import java.util.List; @Mapper public interface UserMapper extends MyMapper { /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ long countByExample(UserExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int deleteByExample(UserExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int deleteByPrimaryKey(String id); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int insert(User record); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int insertSelective(User record); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ List<User> selectByExampleWithRowbounds(UserExample example, RowBounds rowBounds); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ List<User> selectByExample(UserExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ User selectByPrimaryKey(String id); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int updateByExample(@Param("record") User record, @Param("example") UserExample example); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int updateByPrimaryKeySelective(User record); /** * This method was generated by MyBatis Generator. * This method corresponds to the database table TAX_ADMIN.USER * * @mbg.generated */ int updateByPrimaryKey(User record); /** * select one user record by user name */ User selectByUserName(String userName); /** * select one user record by user name with ingore case */ User selectByUserNameIgnoreCase(String userName); /** * select one user record by user name with ingore case and different user id */ User selectUserWithSameUserName(UserDto userDto); /** * select one user record by email with ingore case and different user id */ User selectUserWithSameEmail(UserDto userDto); /** * select one user record by email with ingore case */ User selectByEmailIgnoreCase(String email); /** * select one user record with its related organization information by user id */ @Select("select u.USER_NAME as UserName, o.id as Organization_ID, o.Name as OrganizationName, " + "u.EMAIL as Email, u.STATUS as Status, u.ATTEMPT_TIMES as AttemptTimes, u.CREATE_TIME as CreateTime, " + "u.EXPIRATION_DATE as ExpirationDate, u.IS_ADMIN as IsAdmin, u.ID as id, u.LOCKED_TIME as LockedTime, " + "u.LOGIN_TYPE as LoginType, u.PASSWORD as Password, u.PASSWORD_UPDATE_TIME as Password_UpdateTime, u.UPDATE_TIME as UpdateTime from \"USER\" " + "left join ORGANIZATION o on u.ORGANIZATIONID = o.id " + "where u.ID = #{userId}") List<UserDto> selectUserWithOrgInfoById(@Param(value = "userId") String userId); @Select("select R.ID AS id, R.NAME AS name FROM USER_ROLE U " + "JOIN ROLE R ON U.ROLE_ID = R.ID " + "WHERE U.USER_ID = #{userId}") List<RoleInfo> selectUserRoleInfoById(@Param(value = "userId") String userId); @Select("select udv.ROLE_ID as roleID, r.NAME as roleName, udv.USER_DIMENSION_VALUE_ID as id " + "FROM USER_DIMENSION_VALUE_ROLE UDV " + "JOIN ROLE R ON UDV.ROLE_ID = R.ID") List<UserOrgRoleDto> selectUserDimensionValueRole(); @Select("select q.ROLE_ID as roleID, r.NAME as roleName, q.USER_ORGANIZATION_ID as id " + "from USER_ORGANIZATION_ROLE q " + "join ROLE r on q.ROLE_ID = r.id") List<UserOrgRoleDto> selectUserOrganizationRole(); }