diff --git a/src/main/java/com/example/demo/controller/RefundController.java b/src/main/java/com/example/demo/controller/RefundController.java index 1ef48db..7f79d41 100644 --- a/src/main/java/com/example/demo/controller/RefundController.java +++ b/src/main/java/com/example/demo/controller/RefundController.java @@ -26,8 +26,11 @@ public class RefundController { if (refundService.existsByContactId(detail.getContactId())) { return Result.error("该订单已退款: " + detail.getContactId()); } + refundService.add(detail); refundService.addAudit(detail); + + refundService.update(detail.getContactId()); return Result.success(); // } catch (Exception e) { // log.warn(Arrays.toString(e.getStackTrace())); @@ -63,6 +66,19 @@ public class RefundController { } } + @PostMapping("/searchByOrderCode") + public Result searchByOrderCode(@RequestParam String orderCode) { + Detail detail = refundService.selectByOrderCode(orderCode); + // 检查返回的结果是否为空或无效 + if (detail == null || ObjectUtils.isEmpty(detail.getOrderCode())) { + return Result.error("该订单不存在:" + orderCode); + } + + // 成功时返回包含订单详情的数据 + return Result.success(detail); + + } + @PostMapping("/search") public Result search(@RequestBody Page page) { Integer pageNum = page.getPageNum(); diff --git a/src/main/java/com/example/demo/mapper/RefundMapper.java b/src/main/java/com/example/demo/mapper/RefundMapper.java index 4ae6e23..dade36a 100644 --- a/src/main/java/com/example/demo/mapper/RefundMapper.java +++ b/src/main/java/com/example/demo/mapper/RefundMapper.java @@ -11,9 +11,9 @@ public interface RefundMapper { @Insert({ "insert into detail", - "(jwcode,order_code,refund_type,refund_goods,contact_id,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type)", + "(jwcode,refund_type,refund_goods,contact_id,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type,order_code)", "values", - "(#{jwcode},#{orderCode},#{refundType},#{refundGoods},#{contactId},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now(),'退款')" + "(#{jwcode},#{refundType},#{refundGoods},#{contactId},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now(),'退款',#{orderCode})" }) @Options(useGeneratedKeys = true, keyColumn = "detail_id", keyProperty = "detailId") int insert(Detail detail); @@ -30,9 +30,29 @@ public interface RefundMapper { @Select("SELECT EXISTS (SELECT 1 FROM detail WHERE contact_id = #{contactId})") boolean existsByContactId(@Param("contactId") Integer contactId); + //根据订单号查询 +// @Select("select d.* " + +// " p.name AS productName" + +// "FROM detail where order_code = #{orderCode} and detail_flag = 1" + +// "LEFT JOIN product p ON d.product_id = p.id" ) +// Detail selectByOrderCode(@Param("orderCode") String orderCode); + + + //根据订单号查询 + @Select("SELECT d.*, p.name AS productName " + + "FROM detail d " + + "LEFT JOIN product p ON d.product_id = p.product_id " + + "WHERE d.order_code = #{orderCode} AND d.detail_flag = 1 AND d.refund_flag = 1") + Detail selectByOrderCode(@Param("orderCode") String orderCode); + + //软删除 @Update("update detail set detail_flag = 0 where detail_id = #{detailId}") int update(@Param("detailId") Integer detailId); + //是否退款 + @Update("update detail set refund_flag = 0 where detail_id = #{contactId}") + int updateOrderCode(Integer contactId); + @Select("select * from detail where detail_id = #{detailId} and detail_flag = 1") Detail selectByDetailId(Integer detailId); diff --git a/src/main/java/com/example/demo/security/TokenFilter.java b/src/main/java/com/example/demo/security/TokenFilter.java index 99b9d7d..e86db73 100644 --- a/src/main/java/com/example/demo/security/TokenFilter.java +++ b/src/main/java/com/example/demo/security/TokenFilter.java @@ -88,7 +88,7 @@ public class TokenFilter extends OncePerRequestFilter { System.out.println(isUploadOrRechargeRequest); // 如果是上传请求或添加新的充值请求,则跳过令牌检查 if (isUploadOrRechargeRequest) { - filterChain.doFilter(requestWrapper, response); + filterChain.doFilter(request, response); System.out.println(response+"000000000000"); return; } diff --git a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java index 3a672d4..982ebdc 100644 --- a/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java @@ -21,14 +21,15 @@ import java.util.UUID; @RequiredArgsConstructor @Transactional @Service -@CacheConfig(cacheNames = "refund") +//@CacheConfig(cacheNames = "refund") public class RefundServiceImpl implements RefundService { private final RefundMapper refundMapper; @Override public int add(Detail detail) { - String uuid = UUID.randomUUID().toString().replace("-", ""); // 去掉UUID中的'-' + // 生成UUID作为订单编号 + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); // 去掉UUID中的'-' detail.setOrderCode(uuid); return refundMapper.insert(detail); } @@ -38,6 +39,7 @@ public class RefundServiceImpl implements RefundService { public int addAudit(Detail detail) { return refundMapper.insertAudit(detail); } + //自动软删除数据加更新数据 @Override public void edit(Detail newDetail) { @@ -68,16 +70,27 @@ public class RefundServiceImpl implements RefundService { } @Override + public int update(Integer contactId) { + return refundMapper.updateOrderCode(contactId); + } + + @Override public boolean existsByContactId(Integer contactId) { return refundMapper.existsByContactId(contactId); } @CacheEvict(value = "refund",allEntries = true) + @Override public int softDelete(Integer detailId) { return refundMapper.update(detailId); } @Override + public Detail selectByOrderCode(String orderCode) { + return refundMapper.selectByOrderCode(orderCode); + } + + @Override public Detail selectByDetailId(Integer detailId) { return refundMapper.selectByDetailId(detailId); } diff --git a/src/main/java/com/example/demo/sevice/RefundService.java b/src/main/java/com/example/demo/sevice/RefundService.java index db2876a..ad59618 100644 --- a/src/main/java/com/example/demo/sevice/RefundService.java +++ b/src/main/java/com/example/demo/sevice/RefundService.java @@ -12,8 +12,10 @@ public interface RefundService { int add(Detail detail) ; int addAudit(Detail detail); void edit(Detail newDetail) ; + int update(Integer contactId) ; boolean existsByContactId(Integer contactId); int softDelete(Integer detailId) ; + Detail selectByOrderCode(String orderCode) ; Detail selectByDetailId(Integer detailId); List search(Detail detail); PageInfo searchForPage(Integer pageNum, Integer pageSize, Detail detail);