Browse Source

后端整合模块

detached
huangqizhen 5 months ago
parent
commit
aa7de51005
  1. 7
      src/main/java/com/example/demo/controller/AuditController.java
  2. 17
      src/main/java/com/example/demo/controller/ConsumeController.java
  3. 4
      src/main/java/com/example/demo/domain/entity/Audit.java
  4. 26
      src/main/java/com/example/demo/domain/entity/UserGold.java
  5. 57
      src/main/java/com/example/demo/domain/vo/DetailYVo.java
  6. 1
      src/main/java/com/example/demo/domain/vo/Page.java
  7. 1
      src/main/java/com/example/demo/domain/vo/UserVo.java
  8. 27
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  9. 155
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  10. 36
      src/main/java/com/example/demo/mapper/UserMapper.java
  11. 42
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  12. 13
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  13. 2
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java
  14. 2
      src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java
  15. 2
      src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java
  16. 5
      src/main/java/com/example/demo/sevice/AuditService.java
  17. 6
      src/main/java/com/example/demo/sevice/ConsumeService.java
  18. 2
      src/main/java/com/example/demo/sevice/UserSevice.java

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

@ -7,6 +7,7 @@ import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.DetailMapper;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.AuditService;
import lombok.RequiredArgsConstructor;
@ -29,6 +30,8 @@ import java.util.Arrays;
@CrossOrigin
public class AuditController {
@Autowired
private RefundMapper refundMapper;
@Autowired
private UserMapper userMapper;
@Autowired
private DetailMapper detailMapper;
@ -160,10 +163,10 @@ public class AuditController {
@PostMapping("/refund")
public Result searchForPage(@RequestBody Page page){
if(ObjectUtils.isEmpty(page.getPageNum())){
return Result.success(auditService.searchForDetail(page.getConsumeDetail()));
return Result.success(auditService.searchForDetail(page.getDetail()));
}
else {
return Result.success(auditService.searchForConsumeDetail(page.getPageNum(), page.getPageSize(), page.getConsumeDetail()));
return Result.success(auditService.searchForConsumeDetail(page.getPageNum(), page.getPageSize(), page.getDetail()));
}
}

17
src/main/java/com/example/demo/controller/ConsumeController.java

@ -1,10 +1,7 @@
package com.example.demo.controller;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.vo.DetailVo;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.UserVo;
import com.example.demo.domain.vo.*;
import com.example.demo.controller.KafkaProducer;
import com.example.demo.serviceImpl.ConsumeServiceImpl;
import com.example.demo.serviceImpl.UserServiceImpl;
@ -52,13 +49,11 @@ public class ConsumeController {
@PostMapping("/select")
public Result search(@RequestBody Page page) {
Integer pageNum = page.getPageNum();
Integer pageSize = page.getPageSize();
DetailVo detailVo = page.getDetailVo();
if (ObjectUtils.isEmpty(pageNum)) {
return Result.success(consumeService.search(detailVo));
} else {
return Result.success(consumeService.searchForPage(pageNum, pageSize, detailVo));
if(ObjectUtils.isEmpty(page.getPageNum())){
return Result.success(consumeService.search(page.getConsumeDetail()));
}
else {
return Result.success(consumeService.searchForPage(page.getPageNum(), page.getPageSize(), page.getConsumeDetail()));
}
}

4
src/main/java/com/example/demo/domain/entity/Audit.java

@ -40,12 +40,12 @@ private BigDecimal rechargeGold;
private String name;
private String payWay;
private String remark;
private String userName;
private String username;
private String orderCode;
private String rechargeWay;
private String rechargeVoucher;
private String rechargeTime;
private String username;

26
src/main/java/com/example/demo/domain/entity/UserGold.java

@ -0,0 +1,26 @@
package com.example.demo.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class UserGold {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String jwcode;
private Date createTime;
private String signature;
private BigDecimal sumgold;
private BigDecimal buyJb;
private BigDecimal coreJb;
private BigDecimal free6;
private BigDecimal free12;
private Date lastTime;
private String token;
}

57
src/main/java/com/example/demo/domain/vo/DetailYVo.java

@ -0,0 +1,57 @@
package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class DetailYVo {
private Integer detailId;
private String name;
private String jwcode;
private String area;
private Integer activityId;
private String rechargeWay;
private String goods;
private String consumePlatform;
private String consumeType;
private String refundType;
private String refundGoods;
private Integer contactId;
private String remark;
private BigDecimal rechargeCoin;
private BigDecimal freeCoin;
private BigDecimal taskCoin;
private Integer adminId;
private Integer status;
private String updateType;
private Integer detailFlag;
// @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
// @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
//搜索消费时间
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date searchStartTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date searchEndTime;
//提交人姓名
private String adminName;
//消费金币总数
private Integer totalCoin;
//
private String productName;
private String userName;
private Date startDate;
private Date endDate;
private String token;
}

1
src/main/java/com/example/demo/domain/vo/Page.java

@ -25,6 +25,7 @@ public class Page implements Serializable {
private DetailVo detailVo;
private Admin admin;
private DetailY detailY;
private DetailYVo detailYVo;
}

1
src/main/java/com/example/demo/domain/vo/UserVo.java

@ -26,6 +26,7 @@ public class UserVo {
private BigDecimal free12;
private BigDecimal coreJb;
private BigDecimal buyJb ;
private String area;
private String token;
}

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

@ -5,7 +5,7 @@ import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.Product;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.DetailVo;
import com.example.demo.domain.vo.ConsumeDetail;
import org.apache.ibatis.annotations.*;
import java.util.List;
@ -26,7 +26,7 @@ public interface ConsumeMapper {
Admin getByadminId(@Param("adminId") Integer adminId);
//新增消费记录
@Insert({
"insert into detail_y",
"insert into detail",
"(jwcode,activity_id,recharge_way,product_id,consume_platform,consume_type,refund_type,refund_goods,contact_id,remark,recharge_coin,free_coin,task_coin,admin_id,update_type,detail_flag,create_time,refund_flag,order_code)",
"values",
"(#{jwcode},#{activityId},#{rechargeWay},#{productId},'金币系统','购买商品',#{refundType},#{refundGoods},#{contactId},#{remark},#{rechargeCoin},#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,now(),1,#{orderCode})"
@ -41,28 +41,29 @@ public interface ConsumeMapper {
//模糊分页查询查询消费明细
@Select({
"<script>",
"select detail_y.*,admin.name as adminName ,admin.area as area ,user.name as userName,product.name as productName from detail_y ",
"Left join admin on detail_y.admin_id=admin.admin_id ",
"Left join user on detail_y.jwcode= user.jwcode ",
"Left join product on detail_y.product_id= product.product_id ",
"select detail_y.*,admin.name as adminName ,admin.area as area ,user.name as userName,product.name as productName from detail ",
"inner join `admin` on detail.admin_id=admin.admin_id ",
"inner join `user` on detail.jwcode= user.jwcode ",
"inner join product on detail.product_id= product.product_id ",
"<where>",
// "`detail_flag`=1 AND update_type = '1'",
"update_type=1",
"<if test='jwcode!=null'>and detail.jwcode =#{jwcode}</if>",
"<if test='productName!=null'>and product.name like concat('%',#{productName},'%')</if>",
"<if test='consumePlatform!=null'>and detail_y.consume_platform like concat('%',#{consumePlatform},'%')</if>",
"<if test='consumeType!=null'>and detail_y.consume_type like concat('%',#{consumeType},'%')</if>",
"<if test='startDate != null and endDate != null'>AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<if test='consumePlatform!=null'>and detail.consume_platform like concat('%',#{consumePlatform},'%')</if>",
"<if test='consumeType!=null'>and detail.consume_type like concat('%',#{consumeType},'%')</if>",
"<if test='startDate != null and endDate != null'>AND detail.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"</where>",
"ORDER BY detail_y.create_time DESC",
// "ORDER BY detail.create_time DESC",
"</script>"
})
List<DetailVo> select(DetailVo detailVo);
List<ConsumeDetail> select(ConsumeDetail consumeDetail);
//查询消费信息
@Select({
"select * ,product.name as productName from detail_y " ,
"inner join product on detail_y.product_id= product.product_id ",
"select * ,product.name as productName from detail " ,
"inner join product on detail.product_id= product.product_id ",
"where `detail_flag`=1 AND update_type = '1' and jwcode=#{jwcode} AND refund_flag=1"
})
List<Detail> getDeatil(Integer jwcode);

155
src/main/java/com/example/demo/mapper/StatisticsMapper.java

@ -382,164 +382,151 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.update_type = '0')) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by freeSumCoin desc",
"</script>"
})
List<Meium> getBuyAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by rechargeSumCoin desc",
"</script>"
})
List<Meium> getBuyAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by taskSumCoin desc",
"</script>"
})
List<Meium> getBuyAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '0' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by totalRechargeSum desc",
"</script>"
})
List<Meium> getBuy(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by freeSumCoin asc",
"</script>"
})
List<Meium> getPayAndFree(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by rechargeSumCoin asc",
"</script>"
})
List<Meium> getPayAndRecharge(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"GROUP BY u.area",
"order by taskSumCoin asc",
"</script>"
})
List<Meium> getPayAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT ad.area,",
" ad.store,",
" SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) AS rechargeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) AS freeSumCoin,",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) AS taskSumCoin,",
" (SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) +",
" SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END)) AS totalRechargeSum",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalRechargeSum",
"FROM detail_y d",
"right JOIN admin ad ON ad.admin_id = d.admin_id",
"<if test='searchStartTime != null and searchEndTime != null'>",
"LEFT JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1",
"<choose>",
"<when test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY ad.area, ad.store",
"order by totalRechargeSum asc",
"</when>",
"<otherwise>",
"</otherwise>",
"</choose>",
"GROUP BY u.area",
"ORDER BY totalRechargeSum ASC",
"</script>"
})
List<Meium> getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
}

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

