Browse Source

后端整合模块

detached
huangqizhen 5 months ago
parent
commit
b5066128f5
  1. 1
      src/main/java/com/example/demo/domain/entity/Activity.java
  2. 2
      src/main/java/com/example/demo/domain/entity/Admin.java
  3. 2
      src/main/java/com/example/demo/domain/entity/Audit.java
  4. 2
      src/main/java/com/example/demo/domain/entity/Detail.java
  5. 3
      src/main/java/com/example/demo/domain/entity/Rate.java
  6. 2
      src/main/java/com/example/demo/domain/entity/Recharge.java
  7. 5
      src/main/java/com/example/demo/domain/entity/User.java
  8. 2
      src/main/java/com/example/demo/domain/vo/DetailVo.java
  9. 9
      src/main/java/com/example/demo/domain/vo/UserVo.java
  10. 18
      src/main/java/com/example/demo/mapper/ActivityMapper.java
  11. 4
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  12. 1
      src/main/java/com/example/demo/mapper/RefundMapper.java
  13. 22
      src/main/java/com/example/demo/mapper/UserMapper.java
  14. 4
      src/main/java/com/example/demo/security/SecurityConfig.java
  15. 2
      src/main/java/com/example/demo/security/TokenFilter.java
  16. 2
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  17. 27
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  18. 2
      src/main/java/com/example/demo/serviceImpl/RateServiceImpl.java
  19. 28
      src/main/java/com/example/demo/serviceImpl/RechargeServiceImpl.java
  20. 2
      src/main/java/com/example/demo/serviceImpl/RefundServiceImpl.java

1
src/main/java/com/example/demo/domain/entity/Activity.java

