CRUD各种实现类的总结:

CRUD各种实现类的总结:
(针对queryWrapper可以实现的)
    @Override
    public Integer insertCustomer(ZhCustomer zhCustomer) {
        QueryWrapper<ZhCustomer> queryWrapper = new QueryWrapper<>();
        //根据customerCode判断是否已经存在
        queryWrapper.eq("customer_code",zhCustomer.getCustomerCode());
        ZhCustomer customer = zhCustomerMapper.selectOne(queryWrapper);
        //返回null则是有效用户
        if (customer==null){
            return zhCustomerMapper.insert(zhCustomer);
        }
        return null;
    }

    @Override
    public List<ZhCustomer> selectCustomer() {
       List<ZhCustomer> customers= zhCustomerMapper.selectAll();
        return customers;
    }

    @Override
    public List<ZhCustomer> selectByCustomerByCustomerType(String customerType) {
        //当选择全部业主类型返回空字符串,返回到显示全部的方法中
        if (customerType.equals("")){
            return selectCustomer();
        }
        QueryWrapper<ZhCustomer> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("customer_type",customerType);
        List<ZhCustomer> zhCustomerList = zhCustomerMapper.selectList(queryWrapper);
        return zhCustomerList;
    }

    @Override
    public List<ZhCustomer> selectCustomerByColumnAndValue(String column, String value) {
        QueryWrapper<ZhCustomer> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(column,value);
        List<ZhCustomer> customers = zhCustomerMapper.selectList(queryWrapper);
        return customers;
    }
    @Override
    public Integer UpdateCustomerStatusByCustomerCode(String customerCodes, String status) {
        Integer result = null;
        UpdateWrapper<ZhCustomer>updateWrapper = new UpdateWrapper<>();
        //如果customerCodes包含这个|就为true
        if (customerCodes.contains("|")){//这里多个业主时|作为 业主编码customerCodes的分割符
            //这里对|符号中的内容进行拆封
            String[] split = customerCodes.split("[|]");
            for (int i = 0; i < split.length; i++) {
                UpdateWrapper<ZhCustomer> updateWrapper1 = new UpdateWrapper<>();
                //当有多个业主进行启用或禁用,需要进行修改的status是唯一的,customer_code由多个|进行分割的
                updateWrapper1.set("customer_status", status).eq("customer_code", split[i]);
                result = zhCustomerMapper.update(null, updateWrapper1);
            }
        }
        else {
            //这里条件只有一个物业时
            //先是设置修改,再写对应的条件时
            updateWrapper.set("customer_status",status).eq("customer_code",customerCodes);
            result = zhCustomerMapper.update(null, updateWrapper);
        }
        return result;
    }

    @Override
    public List<ZhCustomer> findAll(CustomerMessage customerMessage) {
        QueryWrapper<ZhCustomer> queryWrapper = new QueryWrapper<>();
        //如果客户录入的查询条件getColumns,getValue都满足进行查询--精准查询
        // 这里判空处理调用StringUtils方法
        if (!StringUtils.isEmpty(customerMessage.getColumns())&&!StringUtils.isEmpty(customerMessage.getValue())){
            queryWrapper.eq(customerMessage.getColumns(),customerMessage.getValue());
        }
        //模糊查寻
        if (!StringUtils.isEmpty(customerMessage.getCustomerType())){//这里判空处理调用StringUtils方法
            queryWrapper.eq("customer_type",customerMessage.getCustomerType());
        }
        List<ZhCustomer> customers= zhCustomerMapper.selectList(queryWrapper);
        return customers;
    }

    @Override
    public Integer insertAll(List<ZhCustomer> customers, String company) {
        Integer result = null;
        if (customers.size()>0){
            for (ZhCustomer customer : customers) {
                customer.setCompany(company);
                result = zhCustomerMapper.insert(customer);
            }
        }
        return result;
    }
    



@Service
public class FcBuildingServiceImpl extends ServiceImpl<FcBuildingMapper, FcBuilding> implements FcBuildingService {
    @Resource
    FcBuildingMapper fcBuildingMapper;

