Browse Source

后端整合模块

detached
huangqizhen 5 months ago
parent
commit
3939b5b650
  1. 16
      src/main/java/com/example/demo/controller/AuditController.java
  2. 12
      src/main/java/com/example/demo/controller/RefundController.java
  3. 2
      src/main/java/com/example/demo/domain/entity/Admin.java
  4. 3
      src/main/java/com/example/demo/domain/vo/ConsumeDetail.java
  5. 2
      src/main/java/com/example/demo/mapper/AuditMapper.java
  6. 2
      src/main/java/com/example/demo/mapper/RefundMapper.java
  7. 2
      src/main/java/com/example/demo/mapper/UserMapper.java
  8. 8
      src/main/java/com/example/demo/security/TokenFilter.java
  9. 8
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  10. 3
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  11. 17
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  12. 4
      src/main/resources/application.yml

16
src/main/java/com/example/demo/controller/AuditController.java

@ -11,6 +11,7 @@ import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.AuditService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
@ -25,7 +26,9 @@ import java.util.Arrays;
@Transactional
@CrossOrigin
public class AuditController {
@Autowired
private UserMapper userMapper;
@Autowired
private DetailMapper detailMapper;
private final AuditService auditService;
@PostMapping("/add")
@ -41,11 +44,6 @@ public class AuditController {
@PostMapping("/edit")
public Result edit(@RequestBody Audit audit){
//先执行auditService.edit(audit);
//然后创建一个类去接收这个audit如果status=1
//根据退款ID找到detail表中的记录获取到他的三种金币
//把金币加到user表中对应的金币中
auditService.edit(audit);
if(audit.getStatus() == 1 && audit.getRefundId()!=null){
Detail detail = detailMapper.selectByRefundId(audit.getRefundId());
@ -60,14 +58,6 @@ public class AuditController {
userMapper.update(user);
}
return Result.success();
//
// try {
// auditService.edit(audit);
// return Result.success();
// }catch (Exception e){
// log.warn(Arrays.toString(e.getStackTrace()));
// return Result.error(e.getMessage());
// }
}
@PostMapping
public Result search(@RequestBody Page page){

12
src/main/java/com/example/demo/controller/RefundController.java

@ -7,6 +7,7 @@ import com.example.demo.domain.vo.Result;
import com.example.demo.sevice.RefundService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
@ -15,6 +16,7 @@ import java.util.Arrays;
@RestController
@RequestMapping("/refund")
@RequiredArgsConstructor
@Transactional
@Slf4j
@CrossOrigin
public class RefundController {
@ -89,14 +91,10 @@ public class RefundController {
@PostMapping("/search")
public Result search(@RequestBody Page page) {
Integer pageNum = page.getPageNum();
Integer pageSize = page.getPageSize();
Detail detail = page.getDetail();
if (ObjectUtils.isEmpty(detail)) {
return Result.success(refundService.search(detail));
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.success(refundService.search(page.getDetail()));
}else{
return Result.success(refundService.searchForPage(pageNum, pageSize,detail));
return Result.success(refundService.searchForPage(page.getPageNum(), page.getPageSize(),page.getDetail()));
}
}
}

2
src/main/java/com/example/demo/domain/entity/Admin.java

@ -22,7 +22,7 @@ public class Admin implements UserDetails, Serializable {
private Integer permission;
private String area;
private String adminFlag;
private String token;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private String jwcode;

3
src/main/java/com/example/demo/domain/vo/ConsumeDetail.java

@ -9,7 +9,7 @@ import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class ConsumeDetail {
public class ConsumeDetail {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Integer detailId;
@ -40,5 +40,6 @@ public class ConsumeDetail {
private Date endDate;
private Integer auditId;
private String token;
private Integer refundId;
}

2
src/main/java/com/example/demo/mapper/AuditMapper.java

@ -51,7 +51,7 @@ public interface AuditMapper {
List<Audit> select(Audit Audit);
@Select({
"<script>",
"select detail.*,audit.status,audit.reson,audit.audit_id,admin.*,user.name as user from detail",
"select detail.*,audit.status,audit.reson,audit.audit_id,admin.*,audit.refund_id,user.name as user from detail",
"inner join audit on detail.detail_id = audit.refund_id",
"inner join `admin` on detail.admin_id = `admin`.admin_id",
"inner join `user` on detail.jwcode = user.jwcode",

2
src/main/java/com/example/demo/mapper/RefundMapper.java

@ -87,7 +87,7 @@ public interface RefundMapper {
"<if test='adminArea != null'>AND a.area LIKE CONCAT('%', #{adminArea}, '%')</if>", // admin表字段过滤
"<if test='adminName != null'>AND a.name LIKE CONCAT('%', #{adminName}, '%')</if>", // admin表字段过滤
"<if test='userName != null'>AND u.name LIKE CONCAT('%', #{userName}, '%')</if>", // user表字段过滤
"<if test='auditStatus != null'>AND au.status = #{auditStatus}</if>", // audit 表字段过滤
"<if test='auditStatus != null and auditStatus.length>0'>AND au.status = #{auditStatus}</if>", // audit 表字段过滤
"<if test='auditReson != null'>AND au.reson LIKE CONCAT('%', #{auditReson}, '%')</if>", // audit表字段过滤
"ORDER BY d.create_time DESC",
"</script>"

2
src/main/java/com/example/demo/mapper/UserMapper.java

@ -83,7 +83,7 @@ public interface UserMapper {
int update(User user);
@Select({
"select * from user where jwcode=#{jwode}"
"select * from user where jwcode=#{jwcode}"
})
User selectByJwcode(String jwcode);// //去掉免费金币先去6个月再去12月
// @Update({

8
src/main/java/com/example/demo/security/TokenFilter.java

@ -84,14 +84,6 @@ public class TokenFilter extends OncePerRequestFilter {
throws ServletException, IOException {
// 使用RequestWrapper包装原始的HttpServletRequest使其输入流可以被重复读取
RequestWrapper requestWrapper = new RequestWrapper(request);
boolean isUploadOrRechargeRequest = requestWrapper.getRequestURI().contains("upload") ;
System.out.println(isUploadOrRechargeRequest);
// 如果是上传请求或添加新的充值请求则跳过令牌检查
if (isUploadOrRechargeRequest) {
filterChain.doFilter(requestWrapper, response);
System.out.println(response+"000000000000");
return;
}
// 确保请求体只被读取一次
boolean hasRequestBody = "POST".equals(requestWrapper.getMethod());
System.out.println(hasRequestBody);

8
src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java

@ -12,7 +12,6 @@ import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -25,10 +24,12 @@ import java.util.List;
public class AuditServiceImpl implements AuditService {
private final AuditMapper auditMapper;
@CacheEvict(value = {"audit", "recharge"}, allEntries = true)
@Override
public int add(Audit audit) {
return auditMapper.insert(audit);
}
@CacheEvict(value = {"audit", "recharge"}, allEntries = true)
@Override
public int edit(Audit audit) {
@ -51,6 +52,11 @@ public class AuditServiceImpl implements AuditService {
public List<ConsumeDetail> searchForDetail(ConsumeDetail consumeDetail) {
return auditMapper.selectCon(consumeDetail);
}
//问题:每次更新完数据后,redis依然是老数据,无法实时更新
//解决方案:除了查询操作之外,所有的操纵都要执行删除缓存
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #consumeDetail.hashCode() ")
@Override
public PageInfo<ConsumeDetail> searchForConsumeDetail(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail) {

3
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -15,6 +15,7 @@ import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@ -35,7 +36,7 @@ public class ConsumeServiceImpl implements ConsumeService {
ConsumeMapper consumeMapper;
private final UserMapper userMapper;
@CacheEvict(value = "consume", allEntries = true)
@Override
//新增消费记录
public int insert(Detail detail) throws Exception {

17
src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java

@ -25,7 +25,7 @@ import java.util.UUID;
public class RefundServiceImpl implements RefundService {
private final RefundMapper refundMapper;
@CacheEvict(value = {"refund", "recharge"}, allEntries = true)
@Override
public int add(Detail detail) {
// 生成UUID作为订单编号
@ -34,14 +34,13 @@ public class RefundServiceImpl implements RefundService {
return refundMapper.insert(detail);
}
@Override
@CacheEvict(value = {"refund", "recharge"}, allEntries = true) @Override
public int addAudit(Detail detail) {
return refundMapper.insertAudit(detail);
}
//自动软删除数据加更新数据
@Override
@CacheEvict(value = {"refund", "recharge"}, allEntries = true) @Override
public void edit(Detail newDetail) {
// 获取旧的明细记录
Detail oldDetail = refundMapper.selectByDetailId(newDetail.getDetailId());
@ -70,31 +69,35 @@ public class RefundServiceImpl implements RefundService {
}
@Override
public int update(Integer contactId) {
@CacheEvict(value = {"refund", "recharge"}, allEntries = true) public int update(Integer contactId) {
return refundMapper.updateOrderCode(contactId);
}
@Cacheable(key="#root.method.name")
@Override
public boolean existsByContactId(Integer contactId) {
return refundMapper.existsByContactId(contactId);
}
@CacheEvict(value = "refund",allEntries = true)
@CacheEvict(value = {"refund", "recharge"}, allEntries = true)
@Override
public int softDelete(Integer detailId) {
return refundMapper.update(detailId);
}
@Cacheable(key="#root.method.name")
@Override
public Detail selectByOrderCode(String orderCode) {
return refundMapper.selectByOrderCode(orderCode);
}
@Cacheable(key="#root.method.name")
@Override
public Detail selectByJWCODE(String jwcode) {
return refundMapper.selectByJWCODE(jwcode);
}
@Cacheable(key="#root.method.name")
@Override
public Detail selectByDetailId(Integer detailId) {
return refundMapper.selectByDetailId(detailId);
@ -107,7 +110,7 @@ public class RefundServiceImpl implements RefundService {
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.hashCode() ")
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.auditStatus ")
@Override
public PageInfo<Detail> searchForPage(Integer pageNum, Integer pageSize, Detail detail) {
PageHelper.startPage(pageNum, pageSize);

4
src/main/resources/application.yml

@ -2,6 +2,10 @@ server:
port: 10010
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
datasource:
hikari: # HikariCP连接池配置
maximum-pool-size: 10 # 最大连接数

Loading…
Cancel
Save