@ -23,7 +23,6 @@ public class Activity implements Serializable {
private BigDecimal rechargeRatio;
private Date createTime;
private Integer activityFlag;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String name;
private Integer status;

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;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private String jwcode;

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

@ -17,7 +17,7 @@ public class Audit {
private Integer adminId;
private String status;
private Integer AuditFlag;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private Date startDate;

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

@ -34,7 +34,7 @@ public class Detail implements Serializable {
private Integer status;
private String updateType;
private Integer detailFlag;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;

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

@ -15,8 +15,7 @@ public class Rate {
private Date endTime;
private String currency;
private String exchangeRate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
private Date updateTime;
private Integer adminId;

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

@ -26,7 +26,7 @@ public class Recharge {
private String remark;
private Integer flag;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private Date startDate;

5
src/main/java/com/example/demo/domain/entity/User.java

@ -26,4 +26,9 @@ public class User {
private Date createTime;
private String signature;
private BigDecimal sumgold;
private BigDecimal buyJb;
private BigDecimal coreJb;
private BigDecimal free6;
private BigDecimal free12;
private Date lastTime;
}

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

@ -51,4 +51,6 @@ public class DetailVo {
//
private String productName;
private String userName;
private Date startDate;
private Date endDate;
}

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

@ -1,7 +1,9 @@
package com.example.demo.domain.vo;
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;
@ -9,6 +11,8 @@ import java.util.Date;
@Data
@NoArgsConstructor
public class UserVo {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String jwcode;
private String name;
private Date firstRechargeDate;
@ -18,7 +22,10 @@ public class UserVo {
private Integer spendTimes;
private Integer pendingRechargeTimes;
private Integer pendingSpendTimes;
private Integer sumgold;
private BigDecimal free6;
private BigDecimal free12;
private BigDecimal coreJb;
private BigDecimal buyJb ;
}

18
src/main/java/com/example/demo/mapper/ActivityMapper.java

@ -49,15 +49,21 @@ public interface ActivityMapper {
//模糊查询--根据活动id查询活动信息
@Select({
"<script>",
"select activity.*,admin.name from activity",
"inner join admin on activity.admin_id=admin.admin_id ",
"SELECT activity.*, admin.name FROM activity",
"INNER JOIN admin ON activity.admin_id = admin.admin_id",
"<where>",
"`activity_flag`=1",
"<if test='startDate != null and endDate != null'>AND activity.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<if test='activityName!=null and activityName.length>0'>and activity_name like concat('%',#{activityName},'%')</if>",
"activity.activity_flag = 1",
"<if test='startDate != null and endDate != null'>",
"AND activity.create_time BETWEEN #{startDate} AND #{endDate}",
"</if>",
"<if test='activityName != null and activityName.trim().length() > 0'>",
"AND activity.activity_name LIKE CONCAT('%', #{activityName}, '%')",
"</if>",
"<if test='activityId != null'>",
"AND activity.activity_id = #{activityId}",
"</if>",
"</where>",
"</script>"
})
List<Activity> select(Activity activity);
//

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

@ -51,9 +51,7 @@ public interface ConsumeMapper {
"<if test='productName!=null'>and product.name like concat('%',#{productName},'%')</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='searchStartTime != null and searchEndTime != null'>",
"and detail.create_time between #{searchStartTime} and #{searchEndTime}",
"</if>",
"<if test='startDate != null and endDate != null'>AND detail.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"</where>",
"ORDER BY detail.create_time DESC",
"</script>"

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

@ -75,6 +75,7 @@ public interface RefundMapper {
"<if test='freeCoin != null'>AND d.free_coin = #{freeCoin}</if>",
"<if test='taskCoin != null'>AND d.task_coin = #{taskCoin}</if>",
"<if test='remark != null'>AND d.remark LIKE CONCAT('%', #{remark}, '%')</if>",
"<if test='startDate != null and endDate != null'>AND d.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<if test='adminId != null'>AND d.admin_id = #{adminId}</if>",
"<if test='adminArea != null'>AND a.area LIKE CONCAT('%', #{adminArea}, '%')</if>", // admin表字段过滤
"<if test='adminName != null'>AND a.name LIKE CONCAT('%', #{adminName}, '%')</if>", // admin表字段过滤

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

@ -32,24 +32,22 @@ public interface UserMapper {
@Select({
"SELECT\n" +
" u.jwcode,\n" +
" u.name,\n" +
" MIN(d.create_time) AS first_recharge_date, -- 首充日期\n" +
" SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, -- 历史金币总数(充值)\n" +
" SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, -- 历史金币总数(消费)\n" +
" COUNT(CASE WHEN d.update_type = '充值' THEN 1 END) AS recharge_times, -- 充值次数\n" +
" COUNT(CASE WHEN d.update_type = '消费' THEN 1 END) AS spend_times, -- 消费次数\n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '充值' THEN 1 END) AS pending_recharge_times, -- 待审核的充值次数\n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '消费' THEN 1 END) AS pending_spend_times, -- 待审核的消费次数\n" +
" u.sumgold\n" +
" u.*,\n" +
" MIN(d.create_time) AS first_recharge_date, \n" +
" SUM(CASE WHEN d.update_type = '充值' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, \n" +
" SUM(CASE WHEN d.update_type = '消费' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, \n" +
" COUNT(CASE WHEN d.update_type = '充值' THEN 1 END) AS recharge_times, \n" +
" COUNT(CASE WHEN d.update_type = '消费' THEN 1 END) AS spend_times, \n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '充值' THEN 1 END) AS pending_recharge_times, \n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '消费' THEN 1 END) AS pending_spend_times \n" +
"FROM\n" +
" user u\n" +
"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" +
" audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1\n" +
"WHERE\n" +
" d.detail_flag = 1 AND u.jwcode = #{jwcode} -- 仅考虑有效记录\n" +
" d.detail_flag = 1 AND u.jwcode =#{jwcode}\n" +
"GROUP BY\n" +
" u.jwcode, u.name"
})

4
src/main/java/com/example/demo/security/SecurityConfig.java

@ -61,9 +61,9 @@ public class SecurityConfig {
request
.requestMatchers( HttpMethod.POST,
// 用户不登录就可以访问的路径
"/admin/login","/upload").permitAll()
"/admin/login","/upload/**").permitAll()
.requestMatchers(
"/error","alipay/**"
"/error","alipay/**","/upload/**"
).permitAll()
.anyRequest().authenticated() // 其它路径必须要登录后才能访问
);

2
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(request, response);
filterChain.doFilter(requestWrapper, response);
System.out.println(response+"000000000000");
return;
}

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

@ -29,7 +29,7 @@ public class AuditServiceImpl implements AuditService {
public int add(Audit audit) {
return auditMapper.insert(audit);
}
@CacheEvict(value = "recharge",allEntries = true)
@CacheEvict(value = {"audit", "recharge"}, allEntries = true)
@Override
public int edit(Audit audit) {
return auditMapper.update(audit);

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

@ -21,6 +21,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Month;
import java.util.List;
import java.util.UUID;
@ -42,12 +44,31 @@ public class ConsumeServiceImpl implements ConsumeService {
BigDecimal taskGold1 =detail.getTaskCoin();
String jwcode = detail.getJwcode();
User user = userMapper.get(jwcode);
BigDecimal Sumgold =user.getSumgold();
BigDecimal buyJb =user.getBuyJb();
Sumgold = Sumgold.add(freeGold1).add(paidGold1).add(taskGold1);
buyJb = buyJb.add(paidGold1);
// 设置更新后的Sumgold回到user对象
user.setBuyJb(buyJb);
LocalDate now = LocalDate.now();
// 判断当前日期是在六月之前还是之后
Month currentMonth = now.getMonth();
boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue();
boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue();
// 根据月份更新 free6 free12
if (isBeforeJune) {
// 如果是六月前更新 free6
BigDecimal free6 = user.getFree6().add(freeGold1);
user.setFree6(free6);
} else if (isAfterJune) {
// 如果是六月后更新 free12
BigDecimal free12 = user.getFree12().add(freeGold1);
user.setFree12(free12);
}
// 设置更新后的Sumgold回到user对象
user.setSumgold(Sumgold);
System.out.println(user+"----------------------------------------------------------");
int result = userMapper.update(user);
if (result != 1) {

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

@ -20,7 +20,7 @@ import java.util.List;
public class RateServiceImpl implements RateService {
private final RateMapper rateMapper;
@CacheEvict(value = "rate",allEntries = true)
@Override
public int add(Rate rate) {
return rateMapper.insert(rate);

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

@ -22,6 +22,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.Month;
import java.util.List;
import java.util.UUID;
@ -41,7 +43,7 @@ public class RechargeServiceImpl implements RechargeService {
@Override
@Transactional
@CacheEvict(value = "recharge",allEntries = true)
public int add(Recharge recharge) throws Exception {
// return rechargeMapper.insert(recharge);
@ -110,12 +112,30 @@ public class RechargeServiceImpl implements RechargeService {
BigDecimal paidGold1 =recharge.getPaidGold();
BigDecimal freeGold1 =recharge.getFreeGold();
User user = userMapper.select(jwcode);
BigDecimal Sumgold =user.getSumgold();
BigDecimal buyJb =user.getBuyJb();
Sumgold = Sumgold.add(freeGold1).add(paidGold1);
buyJb = buyJb.add(paidGold1);
// 设置更新后的Sumgold回到user对象
user.setSumgold(Sumgold);
user.setBuyJb(buyJb);
LocalDate now = LocalDate.now();
// 判断当前日期是在六月之前还是之后
Month currentMonth = now.getMonth();
boolean isBeforeJune = currentMonth.getValue() < Month.JUNE.getValue();
boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue();
// 根据月份更新 free6 free12
if (isBeforeJune) {
// 如果是六月前更新 free6
BigDecimal free6 = user.getFree6().add(freeGold1);
user.setFree6(free6);
} else if (isAfterJune) {
// 如果是六月后更新 free12
BigDecimal free12 = user.getFree12().add(freeGold1);
user.setFree12(free12);
}
System.out.println(user+"----------------------------------------------------------");
result = userMapper.update(user);
if (result != 1) {

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

@ -21,7 +21,7 @@ import java.util.UUID;
@RequiredArgsConstructor
@Transactional
@Service
//@CacheConfig(cacheNames = "refund")
@CacheConfig(cacheNames = "refund")
public class RefundServiceImpl implements RefundService {
private final RefundMapper refundMapper;

Loading…
Cancel
Save