    @Override
    public List<FcBuilding> selectBuilding(Integer buildingNumber, String estateCode) {
        //先创建一个arraysList集合
        List<FcBuilding> fcBuildings = new ArrayList<>();
        //for循环,调用set方法修改属性数据
        for (int i = 0; i < buildingNumber; i++) {
            FcBuilding fcBuilding = new FcBuilding();
            fcBuilding.setBuildingCode(estateCode+"B"+(i+1));
            fcBuilding.setBuildingName("第"+(i+1)+"号");
            fcBuilding.setEstateCode(estateCode);
            //通过循环向表中插入数据。先把数据通过实体类对象调用set方法为其设值,然后调用mapper的插入方法,把实体类对象传入
            fcBuildingMapper.insert(fcBuilding);
            //把前端所需的字段装入集合,返回回显
            fcBuildings.add(fcBuilding);
        }


        return fcBuildings;
    }
    /**
     * updateBuilding 方法名,实现用户数据插入
     * @param fcBuilding 前端传的对象数据
     * @return 返回一个数据类型
     */
    @Override
    public Integer updateBuilding(FcBuilding fcBuilding) {
        Integer insert = fcBuildingMapper.insert(fcBuilding);
        return insert;
    }
    @Override
    public List<FcBuilding> selectBuildingByEstate(String estateCode) {
        QueryWrapper<FcBuilding> wrapper = new QueryWrapper<>();
        wrapper.eq("estate_code",estateCode);
        wrapper.select("building_name","building_code");
        List<FcBuilding> fcBuildings = fcBuildingMapper.selectList(wrapper);
        return fcBuildings;
    }

    @Override
    public List<FcBuilding> selectBuildingByEstateCode(String estateCode) {
        QueryWrapper<FcBuilding> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("estate_code",estateCode);
        List<FcBuilding> fcBuildings = fcBuildingMapper.selectList(queryWrapper);
        return fcBuildings;
    }
}




@Service
public class FcCellServiceImpl extends ServiceImpl<FcCellMapper, FcCell> implements FcCellService {
    @Resource
    FcCellMapper fcCellMapper;
    @Override
    public List<FcCell> insertCell(FcCellMessage fcCellMessage) {
        List<FcCell> fcCells = new ArrayList<>();
        for (int i = 0; i < fcCellMessage.getStopFloor(); i++) {
            for (int j = 0; j < fcCellMessage.getStopCellId(); j++) {
                FcCell fcCell = new FcCell();
                fcCell.setUnitCode(fcCellMessage.getUnitCode());//单元编号--从前端页面中获取
                //添加唯一标识
                fcCell.setCellCode("C"+(i+1)+"0"+(j+1));//房间编码
                fcCell.setCellName((i+1)+"0"+(j+1));//房间名称
                fcCell.setFloorNumber(fcCellMessage.getStopFloor());//楼层数--从前端页面中获取
                fcCellMapper.insert(fcCell);
                fcCells.add(fcCell);
            }
        }
        return fcCells;
    }

    @Override
    public List<FcCell> selectCell(String unitCode) {
        QueryWrapper<FcCell> wrapper = new QueryWrapper<>();
        wrapper.eq("unit_code",unitCode);
        List<FcCell> fcCells = fcCellMapper.selectList(wrapper);
        return fcCells;
    }
}


package com.mashibing.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mashibing.bean.FcEstate;
import com.mashibing.mapper.FcEstateMapper;
import com.mashibing.service.FcEstateService;
import org.springframework.stereotype.Service;

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

/**
 * <p>
 * 楼盘信息 服务实现类
 * </p>
 *
 * @author lian
 * @since 2022-07-02
 */
@Service
public class FcEstateServiceImpl extends ServiceImpl<FcEstateMapper, FcEstate> implements FcEstateService {

    @Resource
    private FcEstateMapper fcEstateMapper;

    @Override

    public List<FcEstate> selectBuildingByEstate(String estateCode) {
        QueryWrapper<FcEstate> wrapper = new QueryWrapper<>();
        QueryWrapper<FcEstate> estate_code = wrapper.eq("estate_code", estateCode);
        List<FcEstate> fcEstates = fcEstateMapper.selectList(estate_code);
        return fcEstates;
    }

    @Override
    public List<FcEstate> selectEstate(String company) {
        QueryWrapper<FcEstate> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("company",company);
        List<FcEstate> fcEstates = fcEstateMapper.selectList(queryWrapper);
        return fcEstates;
    }

    @Override
    public List<FcEstate> selectAllEstate() {
        List<FcEstate> fcEstates = fcEstateMapper.selectAllEstate();
        return fcEstates;
    }

    @Override
    public Integer insterEstate(FcEstate fcEstate) {
        Integer result=0;
        //QueryWrapper<>()的对象,调用eq方法,传入从前端获取的字段进行查询
        QueryWrapper<FcEstate> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("estate_code",fcEstate.getEstateCode());
        //调用selectone方法把字段传入,返回实体类对象
        FcEstate selectOne = fcEstateMapper.selectOne(queryWrapper);
        if (selectOne==null){
            result = fcEstateMapper.insert(fcEstate);
            return result;
        }
        return result;
    }
}

(针对修改mapper可以实现的)
@Override
    public List<TblCompany> Selectlist() {
        //在mybatis的xml中创建SelectCompany()
        return  tblCompanyMapper.SelectCompany();
    }

