springBoot后端五层基础写法

实体层

package com.slwvote.system.domain.community;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.slwvote.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.math.BigDecimal;
import java.util.List;
/**
 * 楼栋表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("cu_building")
public class Building extends BaseEntity {
    /**
     * 楼栋ID
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @TableId(value = "building_id")
    private Long buildingId;

    /**
     * 楼栋编码
     */
    private String buildingCode;

    /**
     * 楼栋名称
     */
    private String buildingName;

    /**
     * 楼层数
     */
    private Long floorNumber;

    /**
     * 户数
     */
    private Long households;

    /**
     * 是否有电梯(0:否 1:是)
     */
    private String elevator;

    /**
     * 占地面积
     */
    private BigDecimal buildingSpace;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否删除(0:否 1:是)
     */
    private String delFlag;

    /**
     * 小区ID
     */
    private Long residenceId;

    /**
     * 所属小区
     */
    private Residence residence;

    /**
     * 单元列表
     */
    private List<Unit> units;
}

Mapper层

package com.slwvote.system.mapper.community;

import com.baomidou.mybatisplus.core.conditions.Wrapper;

import com.baomidou.mybatisplus.core.toolkit.Constants;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.slwvote.common.core.mapper.BaseMapperPlus;

import com.slwvote.system.domain.community.Building;

import com.slwvote.system.domain.community.Residence;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**

 * 楼栋表 数据层

 */

@Mapper

public interface BuildingMapper extends BaseMapperPlus<BuildingMapper, Building, Building> {

    /**

     *楼栋分页查询

     *

     * @param page

     * @param wrapper

     * @return

     */

    Page<Building> selectBuildingPageList(@Param("page") Page<Building> page,@Param(Constants.WRAPPER) Wrapper<Object> wrapper);

    /**

     * 楼栋列表查询

     *

     * @param buildingName

     * @Param buildingCode

     * @return null没查到 List<Building>查到了

     */

    List<Building> selectList1(@Param("buildingCode")String buildingCode,@Param("buildingName")String buildingName);

    /**

     * 楼栋ID查询

     *

     * @param id

     * @return null没查到 Building查到了

     */

    Building selectById1(Long id);

    /**

     * 添加楼栋信息

     *

     * @param building

     * @return 0失败 >0成功

     */

    int insert1(Building building);

    /**

     * 批量删除楼栋信息

     *

     * @param id

     * @return 0失败 >0成功

     */

    int deleteById1(Long id);

    /**

     * 修改楼栋信息

     *

     * @param building

     * @return 0失败 >0成功

     */

    int updateById1(Building building);

    /**

     * 通过小区ID查询楼栋信息

     *

     * @param id

     * @return 0没查到 >0查到了

     */

