Browse Source

12.5 累计消耗

milestone-20251205-消费
huangqizhen 1 month ago
parent
commit
29a01d70b9
  1. 2
      src/main/java/com/example/demo/domain/vo/coin/GoldUser.java
  2. 2
      src/main/java/com/example/demo/service/Temporary/RedService.java
  3. 39
      src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java
  4. 8
      src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java
  5. 2
      src/main/resources/application-dev.yml

2
src/main/java/com/example/demo/domain/vo/coin/GoldUser.java

@ -59,4 +59,6 @@ public class GoldUser {
private Date firstRecharge; // 首充日期
@ExcelIgnore
private List<String> markets; // 地区列表
@ExcelIgnore
private BigDecimal red;
}

2
src/main/java/com/example/demo/service/Temporary/RedService.java

@ -18,4 +18,6 @@ public interface RedService {
void addAmount(Integer jwcode,BigDecimal sum, Integer type);
String sendJwcode(Integer jwcode);
String sendConsumeJwcode(Integer jwcode, Integer price);
BigDecimal selectRedSum(Integer jwcode);
}

39
src/main/java/com/example/demo/serviceImpl/Temporary/RedServiceImpl.java

@ -7,6 +7,8 @@ import com.example.demo.domain.vo.Red;
import com.example.demo.exception.SystemException;
import com.example.demo.mapper.Temporary.RedMapper;
import com.example.demo.service.Temporary.RedService;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -39,6 +41,8 @@ public class RedServiceImpl implements RedService {
private String BASE_URLProd ;
private static final String BASE_URLDev = "http://gf977328.natappfree.cc";
private static final String PATH = "/api/coupon/IssueRechargeRedPacket";
private static final String PATHRED = "/api/coupon/getTotalDiscount";
private static final String CONSUME_PATH = "/api/coupon/updateCostRedPacket";
private static final HttpClient CLIENT = HttpClient.newHttpClient();
@ -130,6 +134,41 @@ public class RedServiceImpl implements RedService {
}
}
@Override
public BigDecimal selectRedSum(Integer jwcode) {
try {
String body = JSON.toJSONString(java.util.Map.of("jwcode", jwcode));
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://sb29dfa2.natappfree.cc" + PATHRED)) //URL记得换
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> resp = CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
// 解析 JSON
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(resp.body());
// 提取 data 字段
if (rootNode.has("data")) {
JsonNode dataNode = rootNode.get("data");
System.out.println("Data: " + dataNode);
return dataNode.decimalValue();
}
if (resp.statusCode() != 200) {
log.warn("网络异常", resp.statusCode(), resp.body());
}
return BigDecimal.valueOf(0);
} catch (IOException | InterruptedException e) {
log.error("网络异常", jwcode, e);
return BigDecimal.valueOf(0);
}
}
// --- 校验方法 ---
private void validateParams(Integer jwcode, Integer type, BigDecimal delta) {
if (jwcode == null || jwcode <= 0) {

8
src/main/java/com/example/demo/serviceImpl/coin/UserServiceImpl.java

@ -8,6 +8,7 @@ import com.example.demo.domain.vo.coin.GoldUser;
import com.example.demo.domain.vo.coin.Result;
import com.example.demo.mapper.coin.MarketMapper;
import com.example.demo.mapper.coin.UserMapper;
import com.example.demo.service.Temporary.RedService;
import com.example.demo.service.coin.UserService;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -37,6 +39,8 @@ public class UserServiceImpl implements UserService {
@Autowired
private MarketMapper marketMapper;
@Autowired
private RedService redService;
//查找用户部分信息
@Override
@ -52,7 +56,11 @@ public class UserServiceImpl implements UserService {
if (markets.contains("9") || markets.contains("9999")){
markets=null;
}
BigDecimal redSum = redService.selectRedSum(Integer.parseInt(jwcode));
GoldUser user = userMapper.selectUserCard(jwcode,markets);
user.setRed(redSum);
return Result.success(user);
}
else{

2
src/main/resources/application-dev.yml

@ -101,6 +101,6 @@ bean:
consume:
url: http://39.101.133.168:8828/hljwgo/api/wallet/pay
red:
url: http://39.101.133.168:8828/scmshttp://39.101.133.168:8828/scms
url: http://39.101.133.168:8828/scms
server:
port: 10704
Loading…
Cancel
Save