public interface TblCompanyMapper extends BaseMapper<TblCompany> {
    //简单的实现查询
    @Select("SELECT id,company_full_name FROM tbl_company")
    List<TblCompany> SelectCompany();
}
(传入连个值,创建login方法)
    @Override
    public TblUserRecord login(String username, String password) {

        TblUserRecord login = tblUserRecordMapper.login(username, password);
        return login;
    }
}


mapper的文件通过@Param指定对应名称

public interface TblUserRecordMapper extends BaseMapper<TblUserRecord> {
TblUserRecord login(@Param("username") String username,@Param("password") String password);
}


修改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.mashibing.mapper.TblUserRecordMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.mashibing.bean.TblUserRecord">
        <id column="id" property="id" />
        <result column="user_name" property="userName" />
        <result column="user_password" property="userPassword" />
        <result column="user_type" property="userType" />
        <result column="user_role" property="userRole" />
        <result column="user_gender" property="userGender" />
        <result column="user_dept" property="userDept" />
        <result column="user_job" property="userJob" />
        <result column="user_status" property="userStatus" />
        <result column="office_phone" property="officePhone" />
        <result column="inner_phone" property="innerPhone" />
        <result column="move_phone" property="movePhone" />
        <result column="email" property="email" />
        <result column="is_send_msg" property="isSendMsg" />
        <result column="start_date" property="startDate" />
        <result column="stop_date" property="stopDate" />
        <result column="birthday" property="birthday" />
        <result column="ip_rule" property="ipRule" />
        <result column="user_hiredate" property="userHiredate" />
        <result column="is_send_wchat" property="isSendWchat" />
        <result column="remark" property="remark" />
        <result column="company" property="company" />
        <result column="is_dept_admin" property="isDeptAdmin" />
        <result column="last_login_date" property="lastLoginDate" />
        <result column="create_person" property="createPerson" />
        <result column="create_date" property="createDate" />
    </resultMap>

    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, user_name, user_password, user_type, user_role, user_gender, user_dept, user_job, user_status, office_phone, inner_phone, move_phone, email, is_send_msg, start_date, stop_date, birthday, ip_rule, user_hiredate, is_send_wchat, remark, company, is_dept_admin, last_login_date, create_person, create_date
    </sql>
    
    
    
    <!--此处为自动mybatisplus生成-->
    
    
<!--TblUserRecord login(@Param("username") String username,@Param("password") String password);这里的LoginResultMap名字自拟,关联的字段property不可以重复-->
    <resultMap id="LoginResultMap" type="com.mashibing.bean.TblUserRecord">
        <id column="id" property="id" />
        <result column="user_name" property="userName" />
        <result column="user_password" property="userPassword" />
        <result column="user_type" property="userType" />
        <result column="user_gender" property="userGender" />
        <result column="user_job" property="userJob" />
        <result column="user_status" property="userStatus" />
        <result column="office_phone" property="officePhone" />
        <result column="inner_phone" property="innerPhone" />
        <result column="move_phone" property="movePhone" />
        <result column="email" property="email" />
        <result column="is_send_msg" property="isSendMsg" />
        <result column="start_date" property="startDate" />
        <result column="stop_date" property="stopDate" />
        <result column="birthday" property="birthday" />
        <result column="ip_rule" property="ipRule" />
        <result column="user_hiredate" property="userHiredate" />
        <result column="is_send_wchat" property="isSendWchat" />
        <result column="remark" property="remark" />
        <result column="is_dept_admin" property="isDeptAdmin" />
        <result column="last_login_date" property="lastLoginDate" />
        <result column="create_person" property="createPerson" />
        <result column="create_date" property="createDate" />
    <!--通过id关联,分别关联三张表-->
        <association property="tblRole" javaType="com.mashibing.bean.TblRole">
            <result property="rolePrivileges" column="role_privileges"></result>
        </association>
        <association property="tblDept" javaType="com.mashibing.bean.TblDept">
            <result property="deptPrivileges" column="dept_privileges"></result>
        </association>
        <!--association这里是关联字段,通过id关联-->
        <association property="tblCompany" javaType="com.mashibing.bean.TblCompany">
            <result property="companySimpleName" column="company_simple_name">
            <!--此处第一处实体类TblCompany中需要有companySimpleName,第二处为数据库company_simple_name--></result>
        </association>
    </resultMap>
    
    
     <!--此处为联合查询的sql语句-->
    
    
    <select id="login" resultMap="LoginResultMap" >
        select u.*,
               d.dept_privileges,
               r.role_privileges,
               c.company_simple_name from tbl_user_record u
               left join tbl_role r on u.user_role = r.id
               left join tbl_dept d on u.user_dept = d.id
               left join tbl_company c on u.user_job = c.id
               
    
     <!--此处为通过@param获取的映射字段#{}-->
    
    
        where u.user_name=#{username} and u.user_password=#{password}
    </select>
</mapper>

posted @ 2022-07-11 22:03  爱豆技术部  阅读(72)  评论(0)    收藏  举报