    int selectBuildingByResidenceId(Long id);

}

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.slwvote.system.mapper.community.BuildingMapper">

    <resultMap id="BuildingResult" type="com.slwvote.system.domain.community.Building">

        <id property="buildingId" column="building_id"/>

        <result property="buildingCode" column="building_code"/>

        <result property="buildingName" column="building_name"/>

        <result property="floorNumber" column="floor_number"/>

        <result property="households" column="households"/>

        <result property="elevator" column="elevator"/>

        <result property="buildingSpace" column="building_space"/>

        <result property="remark" column="remark"/>

        <result property="delFlag" column="del_flag"/>

        <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>

    <resultMap id="ResidenceBuildingUnit" type="com.slwvote.system.domain.community.Building">

        <id property="buildingId" column="building_id"/>

        <result property="buildingCode" column="building_code"/>

        <result property="buildingName" column="building_name"/>

        <result property="floorNumber" column="floor_number"/>

        <result property="households" column="households"/>

        <result property="elevator" column="elevator"/>

        <result property="buildingSpace" column="building_space"/>

        <result property="remark" column="remark"/>

        <result property="delFlag" column="del_flag"/>

        <result property="createBy" column="create_by"/>

        <result property="createTime" column="create_time"/>

        <result property="updateBy" column="update_by"/>

        <result property="updateTime" column="update_time"/>

        <association property="residence" javaType="com.slwvote.system.domain.community.Residence">

            <id property="residenceId" column="residence_id"/>

            <result property="residenceCode" column="residence_code"/>

            <result property="residenceName" column="residence_name"/>

            <result property="residenceLocation" column="residence_location"/>

            <result property="residenceAddress" column="residence_address"/>

            <result property="buildingType" column="building_type"/>

            <result property="buildingSpace" column="building_space"/>

            <result property="buildingNumber" column="building_number"/>

            <result property="households" column="households"/>

            <result property="parkingSpace" column="parking_space"/>

            <result property="supportingFacility" column="supporting_facility"/>

            <result property="remark" column="remark"/>

            <result property="delFlag" column="del_flag"/>

            <result property="createBy" column="create_by"/>

            <result property="createTime" column="create_time"/>

            <result property="updateBy" column="update_by"/>

            <result property="updateTime" column="update_time"/>

        </association>

        <collection property="units" ofType="com.slwvote.system.domain.community.Unit">

            <id property="unitId" column="unit_id"/>

            <result property="unitCode" column="unit_code"/>

            <result property="unitName" column="unit_name"/>

            <result property="floorNumber" column="floor_number"/>

            <result property="households" column="households"/>

            <result property="remark" column="remark"/>

            <result property="delFlag" column="del_flag"/>

            <result property="createBy" column="create_by"/>

            <result property="createTime" column="create_time"/>

            <result property="updateBy" column="update_by"/>

            <result property="updateTime" column="update_time"/>

        </collection>

    </resultMap>

    <select id="selectBuildingPageList" resultMap="ResidenceBuildingUnit">

        select  b.building_id,

                b.building_code,

                b.building_name,

                b.floor_number,

                b.households,

                b.elevator,

                b.building_space,

                b.remark,

                b.del_flag,

                b.create_by,

                b.create_time,

                b.update_by,

                b.update_time,

                b.residence_id,

                r.residence_id,

                r.residence_code,

                r.residence_name,

                r.residence_location,

                r.residence_address,

                r.building_type,

                r.building_space,

                r.building_number,

                r.households,

                r.parking_space,

                r.elevator,

                r.supporting_facility,

                r.del_flag,

                r.create_by,

                r.create_time,

                r.update_by,

                r.update_time,

                r.remark,

                u.unit_id,

                u.unit_code,

                u.unit_name,

                u.floor_number,

                u.households,

                u.del_flag,

                u.create_by,

                u.create_time,

                u.update_by,

                u.update_time,

                u.remark,

                u.building_id

        from cu_building b

        left join cu_residence r on b.residence_id = r.residence_id

        left join cu_unit u on u.building_id = b.building_id

        ${ew.getCustomSqlSegment}

    </select>

    <select id="selectList1" resultMap="BuildingResult">

        select * from cu_building

        where del_flag = 0

        <if test=" buildingCode!=null and buildingCode.trim()!='' ">

            and building_code like '%${buildingCode}%'

        </if>

        <if test=" buildingName!=null and buildingName.trim()!='' ">

            and building_name like '%${buildingName}%'

        </if>

        order by create_time desc

    </select>

    <select id="selectById1" resultMap="BuildingResult">

        select * from cu_building where building_id = #{id} and del_flag = 0

    </select>

    <insert id="insert1">

        insert into cu_building(

        <if test=" buildingId!=null and buildingId.trim()!='' ">building_id,</if>

        <if test=" buildingCode!=null and buildingCode.trim()!='' ">building_code,</if>

        <if test=" buildingName!=null and buildingName.trim()!='' ">building_name,</if>

        <if test=" floorNumber!=null and floorNumber.trim()!='' ">floor_number,</if>

        <if test=" households!=null and households.trim()!='' ">households,</if>

        <if test=" elevator!=null and elevator.trim()!='' ">elevator,</if>

        <if test=" buildingSpace!=null and buildingSpace.trim()!='' ">building_space,</if>

        <if test=" remark!=null and remark.trim()!='' ">remark</if>

        ) values(

        <if test=" buildingId!=null and buildingId.trim()!='' ">#{buildingId},</if>

        <if test=" buildingCode!=null and buildingCode.trim()!='' ">#{buildingCode},</if>

        <if test=" buildingName!=null and buildingName.trim()!='' ">#{buildingName},</if>

        <if test=" floorNumber!=null and floorNumber.trim()!='' ">#{floorNumber},</if>

        <if test=" households!=null and households.trim()!='' ">#{households},</if>

        <if test=" elevator!=null and elevator.trim()!='' ">#{elevator},</if>

        <if test=" buildingSpace!=null and buildingSpace.trim()!='' ">#{buildingSpace},</if>

        <if test=" remark!=null and remark.trim()!='' ">#{remark}</if>

        )

    </insert>

    <delete id="deleteById1">

        delete from cu_building where building_id = #{id}

    </delete>

    <update id="updateById1">

        update cu_building

        <set>

            <if test=" buildingCode!=null and buildingCode.trim()!='' ">

                building_code = #{buildingCode},

            </if>

            <if test=" buildingName!=null and buildingName.trim()!='' ">

                building_name = #{buildingName},

            </if>

            <if test=" floorNumber!=null and floorNumber.trim()!='' ">

                floor_number = #{floorNumber},

            </if>

            <if test=" households!=null and households.trim()!='' ">

                households = #{households},

            </if>

            <if test=" elevator!=null and elevator.trim()!='' ">

                elevator = #{elevator},

            </if>

            <if test=" buildingSpace!=null and buildingSpace.trim()!='' ">

                building_space = #{buildingSpace},

            </if>

            <if test=" remark!=null and remark.trim()!='' ">

                remark = #{remark}

            </if>

        </set>

        where building_id = #{id}

    </update>

    <select id="selectBuildingByResidenceId" resultType="java.lang.Integer">

        select count(*) from cu_building where residence_id = #{id}