@ -2,6 +2,7 @@ package com.example.demo.mapper;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.entity.UserGold;
import com.example.demo.domain.vo.UserVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@ -14,7 +15,7 @@ import java.util.List;
public interface UserMapper {
@Select({
"<script>",
"select * from user",
"select name from user",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
"</where>",
@ -23,6 +24,15 @@ public interface UserMapper {
User select(String user);
@Select({
"<script>",
"select * from user_gold",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
"</where>",
"</script>"
})
UserGold selectGold(String userGold);
@Select({
"<script>",
"select * from user",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
@ -33,7 +43,7 @@ public interface UserMapper {
@Select({
"SELECT\n" +
" u.*,\n" +
" u.*,user.name,user.area," +
" MIN(d.create_time) AS first_recharge_date, \n" +
" SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, \n" +
" SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, \n" +
@ -42,17 +52,16 @@ public interface UserMapper {
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '0' THEN 1 END) AS pending_recharge_times, \n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '1' THEN 1 END) AS pending_spend_times \n" +
"FROM\n" +
" user u\n" +
" user_gold u\n" +
"LEFT JOIN user on user.jwcode=u.jwcode",
"LEFT JOIN\n" +
" detail d ON u.jwcode = d.jwcode\n" +
"LEFT JOIN\n" +
" audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1\n" +
"WHERE\n" +
" u.jwcode =#{jwcode}\n" +
"GROUP BY\n" +
" u.jwcode, u.name"
" u.jwcode =#{jwcode}\n"
})
List<UserVo> selectA(UserVo userVo);
UserVo selectA(UserVo userVo);
@Select({
"<script>",
@ -85,6 +94,19 @@ public interface UserMapper {
"</script>",
})
int update(User user);
@Update({
"<script>",
"update user_gold",
"<set>",
"<if test='buyJb!=null'>buy_jb=#{buyJb},</if>",
"<if test='coreJb!=null'>core_jb=#{coreJb},</if>",
"<if test='free6!=null'>free_6=#{free6},</if>",
"<if test='free12!=null'>free_12=#{free12},</if>",
"</set>",
"where jwcode=#{jwcode}",
"</script>",
})
int updateGold(UserGold userGold);
// //去掉免费金币先去6个月再去12月
// @Update({

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

@ -3,15 +3,9 @@ package com.example.demo.serviceImpl;
import com.example.demo.domain.entity.Audit;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.mapper.AuditMapper;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.mapper.RechargeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.mapper.*;
import com.example.demo.sevice.AuditService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -38,6 +32,7 @@ public class AuditServiceImpl implements AuditService {
private final UserMapper userMapper;
private final AuditMapper auditMapper;
private final DetailYMapper detailYMapper;
private final RefundMapper refundMapper;
@CacheEvict(value = {"audit", "recharge"}, allEntries = true)
@Override
@ -63,15 +58,16 @@ public class AuditServiceImpl implements AuditService {
Integer status = audit.getStatus();
if(status == 1){
String jwcode=audit.getJwcode();
System.out.println(jwcode);
BigDecimal paidGold1 =audit.getPaidGold();
BigDecimal freeGold1 =audit.getFreeGold();
User user = userMapper.select(jwcode);
BigDecimal buyJb =user.getBuyJb();
UserGold userGold = userMapper.selectGold(jwcode);
BigDecimal buyJb =userGold.getBuyJb();
buyJb = buyJb.add(paidGold1);
// 设置更新后的Sumgold回到user对象
user.setBuyJb(buyJb);
userGold.setBuyJb(buyJb);
LocalDate now = LocalDate.now();
// 判断当前日期是在六月之前还是之后
@ -83,16 +79,16 @@ public class AuditServiceImpl implements AuditService {
// 根据月份更新 free6 free12
if (isBeforeJune||isJune) {
// 如果是六月前更新 free6
BigDecimal free6 = user.getFree6().add(freeGold1);
user.setFree6(free6);
BigDecimal free6 = userGold.getFree6().add(freeGold1);
userGold.setFree6(free6);
} else if (isAfterJune) {
// 如果是六月后更新 free12
BigDecimal free12 = user.getFree12().add(freeGold1);
user.setFree12(free12);
BigDecimal free12 = userGold.getFree12().add(freeGold1);
userGold.setFree12(free12);
}
System.out.println(user+"----------------------------------------------------------");
result = userMapper.update(user);
System.out.println(userGold+"----------------------------------------------------------");
result = userMapper.updateGold(userGold);
if (result != 1) {
throw new Exception("Failed to insert recharge data");
}
@ -109,7 +105,7 @@ public class AuditServiceImpl implements AuditService {
int adminId =audit.getAdminId();
String activityName = audit.getActivityName();
String area = audit.getArea();
String username = audit.getUserName();
String username = audit.getUsername();
Integer status1=audit.getStatus();
String reson = audit.getReson();
String name = audit.getName();
@ -161,19 +157,19 @@ public class AuditServiceImpl implements AuditService {
}
@Cacheable(key="#root.method.name")
@Override
public List<ConsumeDetail> searchForDetail(ConsumeDetail consumeDetail) {
return auditMapper.selectCon(consumeDetail);
public List<Detail> searchForDetail(Detail detail) {
return refundMapper.select(detail);
}
//问题:每次更新完数据后,redis依然是老数据,无法实时更新
//解决方案:除了查询操作之外,所有的操纵都要执行删除缓存
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #consumeDetail.hashCode() ")
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + T(java.util.Objects).hashCode(#detail)")
@Override
public PageInfo<ConsumeDetail> searchForConsumeDetail(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail) {
public PageInfo<Detail> searchForConsumeDetail(Integer pageNum, Integer pageSize, Detail detail) {
PageHelper.startPage(pageNum,pageSize);
List<ConsumeDetail> list= auditMapper.selectCon(consumeDetail);
List<Detail> list= refundMapper.select(detail);
return new PageInfo<>(list);
}
}

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

@ -6,7 +6,9 @@ import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.Product;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.domain.vo.DetailVo;
import com.example.demo.domain.vo.DetailYVo;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.ConsumeService;
@ -107,15 +109,16 @@ public class ConsumeServiceImpl implements ConsumeService {
@Cacheable(key="#root.method.name")
@Override
public List<DetailVo> search(DetailVo detailVo) {
return consumeMapper.select(detailVo);
public List<ConsumeDetail> search(ConsumeDetail consumeDetail) {
return consumeMapper.select(consumeDetail);
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detailVo.hashCode() ")
@Cacheable(value = "myCache", key = "#root.methodName + '_' + (#detailYVo != null ? #detailYVo.hashCode() : 'null')")
@Override
public PageInfo<DetailVo> searchForPage(Integer pageNum, Integer pageSize, DetailVo detailVo) {
public PageInfo<ConsumeDetail> searchForPage(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail) {
PageHelper.startPage(pageNum, pageSize);
List<DetailVo> list = consumeMapper.select(detailVo);
List<ConsumeDetail> list = consumeMapper.select(consumeDetail);
return new PageInfo<>(list);
}

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

@ -109,7 +109,7 @@ public class RefundServiceImpl implements RefundService {
}
@Cacheable(key="#root.method.name + ':'+ #pageNum + '-' + #pageSize + '-' + #detail.auditStatus ")
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + T(java.util.Objects).hashCode(#detail)")
@Override
public PageInfo<Detail> searchForPage(Integer pageNum, Integer pageSize, Detail detail) {
PageHelper.startPage(pageNum, pageSize);

2
src/main/java/com/example/demo/serviceImpl/StatisticsServiceImpl.java

@ -142,7 +142,7 @@ public class StatisticsServiceImpl implements StatisticsService {
return statisticsMapper.getMediumAreaConsume();
}
@Cacheable(key = "#root.method.name+ T(java.util.Objects).hashCode(#meium)")
@Override
public List<Meium> getMee(Meium meium) {

2
src/main/java/com/example/demo/serviceImpl/UserServiceImpl.java

@ -27,7 +27,7 @@ public class UserServiceImpl implements UserSevice {
private final UserMapper userMapper;
@Override
public List<UserVo> search(UserVo userVo) throws Exception{
public UserVo search(UserVo userVo) throws Exception{
User sUser = userMapper.select(userVo.getJwcode());
if(ObjectUtils.isEmpty(sUser)){
throw new Exception("无此精网号");

5
src/main/java/com/example/demo/sevice/AuditService.java

@ -3,6 +3,7 @@ package com.example.demo.sevice;
import com.example.demo.domain.entity.Audit;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.vo.ConsumeDetail;
import com.github.pagehelper.PageInfo;
@ -14,7 +15,7 @@ public interface AuditService {
int goldedit(Audit audit) throws Exception;
List<Audit> search(Audit audit) ;
PageInfo<Audit> searchForPage(Integer pageNum, Integer pageSize, Audit audit);
List<ConsumeDetail> searchForDetail(ConsumeDetail consumeDetail);
PageInfo<ConsumeDetail> searchForConsumeDetail(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail);
List<Detail> searchForDetail(Detail detail);
PageInfo<Detail> searchForConsumeDetail(Integer pageNum, Integer pageSize, Detail detail);
}

6
src/main/java/com/example/demo/sevice/ConsumeService.java

@ -4,7 +4,9 @@ package com.example.demo.sevice;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.domain.vo.DetailVo;
import com.example.demo.domain.vo.DetailYVo;
import com.github.pagehelper.PageInfo;
import java.util.List;
@ -17,7 +19,7 @@ public interface ConsumeService {
Admin getByadminId(Integer adminId);
List<DetailVo> search(DetailVo detailVo);
List<ConsumeDetail> search(ConsumeDetail consumeDetail);
PageInfo<DetailVo> searchForPage(Integer pageNum, Integer pageSize, DetailVo detailVo);
PageInfo<ConsumeDetail> searchForPage(Integer pageNum, Integer pageSize, ConsumeDetail consumeDetail);
}

2
src/main/java/com/example/demo/sevice/UserSevice.java

@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserSevice {
List<UserVo> search(UserVo userVo) throws Exception;
UserVo search(UserVo userVo) throws Exception;
PageInfo<User> searchForPage(Integer pageNum, Integer pageSize, User User);
}
Loading…
Cancel
Save