sql模糊查询-记账接口

作者: gu_lao_rou-p 分类: springBoot 发布时间: 2022-02-16 00:09

步骤:

  • 填写req
  • 填写controller层
  • 填写service层
  • hashMap存储返回
  • 填写两个mapper层
  • 填写两个xml层
  • xml模糊查询

逻辑:

通过bookId获得图片与名称,还有花销和类型
通过data判断查询几月的数据

req:

通过bookId获得图片与名称,还有花销和类型

通过bookId获得图片与名称,还有花销和类型
通过data判断查询几月数据
所以req层只需要两个字段

req:

package com.Ren.account.controller.req;

import io.swagger.v3.oas.annotations.media.Schema;

import javax.validation.constraints.NotNull;

/**
 * @author: Gavin
 * @created: 2022/2/13 20:21
 * @description:
 **/
@Schema(description = "账本")
public class BookReq {

    @NotNull(message = "bookId不可为空")
    @Schema(description = "账本id")
    private String bookId;

    @NotNull(message = "日期不可为空")
    @Schema(description = "日期")
    private String date;

    public String getBookId() {
        return bookId;
    }

    public void setBookId(String bookId) {
        this.bookId = bookId;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }
}

controller层:

package com.Ren.account.controller;

import com.Ren.account.controller.req.BookReq;
import com.Ren.account.controller.req.RecordReq;
import com.Ren.account.service.AccountBookService;
import com.Ren.account.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @author: Gavin
 * @created: 2022/2/13 20:17
 * @description:
 **/
@Tag(name = "账本")
@RestController
@RequestMapping("/book")
public class AccountBookController {

    @Resource
    private AccountBookService accountBookService;

    @Operation(summary = "Todo获取账本")
    @PostMapping("/getBook")
    public R def(@RequestBody BookReq req, @RequestHeader String token){
        return R.ok().put("bookInfo", accountBookService.def(req, token));
    }



}

service层:

package com.Ren.account.service;

import com.Ren.account.controller.req.BookReq;
import com.Ren.account.mapper.AccountBookMapper;
import com.Ren.account.mapper.AccountRecordMapper;
import com.Ren.account.util.exception.EmosException;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import sun.security.ssl.Record;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;

/**
 * @author: GULAO
 * @created: 2022/2/15 9:33 下午
 * @description:
 **/
@Service
public class AccountBookService {

    @Resource
    private AccountBookMapper accountBookMapper;

    @Resource
    private AccountRecordMapper accountRecordMapper;

    public HashMap<String, Object> def(BookReq req, String token) {
        if (ObjectUtils.isEmpty(token)) {
            throw new EmosException("没有权限");
        }
        HashMap<String, Object> hashMap = new HashMap<String, Object>();
        hashMap.put("userId", token);
        hashMap.put("bookId", req.getBookId());
        hashMap.put("date", req.getDate());
        hashMap.put("type", true);
        int inc = accountRecordMapper.getRecord(hashMap);
        hashMap.put("type", false);
        int exp = accountRecordMapper.getRecord(hashMap);

        HashMap<String, Object> data = new HashMap<String, Object>();
        data.put("bookInfo", accountBookMapper.getBookInfoById(req.getBookId()));
        data.put("inc", inc);
        data.put("exp", exp);
        return data;

    }
}

mapper层:

package com.Ren.account.mapper;

import com.Ren.account.domain.AccountBook;


import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface AccountBookMapper {


    int createBook(HashMap<String, Object> bookMap);


    HashMap<String, Object> getBookInfoById(String bookId);
}

mapper层:

package com.Ren.account.mapper;

import com.Ren.account.controller.req.RecordReq;
import com.Ren.account.domain.AccountRecord;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface AccountRecordMapper {

    void add(HashMap<String,Object> hashMap);

    int getRecord(HashMap<String, Object> hashMap);
}

xml层:

<?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.Ren.account.mapper.AccountBookMapper">
  <resultMap id="BaseResultMap" type="com.Ren.account.domain.AccountBook">
    <id column="id" property="id" />
    <result column="name" property="name" />
    <result column="avatar" property="avatar" />
    <result column="user_id" property="userId" />
    <result column="status" property="status" />
    <result column="create_time" property="createTime" />
    <result column="update_time" property="updateTime" />
  </resultMap>
 <select id="getBookInfoById" parameterType="String" resultType="java.util.HashMap">
    select name,avatar from account_book where id = #{bookId}
  </select>
</mapper>

xml层:

<?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.Ren.account.mapper.AccountRecordMapper">
  <resultMap id="BaseResultMap" type="com.Ren.account.domain.AccountRecord">
    <id column="id" property="id" />
    <result column="type" property="type" />
    <result column="sig"  property="sig" />
    <result column="name" property="name" />
    <result column="date" property="date" />
    <result column="color" property="color"/>
    <result column="amount" property="amount" />
    <result column="remark" property="remark" />
    <result column="book_id" property="bookId" />
    <result column="user_id" jdbcType="INTEGER" property="userId" />
    <result column="status" property="status" />
    <result column="create_time" property="createTime" />
    <result column="update_time" property="updateTime" />
  </resultMap>
  <select id="getRecord" parameterType="hashmap" resultType="Integer">
    select sum(amount) from account_record where date like '%${date}%' and type=#{type} and book_id = #{bookId} and user_id = #{userId}
  </select>

</mapper>

注意⚠️:

‘%${date}%’通过这句可以模糊查询


Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 26

Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 27

Warning: Undefined variable $aria_req in /www/wwwroot/l.lvovl.cn/wp-content/themes/JieStyle-Two-master/comments.php on line 28
标签云