Browse Source

3.12新增充值审核的合计数

Huang
huangqizhen 2 months ago
parent
commit
05fd8cc587
  1. 5
      pom.xml
  2. 1
      src/main/java/com/example/demo/DemoApplication.java
  3. 7
      src/main/java/com/example/demo/controller/RechargeController.java
  4. 6
      src/main/java/com/example/demo/domain/entity/DetailY.java
  5. 22
      src/main/java/com/example/demo/domain/vo/RechargeA.java
  6. 25
      src/main/java/com/example/demo/domain/vo/ResultA.java
  7. 10
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  8. 65
      src/main/java/com/example/demo/mapper/DetailYMapper.java
  9. 14
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  10. 10
      src/main/java/com/example/demo/mapper/RefundMapper.java
  11. 13
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  12. 3
      src/main/java/com/example/demo/sevice/RechargeService.java
  13. 1
      src/main/resources/application.yml
  14. 5
      src/main/resources/mapper/AuditMapper.xml
  15. 53
      src/main/resources/mapper/DetailYMapper.xml
  16. 29
      src/main/resources/mapper/RechargeMapper.xml

5
pom.xml

@ -96,6 +96,11 @@
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version> <!-- 确保是最新稳定版本 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>

1
src/main/java/com/example/demo/DemoApplication.java

@ -1,5 +1,6 @@
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

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

@ -2,6 +2,7 @@ package com.example.demo.controller;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.Result;
//import com.example.demo.controller.KafkaProducer;
import com.example.demo.sevice.RechargeService;
@ -110,4 +111,10 @@ public class RechargeController {
return Result.success(rechargeService.searchForPage(page.getPageNum(), page.getPageSize(), page.getRechargeVo()));
}
}
@PostMapping("/RechargeA")
public Result searchRechargeA(@RequestBody RechargeA rechargeA) {
List<RechargeA> result = rechargeService.getRechargeA(rechargeA.getFlags());
return Result.success(result);
}
}

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

@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@ -51,7 +52,7 @@ public class DetailY implements Serializable {
private String orderCode;
private Integer refundFlag;
private String updateTypes;
private List<Integer> updateTypes;
// @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
// @DateTimeFormat(pattern = "yyyy-MM-dd")
@ -72,4 +73,7 @@ public class DetailY implements Serializable {
private BigDecimal sumR;
private BigDecimal sumF;
private BigDecimal sumT;
private String sortField;
private String sortOrder;
}

22
src/main/java/com/example/demo/domain/vo/RechargeA.java

@ -0,0 +1,22 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RechargeA {
private Integer Raudit;
private BigDecimal SumRaudit;
private BigDecimal SumRaudit1;
private BigDecimal SumRaudit2;
private String flag;
private String flags;
private String token;
}

25
src/main/java/com/example/demo/domain/vo/ResultA.java

@ -0,0 +1,25 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResultA {
private Integer Rresult;
private Integer Yresult;
private Integer Nresult;
private BigDecimal SumRresult;
private BigDecimal SumYresult;
private BigDecimal SumNresult;
private BigDecimal SumRresult1;
private BigDecimal SumYresult1;
private BigDecimal SumNresult1;
private BigDecimal SumRresult2;
private BigDecimal SumYresult2;
private BigDecimal SumNresult2;
}

10
src/main/java/com/example/demo/mapper/ConsumeMapper.java

@ -58,7 +58,17 @@ public interface ConsumeMapper {
"<if test='consumeType!=null and consumeType.length>0'>and detail_y.consume_type= #{consumeType}</if>",
"<if test='startDate != null and endDate != null'>AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"</where>",
"<choose>",
" <!-- 优先使用前端传入的排序参数 -->",
" <when test='sortField != null or sortOrder != null'>",
" ORDER BY ${sortField} ${sortOrder}",
" </when>",
" <!-- 默认排序 -->",
" <otherwise>",
"ORDER BY detail_y.create_time DESC",
" </otherwise>",
"</choose>",
"</script>"
})
List<ConsumeDetail> select(ConsumeDetail consumeDetail);

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

