From be7d2d760784db78cd71720e6cf1008af0ed5cd9 Mon Sep 17 00:00:00 2001
From: zhangluping <1801075613@qq.com>
Date: Tue, 17 Dec 2024 14:30:09 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../example/demo/controller/RateController.java | 41 ++--------------------
.../java/com/example/demo/domain/entity/Rate.java | 8 ++++-
.../java/com/example/demo/mapper/RateMapper.java | 16 ++++-----
.../example/demo/serviceImpl/RateServiceImpl.java | 29 ++++++++++++---
.../java/com/example/demo/sevice/RateService.java | 3 +-
5 files changed, 44 insertions(+), 53 deletions(-)
diff --git a/src/main/java/com/example/demo/controller/RateController.java b/src/main/java/com/example/demo/controller/RateController.java
index 68bfc42..ae9f408 100644
--- a/src/main/java/com/example/demo/controller/RateController.java
+++ b/src/main/java/com/example/demo/controller/RateController.java
@@ -34,59 +34,22 @@ public class RateController {
}
@PostMapping("/update") // 将 PUT 改为 POST
public Result update(@RequestBody Rate rate) throws Exception {
-// try {
rateService.edit(rate);
return Result.success();
-// } catch (Exception e) {
-// log.warn(Arrays.toString(e.getStackTrace()));
-// return Result.error(e.getMessage());
-// }
}
-// @PutMapping("/update")
-// public Result update(@RequestBody Rate rate) {
-// try {
-// rateService.edit(rate);
-// return Result.success();
-// } catch (Exception e) {
-// log.warn(Arrays.toString(e.getStackTrace()));
-// return Result.error(e.getMessage());
-// }
-// }
+
@PostMapping("/delete/{rateId}") // 将 DELETE 改为 POST
public Result delete(@PathVariable("rateId") Integer rateId) {
try {
- rateService.delete(rateId);
+ rateService.softDelete(rateId);
return Result.success();
} catch (Exception e) {
log.warn(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
-// @DeleteMapping("/{rateId}")
-// public Result delete(@PathVariable("rateId") Integer rateId) {
-// try {
-// rateService.delete(rateId);
-// return Result.success();
-// } catch (Exception e) {
-// log.warn(Arrays.toString(e.getStackTrace()));
-// return Result.error(e.getMessage());
-// }
-// }
- // @GetMapping("/{rateId}")
-// public Result get(@PathVariable Integer rateId) {
-// return Result.success(rateService.getById(rateId));
-// }
-//
-// @GetMapping
-// public Result search(Integer pageNum, Integer pageSize,Rate rate) {
-// if(ObjectUtils.isEmpty(pageNum)){
-// return Result.success(rateService.search(rate));
-// }else{
-// return Result.success(rateService.searchForPage(pageNum,pageSize,rate));
-// }
-// }
@PostMapping("/search") // 改为 POST 请求
public Result search(@RequestBody Page page) {
Integer pageNum = page.getPageNum();
diff --git a/src/main/java/com/example/demo/domain/entity/Rate.java b/src/main/java/com/example/demo/domain/entity/Rate.java
index 54e013a..a1af576 100644
--- a/src/main/java/com/example/demo/domain/entity/Rate.java
+++ b/src/main/java/com/example/demo/domain/entity/Rate.java
@@ -11,17 +11,23 @@ import java.util.Date;
@NoArgsConstructor
public class Rate {
private Integer rateId;
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private String currency;
private String exchangeRate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date updateTime;
private Integer adminId;
private String adminName;
- private String updateId;
+ private Integer flag;
private String token;
}
diff --git a/src/main/java/com/example/demo/mapper/RateMapper.java b/src/main/java/com/example/demo/mapper/RateMapper.java
index 11671a6..5536fe4 100644
--- a/src/main/java/com/example/demo/mapper/RateMapper.java
+++ b/src/main/java/com/example/demo/mapper/RateMapper.java
@@ -13,16 +13,17 @@ public interface RateMapper {
@Insert({
"insert into rate",
- "(start_time,end_time,currency,exchange_rate,create_time,update_time,admin_id)",
+ "(start_time,end_time,currency,exchange_rate,create_time,update_time,admin_id,flag)",
"values",
- "(#{startTime},#{endTime},#{currency},#{exchangeRate},now(),#{updateTime},#{adminId})"
+ "(#{startTime},#{endTime},#{currency},#{exchangeRate},now(),#{updateTime},#{adminId},1)"
})
// 获取自增主键
@Options(useGeneratedKeys = true,keyColumn = "rate_id",keyProperty = "rateId")
int insert(Rate rate);
- @Delete({
- "delete from rate where rate_id=#{rateId}"
+ //软删除
+ @Update({
+ "update rate set flag = 0 where rate_id=#{rateId}"
})
int deleteById(Integer rateId);
@@ -35,7 +36,7 @@ public interface RateMapper {
"currency=#{currency},",
"exchange_rate=#{exchangeRate},",
"update_time=#{updateTime},",
- "update_id=#{updateId},",
+ "admin_id=#{adminId},",
"",
"where rate_id = #{rateId}",
""
@@ -43,7 +44,7 @@ public interface RateMapper {
int update(Rate rate);
@Select({
- "select rate_id from rate where rate_id=#{rateId}"
+ "select * from rate where rate_id=#{rateId}"
})
Rate selectById(Integer rateId);
@@ -53,7 +54,7 @@ public interface RateMapper {
"FROM rate r",
"LEFT JOIN admin a ON r.admin_id = a.admin_id",
"LEFT JOIN admin u ON r.admin_id = u.admin_id",
- "",
+ "WHERE r.flag =1 ",
"AND r.rate_id = #{rateId}",
"AND r.start_time >= #{startTime}",
"AND r.end_time <= #{endTime}",
@@ -62,7 +63,6 @@ public interface RateMapper {
"AND r.update_time LIKE CONCAT('%', #{updateTime}, '%')",
"AND r.admin_id = #{adminId}",
"AND r.update_id = #{updateId}",
- "",
""
})
diff --git a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
index abb58dc..460f0d4 100644
--- a/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
+++ b/src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
@@ -26,17 +26,36 @@ public class RateServiceImpl implements RateService {
return rateMapper.insert(rate);
}
+ //自动软删除数据加更新数据
@Transactional
@Override
-
@CacheEvict(value = "rate",allEntries = true)
public int edit(Rate rate) {
- return rateMapper.update(rate);
+ //获取旧的明细记录
+ Rate oldRate = rateMapper.selectById(rate.getRateId());
+
+ if (oldRate == null || oldRate.getFlag() ==0 ) {
+ throw new IllegalArgumentException("该记录不存在或已被隐藏!");
+ }
+ rateMapper.deleteById(oldRate.getRateId());
+
+ //如果字段被修改,显示修改后的内容,没有被修改的字段保持原来的值
+ if(rate.getStartTime() ==null) rate.setStartTime(oldRate.getStartTime());
+ if(rate.getEndTime() ==null) rate.setEndTime(oldRate.getEndTime());
+ if(rate.getCurrency() ==null) rate.setCurrency(oldRate.getCurrency());
+ if(rate.getAdminId() ==null) rate.setAdminId(oldRate.getAdminId());
+ if(rate.getExchangeRate() ==null) rate.setExchangeRate(oldRate.getExchangeRate());
+
+ //插入新纪录
+ rate.setRateId(null);
+
+ return rateMapper.insert(rate);
}
-// @CachePut(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rate.hashCode() ")
+
+ //软删除
@CacheEvict(value = "rate",allEntries = true)
@Override
- public void delete(Integer rateId) throws Exception {
+ public void softDelete(Integer rateId) throws Exception {
int result = rateMapper.deleteById(rateId);
if(result == 0){
throw new Exception("未找到对应的记录,删除失败");
@@ -47,11 +66,13 @@ public class RateServiceImpl implements RateService {
public Rate getById(Integer rateId) {
return rateMapper.selectById(rateId);
}
+
@Cacheable(key="#root.method.name")
@Override
public List search(Rate rate) {
return rateMapper.select(rate);
}
+
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #rate.hashCode() ")
@Override
public PageInfo searchForPage(Integer pageNum, Integer pageSize, Rate rate) {
diff --git a/src/main/java/com/example/demo/sevice/RateService.java b/src/main/java/com/example/demo/sevice/RateService.java
index 88e711b..cefe5b3 100644
--- a/src/main/java/com/example/demo/sevice/RateService.java
+++ b/src/main/java/com/example/demo/sevice/RateService.java
@@ -9,7 +9,8 @@ import java.util.List;
public interface RateService {
int add(Rate rate) throws Exception;
int edit(Rate rate) throws Exception;
- void delete(Integer rateId) throws Exception;
+
+ void softDelete(Integer rateId) throws Exception;
Rate getById(Integer rateId);
List search(Rate rate);
PageInfo searchForPage(Integer pageNum, Integer pageSize, Rate rate);