فهرست منبع

完成基本功能

shenzx 4 ماه پیش
والد
کامیت
4dffee0821
55فایلهای تغییر یافته به همراه1549 افزوده شده و 778 حذف شده
  1. 4 0
      ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
  2. 135 0
      ruoyi-service/src/main/java/com/ruoyi/web/controller/DealInfoController.java
  3. 28 64
      ruoyi-service/src/main/java/com/ruoyi/web/controller/HdInfoController.java
  4. 115 0
      ruoyi-service/src/main/java/com/ruoyi/web/controller/HdQdController.java
  5. 0 112
      ruoyi-service/src/main/java/com/ruoyi/web/controller/HdUserController.java
  6. 115 0
      ruoyi-service/src/main/java/com/ruoyi/web/controller/HdZdController.java
  7. 0 115
      ruoyi-service/src/main/java/com/ruoyi/web/controller/HisZdController.java
  8. 0 109
      ruoyi-service/src/main/java/com/ruoyi/web/controller/UserInfoController.java
  9. 0 124
      ruoyi-service/src/main/java/com/ruoyi/web/controller/UserZdController.java
  10. 155 0
      ruoyi-service/src/main/java/com/ruoyi/web/controller/ZdInfoController.java
  11. 115 0
      ruoyi-service/src/main/java/com/ruoyi/web/controller/ZdUserController.java
  12. 68 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/BillInfo.java
  13. 72 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/DealInfo.java
  14. 3 3
      ruoyi-service/src/main/java/com/ruoyi/web/domain/GrzdVO.java
  15. 49 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/HdQd.java
  16. 35 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/HdZd.java
  17. 16 4
      ruoyi-service/src/main/java/com/ruoyi/web/domain/HisZd.java
  18. 53 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/UserBill.java
  19. 20 17
      ruoyi-service/src/main/java/com/ruoyi/web/domain/UserZd.java
  20. 46 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/ZdInfo.java
  21. 42 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/ZdUser.java
  22. 21 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/dto/GrzdDTO.java
  23. 14 0
      ruoyi-service/src/main/java/com/ruoyi/web/domain/dto/HdZdDTO.java
  24. 18 0
      ruoyi-service/src/main/java/com/ruoyi/web/mapper/DealInfoMapper.java
  25. 4 4
      ruoyi-service/src/main/java/com/ruoyi/web/mapper/HdQdMapper.java
  26. 4 4
      ruoyi-service/src/main/java/com/ruoyi/web/mapper/HdZdMapper.java
  27. 0 16
      ruoyi-service/src/main/java/com/ruoyi/web/mapper/UserZdMapper.java
  28. 21 0
      ruoyi-service/src/main/java/com/ruoyi/web/mapper/ZdInfoMapper.java
  29. 4 4
      ruoyi-service/src/main/java/com/ruoyi/web/mapper/ZdUserMapper.java
  30. 18 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/IDealInfoService.java
  31. 14 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/IHdQdService.java
  32. 0 14
      ruoyi-service/src/main/java/com/ruoyi/web/service/IHdUserService.java
  33. 14 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/IHdZdService.java
  34. 0 14
      ruoyi-service/src/main/java/com/ruoyi/web/service/IHisZdService.java
  35. 0 14
      ruoyi-service/src/main/java/com/ruoyi/web/service/IUserInfoService.java
  36. 0 16
      ruoyi-service/src/main/java/com/ruoyi/web/service/IUserZdService.java
  37. 26 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/IZdInfoService.java
  38. 14 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/IZdUserService.java
  39. 28 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/DealInfoServiceImpl.java
  40. 18 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HdQdServiceImpl.java
  41. 0 18
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HdUserServiceImpl.java
  42. 18 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HdZdServiceImpl.java
  43. 0 18
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HisZdServiceImpl.java
  44. 0 18
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/UserInfoServiceImpl.java
  45. 0 18
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/UserZdServiceImpl.java
  46. 132 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/ZdInfoServiceImpl.java
  47. 18 0
      ruoyi-service/src/main/java/com/ruoyi/web/service/impl/ZdUserServiceImpl.java
  48. 31 0
      ruoyi-service/src/main/resources/mapper/deal/DealInfoMapper.xml
  49. 5 14
      ruoyi-service/src/main/resources/mapper/hd/HdInfoMapper.xml
  50. 8 4
      ruoyi-service/src/main/resources/mapper/hd/HdQdMapper.xml
  51. 17 0
      ruoyi-service/src/main/resources/mapper/hd/HdZdMapper.xml
  52. 0 17
      ruoyi-service/src/main/resources/mapper/his/HisZdMapper.xml
  53. 0 33
      ruoyi-service/src/main/resources/mapper/user/UserZdMapper.xml
  54. 27 0
      ruoyi-service/src/main/resources/mapper/zd/ZdInfoMapper.xml
  55. 4 4
      ruoyi-service/src/main/resources/mapper/zd/ZdUserMapper.xml

+ 4 - 0
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java

@@ -3,6 +3,8 @@ package com.ruoyi;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 /**
  * 启动程序
@@ -10,6 +12,8 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
  * @author ruoyi
  */
 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+@EnableAsync
