Browse Source

3.16修复若干bug

Huang
huangqizhen 4 months ago
parent
commit
092790fd27
  1. 1
      pom.xml
  2. 11
      src/main/java/com/example/demo/controller/DetailYController.java
  3. 5
      src/main/java/com/example/demo/controller/RechargeController.java
  4. 3
      src/main/java/com/example/demo/domain/entity/Detail.java
  5. 2
      src/main/java/com/example/demo/domain/entity/DetailY.java
  6. 3
      src/main/java/com/example/demo/domain/vo/ConsumeDetail.java
  7. 3
      src/main/java/com/example/demo/domain/vo/DetailYgold.java
  8. 2
      src/main/java/com/example/demo/domain/vo/RechargeVo.java
  9. 4
      src/main/java/com/example/demo/domain/vo/RefundA.java
  10. 27
      src/main/java/com/example/demo/domain/vo/SumDetailY.java
  11. 7
      src/main/java/com/example/demo/mapper/DetailYMapper.java
  12. 1
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  13. 2
      src/main/java/com/example/demo/mapper/RefundMapper.java
  14. 30
      src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java
  15. 5
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  16. 44
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  17. 4
      src/main/java/com/example/demo/sevice/DetailYService.java
  18. 1
      src/main/java/com/example/demo/sevice/RechargeService.java
  19. 3
      src/main/resources/application.yml
  20. 99
      src/main/resources/mapper/DetailYMapper.xml
  21. 8
      src/main/resources/mapper/RechargeMapper.xml
  22. 7
      src/main/resources/mapper/RefundMapper.xml

1
pom.xml

@ -11,6 +11,7 @@
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.2-SNAPSHOT</version>
<!-- <version>0.0.3-SNAPSHOT</version>-->
<name>demo</name>
<description>demo</description>

11
src/main/java/com/example/demo/controller/DetailYController.java

@ -4,10 +4,7 @@ package com.example.demo.controller;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.ERP;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.*;
import com.example.demo.sevice.DetailService;
import com.example.demo.sevice.DetailYService;
//import com.example.demo.sevice.OtherService;
@ -18,6 +15,7 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@ -65,4 +63,9 @@ public class DetailYController {
log.info("erp:{}", erp);
return Result.success(otherService.addERP(erp));
}
@PostMapping("/getDetailY")
public Result getDetailY(@RequestBody SumDetailY sumDetailY) {
List<SumDetailY> result = detailYService.getDetailY(sumDetailY);
return Result.success(result);
}
}

5
src/main/java/com/example/demo/controller/RechargeController.java

@ -117,4 +117,9 @@ public class RechargeController {
List<RechargeA> result = rechargeService.getRechargeA(rechargeA);
return Result.success(result);
}
@PostMapping("/getWay")
public Result getWay() {
List<String> result = rechargeService.getWay();
return Result.success(result);
}
}

3
src/main/java/com/example/demo/domain/entity/Detail.java

@ -68,7 +68,8 @@ public class Detail implements Serializable {
private BigDecimal allGold;
private Integer typeR;//选择退款部分
private String sortField;
private String sortOrder;
}

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

@ -76,4 +76,6 @@ public class DetailY implements Serializable {
private String sortField;
private String sortOrder;
private String num;
}

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

@ -47,4 +47,7 @@ public class ConsumeDetail {
private String productName;
private String username;
private String sortField;
private String sortOrder;
}

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

@ -22,4 +22,7 @@ public class DetailYgold {
private BigDecimal SumcoreJb;
private BigDecimal Sumfree12;
private BigDecimal Sumfree6;
private String sortField;
private String sortOrder;
}

2
src/main/java/com/example/demo/domain/vo/RechargeVo.java

@ -44,5 +44,7 @@ public class RechargeVo {
private String orderCode;
private String adminName;
private String sortField;
private String sortOrder;
}

4
src/main/java/com/example/demo/domain/vo/RefundA.java

@ -35,4 +35,8 @@ public class RefundA {
private String status;
private String refundType;
private String refundGoods;
private String category;
private BigDecimal amount;
}

27
src/main/java/com/example/demo/domain/vo/SumDetailY.java

@ -0,0 +1,27 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SumDetailY {
private BigDecimal sumR;
private BigDecimal sumT;
private BigDecimal sumF;
private List<Integer> updateTypes;
private String token;
private Date startDate;
private Date endDate;
private String area;
private String jwcode;
private Integer updateType;
private String consumePlatform;
private String types;
}

