feat: 初始化项目并完成基础功能开发

- 完成项目初始化
- 实现用户注册、登录功能
- 完成用户管理与权限管理模块
- 开发后端 Tracker 服务器项目管理接口
- 实现日志管理接口
Change-Id: Ia4bde1c9ff600352a7ff0caca0cc50b02cad1af7
diff --git a/ruoyi-admin/src/main/resources/mapper/system/TrackerTaskLogMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/TrackerTaskLogMapper.xml
new file mode 100644
index 0000000..117d057
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/system/TrackerTaskLogMapper.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.tracker.mapper.TrackerTaskLogMapper">
+    
+    <resultMap type="TrackerTaskLog" id="TrackerTaskLogResult">
+        <result property="logId"    column="log_id"    />
+        <result property="taskId"    column="task_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="action"    column="action"    />
+        <result property="description"    column="description"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectTrackerTaskLogVo">
+        select log_id, task_id, user_id, action, description, create_time from tracker_task_log
+    </sql>
+
+    <select id="selectTrackerTaskLogList" parameterType="TrackerTaskLog" resultMap="TrackerTaskLogResult">
+        <include refid="selectTrackerTaskLogVo"/>
+        <where>  
+            <if test="taskId != null "> and task_id = #{taskId}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="action != null  and action != ''"> and action = #{action}</if>
+            <if test="description != null  and description != ''"> and description = #{description}</if>
+        </where>
+    </select>
+    
+    <select id="selectTrackerTaskLogByLogId" parameterType="Long" resultMap="TrackerTaskLogResult">
+        <include refid="selectTrackerTaskLogVo"/>
+        where log_id = #{logId}
+    </select>
+
+    <insert id="insertTrackerTaskLog" parameterType="TrackerTaskLog" useGeneratedKeys="true" keyProperty="logId">
+        insert into tracker_task_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="taskId != null">task_id,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="action != null and action != ''">action,</if>
+            <if test="description != null">description,</if>
+            <if test="createTime != null">create_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="taskId != null">#{taskId},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="action != null and action != ''">#{action},</if>
+            <if test="description != null">#{description},</if>
+            <if test="createTime != null">#{createTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTrackerTaskLog" parameterType="TrackerTaskLog">
+        update tracker_task_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="taskId != null">task_id = #{taskId},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="action != null and action != ''">action = #{action},</if>
+            <if test="description != null">description = #{description},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+        </trim>
+        where log_id = #{logId}
+    </update>
+
+    <delete id="deleteTrackerTaskLogByLogId" parameterType="Long">
+        delete from tracker_task_log where log_id = #{logId}
+    </delete>
+
+    <delete id="deleteTrackerTaskLogByLogIds" parameterType="String">
+        delete from tracker_task_log where log_id in 
+        <foreach item="logId" collection="array" open="(" separator="," close=")">
+            #{logId}
+        </foreach>
+    </delete>
+</mapper>
\ No newline at end of file