+@EnableScheduling
 public class RuoYiApplication
 {
     public static void main(String[] args)

+ 135 - 0
ruoyi-service/src/main/java/com/ruoyi/web/controller/DealInfoController.java

@@ -0,0 +1,135 @@
+package com.ruoyi.web.controller;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.web.domain.DealInfo;
+import com.ruoyi.web.service.IDealInfoService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 交易信息Controller
+ * 
+ * @author shenzx
+ * @date 2025-09-23
+ */
+@RestController
+@RequestMapping("/deal/info")
+public class DealInfoController extends BaseController
+{
+    private IDealInfoService dealInfoService;
+    @Autowired
+    public void setDealInfoService(IDealInfoService dealInfoService) {
+        this.dealInfoService = dealInfoService;
+    }
+
+    @GetMapping("grye")
+    @ApiOperation("个人余额")
+    public AjaxResult grye(){
+        return success(dealInfoService.grye());
+    }
+
+    /**
+     * 查询交易信息列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(DealInfo dealInfo)
+    {
+        startPage();
+        QueryWrapper<DealInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(dealInfo);
+        List<DealInfo> dealInfoList = dealInfoService.list(queryWrapper);
+        return getDataTable(dealInfoList);
+    }
+
+    /**
+     * 导出交易信息列表
+     */
+    @Log(title = "交易信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, DealInfo dealInfo)
+    {
+        QueryWrapper<DealInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(dealInfo);
+        List<DealInfo> list = dealInfoService.list(queryWrapper);
+        ExcelUtil<DealInfo> util = new ExcelUtil<>(DealInfo.class);
+        util.exportExcel(response, list, "交易信息数据");
+    }
+
+    /**
+     * 获取交易信息详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(dealInfoService.getById(id));
+    }
+
+    /**
+     * 新增交易信息
+     */
+    @Log(title = "交易信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody DealInfo dealInfo)
+    {
+        dealInfo.setJysj(DateUtils.getNowDate());
+        if ("1".equals(dealInfo.getJyfs())) {
+            BigDecimal grye = dealInfoService.grye();
+            if (grye.compareTo(dealInfo.getAmount()) < 0) throw new RuntimeException("余额不足");
+            dealInfo.setJyzt("1");
+        }
+        else dealInfo.setJyzt("2");
+        dealInfo.setSzlx(getSzlx(dealInfo.getJylx()));
+        dealInfo.setUserId(SecurityUtils.getUserId());
+        dealInfoService.save(dealInfo);
+        return success(dealInfo);
+    }
+
+    private String getSzlx(String jylx){
+        switch (jylx) {
+            case "1": return "1";
+            case "2": return "2";
+        }
+        throw new RuntimeException("未定义的交易类型");
+    }
+
+    /**
+     * 修改交易信息
+     */
+    @Log(title = "交易信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody DealInfo dealInfo)
+    {
+        dealInfoService.updateById(dealInfo);
+        return success(dealInfo);
+    }
+
+    /**
+     * 删除交易信息
+     */
+    @Log(title = "交易信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(dealInfoService.removeByIds(Arrays.asList(ids)));
+    }
+}

+ 28 - 64
ruoyi-service/src/main/java/com/ruoyi/web/controller/HdInfoController.java

@@ -3,17 +3,13 @@ package com.ruoyi.web.controller;
 import java.util.*;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotBlank;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.web.domain.GrzdVO;
-import com.ruoyi.web.domain.HdUser;
-import com.ruoyi.web.domain.HisZd;
-import com.ruoyi.web.service.IHdUserService;
-import com.ruoyi.web.service.IHisZdService;
+import com.ruoyi.web.domain.*;
+import com.ruoyi.web.service.*;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -22,8 +18,6 @@ import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.web.domain.HdInfo;
-import com.ruoyi.web.service.IHdInfoService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.page.TableDataInfo;
 
@@ -44,16 +38,10 @@ public class HdInfoController extends BaseController
         this.hdInfoService = hdInfoService;
     }
 
-    private IHdUserService hdUserService;
+    private IHdQdService hdQdService;
     @Autowired
-    public void setHdUserService(IHdUserService hdUserService) {
-        this.hdUserService = hdUserService;
-    }
-
-    private IHisZdService hisZdService;
-    @Autowired
-    public void setHisZdService(IHisZdService hisZdService) {
-        this.hisZdService = hisZdService;
+    public void setHdQdService(IHdQdService hdQdService) {
+        this.hdQdService = hdQdService;
     }
 
     private HdInfo getHdInfo(Date date){
@@ -62,6 +50,16 @@ public class HdInfoController extends BaseController
         return hdInfoService.getOne(qw);
     }
 
+    @GetMapping("/user/grls")
+    @ApiOperation("个人历史")
+    public AjaxResult grls(){
+        QueryWrapper<HdQd> hqQW = new QueryWrapper<>();
+        hqQW.lambda().eq(HdQd::getUserId,SecurityUtils.getUserId());
+        Set<Long> hdIdSet = hdQdService.list(hqQW).stream().map(HdQd::getFid).collect(Collectors.toSet());
+        if (hdIdSet.isEmpty()) return success(Collections.emptyList());
+        return success(hdInfoService.listByIds(hdIdSet));
+    }
+
     @GetMapping("/user/verify")
     @ApiOperation("校验是否签到")
     public AjaxResult verify(String date) {
@@ -69,9 +67,11 @@ public class HdInfoController extends BaseController
         if(StringUtils.isNotEmpty(date)) hdrq = DateUtils.parseDate(date);
         HdInfo hdInfo = getHdInfo(hdrq);
         if (Objects.isNull(hdInfo)) return success(false);
-        QueryWrapper<HdUser> huQW = new QueryWrapper<>();
-        huQW.lambda().eq(HdUser::getFid,hdInfo.getId()).eq(HdUser::getUserId,SecurityUtils.getUserId());
-        return success(!Objects.isNull(hdUserService.getOne(huQW)));
+        QueryWrapper<HdQd> qw = new QueryWrapper<>();
+        qw.lambda().eq(HdQd::getUserId,SecurityUtils.getUserId()).eq(HdQd::getFid,hdInfo.getId());
+        HdQd hdQd = hdQdService.getOne(qw);
+        if (Objects.isNull(hdQd)) return success(false);
+        return success(true);
     }
 
     @PostMapping("/user/qd")
@@ -85,11 +85,11 @@ public class HdInfoController extends BaseController
             hdInfo.setHdrq(hdrq);
             hdInfoService.save(hdInfo);
         }
-        Long id = hdInfo.getId();
-        HdUser hdUser = new HdUser();
-        hdUser.setFid(id);
-        hdUser.setUserId(SecurityUtils.getUserId());
-        hdUserService.save(hdUser);
+        HdQd hdQd = new HdQd();
+        hdQd.setFid(hdInfo.getId());
+        hdQd.setUserId(SecurityUtils.getUserId());
+        hdQd.setQdsj(DateUtils.getNowDate());
+        hdQdService.save(hdQd);
         return success();
     }
 
@@ -99,45 +99,9 @@ public class HdInfoController extends BaseController
         Date hdrq = DateUtils.getNowDate();
         if(StringUtils.isNotEmpty(date)) hdrq = DateUtils.parseDate(date);
         HdInfo hdInfo = getHdInfo(hdrq);
-        HdUser hdUser = new HdUser();
-        hdUser.setFid(hdInfo.getId());
-        hdUser.setUserId(SecurityUtils.getUserId());
-        QueryWrapper<HdUser> qw = new QueryWrapper<>();
-        qw.setEntity(hdUser);
-        hdUserService.remove(qw);
-        return success();
-    }
-
-    @GetMapping("/user/his")
-    @ApiOperation("历史记录")
-    public TableDataInfo userHis(){
-        QueryWrapper<HdUser> qw = new QueryWrapper<>();
-        qw.lambda().eq(HdUser::getUserId,SecurityUtils.getUserId());
-        List<Long> idList = hdUserService.list(qw).stream().map(HdUser::getFid).collect(Collectors.toList());
-        if (idList.isEmpty()) return getDataTable(new ArrayList<>());
-        startPage();
-        return getDataTable(hdInfoService.listByIds(idList));
-    }
-
-    @GetMapping("/user/grzd")
-    @ApiOperation("个人账单")
-    public TableDataInfo grzd(String ny){
-        startPage();
-        return getDataTable(hdInfoService.grzd(ny));
-    }
-
-    @GetMapping("/user/grzd/{ny}")
-    @ApiOperation("个人账单详情")
-    public AjaxResult grzdDetail(@PathVariable String ny){
-        List<GrzdVO> voList = hdInfoService.grzd(ny);
-        return success(voList.get(0));
-    }
-
-    @PostMapping("/user/grzd/zf")
-    @ApiOperation("个人账单支付")
-    public AjaxResult grzdZf(@RequestBody HisZd hisZd){
-        hisZd.setUserId(SecurityUtils.getUserId());
-        hisZdService.save(hisZd);
+        QueryWrapper<HdQd> qw = new QueryWrapper<>();
+        qw.lambda().eq(HdQd::getUserId,SecurityUtils.getUserId()).eq(HdQd::getFid,hdInfo.getId());
+        hdQdService.remove(qw);
         return success();
     }
 

+ 115 - 0
ruoyi-service/src/main/java/com/ruoyi/web/controller/HdQdController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.web.domain.HdQd;
+import com.ruoyi.web.service.IHdQdService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 活动信息-签到Controller
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@RestController
+@RequestMapping("/hd/qd")
+public class HdQdController extends BaseController
+{
+    private IHdQdService hdQdService;
+    @Autowired
+    public void setHdQdService(IHdQdService hdQdService) {
+        this.hdQdService = hdQdService;
+    }
+
+    /**
+     * 查询活动信息-签到列表
+     */
+    @PreAuthorize("@ss.hasPermi('hd:qd:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(HdQd hdQd)
+    {
+        startPage();
+        QueryWrapper<HdQd> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(hdQd);
+        List<HdQd> hdQdList = hdQdService.list(queryWrapper);
+        return getDataTable(hdQdList);
+    }
+
+    /**
+     * 导出活动信息-签到列表
+     */
+    @PreAuthorize("@ss.hasPermi('hd:qd:export')")
+    @Log(title = "活动信息-签到", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, HdQd hdQd)
+    {
+        QueryWrapper<HdQd> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(hdQd);
+        List<HdQd> list = hdQdService.list(queryWrapper);
+        ExcelUtil<HdQd> util = new ExcelUtil<>(HdQd.class);
+        util.exportExcel(response, list, "活动信息-签到数据");
+    }
+
+    /**
+     * 获取活动信息-签到详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('hd:qd:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(hdQdService.getById(id));
+    }
+
+    /**
+     * 新增活动信息-签到
+     */
+    @PreAuthorize("@ss.hasPermi('hd:qd:add')")
+    @Log(title = "活动信息-签到", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody HdQd hdQd)
+    {
+        hdQdService.save(hdQd);
+        return success(hdQd);
+    }
+
+    /**
+     * 修改活动信息-签到
+     */
+    @PreAuthorize("@ss.hasPermi('hd:qd:edit')")
+    @Log(title = "活动信息-签到", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody HdQd hdQd)
+    {
+        hdQdService.updateById(hdQd);
+        return success(hdQd);
+    }
+
+    /**
+     * 删除活动信息-签到
+     */
+    @PreAuthorize("@ss.hasPermi('hd:qd:remove')")
+    @Log(title = "活动信息-签到", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(hdQdService.removeByIds(Arrays.asList(ids)));
+    }
+}

+ 0 - 112
ruoyi-service/src/main/java/com/ruoyi/web/controller/HdUserController.java

@@ -1,112 +0,0 @@
-package com.ruoyi.web.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.web.domain.HdUser;
-import com.ruoyi.web.service.IHdUserService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-
-/**
- * 活动信息-用户Controller
- * 
- * @author shenzx
- * @date 2025-08-25
- */
-@RestController
-@RequestMapping("/hd/user")
-public class HdUserController extends BaseController
-{
-    @Autowired
-    private IHdUserService hdUserService;
-
-    /**
-     * 查询活动信息-用户列表
-     */
-    @PreAuthorize("@ss.hasPermi('hd:user:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(HdUser hdUser)
-    {
-        startPage();
-        QueryWrapper<HdUser> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(hdUser);
-        List<HdUser> hdUserList = hdUserService.list(queryWrapper);
-        return getDataTable(hdUserList);
-    }
-
-    /**
-     * 导出活动信息-用户列表
-     */
-    @PreAuthorize("@ss.hasPermi('hd:user:export')")
-    @Log(title = "活动信息-用户", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, HdUser hdUser)
-    {
-        QueryWrapper<HdUser> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(hdUser);
-        List<HdUser> list = hdUserService.list(queryWrapper);
-        ExcelUtil<HdUser> util = new ExcelUtil<>(HdUser.class);
-        util.exportExcel(response, list, "活动信息-用户数据");
-    }
-
-    /**
-     * 获取活动信息-用户详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('hd:user:query')")
-    @GetMapping(value = "/{fid}")
-    public AjaxResult getInfo(@PathVariable("fid") Long fid)
-    {
-        return success(hdUserService.getById(fid));
-    }
-
-    /**
-     * 新增活动信息-用户
-     */
-    @PreAuthorize("@ss.hasPermi('hd:user:add')")
-    @Log(title = "活动信息-用户", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody HdUser hdUser)
-    {
-        hdUserService.save(hdUser);
-        return success(hdUser);
-    }
-
-    /**
-     * 修改活动信息-用户
-     */
-    @PreAuthorize("@ss.hasPermi('hd:user:edit')")
-    @Log(title = "活动信息-用户", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody HdUser hdUser)
-    {
-        hdUserService.updateById(hdUser);
-        return success(hdUser);
-    }
-
-    /**
-     * 删除活动信息-用户
-     */
-    @PreAuthorize("@ss.hasPermi('hd:user:remove')")
-    @Log(title = "活动信息-用户", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{fids}")
-    public AjaxResult remove(@PathVariable Long[] fids)
-    {
-        return toAjax(hdUserService.removeByIds(Arrays.asList(fids)));
-    }
-}

+ 115 - 0
ruoyi-service/src/main/java/com/ruoyi/web/controller/HdZdController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.web.domain.HdZd;
+import com.ruoyi.web.service.IHdZdService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 活动信息-账单Controller
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@RestController
+@RequestMapping("/hd/zd")
+public class HdZdController extends BaseController
+{
+    private IHdZdService hdZdService;
+    @Autowired
+    public void setHdZdService(IHdZdService hdZdService) {
+        this.hdZdService = hdZdService;
+    }
+
+    /**
+     * 查询活动信息-账单列表
+     */
+    @PreAuthorize("@ss.hasPermi('hd:zd:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(HdZd hdZd)
+    {
+        startPage();
+        QueryWrapper<HdZd> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(hdZd);
+        List<HdZd> hdZdList = hdZdService.list(queryWrapper);
+        return getDataTable(hdZdList);
+    }
+
+    /**
+     * 导出活动信息-账单列表
+     */
+    @PreAuthorize("@ss.hasPermi('hd:zd:export')")
+    @Log(title = "活动信息-账单", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, HdZd hdZd)
+    {
+        QueryWrapper<HdZd> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(hdZd);
+        List<HdZd> list = hdZdService.list(queryWrapper);
+        ExcelUtil<HdZd> util = new ExcelUtil<>(HdZd.class);
+        util.exportExcel(response, list, "活动信息-账单数据");
+    }
+
+    /**
+     * 获取活动信息-账单详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('hd:zd:query')")
+    @GetMapping(value = "/{hdId}")
+    public AjaxResult getInfo(@PathVariable("hdId") Long hdId)
+    {
+        return success(hdZdService.getById(hdId));
+    }
+
+    /**
+     * 新增活动信息-账单
+     */
+    @PreAuthorize("@ss.hasPermi('hd:zd:add')")
+    @Log(title = "活动信息-账单", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody HdZd hdZd)
+    {
+        hdZdService.save(hdZd);
+        return success(hdZd);
+    }
+
+    /**
+     * 修改活动信息-账单
+     */
+    @PreAuthorize("@ss.hasPermi('hd:zd:edit')")
+    @Log(title = "活动信息-账单", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody HdZd hdZd)
+    {
+        hdZdService.updateById(hdZd);
+        return success(hdZd);
+    }
+
+    /**
+     * 删除活动信息-账单
+     */
+    @PreAuthorize("@ss.hasPermi('hd:zd:remove')")
+    @Log(title = "活动信息-账单", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{hdIds}")
+    public AjaxResult remove(@PathVariable Long[] hdIds)
+    {
+        return toAjax(hdZdService.removeByIds(Arrays.asList(hdIds)));
+    }
+}

+ 0 - 115
ruoyi-service/src/main/java/com/ruoyi/web/controller/HisZdController.java

@@ -1,115 +0,0 @@
-package com.ruoyi.web.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.web.domain.HisZd;
-import com.ruoyi.web.service.IHisZdService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-
-/**
- * 历史记录-账单Controller
- * 
- * @author shenzx
- * @date 2025-08-27
- */
-@RestController
-@RequestMapping("/his/zd")
-public class HisZdController extends BaseController
-{
-    private IHisZdService hisZdService;
-    @Autowired
-    public void setHisZdService(IHisZdService hisZdService) {
-        this.hisZdService = hisZdService;
-    }
-
-    /**
-     * 查询历史记录-账单列表
-     */
-    @PreAuthorize("@ss.hasPermi('his:zd:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(HisZd hisZd)
-    {
-        startPage();
-        QueryWrapper<HisZd> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(hisZd);
-        List<HisZd> hisZdList = hisZdService.list(queryWrapper);
-        return getDataTable(hisZdList);
-    }
-
-    /**
-     * 导出历史记录-账单列表
-     */
-    @PreAuthorize("@ss.hasPermi('his:zd:export')")
-    @Log(title = "历史记录-账单", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, HisZd hisZd)
-    {
-        QueryWrapper<HisZd> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(hisZd);
-        List<HisZd> list = hisZdService.list(queryWrapper);
-        ExcelUtil<HisZd> util = new ExcelUtil<>(HisZd.class);
-        util.exportExcel(response, list, "历史记录-账单数据");
-    }
-
-    /**
-     * 获取历史记录-账单详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('his:zd:query')")
-    @GetMapping(value = "/{ny}")
-    public AjaxResult getInfo(@PathVariable("ny") String ny)
-    {
-        return success(hisZdService.getById(ny));
-    }
-
-    /**
-     * 新增历史记录-账单
-     */
-    @PreAuthorize("@ss.hasPermi('his:zd:add')")
-    @Log(title = "历史记录-账单", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody HisZd hisZd)
-    {
-        hisZdService.save(hisZd);
-        return success(hisZd);
-    }
-
-    /**
-     * 修改历史记录-账单
-     */
-    @PreAuthorize("@ss.hasPermi('his:zd:edit')")
-    @Log(title = "历史记录-账单", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody HisZd hisZd)
-    {
-        hisZdService.updateById(hisZd);
-        return success(hisZd);
-    }
-
-    /**
-     * 删除历史记录-账单
-     */
-    @PreAuthorize("@ss.hasPermi('his:zd:remove')")
-    @Log(title = "历史记录-账单", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{nys}")
-    public AjaxResult remove(@PathVariable String[] nys)
-    {
-        return toAjax(hisZdService.removeByIds(Arrays.asList(nys)));
-    }
-}

+ 0 - 109
ruoyi-service/src/main/java/com/ruoyi/web/controller/UserInfoController.java

@@ -1,109 +0,0 @@
-package com.ruoyi.web.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.web.domain.UserInfo;
-import com.ruoyi.web.service.IUserInfoService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-
-/**
- * 用户信息Controller
- * 
- * @author shenzx
- * @date 2025-08-28
- */
-@RestController
-@RequestMapping("/user/info")
-public class UserInfoController extends BaseController
-{
-    private IUserInfoService userInfoService;
-    @Autowired
-    public void setUserInfoService(IUserInfoService userInfoService) {
-        this.userInfoService = userInfoService;
-    }
-
-    /**
-     * 查询用户信息列表
-     */
-    @GetMapping("/list")
-    public TableDataInfo list(UserInfo userInfo)
-    {
-        startPage();
-        QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(userInfo);
-        List<UserInfo> userInfoList = userInfoService.list(queryWrapper);
-        return getDataTable(userInfoList);
-    }
-
-    /**
-     * 导出用户信息列表
-     */
-    @Log(title = "用户信息", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, UserInfo userInfo)
-    {
-        QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(userInfo);
-        List<UserInfo> list = userInfoService.list(queryWrapper);
-        ExcelUtil<UserInfo> util = new ExcelUtil<>(UserInfo.class);
-        util.exportExcel(response, list, "用户信息数据");
-    }
-
-    /**
-     * 获取用户信息详细信息
-     */
-    @GetMapping(value = "/{userId}")
-    public AjaxResult getInfo(@PathVariable("userId") Long userId)
-    {
-        return success(userInfoService.getById(userId));
-    }
-
-    /**
-     * 新增用户信息
-     */
-    @Log(title = "用户信息", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody UserInfo userInfo)
-    {
-        userInfoService.save(userInfo);
-        return success(userInfo);
-    }
-
-    /**
-     * 修改用户信息
-     */
-    @Log(title = "用户信息", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody UserInfo userInfo)
-    {
-        userInfoService.updateById(userInfo);
-        return success(userInfo);
-    }
-
-    /**
-     * 删除用户信息
-     */
-    @Log(title = "用户信息", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{userIds}")
-    public AjaxResult remove(@PathVariable Long[] userIds)
-    {
-        return toAjax(userInfoService.removeByIds(Arrays.asList(userIds)));
-    }
-}

+ 0 - 124
ruoyi-service/src/main/java/com/ruoyi/web/controller/UserZdController.java

@@ -1,124 +0,0 @@
-package com.ruoyi.web.controller;
-
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletResponse;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.ruoyi.common.utils.SecurityUtils;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.web.domain.UserZd;
-import com.ruoyi.web.service.IUserZdService;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-
-/**
- * 用户信息-账单Controller
- * 
- * @author shenzx
- * @date 2025-09-01
- */
-@RestController
-@RequestMapping("/user/zd")
-public class UserZdController extends BaseController
-{
-    private IUserZdService userZdService;
-    @Autowired
-    public void setUserZdService(IUserZdService userZdService) {
-        this.userZdService = userZdService;
-    }
-
-    @GetMapping("balance")
-    @ApiOperation("余额")
-    public AjaxResult balance(){
-        QueryWrapper<UserZd> qw = new QueryWrapper<>();
-        qw.lambda().eq(UserZd::getUserId, SecurityUtils.getUserId());
-        List<UserZd> list = userZdService.list(qw);
-        if (list.isEmpty()) return success(BigDecimal.ZERO);
-        BigDecimal reduce = list.stream().filter(v -> "1".equals(v.getStatus())).map(UserZd::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
-        return success(reduce);
-    }
-
-    /**
-     * 查询用户信息-账单列表
-     */
-    @GetMapping("/list")
-    public TableDataInfo list(UserZd userZd)
-    {
-        startPage();
-        QueryWrapper<UserZd> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(userZd);
-        List<UserZd> userZdList = userZdService.list(queryWrapper);
-        return getDataTable(userZdList);
-    }
-
-    /**
-     * 导出用户信息-账单列表
-     */
-    @Log(title = "用户信息-账单", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(HttpServletResponse response, UserZd userZd)
-    {
-        QueryWrapper<UserZd> queryWrapper = new QueryWrapper<>();
-        queryWrapper.setEntity(userZd);
-        List<UserZd> list = userZdService.list(queryWrapper);
-        ExcelUtil<UserZd> util = new ExcelUtil<>(UserZd.class);
-        util.exportExcel(response, list, "用户信息-账单数据");
-    }
-
-    /**
-     * 获取用户信息-账单详细信息
-     */
-    @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
-        return success(userZdService.getById(id));
-    }
-
-    /**
-     * 新增用户信息-账单
-     */
-    @Log(title = "用户信息-账单", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody UserZd userZd)
-    {
-        userZdService.save(userZd);
-        return success(userZd);
-    }
-
-    /**
-     * 修改用户信息-账单
-     */
-    @Log(title = "用户信息-账单", businessType = BusinessType.UPDATE)
-    @PutMapping
-    public AjaxResult edit(@RequestBody UserZd userZd)
-    {
-        userZdService.updateById(userZd);
-        return success(userZd);
-    }
-
-    /**
-     * 删除用户信息-账单
-     */
-    @Log(title = "用户信息-账单", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
-        return toAjax(userZdService.removeByIds(Arrays.asList(ids)));
-    }
-}

+ 155 - 0
ruoyi-service/src/main/java/com/ruoyi/web/controller/ZdInfoController.java

@@ -0,0 +1,155 @@
+package com.ruoyi.web.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.web.domain.ZdUser;
+import com.ruoyi.web.domain.dto.GrzdDTO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.web.domain.ZdInfo;
+import com.ruoyi.web.service.IZdInfoService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 账单信息Controller
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@RestController
+@RequestMapping("/zd/info")
+public class ZdInfoController extends BaseController
+{
+    private IZdInfoService zdInfoService;
+    @Autowired
+    public void setZdInfoService(IZdInfoService zdInfoService) {
+        this.zdInfoService = zdInfoService;
+    }
+
+    @GetMapping("grzd")
+    @ApiOperation("个人账单")
+    public AjaxResult grzd(){
+        return success(zdInfoService.grzd());
+    }
+
+    @GetMapping("/grzd/{id}")
+    @ApiOperation("个人账单详情")
+    public AjaxResult grzdDetail(@PathVariable Long id){
+        Optional<GrzdDTO> optional = zdInfoService.grzd().stream().filter(v -> id.equals(v.getId())).findFirst();
+        if (optional.isPresent()) return success(optional.get());
+        return success();
+    }
+
+    @PutMapping("/zfzt/{id}")
+    @ApiOperation("更新支付状态")
+    public AjaxResult updateZfzt(@PathVariable Long id){
+        zdInfoService.updateZfzt(id);
+        return success();
+    }
+
+    @PutMapping("/deal")
+    @ApiOperation("更新交易信息标识")
+    public AjaxResult updateDealId(@RequestBody ZdUser zdUser){
+        zdInfoService.updateDealId(zdUser);
+        return success();
+    }
+
+    @PostMapping("gen")
+    @ApiOperation("生成账单")
+    @Scheduled(cron = "0 0 0 15 * ?")
+    public void gen(){
+        zdInfoService.gen();
+    }
+
+    /**
+     * 查询账单信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('zd:info:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ZdInfo zdInfo)
+    {
+        startPage();
+        QueryWrapper<ZdInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(zdInfo);
+        List<ZdInfo> zdInfoList = zdInfoService.list(queryWrapper);
+        return getDataTable(zdInfoList);
+    }
+
+    /**
+     * 导出账单信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('zd:info:export')")
+    @Log(title = "账单信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ZdInfo zdInfo)
+    {
+        QueryWrapper<ZdInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(zdInfo);
+        List<ZdInfo> list = zdInfoService.list(queryWrapper);
+        ExcelUtil<ZdInfo> util = new ExcelUtil<>(ZdInfo.class);
+        util.exportExcel(response, list, "账单信息数据");
+    }
+
+    /**
+     * 获取账单信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('zd:info:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(zdInfoService.getById(id));
+    }
+
+    /**
+     * 新增账单信息
+     */
+    @PreAuthorize("@ss.hasPermi('zd:info:add')")
+    @Log(title = "账单信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ZdInfo zdInfo)
+    {
+        zdInfoService.save(zdInfo);
+        return success(zdInfo);
+    }
+
+    /**
+     * 修改账单信息
+     */
+    @PreAuthorize("@ss.hasPermi('zd:info:edit')")
+    @Log(title = "账单信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ZdInfo zdInfo)
+    {
+        zdInfoService.updateById(zdInfo);
+        return success(zdInfo);
+    }
+
+    /**
+     * 删除账单信息
+     */
+    @PreAuthorize("@ss.hasPermi('zd:info:remove')")
+    @Log(title = "账单信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(zdInfoService.removeByIds(Arrays.asList(ids)));
+    }
+}

+ 115 - 0
ruoyi-service/src/main/java/com/ruoyi/web/controller/ZdUserController.java

@@ -0,0 +1,115 @@
+package com.ruoyi.web.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.web.domain.ZdUser;
+import com.ruoyi.web.service.IZdUserService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 账单信息-用户Controller
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@RestController
+@RequestMapping("/zd/user")
+public class ZdUserController extends BaseController
+{
+    private IZdUserService zdUserService;
+    @Autowired
+    public void setZdUserService(IZdUserService zdUserService) {
+        this.zdUserService = zdUserService;
+    }
+
+    /**
+     * 查询账单信息-用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('zd:user:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ZdUser zdUser)
+    {
+        startPage();
+        QueryWrapper<ZdUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(zdUser);
+        List<ZdUser> zdUserList = zdUserService.list(queryWrapper);
+        return getDataTable(zdUserList);
+    }
+
+    /**
+     * 导出账单信息-用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('zd:user:export')")
+    @Log(title = "账单信息-用户", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ZdUser zdUser)
+    {
+        QueryWrapper<ZdUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.setEntity(zdUser);
+        List<ZdUser> list = zdUserService.list(queryWrapper);
+        ExcelUtil<ZdUser> util = new ExcelUtil<>(ZdUser.class);
+        util.exportExcel(response, list, "账单信息-用户数据");
+    }
+
+    /**
+     * 获取账单信息-用户详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('zd:user:query')")
+    @GetMapping(value = "/{zdId}")
+    public AjaxResult getInfo(@PathVariable("zdId") Long zdId)
+    {
+        return success(zdUserService.getById(zdId));
+    }
+
+    /**
+     * 新增账单信息-用户
+     */
+    @PreAuthorize("@ss.hasPermi('zd:user:add')")
+    @Log(title = "账单信息-用户", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ZdUser zdUser)
+    {
+        zdUserService.save(zdUser);
+        return success(zdUser);
+    }
+
+    /**
+     * 修改账单信息-用户
+     */
+    @PreAuthorize("@ss.hasPermi('zd:user:edit')")
+    @Log(title = "账单信息-用户", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ZdUser zdUser)
+    {
+        zdUserService.updateById(zdUser);
+        return success(zdUser);
+    }
+
+    /**
+     * 删除账单信息-用户
+     */
+    @PreAuthorize("@ss.hasPermi('zd:user:remove')")
+    @Log(title = "账单信息-用户", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{zdIds}")
+    public AjaxResult remove(@PathVariable Long[] zdIds)
+    {
+        return toAjax(zdUserService.removeByIds(Arrays.asList(zdIds)));
+    }
+}

+ 68 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/BillInfo.java

@@ -0,0 +1,68 @@
+package com.ruoyi.web.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 账单信息对象 bill_info
+ * 
+ * @author shenzx
+ * @date 2025-09-04
+ */
+@EqualsAndHashCode(callSuper = true)
+@TableName(value ="bill_info")
+@Data
+public class BillInfo extends BaseEntity implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 单号 */
+    @Excel(name = "单号")
+    @ApiModelProperty("单号")
+    private String dh;
+
+    /** 交易金额 */
+    @Excel(name = "交易金额")
+    @ApiModelProperty("交易金额")
+    private String amount;
+
+    /** 收支种类 */
+    @Excel(name = "收支种类")
+    @ApiModelProperty("收支种类")
+    private String category;
+
+    /** 收支类型 */
+    @Excel(name = "收支类型")
+    @ApiModelProperty("收支类型")
+    private String type;
+
+    /** 交易状态 */
+    @Excel(name = "交易状态")
+    @ApiModelProperty("交易状态")
+    private String status;
+
+    /** 交易方式 */
+    @Excel(name = "交易方式")
+    @ApiModelProperty("交易方式")
+    private String payMethod;
+
+    /** sys_user表主键 */
+    @Excel(name = "sys_user表主键")
+    @ApiModelProperty("sys_user表主键")
+    private Long userId;
+
+}

+ 72 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/DealInfo.java

@@ -0,0 +1,72 @@
+package com.ruoyi.web.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import lombok.Data;
+
+/**
+ * 交易信息对象 deal_info
+ * 
+ * @author shenzx
+ * @date 2025-09-23
+ */
+@TableName(value ="deal_info")
+@Data
+public class DealInfo implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 交易单号 */
+    @Excel(name = "交易单号")
+    @ApiModelProperty("交易单号")
+    private String dh;
+
+    /** 交易金额 */
+    @Excel(name = "交易金额")
+    @ApiModelProperty("交易金额")
+    private BigDecimal amount;
+
+    /** 交易类型 */
+    @Excel(name = "交易类型")
+    @ApiModelProperty("交易类型")
+    private String jylx;
+
+    /** 交易方式 */
+    @Excel(name = "交易方式")
+    @ApiModelProperty("交易方式")
+    private String jyfs;
+
+    /** 交易时间 */
+    @Excel(name = "交易时间")
+    @ApiModelProperty("交易时间")
+    private Date jysj;
+
+    /** 交易状态 1 已支付 2 已支付待确认 */
+    @Excel(name = "交易状态 1 已支付 2 已支付待确认")
+    @ApiModelProperty("交易状态 1 已支付 2 已支付待确认")
+    private String jyzt;
+
+    /** 收支类型 1 收入 2 支出 */
+    @Excel(name = "收支类型 1 收入 2 支出")
+    @ApiModelProperty("收支类型 1 收入 2 支出")
+    private String szlx;
+
+    private Long userId;
+
+}

+ 3 - 3
ruoyi-service/src/main/java/com/ruoyi/web/domain/GrzdVO.java

@@ -7,12 +7,12 @@ public class GrzdVO {
 
     private String ny;
 
-    private String je;
+    private String money;
 
     private String czzt;
 
-    private String zfzt;
+    private String jezt;
 
-    private String fyzt;
+    private String zfzt;
 
 }

+ 49 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/HdQd.java

@@ -0,0 +1,49 @@
+package com.ruoyi.web.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+
+/**
+ * 活动信息-签到对象 hd_qd
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@TableName(value ="hd_qd")
+@Data
+public class HdQd implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** hd_info表主键 */
+    @Excel(name = "hd_info表主键")
+    @ApiModelProperty("hd_info表主键")
+    private Long fid;
+
+    /** sys_user表主键 */
+    @Excel(name = "sys_user表主键")
+    @ApiModelProperty("sys_user表主键")
+    private Long userId;
+
+    /** 签到时间 */
+    @Excel(name = "签到时间")
+    @ApiModelProperty("签到时间")
+    private Date qdsj;
+
+}

+ 35 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/HdZd.java

@@ -0,0 +1,35 @@
+package com.ruoyi.web.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 活动信息-账单对象 hd_zd
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@TableName(value ="hd_zd")
+@Data
+public class HdZd implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /** hd_info表主键 */
+    @ApiModelProperty("hd_info表主键")
+    private Long hdId;
+
+    /** zd_info表主键 */
+    @ApiModelProperty("zd_info表主键")
+    private Long zdId;
+
+}

+ 16 - 4
ruoyi-service/src/main/java/com/ruoyi/web/domain/HisZd.java

@@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
+import java.math.BigDecimal;
+
 import lombok.Data;
 
 /**
@@ -25,14 +27,24 @@ public class HisZd extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 
+    /** sys_user表主键 */
+    @Excel(name = "sys_user表主键")
+    @ApiModelProperty("sys_user表主键")
+    private Long userId;
+
     /** 年月 */
     @Excel(name = "年月")
     @ApiModelProperty("年月")
     private String ny;
 
-    /** sys_user表主键 */
-    @Excel(name = "sys_user表主键")
-    @ApiModelProperty("sys_user表主键")
-    private Long userId;
+    /** user_zd表主键 */
+    @Excel(name = "user_zd表主键")
+    @ApiModelProperty("user_zd表主键")
+    private Long zdId;
+
+    /** 应支付金额 */
+    @Excel(name = "应支付金额")
+    @ApiModelProperty("应支付金额")
+    private BigDecimal yzfje;
 
 }

+ 53 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/UserBill.java

@@ -0,0 +1,53 @@
+package com.ruoyi.web.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 用户信息-账单对象 user_bill
+ * 
+ * @author shenzx
+ * @date 2025-09-04
+ */
+@EqualsAndHashCode(callSuper = true)
+@TableName(value ="user_bill")
+@Data
+public class UserBill extends BaseEntity implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** sys_user表主键 */
+    @Excel(name = "sys_user表主键")
+    @ApiModelProperty("sys_user表主键")
+    private Long userId;
+
+    /** 年月 */
+    @Excel(name = "年月")
+    @ApiModelProperty("年月")
+    private String ny;
+
+    /** 金额 */
+    @Excel(name = "金额")
+    @ApiModelProperty("金额")
+    private String money;
+
+    /** bill_info表主键 */
+    @Excel(name = "bill_info表主键")
+    @ApiModelProperty("bill_info表主键")
+    private Long billId;
+
+}

+ 20 - 17
ruoyi-service/src/main/java/com/ruoyi/web/domain/UserZd.java

@@ -9,15 +9,13 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
-import java.math.BigDecimal;
-
 import lombok.Data;
 
 /**
  * 用户信息-账单对象 user_zd
  * 
  * @author shenzx
- * @date 2025-09-01
+ * @date 2025-09-03
  */
 @EqualsAndHashCode(callSuper = true)
 @TableName(value ="user_zd")
@@ -32,29 +30,34 @@ public class UserZd extends BaseEntity implements Serializable {
     @TableId(type = IdType.AUTO)
     private Long id;
 
-    /** 单号 */
-    @Excel(name = "单号")
-    @ApiModelProperty("单号")
-    private String dh;
+    /** 收入单号 */
+    @Excel(name = "收入单号")
+    @ApiModelProperty("收入单号")
+    private String srdh;
+
+    /** 收入来源 */
+    @Excel(name = "收入来源")
+    @ApiModelProperty("收入来源")
+    private String srly;
 
     /** 金额 */
     @Excel(name = "金额")
     @ApiModelProperty("金额")
-    private BigDecimal money;
-
-    /** 状态 */
-    @Excel(name = "状态")
-    @ApiModelProperty("状态")
-    private String status;
+    private String money;
 
-    /** 支付类型 */
-    @Excel(name = "支付类型")
-    @ApiModelProperty("支付类型")
-    private String zflx;
+    /** 交易类型 */
+    @Excel(name = "交易类型")
+    @ApiModelProperty("交易类型")
+    private String type;
 
     /** sys_user表主键 */
     @Excel(name = "sys_user表主键")
     @ApiModelProperty("sys_user表主键")
     private Long userId;
 
+    /** 状态 */
+    @Excel(name = "状态")
+    @ApiModelProperty("状态")
+    private String status;
+
 }

+ 46 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/ZdInfo.java

@@ -0,0 +1,46 @@
+package com.ruoyi.web.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 账单信息对象 zd_info
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@TableName(value ="zd_info")
+@Data
+public class ZdInfo implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    @ApiModelProperty("主键")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 金额 */
+    @Excel(name = "金额")
+    @ApiModelProperty("金额")
+    private BigDecimal money;
+
+    /** 账单日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "账单日期", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty("账单日期")
+    private Date zdrq;
+
+}

+ 42 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/ZdUser.java

@@ -0,0 +1,42 @@
+package com.ruoyi.web.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 账单信息-用户对象 zd_user
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@TableName(value ="zd_user")
+@Data
+public class ZdUser implements Serializable {
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** zd_info表主键 */
+    @ApiModelProperty("zd_info表主键")
+    private Long zdId;
+
+    /** sys_user表主键 */
+    @ApiModelProperty("sys_user表主键")
+    private Long userId;
+
+    /** deal_info表主键 */
+    @ApiModelProperty("deal_info表主键")
+    private Long dealId;
+
+}

+ 21 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/dto/GrzdDTO.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.domain.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class GrzdDTO {
+
+    private Long id;
+
+    private BigDecimal money;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date zdrq;
+
+    private String zfzt;
+
+}

+ 14 - 0
ruoyi-service/src/main/java/com/ruoyi/web/domain/dto/HdZdDTO.java

@@ -0,0 +1,14 @@
+package com.ruoyi.web.domain.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class HdZdDTO {
+
+    private Long id;
+
+    private BigDecimal money;
+
+}

+ 18 - 0
ruoyi-service/src/main/java/com/ruoyi/web/mapper/DealInfoMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.DealInfo;
+import org.springframework.stereotype.Repository;
+
+import java.math.BigDecimal;
+
+/**
+ * 交易信息Mapper接口
+ * 
+ * @author shenzx
+ * @date 2025-09-23
+ */
+@Repository
+public interface DealInfoMapper extends BaseMapper<DealInfo> {
+    String grye(Long userId);
+}

+ 4 - 4
ruoyi-service/src/main/java/com/ruoyi/web/mapper/HisZdMapper.java → ruoyi-service/src/main/java/com/ruoyi/web/mapper/HdQdMapper.java

@@ -1,16 +1,16 @@
 package com.ruoyi.web.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.web.domain.HisZd;
+import com.ruoyi.web.domain.HdQd;
 import org.springframework.stereotype.Repository;
 
 /**
- * 历史记录-账单Mapper接口
+ * 活动信息-签到Mapper接口
  * 
  * @author shenzx
- * @date 2025-08-27
+ * @date 2025-09-17
  */
 @Repository
-public interface HisZdMapper extends BaseMapper<HisZd> {
+public interface HdQdMapper extends BaseMapper<HdQd> {
 
 }

+ 4 - 4
ruoyi-service/src/main/java/com/ruoyi/web/mapper/UserInfoMapper.java → ruoyi-service/src/main/java/com/ruoyi/web/mapper/HdZdMapper.java

@@ -1,16 +1,16 @@
 package com.ruoyi.web.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.web.domain.UserInfo;
+import com.ruoyi.web.domain.HdZd;
 import org.springframework.stereotype.Repository;
 
 /**
- * 用户信息Mapper接口
+ * 活动信息-账单Mapper接口
  * 
  * @author shenzx
- * @date 2025-08-28
+ * @date 2025-09-17
  */
 @Repository
-public interface UserInfoMapper extends BaseMapper<UserInfo> {
+public interface HdZdMapper extends BaseMapper<HdZd> {
 
 }

+ 0 - 16
ruoyi-service/src/main/java/com/ruoyi/web/mapper/UserZdMapper.java

@@ -1,16 +0,0 @@
-package com.ruoyi.web.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.web.domain.UserZd;
-import org.springframework.stereotype.Repository;
-
-/**
- * 用户信息-账单Mapper接口
- * 
- * @author shenzx
- * @date 2025-09-01
- */
-@Repository
-public interface UserZdMapper extends BaseMapper<UserZd> {
-
-}

+ 21 - 0
ruoyi-service/src/main/java/com/ruoyi/web/mapper/ZdInfoMapper.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.domain.ZdInfo;
+import com.ruoyi.web.domain.dto.HdZdDTO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 账单信息Mapper接口
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@Repository
+public interface ZdInfoMapper extends BaseMapper<ZdInfo> {
+
+    List<HdZdDTO> selectHdZdList();
+
+}

+ 4 - 4
ruoyi-service/src/main/java/com/ruoyi/web/mapper/HdUserMapper.java → ruoyi-service/src/main/java/com/ruoyi/web/mapper/ZdUserMapper.java

@@ -1,16 +1,16 @@
 package com.ruoyi.web.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.web.domain.HdUser;
+import com.ruoyi.web.domain.ZdUser;
 import org.springframework.stereotype.Repository;
 
 /**
- * 活动信息-用户Mapper接口
+ * 账单信息-用户Mapper接口
  * 
  * @author shenzx
- * @date 2025-08-25
+ * @date 2025-09-17
  */
 @Repository
-public interface HdUserMapper extends BaseMapper<HdUser> {
+public interface ZdUserMapper extends BaseMapper<ZdUser> {
 
 }

+ 18 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/IDealInfoService.java

@@ -0,0 +1,18 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.DealInfo;
+
+import java.math.BigDecimal;
+
+/**
+ * 交易信息Service接口
+ * 
+ * @author shenzx
+ * @date 2025-09-23
+ */
+public interface IDealInfoService extends IService<DealInfo> {
+
+    BigDecimal grye();
+
+}

+ 14 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/IHdQdService.java

@@ -0,0 +1,14 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.HdQd;
+
+/**
+ * 活动信息-签到Service接口
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+public interface IHdQdService extends IService<HdQd> {
+
+}

+ 0 - 14
ruoyi-service/src/main/java/com/ruoyi/web/service/IHdUserService.java

@@ -1,14 +0,0 @@
-package com.ruoyi.web.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.web.domain.HdUser;
-
-/**
- * 活动信息-用户Service接口
- * 
- * @author shenzx
- * @date 2025-08-25
- */
-public interface IHdUserService extends IService<HdUser> {
-
-}

+ 14 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/IHdZdService.java

@@ -0,0 +1,14 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.HdZd;
+
+/**
+ * 活动信息-账单Service接口
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+public interface IHdZdService extends IService<HdZd> {
+
+}

+ 0 - 14
ruoyi-service/src/main/java/com/ruoyi/web/service/IHisZdService.java

@@ -1,14 +0,0 @@
-package com.ruoyi.web.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.web.domain.HisZd;
-
-/**
- * 历史记录-账单Service接口
- * 
- * @author shenzx
- * @date 2025-08-27
- */
-public interface IHisZdService extends IService<HisZd> {
-
-}

+ 0 - 14
ruoyi-service/src/main/java/com/ruoyi/web/service/IUserInfoService.java

@@ -1,14 +0,0 @@
-package com.ruoyi.web.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.web.domain.UserInfo;
-
-/**
- * 用户信息Service接口
- * 
- * @author shenzx
- * @date 2025-08-28
- */
-public interface IUserInfoService extends IService<UserInfo> {
-
-}

+ 0 - 16
ruoyi-service/src/main/java/com/ruoyi/web/service/IUserZdService.java

@@ -1,16 +0,0 @@
-package com.ruoyi.web.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.web.domain.UserZd;
-
-import java.math.BigDecimal;
-
-/**
- * 用户信息-账单Service接口
- * 
- * @author shenzx
- * @date 2025-09-01
- */
-public interface IUserZdService extends IService<UserZd> {
-
-}

+ 26 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/IZdInfoService.java

@@ -0,0 +1,26 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.ZdInfo;
+import com.ruoyi.web.domain.ZdUser;
+import com.ruoyi.web.domain.dto.GrzdDTO;
+
+import java.util.List;
+
+/**
+ * 账单信息Service接口
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+public interface IZdInfoService extends IService<ZdInfo> {
+
+    void gen();
+
+    List<GrzdDTO> grzd();
+
+    void updateZfzt(Long id);
+
+    void updateDealId(ZdUser zdUser);
+
+}

+ 14 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/IZdUserService.java

@@ -0,0 +1,14 @@
+package com.ruoyi.web.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.domain.ZdUser;
+
+/**
+ * 账单信息-用户Service接口
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+public interface IZdUserService extends IService<ZdUser> {
+
+}

+ 28 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/DealInfoServiceImpl.java

@@ -0,0 +1,28 @@
+package com.ruoyi.web.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.stereotype.Service;
+import com.ruoyi.web.mapper.DealInfoMapper;
+import com.ruoyi.web.domain.DealInfo;
+import com.ruoyi.web.service.IDealInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 交易信息Service业务层处理
+ * 
+ * @author shenzx
+ * @date 2025-09-23
+ */
+@Service
+public class DealInfoServiceImpl extends ServiceImpl<DealInfoMapper, DealInfo> implements IDealInfoService {
+
+    @Override
+    public BigDecimal grye() {
+        return Convert.toBigDecimal(this.baseMapper.grye(SecurityUtils.getUserId()));
+    }
+}

+ 18 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HdQdServiceImpl.java

@@ -0,0 +1,18 @@
+package com.ruoyi.web.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.ruoyi.web.mapper.HdQdMapper;
+import com.ruoyi.web.domain.HdQd;
+import com.ruoyi.web.service.IHdQdService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 活动信息-签到Service业务层处理
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@Service
+public class HdQdServiceImpl extends ServiceImpl<HdQdMapper, HdQd> implements IHdQdService {
+
+}

+ 0 - 18
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HdUserServiceImpl.java

@@ -1,18 +0,0 @@
-package com.ruoyi.web.service.impl;
-
-import org.springframework.stereotype.Service;
-import com.ruoyi.web.mapper.HdUserMapper;
-import com.ruoyi.web.domain.HdUser;
-import com.ruoyi.web.service.IHdUserService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * 活动信息-用户Service业务层处理
- * 
- * @author shenzx
- * @date 2025-08-25
- */
-@Service
-public class HdUserServiceImpl extends ServiceImpl<HdUserMapper, HdUser> implements IHdUserService {
-
-}

+ 18 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HdZdServiceImpl.java

@@ -0,0 +1,18 @@
+package com.ruoyi.web.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.ruoyi.web.mapper.HdZdMapper;
+import com.ruoyi.web.domain.HdZd;
+import com.ruoyi.web.service.IHdZdService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 活动信息-账单Service业务层处理
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@Service
+public class HdZdServiceImpl extends ServiceImpl<HdZdMapper, HdZd> implements IHdZdService {
+
+}

+ 0 - 18
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/HisZdServiceImpl.java

@@ -1,18 +0,0 @@
-package com.ruoyi.web.service.impl;
-
-import org.springframework.stereotype.Service;
-import com.ruoyi.web.mapper.HisZdMapper;
-import com.ruoyi.web.domain.HisZd;
-import com.ruoyi.web.service.IHisZdService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * 历史记录-账单Service业务层处理
- * 
- * @author shenzx
- * @date 2025-08-27
- */
-@Service
-public class HisZdServiceImpl extends ServiceImpl<HisZdMapper, HisZd> implements IHisZdService {
-
-}

+ 0 - 18
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/UserInfoServiceImpl.java

@@ -1,18 +0,0 @@
-package com.ruoyi.web.service.impl;
-
-import org.springframework.stereotype.Service;
-import com.ruoyi.web.mapper.UserInfoMapper;
-import com.ruoyi.web.domain.UserInfo;
-import com.ruoyi.web.service.IUserInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * 用户信息Service业务层处理
- * 
- * @author shenzx
- * @date 2025-08-28
- */
-@Service
-public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements IUserInfoService {
-
-}

+ 0 - 18
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/UserZdServiceImpl.java

@@ -1,18 +0,0 @@
-package com.ruoyi.web.service.impl;
-
-import org.springframework.stereotype.Service;
-import com.ruoyi.web.mapper.UserZdMapper;
-import com.ruoyi.web.domain.UserZd;
-import com.ruoyi.web.service.IUserZdService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * 用户信息-账单Service业务层处理
- * 
- * @author shenzx
- * @date 2025-09-01
- */
-@Service
-public class UserZdServiceImpl extends ServiceImpl<UserZdMapper, UserZd> implements IUserZdService {
-
-}

+ 132 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/ZdInfoServiceImpl.java

@@ -0,0 +1,132 @@
+package com.ruoyi.web.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.web.domain.*;
+import com.ruoyi.web.domain.dto.HdZdDTO;
+import com.ruoyi.web.domain.dto.GrzdDTO;
+import com.ruoyi.web.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.web.mapper.ZdInfoMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 账单信息Service业务层处理
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@Service
+public class ZdInfoServiceImpl extends ServiceImpl<ZdInfoMapper, ZdInfo> implements IZdInfoService {
+
+    private IHdZdService hdZdService;
+    @Autowired
+    public void setHdZdService(IHdZdService hdZdService) {
+        this.hdZdService = hdZdService;
+    }
+
+    private IHdQdService hdQdService;
+    @Autowired
+    public void setHdQdService(IHdQdService hdQdService) {
+        this.hdQdService = hdQdService;
+    }
+
+    private IZdUserService zdUserService;
+    @Autowired
+    public void setZdUserService(IZdUserService zdUserService) {
+        this.zdUserService = zdUserService;
+    }
+
+    private IDealInfoService dealInfoService;
+    @Autowired
+    public void setDealInfoService(IDealInfoService dealInfoService) {
+        this.dealInfoService = dealInfoService;
+    }
+
+    @Override
+    public void gen() {
+        List<HdZdDTO> list = this.baseMapper.selectHdZdList();
+        if (list.isEmpty()) return;
+        BigDecimal reduce = list.stream().map(HdZdDTO::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+        ZdInfo zdInfo = new ZdInfo();
+        zdInfo.setMoney(reduce);
+        zdInfo.setZdrq(DateUtils.getNowDate());
+        this.save(zdInfo);
+
+        Set<Long> hdIdSet = list.stream().map(HdZdDTO::getId).collect(Collectors.toSet());
+        List<HdZd> hdZdList = new ArrayList<>();
+        hdIdSet.forEach(v->{
+            HdZd hdZd = new HdZd();
+            hdZd.setHdId(v);
+            hdZd.setZdId(zdInfo.getId());
+            hdZdList.add(hdZd);
+        });
+        hdZdService.saveBatch(hdZdList);
+
+        List<ZdUser> zdUserList = new ArrayList<>();
+        QueryWrapper<HdQd> hqQW = new QueryWrapper<>();
+        hqQW.lambda().select(HdQd::getUserId).in(HdQd::getFid,hdIdSet).groupBy(HdQd::getUserId);
+        hdQdService.list(hqQW).stream().map(HdQd::getUserId).forEach(v->{
+            ZdUser zdUser = new ZdUser();
+            zdUser.setUserId(v);
+            zdUser.setZdId(zdInfo.getId());
+            zdUserList.add(zdUser);
+        });
+        zdUserService.saveBatch(zdUserList);
+    }
+
+    @Override
+    public List<GrzdDTO> grzd() {
+        QueryWrapper<ZdUser> zuQW = new QueryWrapper<>();
+        zuQW.lambda().eq(ZdUser::getUserId, SecurityUtils.getUserId());
+        List<ZdUser> zdUserList = zdUserService.list(zuQW);
+
+        Set<Long> dealIdSet = zdUserList.stream().map(ZdUser::getDealId).collect(Collectors.toSet());
+        if (dealIdSet.isEmpty()) return Collections.emptyList();
+        List<DealInfo> dealInfoList = dealInfoService.listByIds(dealIdSet);
+        Map<Long, String> dealMap = dealInfoList.stream().collect(Collectors.toMap(DealInfo::getId, DealInfo::getJyzt));
+        Map<Long, ZdUser> map = zdUserList.stream().collect(Collectors.toMap(ZdUser::getZdId, v->v));
+
+        Set<Long> zdIdSet = zdUserList.stream().map(ZdUser::getZdId).collect(Collectors.toSet());
+        if (zdIdSet.isEmpty()) return Collections.emptyList();
+        List<ZdInfo> zdInfoList = this.listByIds(zdIdSet);
+        List<GrzdDTO> grzdDTOList = new ArrayList<>();
+        zdInfoList.forEach(v->{
+            Long zdId = v.getId();
+            GrzdDTO grzdDTO = new GrzdDTO();
+            grzdDTO.setId(zdId);
+            grzdDTO.setZdrq(v.getZdrq());
+            ZdUser zdUser = map.get(zdId);
+            if(Objects.isNull(zdUser.getDealId())) grzdDTO.setZfzt("0");
+            else grzdDTO.setZfzt(dealMap.get(zdUser.getDealId()));
+            grzdDTO.setMoney(v.getMoney());
+            grzdDTOList.add(grzdDTO);
+        });
+        return grzdDTOList;
+    }
+
+    @Override
+    public void updateZfzt(Long id) {
+        QueryWrapper<ZdUser> zuQW = new QueryWrapper<>();
+        zuQW.lambda().eq(ZdUser::getUserId, SecurityUtils.getUserId()).eq(ZdUser::getZdId,id);
+        ZdUser zdUser = zdUserService.getOne(zuQW);
+        DealInfo dealInfo = dealInfoService.getById(zdUser.getDealId());
+        dealInfo.setJyzt("2");
+        dealInfoService.updateById(dealInfo);
+    }
+
+    @Override
+    public void updateDealId(ZdUser dto) {
+        QueryWrapper<ZdUser> zuQW = new QueryWrapper<>();
+        zuQW.lambda().eq(ZdUser::getZdId,dto.getZdId()).eq(ZdUser::getUserId,SecurityUtils.getUserId());
+        ZdUser zdUser = zdUserService.getOne(zuQW);
+        zdUser.setDealId(dto.getDealId());
+        zdUserService.updateById(zdUser);
+    }
+}

+ 18 - 0
ruoyi-service/src/main/java/com/ruoyi/web/service/impl/ZdUserServiceImpl.java

@@ -0,0 +1,18 @@
+package com.ruoyi.web.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.ruoyi.web.mapper.ZdUserMapper;
+import com.ruoyi.web.domain.ZdUser;
+import com.ruoyi.web.service.IZdUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 账单信息-用户Service业务层处理
+ * 
+ * @author shenzx
+ * @date 2025-09-17
+ */
+@Service
+public class ZdUserServiceImpl extends ServiceImpl<ZdUserMapper, ZdUser> implements IZdUserService {
+
+}

+ 31 - 0
ruoyi-service/src/main/resources/mapper/deal/DealInfoMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.web.mapper.DealInfoMapper">
+    
+    <resultMap type="DealInfo" id="DealInfoResult">
+        <result property="id"    column="id"    />
+        <result property="dh"    column="dh"    />
+        <result property="amount"    column="amount"    />
+        <result property="jylx"    column="jylx"    />
+        <result property="jyfs"    column="jyfs"    />
+        <result property="jysj"    column="jysj"    />
+        <result property="jyzt"    column="jyzt"    />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,
+        dh,
+        amount,
+        jylx,
+        jyfs,
+        jysj,
+        jyzt
+    </sql>
+
+    <select id="grye" resultType="string">
+        select COALESCE(sum(case when szlx = '1' and jyzt = '1' then amount end),0) - COALESCE(sum(case when szlx = '2' and jyfs = '1' then amount end),0) from deal_info where user_id = #{userId}
+    </select>
+
+</mapper>

+ 5 - 14
ruoyi-service/src/main/resources/mapper/hd/HdInfoMapper.xml

@@ -15,10 +15,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <resultMap id="grzdResultMap" type="GrzdVO">
         <result property="ny" column="ny" />
-        <result property="je" column="je" />
+        <result property="money" column="money" />
         <result property="czzt" column="czzt" />
+        <result property="jezt" column="jezt" />
         <result property="zfzt" column="zfzt" />
-        <result property="fyzt" column="fyzt" />
     </resultMap>
 
     <sql id="Base_Column_List">
@@ -31,20 +31,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="grzd" resultMap="grzdResultMap">
-        with zd as (
-        select
-        to_char(hdrq,'YYYY-MM') ny,
-        round(coalesce(sum(total_cost / (select count(*) from hd_user where fid = info.id)),0),2) je,
-        case when to_char(hdrq,'YYYY-MM') = to_char(CURRENT_DATE,'YYYY-MM') then 0 else 1 end czzt,
-        case when count(*) = count(total_cost) then 1 else 0 end fyzt
-        from hd_info info
+        select * from v_his_zd
         <where>
-            and id in (select fid from hd_user where user_id = #{userId})
-            <if test="ny != null and ny != ''"> and to_char(hdrq,'YYYY-MM') = #{ny} </if>
+            and user_id = #{userId}
+            <if test="ny != null and ny != ''"> and ny = #{ny} </if>
         </where>
-        group by to_char(hdrq,'YYYY-MM')
-        )
-        select *,(select count(*) from his_zd where ny = zd.ny) zfzt from zd
     </select>
 
 </mapper>

+ 8 - 4
ruoyi-service/src/main/resources/mapper/user/UserInfoMapper.xml → ruoyi-service/src/main/resources/mapper/hd/HdQdMapper.xml

@@ -2,16 +2,20 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.web.mapper.UserInfoMapper">
+<mapper namespace="com.ruoyi.web.mapper.HdQdMapper">
     
-    <resultMap type="UserInfo" id="UserInfoResult">
+    <resultMap type="HdQd" id="HdQdResult">
+        <result property="id"    column="id"    />
+        <result property="fid"    column="fid"    />
         <result property="userId"    column="user_id"    />
-        <result property="money"    column="money"    />
+        <result property="qdsj"    column="qdsj"    />
     </resultMap>
 
     <sql id="Base_Column_List">
+        id,
+        fid,
         user_id,
-        money
+        qdsj
     </sql>
 
 </mapper>

+ 17 - 0
ruoyi-service/src/main/resources/mapper/hd/HdZdMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.web.mapper.HdZdMapper">
+    
+    <resultMap type="HdZd" id="HdZdResult">
+        <result property="hdId"    column="hd_id"    />
+        <result property="zdId"    column="zd_id"    />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        hd_id,
+        zd_id
+    </sql>
+
+</mapper>

+ 0 - 17
ruoyi-service/src/main/resources/mapper/his/HisZdMapper.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.web.mapper.HisZdMapper">
-    
-    <resultMap type="HisZd" id="HisZdResult">
-        <result property="ny"    column="ny"    />
-        <result property="userId"    column="user_id"    />
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        ny,
-        user_id
-    </sql>
-
-</mapper>

+ 0 - 33
ruoyi-service/src/main/resources/mapper/user/UserZdMapper.xml

@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.web.mapper.UserZdMapper">
-    
-    <resultMap type="UserZd" id="UserZdResult">
-        <result property="id"    column="id"    />
-        <result property="dh"    column="dh"    />
-        <result property="money"    column="money"    />
-        <result property="status"    column="status"    />
-        <result property="zflx"    column="zflx"    />
-        <result property="userId"    column="user_id"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        id,
-        dh,
-        money,
-        status,
-        zflx,
-        user_id,
-        create_by,
-        create_time,
-        update_by,
-        update_time
-    </sql>
-
-</mapper>

+ 27 - 0
ruoyi-service/src/main/resources/mapper/zd/ZdInfoMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.web.mapper.ZdInfoMapper">
+    
+    <resultMap type="ZdInfo" id="ZdInfoResult">
+        <result property="id"    column="id"    />
+        <result property="money"    column="money"    />
+        <result property="zdrq"    column="zdrq"    />
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,
+        money,
+        zdrq
+    </sql>
+
+    <select id="selectHdZdList" resultType="HdZdDTO">
+        select
+            id,
+            round(COALESCE(total_cost / case when (select count(*) from hd_qd where fid = info.id) = 0 then null else (select count(*) from hd_qd where fid = info.id) end,0),2) money
+        from hd_info info
+        where total_cost is not null and id not in (select hd_id from hd_zd group by hd_id)
+    </select>
+
+</mapper>

+ 4 - 4
ruoyi-service/src/main/resources/mapper/hd/HdUserMapper.xml → ruoyi-service/src/main/resources/mapper/zd/ZdUserMapper.xml

@@ -2,15 +2,15 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.web.mapper.HdUserMapper">
+<mapper namespace="com.ruoyi.web.mapper.ZdUserMapper">
     
-    <resultMap type="HdUser" id="HdUserResult">
-        <result property="fid"    column="fid"    />
+    <resultMap type="ZdUser" id="ZdUserResult">
+        <result property="zdId"    column="zd_id"    />
         <result property="userId"    column="user_id"    />
     </resultMap>
 
     <sql id="Base_Column_List">
-        fid,
+        zd_id,
         user_id
     </sql>