diff --git a/src/main/java/com/example/myproject/controller/PromotionController.java b/src/main/java/com/example/myproject/controller/PromotionController.java
index 145692c..a102cdd 100644
--- a/src/main/java/com/example/myproject/controller/PromotionController.java
+++ b/src/main/java/com/example/myproject/controller/PromotionController.java
@@ -122,12 +122,12 @@
 //            if (!StpUtil.hasRole("admin")) {
 //                return Result.error("没有权限删除促销活动");
 //            }
-            Long userId = StpUtil.getLoginIdAsLong();
-            // 查询用户
-            var userOpt = userRepository.findById(userId);
-            if (userOpt.isEmpty() || !"admin".equals(userOpt.get().getRole())) {
-                return Result.error("没有权限删除促销活动");
-            }
+//            Long userId = StpUtil.getLoginIdAsLong();
+//            // 查询用户
+//            var userOpt = userRepository.findById(userId);
+//            if (userOpt.isEmpty() || !"admin".equals(userOpt.get().getRole())) {
+//                return Result.error("没有权限删除促销活动");
+//            }
 
             promotionService.deletePromotion(promotionId);
             return Result.ok();
diff --git a/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java b/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java
index 2aae334..5d002b2 100644
--- a/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java
+++ b/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java
@@ -7,7 +7,8 @@
 @Mapper
 public interface AuditRecordMapper {
 
-    @Insert("INSERT INTO audit_record (torrent_id, upload, download, create_time) " +
+    @Insert("REPLACE INTO audit_record (torrent_id, upload, download, create_time) " +
             "VALUES (#{torrentId}, #{upload}, #{download}, #{createTime})")
-    void insert(AuditRecord record);
+    void upsert(AuditRecord record);
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/example/myproject/service/AuditService.java b/src/main/java/com/example/myproject/service/AuditService.java
index 22d7124..16bb42f 100644
--- a/src/main/java/com/example/myproject/service/AuditService.java
+++ b/src/main/java/com/example/myproject/service/AuditService.java
@@ -26,7 +26,7 @@
         record.setDownload(download);
         record.setCreateTime(LocalDateTime.now());
 
-        auditRecordMapper.insert(record);
+        auditRecordMapper.upsert(record);
     }
     public void addSuspiciousUser(Long userId, String reason, double speedKBs) {
         SuspiciousUser user = new SuspiciousUser();
diff --git a/src/main/resources/mapper/PromotionMapper.xml b/src/main/resources/mapper/PromotionMapper.xml
index 72ffd95..9808333 100644
--- a/src/main/resources/mapper/PromotionMapper.xml
+++ b/src/main/resources/mapper/PromotionMapper.xml
@@ -10,5 +10,13 @@
         #{name}, #{description}, #{startTime}, #{endTime}, #{discountPercentage}, #{applicableTorrentIds}
         )
     </insert>
+    <update id="updateById" parameterType="com.example.myproject.entity.Promotion">
+        update promotion
+        set is_deleted = #{isDeleted},
+        update_time = #{updateTime}
+        where id = #{id}
+    </update>
+
+
 
 </mapper>