</select>

</mapper>

service层

package com.slwvote.system.service.community;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.slwvote.common.core.domain.PageQuery;

import com.slwvote.system.domain.community.Building;

import java.util.List;

/**

 * 楼栋表 业务层

 */

public interface BuildingService {

    /**

     * 楼栋分页查询

     *

     * @param pageQuery

     * @param building

     * @return

     */

    Page<Building> selectBuildingPageList(PageQuery pageQuery,Building building);

    /**

     * 楼栋列表查询

     *

     * @param buildingName

     * @Param buildingCode

     * @return

     */

    List<Building> selectBuildingList(String buildingCode,String buildingName);

    /**

     * 楼栋ID查询

     *

     * @param id

     * @return

     */

    Building selectBuildingById(Long id);

    /**

     * 添加楼栋信息

     *

     * @param building

     * @return

     */

    boolean  insertBuilding(Building building);

    /**

     * 按ID删除楼栋信息

     *

     * @param ids

     * @return

     */

    boolean deleteBuildingByIds(Long[] ids);

    /**

     * 修改楼栋信息

     *

     * @param building

     * @return

     */

    boolean  updateBuilding(Building building);

}

serviceImpl层

package com.slwvote.system.service.community.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.slwvote.common.constant.Constants;

import com.slwvote.common.core.domain.PageQuery;

import com.slwvote.system.domain.community.Building;

import com.slwvote.system.mapper.community.BuildingMapper;

import com.slwvote.system.mapper.community.UnitMapper;

import com.slwvote.system.service.community.BuildingService;

import lombok.RequiredArgsConstructor;

import org.springframework.stereotype.Service;

import java.util.List;

/**

 * 楼栋表 业务层实现

 */

@RequiredArgsConstructor

@Service

public class BuildingServiceImpl implements BuildingService {

    private final BuildingMapper buildingMapper;

    private final UnitMapper unitMapper;

    /**

     * 楼栋分页查询

     *

     * @param pageQuery

     * @param building

     * @return

     */

    @Override

