Browse Source

app改动

master
wangsai 1 week ago
parent
commit
315b6ce675
  1. 4
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/controller/admin/classification/vo/ClassificationRespVO.java
  2. 22
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/controller/app/classification/AppClassificationController.java
  3. 20
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/controller/app/inout/AppInoutController.java
  4. 6
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/dal/mysql/classification/ClassificationMapper.java
  5. 2
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/dal/mysql/inout/InoutMapper.java
  6. 2
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/classification/ClassificationService.java
  7. 10
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/classification/ClassificationServiceImpl.java
  8. 2
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/inout/InoutService.java
  9. 5
      yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/inout/InoutServiceImpl.java
  10. 49
      yudao-module-book/src/main/resources/mapper/classification/ClassificationMapper.xml
  11. 27
      yudao-module-book/src/main/resources/mapper/inout/InoutMapper.xml

4
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/controller/admin/classification/vo/ClassificationRespVO.java

@ -43,4 +43,8 @@ public class ClassificationRespVO {
private List<ClassificationDO> children; private List<ClassificationDO> children;
private Double money;
private Integer num;
} }

22
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/controller/app/classification/AppClassificationController.java

@ -9,11 +9,13 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationPageReqVO; import cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationPageReqVO;
import cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationRespVO; import cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationRespVO;
import cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationSaveReqVO; import cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationSaveReqVO;
import cn.iocoder.yudao.module.book.controller.admin.inout.vo.InoutPageReqVO;
import cn.iocoder.yudao.module.book.dal.dataobject.classification.ClassificationDO; import cn.iocoder.yudao.module.book.dal.dataobject.classification.ClassificationDO;
import cn.iocoder.yudao.module.book.service.classification.ClassificationService; import cn.iocoder.yudao.module.book.service.classification.ClassificationService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -23,7 +25,9 @@ import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -68,4 +72,22 @@ public class AppClassificationController {
return success(map); return success(map);
} }
//统计个人某段时间的支出或收入
@GetMapping("/group-one")
@Operation(summary = "获得个人记账分页")
@PermitAll
public CommonResult<List<ClassificationRespVO>> groupOne(@Valid InoutPageReqVO pageReqVO) {
Long loginUserId = getLoginUserId();
pageReqVO.setUserId(loginUserId);
if(StringUtils.isEmpty(pageReqVO.getUseDateStart())){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");
String format1 = format.format(new Date());
System.out.println(format1);
pageReqVO.setUseDateStart(format1);
pageReqVO.setUseDateEnd(format1);
}
List<ClassificationRespVO> respVOS= classificationService.groupOne(pageReqVO);
return success(respVOS);
}
} }

20
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/controller/app/inout/AppInoutController.java

