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>