    public Page<Building> selectBuildingPageList(PageQuery pageQuery, Building building) {

        Page<Building> page = buildingMapper.selectBuildingPageList(pageQuery.build(),new QueryWrapper<>()

                .eq(building.getBuildingCode()!=null,"building_code",building.getBuildingCode())

                .eq(building.getBuildingName()!=null,"building_name",building.getBuildingName())

                .eq("del_flag", Constants.DEL_EXIST));

        return page;

    }

    /**

     * 楼栋列表查询

     *

     * @param buildingName

     * @Param buildingCode

     * @return 0失败 List成功

     */

    @Override

    public List<Building> selectBuildingList(String buildingCode,String buildingName) {

        return buildingMapper.selectList1(buildingCode,buildingName);

    }

    /**

     * 楼栋ID查询

     *

     * @param id

     * @return 0失败 Building成功

     */

    @Override

    public Building selectBuildingById(Long id) {

        return buildingMapper.selectById1(id);

    }

    /**

     * 添加楼栋信息

     *

     * @param building

     * @return true成功 false失败

     */

    @Override

    public boolean  insertBuilding(Building building) {

        return buildingMapper.insert1(building);

    }

    /**

     * 批量删除楼栋信息

     *

     * @param ids

     * @return true成功 false失败

     */

    @Override

    public boolean deleteBuildingByIds(Long[] ids) {

        //如果ID列表不为空,循环ID

        if(ids != null && ids.length >0 ){

            for(Long id : ids){

                //查询从表有没有数据

                Integer i = unitMapper.selectUnitByBuildingId(id);

                //没有数据直接删除主表

                if (i == null || i == 0) {

                    buildingMapper.deleteById1(id);

                    return true;

                }

            }

        }

        //有数据返回 error

        return false;

    }

    /**

     * 修改楼栋信息

     *

     * @param building

     * @return true成功 false失败

     */

    @Override

    public boolean updateBuilding(Building building) {

        return buildingMapper.updateById1(building);

    }

}

controller层

package com.slwvote.web.controller.community;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.slwvote.common.core.controller.BaseController;

import com.slwvote.common.core.domain.PageQuery;

import com.slwvote.common.core.domain.R;

import com.slwvote.common.core.domain.page.TableDataInfo;

import com.slwvote.system.domain.community.Building;

import com.slwvote.system.service.community.BuildingService;

import lombok.RequiredArgsConstructor;

import org.springframework.web.bind.annotation.*;

import java.util.List;

/**

 * 楼栋表 控制层

 */

@RequiredArgsConstructor

@RestController

@RequestMapping("/community/building")

public class BuildingController extends BaseController {

    private final BuildingService buildingService;

    /**

     * 楼栋分页查询

     *

     * @param pageQuery

     * @param building

     * @return

     */

    @GetMapping("/pageList")

    public TableDataInfo<Building> pageList(PageQuery pageQuery,Building building){

        Page<Building> page = buildingService.selectBuildingPageList(pageQuery,building);

        return TableDataInfo.build(page);

    }

    /**

     * 楼栋列表查询

     *

     * @param buildingName

     * @Param buildingCode

     * @return

     */

    @GetMapping("/list")

    public R<List<Building>> list(String buildingCode,String buildingName){

        return R.ok(buildingService.selectBuildingList(buildingName,buildingCode));

    }

    /**

     * 楼栋ID查询

     *

     * @param id

     * @return

     */

    @GetMapping("/getInfo")

    public R<Building> getInfo(Long id){

        return R.ok(buildingService.selectBuildingById(id));

    }

    /**

     * 添加楼栋信息

     *

     * @param building

     * @return

     */

    @PostMapping("add")

    public R add(Building building){

        return buildingService.insertBuilding(building) ? R.ok() : R.fail();

    }

    /**

     * 修改楼栋信息

     *

     * @param building

     * @return

     */

    @PostMapping("edit")

    public R edit(Building building){

        return buildingService.updateBuilding(building) ? R.ok() : R.fail();

    }

    /**

     * 按ID删除楼栋信息

     *

     * @param ids

     * @return

     */

    @DeleteMapping("/remove")

    public R remove(Long[] ids){

       return buildingService.deleteBuildingByIds(ids) ? R.ok() : R.fail();

    }

}

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值