@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.book.service.inout.InoutService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -23,6 +24,8 @@ import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
@ -89,6 +92,16 @@ public class AppInoutController {
return success(pageResult); return success(pageResult);
} }
@GetMapping("/allList")
@Operation(summary = "获得个人记账分页")
@PermitAll
public CommonResult<List<InoutRespVO>> allList(@Valid InoutPageReqVO pageReqVO) {
Long loginUserId = getLoginUserId();
pageReqVO.setUserId(loginUserId);
List<InoutRespVO> allList = inoutService.allList(pageReqVO);
return success(allList);
}
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出个人记账 Excel") @Operation(summary = "导出个人记账 Excel")
@PreAuthorize("@ss.hasPermission('book:inout:export')") @PreAuthorize("@ss.hasPermission('book:inout:export')")
@ -109,6 +122,13 @@ public class AppInoutController {
public CommonResult<Double> myListTol(@Valid InoutPageReqVO pageReqVO) { public CommonResult<Double> myListTol(@Valid InoutPageReqVO pageReqVO) {
Long loginUserId = getLoginUserId(); Long loginUserId = getLoginUserId();
pageReqVO.setUserId(loginUserId); pageReqVO.setUserId(loginUserId);
if(StringUtils.isEmpty(pageReqVO.getUseDateStart())){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM");
String format1 = format.format(new Date());
System.out.println(format1);
pageReqVO.setUseDateStart(format1);
pageReqVO.setUseDateEnd(format1);
}
Double tol= inoutService.myListTol(pageReqVO); Double tol= inoutService.myListTol(pageReqVO);
return success(tol); return success(tol);
} }

6
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/dal/mysql/classification/ClassificationMapper.java

@ -5,9 +5,11 @@ import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.book.controller.admin.inout.vo.InoutPageReqVO;
import cn.iocoder.yudao.module.book.dal.dataobject.classification.ClassificationDO; import cn.iocoder.yudao.module.book.dal.dataobject.classification.ClassificationDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.book.controller.admin.classification.vo.*; import cn.iocoder.yudao.module.book.controller.admin.classification.vo.*;
import org.apache.ibatis.annotations.Param;
/** /**
* 记账分类 Mapper * 记账分类 Mapper
@ -28,4 +30,8 @@ public interface ClassificationMapper extends BaseMapperX<ClassificationDO> {
.orderByAsc(ClassificationDO::getSn)); .orderByAsc(ClassificationDO::getSn));
} }
List<ClassificationRespVO> groupOne(@Param("query") InoutPageReqVO pageReqVO);
List<ClassificationRespVO> groupOneIn(@Param("query") InoutPageReqVO pageReqVO);
} }

2
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/dal/mysql/inout/InoutMapper.java

@ -37,4 +37,6 @@ public interface InoutMapper extends BaseMapperX<InoutDO> {
IPage<InoutRespVO> myList(IPage<InoutRespVO> page,@Param("query") InoutPageReqVO pageReqVO); IPage<InoutRespVO> myList(IPage<InoutRespVO> page,@Param("query") InoutPageReqVO pageReqVO);
Double myListTol(@Param("query") InoutPageReqVO pageReqVO); Double myListTol(@Param("query") InoutPageReqVO pageReqVO);
List<InoutRespVO> allList(@Param("query") InoutPageReqVO pageReqVO);
} }

2
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/classification/ClassificationService.java

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.book.service.classification;
import java.util.*; import java.util.*;
import javax.validation.*; import javax.validation.*;
import cn.iocoder.yudao.module.book.controller.admin.classification.vo.*; import cn.iocoder.yudao.module.book.controller.admin.classification.vo.*;
import cn.iocoder.yudao.module.book.controller.admin.inout.vo.InoutPageReqVO;
import cn.iocoder.yudao.module.book.dal.dataobject.classification.ClassificationDO; import cn.iocoder.yudao.module.book.dal.dataobject.classification.ClassificationDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageParam;
@ -61,4 +62,5 @@ public interface ClassificationService {
List<ClassificationDO> selectList(ClassificationPageReqVO pageReqVO); List<ClassificationDO> selectList(ClassificationPageReqVO pageReqVO);
List<ClassificationRespVO> groupOne(InoutPageReqVO pageReqVO);
} }

10
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/classification/ClassificationServiceImpl.java

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.book.service.classification;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.book.controller.admin.inout.vo.InoutPageReqVO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -94,4 +95,13 @@ public class ClassificationServiceImpl implements ClassificationService {
return classificationMapper.selectList(lamb); return classificationMapper.selectList(lamb);
} }
@Override
public List<ClassificationRespVO> groupOne(InoutPageReqVO pageReqVO) {
if("in".equals(pageReqVO.getType())){
return classificationMapper.groupOneIn(pageReqVO);
}else {
return classificationMapper.groupOne(pageReqVO);
}
}
} }

2
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/inout/InoutService.java

@ -62,4 +62,6 @@ public interface InoutService {
PageResult<InoutRespVO> myList(InoutPageReqVO pageReqVO); PageResult<InoutRespVO> myList(InoutPageReqVO pageReqVO);
Double myListTol(InoutPageReqVO pageReqVO); Double myListTol(InoutPageReqVO pageReqVO);
List<InoutRespVO> allList(InoutPageReqVO pageReqVO);
} }

5
yudao-module-book/src/main/java/cn/iocoder/yudao/module/book/service/inout/InoutServiceImpl.java

@ -97,4 +97,9 @@ public class InoutServiceImpl implements InoutService {
return inoutMapper.myListTol(pageReqVO); return inoutMapper.myListTol(pageReqVO);
} }
@Override
public List<InoutRespVO> allList(InoutPageReqVO pageReqVO) {
return inoutMapper.allList(pageReqVO);
}
} }

49
yudao-module-book/src/main/resources/mapper/classification/ClassificationMapper.xml

@ -8,5 +8,54 @@
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
--> -->
<select id="groupOne" resultType="cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationRespVO">
SELECT
c2.id, c2.classification_name,IFNULL(SUM( i.money ) ,0) money,count(*) num
FROM
book_inout i
INNER JOIN book_classification c ON i.class_id = c.id
INNER JOIN book_classification c2 ON c.parent_id = c2.id
WHERE
i.deleted = 0
<if test="query!=null">
<if test="null!=query.userId">
and i.creator = #{query.userId}
</if>
<if test="null!=query.type">
and c.type = #{query.type}
</if>
<if test="null!=query.useDateStart">
and DATE_FORMAT(i.use_date, '%Y-%m')>=#{query.useDateStart}
</if>
<if test="null!=query.useDateEnd">
and DATE_FORMAT(i.use_date, '%Y-%m')&lt;=#{query.useDateEnd}
</if>
</if>
GROUP BY c2.id, c2.classification_name
</select>
<select id="groupOneIn" resultType="cn.iocoder.yudao.module.book.controller.admin.classification.vo.ClassificationRespVO">
SELECT
c.id, c.classification_name,IFNULL(SUM( i.money ) ,0) money,count(*) num
FROM
book_inout i
INNER JOIN book_classification c ON i.class_id = c.id
WHERE
i.deleted = 0
<if test="query!=null">
<if test="null!=query.userId">
and i.creator = #{query.userId}
</if>
<if test="null!=query.type">
and c.type = #{query.type}
</if>
<if test="null!=query.useDateStart">
and DATE_FORMAT(i.use_date, '%Y-%m')>=#{query.useDateStart}
</if>
<if test="null!=query.useDateEnd">
and DATE_FORMAT(i.use_date, '%Y-%m')&lt;=#{query.useDateEnd}
</if>
</if>
GROUP BY c.id, c.classification_name
</select>
</mapper> </mapper>

27
yudao-module-book/src/main/resources/mapper/inout/InoutMapper.xml

@ -31,6 +31,29 @@
i.create_time desc i.create_time desc
</select> </select>
<select id="allList" resultType="cn.iocoder.yudao.module.book.controller.admin.inout.vo.InoutRespVO">
SELECT
i.*,
c.classification_name,
c.type
FROM
book_inout i
INNER JOIN book_classification c ON i.class_id = c.id
WHERE
i.deleted = 0
<if test="query!=null">
<if test="null!=query.userId">
and i.creator = #{query.userId}
</if>
<if test="null!=query.type">
and c.type = #{query.type}
</if>
</if>
ORDER BY
i.use_date DESC,
i.create_time desc
</select>
<select id="myListTol" resultType="java.lang.Double"> <select id="myListTol" resultType="java.lang.Double">
SELECT SELECT
IFNULL(SUM( i.money ) ,0) IFNULL(SUM( i.money ) ,0)
@ -47,10 +70,10 @@
and c.type = #{query.type} and c.type = #{query.type}
</if> </if>
<if test="null!=query.useDateStart"> <if test="null!=query.useDateStart">
and DATE_FORMAT(i.use_date, '%Y-%m')>=#{useDateStart} and DATE_FORMAT(i.use_date, '%Y-%m')>=#{query.useDateStart}
</if> </if>
<if test="null!=query.useDateEnd"> <if test="null!=query.useDateEnd">
and DATE_FORMAT(i.use_date, '%Y-%m')&lt;=#{useDateEnd} and DATE_FORMAT(i.use_date, '%Y-%m')&lt;=#{query.useDateEnd}
</if> </if>
</if> </if>
ORDER BY ORDER BY

Loading…
Cancel
Save