Browse Source

金豆新增消耗

huangqizheng/feature-20250808172612-bug修复
lijianlin 1 week ago
parent
commit
9d3e215a62
  1. 1
      src/main/java/com/example/demo/domain/vo/bean/BeanConsume.java
  2. 2
      src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java
  3. 95
      src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java
  4. 5
      src/main/resources/application-dev.yml
  5. 5
      src/main/resources/application-prod.yml
  6. 5
      src/main/resources/application-test.yml
  7. 5
      src/main/resources/application.yml

1
src/main/java/com/example/demo/domain/vo/bean/BeanConsume.java

@ -18,6 +18,7 @@ import lombok.NoArgsConstructor;
public class BeanConsume {
private Integer id;//id
private String jwcode; // 精网号
private Integer total; //总金豆
private Integer freeBean; // 免费豆
private Integer permanentBean; // 永久豆
private String remark; //备注

2
src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java

@ -51,7 +51,7 @@ public class BeanAuditServiceImpl implements BeanAuditService {
// 2. 构建接口URL及参数
@Value("${bean.url}")
@Value("${bean.recharge.url}")
String apiUrl;
//查找审核信息

95
src/main/java/com/example/demo/serviceImpl/bean/BeanConsumeServiceImpl.java

@ -1,5 +1,6 @@
package com.example.demo.serviceImpl.bean;
import com.example.demo.Util.BaseDES2;
import com.example.demo.domain.vo.bean.*;
import com.example.demo.domain.vo.coin.*;
import com.example.demo.mapper.bean.BeanConsumeMapper;
@ -9,12 +10,20 @@ import com.example.demo.service.bean.BeanConsumeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
@ -35,7 +44,9 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
private UserMapper userMapper;
@Autowired
private RestTemplate restTemplate;
// 构建接口URL及参数
@Value("${bean.consume.url}")
String apiUrl;
//获取消费用户分部
@Override
@ -50,9 +61,10 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
return liveDeptList;
}
//减少金豆
@Transactional
@Override
public Result reduce(BeanConsume consume) {
try {
// 验证精网号是否有效
if (consume.getJwcode() == null || consume.getJwcode().isEmpty()) {
return Result.error("精网号不能为空");
@ -71,42 +83,59 @@ public class BeanConsumeServiceImpl implements BeanConsumeService {
return Result.error("免费豆和永久豆不能同时为0");
}
// 验证备注是否为空
if (consume.getRemark() == null || consume.getRemark().toString().isEmpty()) {
if (consume.getRemark() == null || consume.getRemark().isEmpty()) {
return Result.error("备注不能为空");
}
if(consume.getAdminName() == null || consume.getAdminName().toString().isEmpty()){
return Result.error("管理员名称不能为空");
}
GoldUser goldUser = userMapper.selectUser(consume.getJwcode().toString());
if(goldUser==null){
return Result.error("用户不存在");
String jwcode = consume.getJwcode();
//String jwcode = "1bf7194c2dc63c45cd834d35e38faa71";
try {
BaseDES2 d = new BaseDES2();
jwcode = d.encrypt(jwcode);
} catch (Exception e) {
return Result.error("加密失败");
}
// String jwcode = consume.getJwcode();
String jwcode = "2e35cadd48a15cc4cd834d35e38faa71";
String op = "cost"; // 操作类型根据实际业务定义例如"recharge"表示充值
String content = consume.getRemark(); // 备注作为content参数
String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号去除横线
// 2. 构建接口URL及参数
String apiUrl = "http://39.101.133.168:8828/mock/61/hljw/api/user/gold";
UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(apiUrl)
.queryParam("jwcode", jwcode)
.queryParam("op", op)
.queryParam("gold", consume.getPermanentBean())
.queryParam("content", content)
.queryParam("order_no", orderNo);
// 3. 发送GET请求
ResponseEntity<String> response = restTemplate.getForEntity(urlBuilder.toUriString(), String.class);
// 4. 处理响应结果
if (!response.getStatusCode().is2xxSuccessful()) {
return Result.error("远程接口调用失败,状态码:" + response.getStatusCodeValue());
// 2. 创建请求参数对象使用Map或自定义实体类
Map<String, String> params = new HashMap<>();
params.put("jwcode", jwcode);
int total = consume.getPermanentBean() + consume.getFreeBean();
params.put("total", String.valueOf(total));
params.put("buy", consume.getPermanentBean().toString());
params.put("free", consume.getFreeBean().toString());
params.put("content", content);
// 3. 构建请求头指定Content-Type为JSON
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON); // 关键设置为JSON格式
// 4. 构建请求实体参数+头信息
HttpEntity<Map<String, String>> requestEntity = new HttpEntity<>(params, headers);
try {
// 5. 发送POST请求
ResponseEntity<String> response = restTemplate.postForEntity(
apiUrl,
requestEntity,
String.class
);
System.out.println("请求参数:" + params);
System.out.println("响应状态码:" + response.getStatusCodeValue());
System.out.println("响应内容:" + response.getBody());
if (!response.getStatusCode().is2xxSuccessful()) {
return Result.error("远程接口接口调用失败,状态码:" + response.getStatusCodeValue() + ",响应:" + response.getBody());
}
} catch (RestClientException e) {
e.printStackTrace();
return Result.error("请求发送失败:" + e.getMessage());
}
return Result.success("减少成功");
} catch (Exception e) {
return Result.error("系统异常:" + e.getMessage());
}
return Result.success();
}
//筛选查询直播消费

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

@ -52,7 +52,10 @@ feishu:
webhook:
url: https://open.feishu.cn/open-apis/bot/v2/hook/384c78aa-8df1-498b-9c47-04e890ed9877
bean:
recharge:
# url: http://api.homilychart.com/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
consume:
url: http://39.101.133.168:8828/hljwgo/api/wallet/pay
server:
port: 10704

5
src/main/resources/application-prod.yml

@ -54,8 +54,11 @@ feishu:
url: https://open.feishu.cn/open-apis/bot/v2/hook/1a515b19-b64f-46b7-9486-35842b9539fe
bean:
recharge:
# url: http://api.homilychart.com/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
consume:
url: http://39.101.133.168:8828/hljwgo/api/wallet/pay
server:
port: 10704

5
src/main/resources/application-test.yml

@ -52,8 +52,11 @@ feishu:
webhook:
url: https://open.feishu.cn/open-apis/bot/v2/hook/384c78aa-8df1-498b-9c47-04e890ed9877
bean:
recharge:
# url: http://api.homilychart.com/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
consume:
url: http://39.101.133.168:8828/hljwgo/api/wallet/pay
server:
port: 8081

5
src/main/resources/application.yml

@ -103,8 +103,11 @@ file:
upload:
url: http://39.101.133.168:8828/hljw/api/aws/upload
bean:
recharge:
# url: http://api.homilychart.com/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
url: http://39.101.133.168:8828/hljwgo/api/wallet/recharge
consume:
url: http://39.101.133.168:8828/hljwgo/api/wallet/pay
server:
port: 8081

Loading…
Cancel
Save