@ -49,34 +49,53 @@ public interface DetailYMapper {
"</where>",
"GROUP BY",
"user_gold.jwcode",
"ORDER BY ",
"Rcoin DESC",
"<choose>",
" <!-- 优先使用前端传入的排序参数 -->",
" <when test='sortField != null or sortOrder != null'>",
" ORDER BY ${sortField} ${sortOrder}",
" </when>",
" <!-- 默认排序 -->",
" <otherwise>",
"ORDER BY ",
"Rcoin DESC",
" </otherwise>",
"</choose>",
"</script>"
})
List<DetailYgold> selectgold(DetailYgold detailYgold);
@Select({
"<script>",
"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",
// "select * from detail_y",
// "select detail_y.*,admin.name,admin.area,user.name as uname,audit.status from detail",
// "left join `admin` on `detail_y`.admin_id = `admin`.admin_id",
// "left join `user` on `detail_y`.jwcode = `user`.jwcode",
// "left join audit on `detail_y`.detail_id=audit.detail_id",
"<where>",
// "(status is null or status='1')",
"<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
"<if test='updateType!=null'>and update_type in (#{updateType})</if>",
"<if test='updateTypes!=null'>and update_type in (#{updateTypes})</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>",
"ORDER BY detaily_id desc",
"</script>"
})
// @Select({
// "<script>",
// "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",
//// "select * from detail_y",
//// "select detail_y.*,admin.name,admin.area,user.name as uname,audit.status from detail",
//// "left join `admin` on `detail_y`.admin_id = `admin`.admin_id",
//// "left join `user` on `detail_y`.jwcode = `user`.jwcode",
//// "left join audit on `detail_y`.detail_id=audit.detail_id",
// "<where>",
//// "(status is null or status='1')",
// "<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
// "<if test='updateType!=null'>and update_type in (#{updateType})</if>",
// "<if test='updateTypes!=null'>and update_type in (#{updateTypes})</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>",
// "</script>"
//
// })
List<DetailY> select(DetailY detailY);
@Select({

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

@ -2,6 +2,7 @@ package com.example.demo.mapper;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.RechargeVo;
import org.apache.ibatis.annotations.*;
@ -10,6 +11,8 @@ import java.util.List;
@Mapper
public interface RechargeMapper {
List<RechargeA> getRechargeA(@Param("flags") List<Integer> flags);
@Insert({
"INSERT INTO recharge",
"(jwcode,order_code,activity_id,paid_gold,free_gold,recharge_gold,pay_way,recharge_way,recharge_time,recharge_voucher,admin_id,remark,flag,admin_name)",
@ -65,7 +68,17 @@ public interface RechargeMapper {
"<if test='area!=null and area.length>0'>and user.area=#{area}</if>",
"<if test='status!=null'>and audit.status=#{status}</if>",
"</where>",
"<choose>",
" <!-- 优先使用前端传入的排序参数 -->",
" <when test='sortField != null or sortOrder != null'>",
" ORDER BY ${sortField} ${sortOrder}",
" </when>",
" <!-- 默认排序 -->",
" <otherwise>",
"ORDER BY recharge.create_time DESC",
" </otherwise>",
"</choose>",
"</script>"
})
List<RechargeVo> select(RechargeVo rechargeVo);
@ -73,4 +86,5 @@ public interface RechargeMapper {
@Select({"select count(*) from detail",
"where jwcode=#{jwcode} and update_type='0'"})
int getAllByjwAndup(String jwcode);
}

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

@ -90,7 +90,17 @@ public interface RefundMapper {
"<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>",
"<if test='startDate != null and endDate != null'>AND d.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<choose>",
" <!-- 优先使用前端传入的排序参数 -->",
" <when test='sortField != null or sortOrder != null'>",
" ORDER BY ${sortField} ${sortOrder}",
" </when>",
" <!-- 默认排序 -->",
" <otherwise>",
"ORDER BY d.create_time DESC",
" </otherwise>",
"</choose>",
"</script>"
})
List<Detail> select(Detail detail);

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

@ -4,6 +4,7 @@ import com.example.demo.domain.entity.Audit;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.RechargeVo;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.AuditMapper;
@ -25,8 +26,10 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Month;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Transactional
@Service
@ -200,5 +203,15 @@ public class RechargeServiceImpl implements RechargeService {
return Result.error("批量添加失败: " + e.getMessage());
}
}
@Override
public List<RechargeA> getRechargeA(String flags) {
List<Integer> flagList = Arrays.stream(flags.split(","))
.map(Integer::parseInt)
.collect(Collectors.toList());
return rechargeMapper.getRechargeA(flagList);
}
}

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

@ -2,6 +2,7 @@ package com.example.demo.sevice;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.RechargeVo;
import com.example.demo.domain.vo.Result;
import com.github.pagehelper.PageInfo;
@ -26,4 +27,6 @@ public interface RechargeService {
* @return 处理结果
*/
Result addRecharges(List<Recharge> recharges);
List<RechargeA> getRechargeA(String flags);
}

1
src/main/resources/application.yml

@ -52,6 +52,7 @@ spring:
mybatis:
mapper-locations: classpath*:mapper/*.xml
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

5
src/main/resources/mapper/AuditMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.DetailYMapper" >

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

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
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
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="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>
</mapper>

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

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.RechargeMapper">
<select id="getRechargeA" resultType="com.example.demo.domain.vo.RechargeA">
SELECT
CASE
WHEN flag = 0 THEN '待审核'
WHEN flag = 1 THEN '已通过'
WHEN flag = 2 THEN '已驳回'
ELSE '其他状态'
END AS flag,
COUNT(*) AS Raudit,
SUM(paid_gold) AS SumRaudit,
SUM(free_gold) AS SumRaudit1,
(SUM(paid_gold) + SUM(free_gold)) AS SumRaudit2
FROM
recharge
WHERE
flag IN
<foreach collection="flags" item="flag" open="(" separator="," close=")">
#{flag}
</foreach>
GROUP BY
flag;
</select>
</mapper>
Loading…
Cancel
Save