From 7bafda6af87dde20d101fe1777e4f13ea7d17f3f Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Fri, 1 Aug 2025 16:43:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?8=E6=9C=881=E6=97=A5=E5=85=85=E5=80=BC?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/bean/BeanAuditController.java | 75 +++++++++++++++++ .../example/demo/domain/vo/bean/BeanAuditInfo.java | 48 +++++++++++ .../java/com/example/demo/domain/vo/coin/Page.java | 1 + .../example/demo/mapper/coin/BeanAuditMapper.java | 31 +++++++ .../demo/service/bean/BeanAuditService.java | 24 ++++++ .../serviceImpl/bean/BeanAuditServiceImpl.java | 81 +++++++++++++++++++ .../serviceImpl/bean/BeanRechargeServiceImpl.java | 8 ++ src/main/resources/mapper/BeanAuditMapper.xml | 94 ++++++++++++++++++++++ 8 files changed, 362 insertions(+) create mode 100644 src/main/java/com/example/demo/controller/bean/BeanAuditController.java create mode 100644 src/main/java/com/example/demo/domain/vo/bean/BeanAuditInfo.java create mode 100644 src/main/java/com/example/demo/mapper/coin/BeanAuditMapper.java create mode 100644 src/main/java/com/example/demo/service/bean/BeanAuditService.java create mode 100644 src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java create mode 100644 src/main/resources/mapper/BeanAuditMapper.xml diff --git a/src/main/java/com/example/demo/controller/bean/BeanAuditController.java b/src/main/java/com/example/demo/controller/bean/BeanAuditController.java new file mode 100644 index 0000000..ac891df --- /dev/null +++ b/src/main/java/com/example/demo/controller/bean/BeanAuditController.java @@ -0,0 +1,75 @@ +package com.example.demo.controller.bean; + +import com.example.demo.domain.vo.bean.BeanAuditInfo; +import com.example.demo.domain.vo.coin.Page; +import com.example.demo.domain.vo.coin.Result; +import com.example.demo.service.bean.BeanAuditService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName BeanAuditController + * @description: + * @author: Double + * @create: 2025−08-01 11:03 + * @Version 1.0 + **/ + +@RestController +@RequestMapping("/beanAudit") +@RequiredArgsConstructor +@Slf4j +@CrossOrigin +public class BeanAuditController { + + @Autowired + private BeanAuditService beanAuditService; + + //审核查找 + @PostMapping("/selectBy") + public Result selectBy(@RequestBody Page page) { + try { + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } else { + if (page.getBeanAuditInfo().getStatus() == null) { + return Result.error("状态不能为空"); + } + return Result.success(beanAuditService.selectBy(page.getPageNum(), page.getPageSize(), page.getBeanAuditInfo())); + } + } catch (Exception e) { + e.printStackTrace(); + return Result.error("请检查筛选数据的格式"); + } + + } + + @PostMapping("/status1") + public Result updateStatus1(@RequestBody BeanAuditInfo beanAuditInfo) { + try { + + return beanAuditService.updateStatus1(beanAuditInfo.getId()); + } catch (Exception e) { + return Result.error("更新失败,查看id"); + } + } + + @PostMapping("/status2") + public Result updateStatus2(@RequestBody BeanAuditInfo beanAuditInfo) { + try { + beanAuditService.updateStatus2(beanAuditInfo.getId()); + return Result.success(); + } catch (Exception e) { + return Result.error("更新失败,查看id"); + } + } +} diff --git a/src/main/java/com/example/demo/domain/vo/bean/BeanAuditInfo.java b/src/main/java/com/example/demo/domain/vo/bean/BeanAuditInfo.java new file mode 100644 index 0000000..32f8011 --- /dev/null +++ b/src/main/java/com/example/demo/domain/vo/bean/BeanAuditInfo.java @@ -0,0 +1,48 @@ +package com.example.demo.domain.vo.bean; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @program: gold-java + * @ClassName BeanAuditInfo + * @description: + * @author: Double + * @create: 2025−08-01 11:33 + * @Version 1.0 + **/ + + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class BeanAuditInfo { + private Long id; // id + private Integer jwcode; // 精网号 + private String name; // 姓名 + private String market; // 所属地区 + private Integer freeBean; // 免费豆 + private Integer permanentBean; // 永久豆 + private String remark; // 备注 + private String submitName; // 提交人名称 + private String auditName; // 审核人名称 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date createTime; //创建时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date auditTime; //审核时间 + private String status; // 状态 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date createStartTime; // 开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date createEndTime; // 结束时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date auditStartTime; // 开始时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private Date auditEndTime; // 结束时间 + private String sortField; // 排序字段 + private String sortOrder; // 排序顺序 +} diff --git a/src/main/java/com/example/demo/domain/vo/coin/Page.java b/src/main/java/com/example/demo/domain/vo/coin/Page.java index dc476be..27e003e 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/Page.java +++ b/src/main/java/com/example/demo/domain/vo/coin/Page.java @@ -36,4 +36,5 @@ public class Page { private BeanConsumeArticle beanConsumeArticle; //文章金豆消费 private BeanRechargeInfo beanRechargeInfo; //金豆充值信息 private BeanConsumeGold beanConsumeGold; //金豆消费合计数 + private BeanAuditInfo beanAuditInfo; //金豆审核信息 } diff --git a/src/main/java/com/example/demo/mapper/coin/BeanAuditMapper.java b/src/main/java/com/example/demo/mapper/coin/BeanAuditMapper.java new file mode 100644 index 0000000..43aa277 --- /dev/null +++ b/src/main/java/com/example/demo/mapper/coin/BeanAuditMapper.java @@ -0,0 +1,31 @@ +package com.example.demo.mapper.coin; + + +import com.example.demo.domain.vo.bean.BeanAuditInfo; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @program: gold-java + * @ClassName BeanAuditMapper + * @description: + * @author: Double + * @create: 2025−08-01 11:44 + * @Version 1.0 + **/ + +@Mapper +public interface BeanAuditMapper { + //查找审核信息 + List selectBy(BeanAuditInfo beanAuditInfo); + + //根据id查询审核信息 + BeanAuditInfo selectById(Long id); + + //根据id更新状态为1 + void updateStatus1(Long id); + + //根据id更新状态为2 + void updateStatus2(Long id); +} diff --git a/src/main/java/com/example/demo/service/bean/BeanAuditService.java b/src/main/java/com/example/demo/service/bean/BeanAuditService.java new file mode 100644 index 0000000..8cdd4f5 --- /dev/null +++ b/src/main/java/com/example/demo/service/bean/BeanAuditService.java @@ -0,0 +1,24 @@ +package com.example.demo.service.bean; + +import com.example.demo.domain.vo.bean.BeanAuditInfo; +import com.example.demo.domain.vo.bean.BeanRechargeInfo; +import com.example.demo.domain.vo.coin.Result; +import com.github.pagehelper.PageInfo; + +/** + * @program: gold-java + * @ClassName BeanAuditService + * @description: + * @author: Double + * @create: 2025−08-01 11:36 + * @Version 1.0 + **/ + +public interface BeanAuditService { + //查找审核信息 + PageInfo selectBy(Integer pageNum, Integer pageSize, BeanAuditInfo beanAuditInfo); + + Result updateStatus1(Long id); + + void updateStatus2(Long id); +} diff --git a/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java new file mode 100644 index 0000000..aa81d00 --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java @@ -0,0 +1,81 @@ +package com.example.demo.serviceImpl.bean; + +import com.example.demo.domain.vo.bean.BeanAuditInfo; +import com.example.demo.domain.vo.bean.BeanRechargeInfo; +import com.example.demo.domain.vo.coin.Result; +import com.example.demo.mapper.coin.BeanAuditMapper; +import com.example.demo.service.bean.BeanAuditService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; + +import java.util.List; +import java.util.UUID; + +/** + * @program: gold-java + * @ClassName BeanAuditServiceImpl + * @description: + * @author: Double + * @create: 2025−08-01 11:37 + * @Version 1.0 + **/ + +@Service +@RequiredArgsConstructor +public class BeanAuditServiceImpl implements BeanAuditService { + + @Autowired + private BeanAuditMapper beanAuditMapper; + + @Autowired + private RestTemplate restTemplate; + + //查找审核信息 + @Override + public PageInfo selectBy(Integer pageNum, Integer pageSize, BeanAuditInfo beanAuditInfo) { + PageHelper.startPage(pageNum, pageSize); + List beanAuditInfos = beanAuditMapper.selectBy(beanAuditInfo); + return new PageInfo<>(beanAuditInfos); + } + + @Transactional + @Override + public Result updateStatus1(Long id) { + BeanAuditInfo beanAuditInfo = beanAuditMapper.selectById(id); + String jwcode = beanAuditInfo.getJwcode().toString(); + String op = "recharge"; // 操作类型(根据实际业务定义,例如"recharge"表示充值) + String content = beanAuditInfo.getRemark(); // 备注作为content参数 + String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号(去除横线) + + // 2. 构建接口URL及参数 + String apiUrl = "http://47.92.148.30:3003/mock/61/hljw/api/user/gold"; + UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(apiUrl) + .queryParam("jwcode", jwcode) + .queryParam("op", op) + .queryParam("gold", beanAuditInfo.getPermanentBean()) + .queryParam("content", content) + .queryParam("order_no", orderNo); + + // 3. 发送GET请求 + ResponseEntity response = restTemplate.getForEntity(urlBuilder.toUriString(), String.class); + + // 4. 处理响应结果 + if (!response.getStatusCode().is2xxSuccessful()) { + return Result.error("远程接口调用失败,状态码:" + response.getStatusCodeValue()); + } + beanAuditMapper.updateStatus1(id); + return Result.success(); + } + + @Override + public void updateStatus2(Long id) { + beanAuditMapper.updateStatus2(id); + } +} diff --git a/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java index 5b31ab8..ca630d1 100644 --- a/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/bean/BeanRechargeServiceImpl.java @@ -4,10 +4,12 @@ import com.example.demo.domain.vo.bean.BeanRecharge; import com.example.demo.domain.vo.bean.BeanRechargeInfo; import com.example.demo.domain.vo.bean.GoldBean; import com.example.demo.domain.vo.coin.Gold; +import com.example.demo.domain.vo.coin.GoldUser; import com.example.demo.domain.vo.coin.RechargeUser; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.bean.BeanRechargeMapper2; import com.example.demo.mapper.coin.BeanRechargeMapper1; +import com.example.demo.mapper.coin.UserMapper; import com.example.demo.mapper.pay.BeanRechargeMapper3; import com.example.demo.service.bean.BeanRechargeService; import com.github.pagehelper.PageHelper; @@ -48,6 +50,8 @@ public class BeanRechargeServiceImpl implements BeanRechargeService { @Autowired private BeanRechargeMapper3 beanRechargeMapper3; + @Autowired + private UserMapper userMapper; //新增金豆 @Override @@ -77,6 +81,10 @@ public class BeanRechargeServiceImpl implements BeanRechargeService { if(recharge.getAdminName() == null || recharge.getAdminName().toString().isEmpty()){ return Result.error("管理员名称不能为空"); } + GoldUser goldUser = userMapper.selectUser(recharge.getJwcode().toString()); + if(goldUser==null){ + return Result.error("用户不存在"); + } beanRechargeMapper1.add(recharge); // String jwcode = recharge.getJwcode().toString(); // String op = "recharge"; // 操作类型(根据实际业务定义,例如"recharge"表示充值) diff --git a/src/main/resources/mapper/BeanAuditMapper.xml b/src/main/resources/mapper/BeanAuditMapper.xml new file mode 100644 index 0000000..affe02d --- /dev/null +++ b/src/main/resources/mapper/BeanAuditMapper.xml @@ -0,0 +1,94 @@ + + + + + + + + + update audit + set audit_status = 1 + where id = #{id} + + + + + update audit + set audit_status = 2 + where id = #{id} + + + + \ No newline at end of file From ef5fd9f17077b593e417ebeb42f767bb543a96eb Mon Sep 17 00:00:00 2001 From: sunjiabei Date: Fri, 1 Aug 2025 17:05:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?8=E6=9C=881=E6=97=A5=E5=85=85=E5=80=BC?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/bean/BeanAuditController.java | 1 + .../controller/bean/BeanRechargeController.java | 2 ++ .../serviceImpl/bean/BeanAuditServiceImpl.java | 29 +++++++++++++++++----- .../serviceImpl/coin/ExportExcelServiceImpl.java | 1 - src/main/resources/application-dev.yml | 2 +- src/main/resources/application-prod.yml | 3 ++- src/main/resources/application-test.yml | 3 ++- src/main/resources/application.yml | 5 ++-- src/main/resources/mapper/BeanAuditMapper.xml | 13 +++++----- 9 files changed, 40 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/example/demo/controller/bean/BeanAuditController.java b/src/main/java/com/example/demo/controller/bean/BeanAuditController.java index ac891df..4ee2860 100644 --- a/src/main/java/com/example/demo/controller/bean/BeanAuditController.java +++ b/src/main/java/com/example/demo/controller/bean/BeanAuditController.java @@ -59,6 +59,7 @@ public class BeanAuditController { return beanAuditService.updateStatus1(beanAuditInfo.getId()); } catch (Exception e) { + e.printStackTrace(); return Result.error("更新失败,查看id"); } } diff --git a/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java b/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java index dc5e00a..47194af 100644 --- a/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java +++ b/src/main/java/com/example/demo/controller/bean/BeanRechargeController.java @@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @program: gold-java * @ClassName BeanRechrageController diff --git a/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java index aa81d00..57b83fe 100644 --- a/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/bean/BeanAuditServiceImpl.java @@ -9,6 +9,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,6 +38,11 @@ public class BeanAuditServiceImpl implements BeanAuditService { @Autowired private RestTemplate restTemplate; + + // 2. 构建接口URL及参数 + @Value("${file.upload.url}") + String apiUrl; + //查找审核信息 @Override public PageInfo selectBy(Integer pageNum, Integer pageSize, BeanAuditInfo beanAuditInfo) { @@ -54,21 +60,32 @@ public class BeanAuditServiceImpl implements BeanAuditService { String content = beanAuditInfo.getRemark(); // 备注作为content参数 String orderNo = UUID.randomUUID().toString().replace("-", ""); // 生成唯一订单号(去除横线) - // 2. 构建接口URL及参数 - String apiUrl = "http://47.92.148.30:3003/mock/61/hljw/api/user/gold"; - UriComponentsBuilder urlBuilder = UriComponentsBuilder.fromHttpUrl(apiUrl) + + UriComponentsBuilder urlBuilder1 = UriComponentsBuilder.fromHttpUrl(apiUrl) + .queryParam("jwcode", jwcode) + .queryParam("op", op) + .queryParam("gold", beanAuditInfo.getFreeBean()) + .queryParam("content", content); + + UriComponentsBuilder urlBuilder2 = UriComponentsBuilder.fromHttpUrl(apiUrl) .queryParam("jwcode", jwcode) .queryParam("op", op) .queryParam("gold", beanAuditInfo.getPermanentBean()) .queryParam("content", content) .queryParam("order_no", orderNo); + // 3. 发送GET请求 + ResponseEntity response1 = restTemplate.getForEntity(urlBuilder1.toUriString(), String.class); + // 4. 处理响应结果 + if (!response1.getStatusCode().is2xxSuccessful()) { + return Result.error("免费远程接口调用失败,状态码:" + response1.getStatusCodeValue()); + } // 3. 发送GET请求 - ResponseEntity response = restTemplate.getForEntity(urlBuilder.toUriString(), String.class); + ResponseEntity response2 = restTemplate.getForEntity(urlBuilder2.toUriString(), String.class); // 4. 处理响应结果 - if (!response.getStatusCode().is2xxSuccessful()) { - return Result.error("远程接口调用失败,状态码:" + response.getStatusCodeValue()); + if (!response2.getStatusCode().is2xxSuccessful()) { + return Result.error("付费远程接口调用失败,状态码:" + response2.getStatusCodeValue()); } beanAuditMapper.updateStatus1(id); return Result.success(); diff --git a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java index 06233fe..29c3499 100644 --- a/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/coin/ExportExcelServiceImpl.java @@ -16,7 +16,6 @@ import com.example.demo.domain.entity.Export; import com.example.demo.domain.entity.User; import com.example.demo.domain.export.Goldmingxi; import com.example.demo.domain.vo.bean.BeanConsumeLive; -import com.example.demo.domain.vo.bean.BeanPage; import com.example.demo.domain.vo.coin.*; import com.example.demo.mapper.coin.ExportMapper; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 041d0b5..9e0b8a1 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -53,7 +53,7 @@ feishu: url: https://open.feishu.cn/open-apis/bot/v2/hook/384c78aa-8df1-498b-9c47-04e890ed9877 server: - port: 10704 + port: 8081 logging: level: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index f1d908d..bd2fa29 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -53,7 +53,8 @@ feishu: webhook: url: https://open.feishu.cn/open-apis/bot/v2/hook/1a515b19-b64f-46b7-9486-35842b9539fe - +bean: + url: http://47.92.148.30:3003/mock/61/hljw/api/user/gold server: port: 8081 diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 482564f..17db5f5 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -53,7 +53,8 @@ feishu: webhook: url: https://open.feishu.cn/open-apis/bot/v2/hook/384c78aa-8df1-498b-9c47-04e890ed9877 - +bean: + url: http://47.92.148.30:3003/mock/61/hljw/api/user/gold server: port: 8081 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e7061c3..67f6b96 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: test + active: dev jackson: deserialization: fail-on-unknown-properties: false @@ -86,7 +86,8 @@ upload: file: upload: url: http://39.101.133.168:8828/hljw/api/aws/upload - +bean: + url: http://47.92.148.30:3003/mock/61/hljw/api/user/gold server: port: 8081 diff --git a/src/main/resources/mapper/BeanAuditMapper.xml b/src/main/resources/mapper/BeanAuditMapper.xml index affe02d..f2ea51d 100644 --- a/src/main/resources/mapper/BeanAuditMapper.xml +++ b/src/main/resources/mapper/BeanAuditMapper.xml @@ -82,13 +82,12 @@ \ No newline at end of file