7
src/main/java/com/example/demo/mapper/DetailYMapper.java

@ -4,6 +4,7 @@ import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.SumDetailY;
import org.apache.ibatis.annotations.*;
import java.util.List;
@ -13,6 +14,10 @@ public interface DetailYMapper {
DetailYgold getgold(DetailYgold detailYgold);
List<SumDetailY> getDetailY(SumDetailY sumDetailY);
@Insert({
// "insert into detail_y",
@ -101,6 +106,8 @@ public interface DetailYMapper {
//
// })
List<DetailY> select(DetailY detailY);
List<DetailY> select1(DetailY detailY);
@Select({
"<script>",

1
src/main/java/com/example/demo/mapper/RechargeMapper.java

@ -12,6 +12,7 @@ import java.util.List;
public interface RechargeMapper {
List<RechargeA> getRechargeA(RechargeA rechargeA);
List<String> getWay();
@Insert({
"INSERT INTO recharge",

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

@ -105,5 +105,5 @@ public interface RefundMapper {
"</choose>",
"</script>"
})
List<Detail> select(Detail detail);
List<Detail> select(Detail detail);
}

30
src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java

@ -4,6 +4,7 @@ import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.domain.vo.SumDetailY;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.sevice.DetailYService;
import com.github.pagehelper.PageHelper;
@ -14,6 +15,7 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service
@ -50,9 +52,23 @@ public class DetailYServiceImpl implements DetailYService {
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + #detailY.hashCode()")
@Override
public PageInfo<DetailY> getDetailByPage(int pageNum, int pageSize, DetailY detailY) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select(detailY);
return new PageInfo<>(list);
if(detailY.getNum()!=null) {
if (detailY.getNum().equals("1")) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select(detailY);
return new PageInfo<>(list);
} else if (detailY.getNum().equals("2")) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select1(detailY);
return new PageInfo<>(list);
}
}
else if (detailY.getNum() == null) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select(detailY);
return new PageInfo<>(list);
}
return null;
}
@Override
@ -60,6 +76,14 @@ public class DetailYServiceImpl implements DetailYService {
return detailYMapper.searchAll(detailExport);
}
@Override
public List<SumDetailY> getDetailY(SumDetailY sumdetailY) {
System.out.println("------------------------------------------------------------------");
System.out.println(detailYMapper.getDetailY(sumdetailY));
System.out.println("------------------------------------------------------------------");
return detailYMapper.getDetailY(sumdetailY);
}
// @Override
// public List<UserDetailExport> searchAll(UserDetailExport userDetailExport) {
// return detailYMapper.searchExport();

5
src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java

@ -211,5 +211,10 @@ public class RechargeServiceImpl implements RechargeService {
}
@Override
public List<String> getWay() {
return rechargeMapper.getWay();
}
}

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

@ -15,6 +15,8 @@ import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
@ -28,25 +30,27 @@ public class RefundServiceImpl implements RefundService {
@CacheEvict(value = {"refund", "audit"}, allEntries = true)
@Override
public int add(Detail detail) {
public int add(Detail detail) {
// 生成UUID作为订单编号
String uuid = UUID.randomUUID().toString().replaceAll("-", ""); // 去掉UUID中的'-'
detail.setOrderCode(uuid);
return refundMapper.insert(detail);
}
@CacheEvict(value = {"refund", "audit"}, allEntries = true) @Override
@CacheEvict(value = {"refund", "audit"}, allEntries = true)
@Override
public int addAudit(Detail detail) {
return refundMapper.insertAudit(detail);
}
//自动软删除数据加更新数据
@CacheEvict(value = {"refund", "audit"}, allEntries = true) @Override
@CacheEvict(value = {"refund", "audit"}, allEntries = true)
@Override
public void edit(Detail newDetail) {
// 获取旧的明细记录
Detail oldDetail = refundMapper.selectByDetailId(newDetail.getDetailId());
if (oldDetail == null || oldDetail.getDetailFlag() ==0) {
if (oldDetail == null || oldDetail.getDetailFlag() == 0) {
throw new IllegalArgumentException("该记录不存在或已被隐藏!");
}
@ -70,7 +74,8 @@ public class RefundServiceImpl implements RefundService {
}
@Override
@CacheEvict(value = {"refund", "recharge"}, allEntries = true) public int update(Integer contactId) {
@CacheEvict(value = {"refund", "recharge"}, allEntries = true)
public int update(Integer contactId) {
return refundMapper.updateOrderCode(contactId);
}
@ -82,7 +87,7 @@ public class RefundServiceImpl implements RefundService {
@CacheEvict(value = {"refund", "recharge"}, allEntries = true)
@Override
public int softDelete(Integer detailId) {
public int softDelete(Integer detailId) {
return refundMapper.update(detailId);
}
@ -118,8 +123,33 @@ public class RefundServiceImpl implements RefundService {
return new PageInfo<>(list);
}
// @Override
// public List<RefundA> getRefundA(RefundA refundA) {
// return refundMapper.getRefundA(refundA);
// }
@Override
public List<RefundA> getRefundA(RefundA refundA) {
return refundMapper.getRefundA(refundA);
// 执行原始查询获取实际存在的分类及其汇总值
List<RefundA> result = refundMapper.getRefundA(refundA);
// 定义完整的分类列表
List<String> fullStatuses = Arrays.asList("待审核", "已通过", "已驳回");
// 遍历分类列表检查哪些分类在查询结果中缺失并为其补充默认值
for (String status : fullStatuses) {
boolean categoryExists = result.stream()
.anyMatch(refund -> status.equals(refund.getStatus()));
if (!categoryExists) {
// 如果分类缺失补充默认值
RefundA defaultRefund = new RefundA();
defaultRefund.setStatus(status);
defaultRefund.setAmount(BigDecimal.ZERO); // 默认值为 0
result.add(defaultRefund);
}
}
return result;
}
}

4
src/main/java/com/example/demo/sevice/DetailYService.java

@ -4,6 +4,7 @@ import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.domain.vo.SumDetailY;
import com.github.pagehelper.PageInfo;
import java.util.List;
@ -16,4 +17,7 @@ public interface DetailYService {
PageInfo<DetailY> getDetailByPage(int pageNum, int pageSize, DetailY detailY);
List<UserDetailExport> searchAll(DetailExport detailExport);
List<SumDetailY> getDetailY(SumDetailY sumDetailY);
}

1
src/main/java/com/example/demo/sevice/RechargeService.java

@ -29,4 +29,5 @@ public interface RechargeService {
Result addRecharges(List<Recharge> recharges);
List<RechargeA> getRechargeA(RechargeA rechargeA);
List<String> getWay();
}

3
src/main/resources/application.yml

@ -1,6 +1,7 @@
server:
port: 10702
# port: 10010
# port:10704
spring:
servlet:
@ -17,7 +18,7 @@ spring:
pool-name: HwgoldHikariCP
driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://54.251.137.151:10701/hwgold?serverTimezone=Asia/Shanghai
url: jdbc:mysql://39.101.133.168/hwgold?serverTimezone=Asia/Shanghai
url: jdbc:mysql://39.101.133.168:3306/hwgold?serverTimezone=Asia/Shanghai
username: hwgold
password: 'AGX4Z3YMxiCG3GR2'
application:

99
src/main/resources/mapper/DetailYMapper.xml

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.DetailYMapper" >
<select id="select" resultType="com.example.demo.domain.vo.DetailYVo">
<select id="select" resultType="com.example.demo.domain.entity.DetailY">
SELECT
username,
name,
@ -18,6 +18,12 @@
FROM
detail_y
<where>
<if test="num!=null">
and recharge_coin NOT LIKE '-%'
AND free_coin NOT LIKE '-%'
AND task_coin NOT LIKE '-%'
</if>
<!-- 动态条件 -->
<if test="jwcode != null and jwcode.length > 0">
AND detail_y.jwcode = #{jwcode}
@ -51,6 +57,60 @@
</choose>
</select>
<select id="select1" resultType="com.example.demo.domain.entity.DetailY">
SELECT
username,
name,
detail_y.jwcode,
area,
detail_y.update_type,
detail_y.create_time,
detail_y.consume_platform,
detail_y.free_coin,
detail_y.recharge_coin,
detail_y.task_coin
FROM
detail_y
<where>
<if test="num!=null">
and recharge_coin LIKE '-%'
OR free_coin LIKE '-%'
OR task_coin LIKE '-%'
</if>
<!-- 动态条件 -->
<if test="jwcode != null and jwcode.length > 0">
AND detail_y.jwcode = #{jwcode}
</if>
<if test="updateTypes != null">
AND update_type IN
<foreach collection="updateTypes" item="updateTypes" open="(" separator="," close=")">
#{updateTypes}
</foreach>
</if>
<if test="startDate != null and endDate != null">
AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}
</if>
<if test="consumePlatform != null and consumePlatform.length > 0">
AND consume_platform = #{consumePlatform}
</if>
<if test="area != null and area.length > 0">
AND area = #{area}
</if>
</where>
<choose>
<!-- 优先使用前端传入的排序参数 -->
<when test="sortField != null or sortOrder != null">
ORDER BY ${sortField} ${sortOrder}
</when>
<!-- 默认排序 -->
<otherwise>
ORDER BY detaily_id DESC
</otherwise>
</choose>
</select>
<select id="getgold" resultType="com.example.demo.domain.vo.DetailYgold">
select
sum(recharge_coin) as SumbuyJb,
@ -59,4 +119,41 @@
from detail_y
group by jwcode
</select>
<select id="getDetailY" resultType="com.example.demo.domain.vo.SumDetailY">
SELECT
case when update_type = 0 then '充值'
when update_type = 1 then '消费'
when update_type = 2 then '退款'
when update_type = 3 THEN '其他'
else '未知'
end as types,
sum(recharge_coin) as SumR,
sum(task_coin) as SumT,
sum(free_coin) as SumF
FROM
detail_y
<where>
<if test="jwcode != null and jwcode.length > 0">
AND detail_y.jwcode = #{jwcode}
</if>
<if test="updateTypes != null">
AND update_type IN
<foreach collection="updateTypes" item="updateTypes" open="(" separator="," close=")">
#{updateTypes}
</foreach>
</if>
<if test="startDate != null and endDate != null">
AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}
</if>
<if test="consumePlatform != null and consumePlatform.length > 0">
AND consume_platform = #{consumePlatform}
</if>
<if test="area != null and area.length > 0">
AND area = #{area}
</if>
</where>
GROUP BY
types;
</select>
</mapper>

8
src/main/resources/mapper/RechargeMapper.xml

@ -7,6 +7,7 @@
<select id="getRechargeA" resultType="com.example.demo.domain.vo.RechargeA">
SELECT
user.area,
CASE
WHEN flag = 0 THEN '待审核'
WHEN flag = 1 THEN '已通过'
@ -19,6 +20,7 @@
(SUM(paid_gold) + SUM(free_gold)) AS SumRaudit
FROM
recharge
LEFT JOIN `user` ON recharge.jwcode = `user`.jwcode
<where>
<!-- 动态条件:flag -->
<if test="flags != null and flags.size > 0">
@ -39,4 +41,10 @@
GROUP BY
flag;
</select>
<select id="getWay" resultType="java.lang.String">
SELECT DISTINCT
recharge_way
FROM
recharge
</select>
</mapper>

7
src/main/resources/mapper/RefundMapper.xml

@ -6,7 +6,7 @@
<select id="getRefundA" resultType="com.example.demo.domain.vo.RefundA">
SELECT
CASE
WHEN au.status = 0 THEN '审核'
WHEN au.status = 0 THEN '审核'
WHEN au.status = 1 THEN '已通过'
WHEN au.status = 2 THEN '已驳回'
ELSE '其他状态'
@ -19,6 +19,7 @@
FROM
detail d
LEFT JOIN audit au ON d.detail_id = au.refund_id
LEFT JOIN `user` ON d.jwcode = `user`.jwcode
<where>
d.detail_flag = 1
AND d.update_type = 2
@ -29,8 +30,8 @@
#{au.status}
</foreach>
</if>
<if test='jwcode!=null and jwcode.length>0'>and recharge.jwcode=#{jwcode}</if>
<if test='startDate != null and endDate != null'>AND recharge.create_time BETWEEN #{startDate} AND #{endDate}</if>
<if test='jwcode!=null and jwcode.length>0'>and d.jwcode=#{jwcode}</if>
<if test='startDate != null and endDate != null'>AND d.create_time BETWEEN #{startDate} AND #{endDate}</if>
<if test='area!=null and area.length>0'>and user.area=#{area}</if>
<if test='refundType != null and refundType.length>0'>AND d.refund_type LIKE CONCAT('%', #{refundType}, '%')</if>
<if test='refundGoods != null and refundGoods.length>0'>AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')</if>

Loading…
Cancel
Save