苦尽甘来 一个月学通JavaWeb(四十五 WMS系统)
夜光序言:
深窗雨帘,我独倚凭栏,不是等待你回来,而是目送你远去。
正文:
package com.ken.wms.common.service.Interface;
import com.ken.wms.domain.Customer;
import com.ken.wms.exception.CustomerManageServiceException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 客户信息管理 service
*
* @author Ken / Yeguang / Genius Team
*/
public interface CustomerManageService {
/**
* 返回指定customer id 的客户记录
*
* @param customerId 客户ID
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectById(Integer customerId) throws CustomerManageServiceException;
/**
* 返回指定 customer name 的客户记录
* 支持查询分页以及模糊查询
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @param customerName 客户的名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(int offset, int limit, String customerName) throws CustomerManageServiceException;
/**
* 返回指定 customer Name 的客户记录
* 支持模糊查询
*
* @param customerName 客户名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(String customerName) throws CustomerManageServiceException;
/**
* 分页查询客户的记录
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(int offset, int limit) throws CustomerManageServiceException;
/**
* 查询所有客户的记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll() throws CustomerManageServiceException;
/**
* 添加客户信息
*
* @param customer 客户信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean addCustomer(Customer customer) throws CustomerManageServiceException;
/**
* 更新客户信息
*
* @param customer 客户信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean updateCustomer(Customer customer) throws CustomerManageServiceException;
/**
* 删除客户信息
*
* @param customerId 客户ID
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean deleteCustomer(Integer customerId) throws CustomerManageServiceException;
/**
* 从文件中导入客户信息
*
* @param file 导入信息的文件
* @return 返回一个Map,其中:key为total代表导入的总记录数,key为available代表有效导入的记录数
*/
Map<String, Object> importCustomer(MultipartFile file) throws CustomerManageServiceException;
/**
* 导出客户信息到文件中
*
* @param customers 包含若干条 customer 信息的 List
* @return Excel 文件
*/
File exportCustomer(List<Customer> customers);
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.domain.Goods;
import com.ken.wms.exception.GoodsManageServiceException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 货物信息管理 service
*
* @author Ken / Yeguang / Genius Team
*/
public interface GoodsManageService {
/**
* 返回指定goods ID 的货物记录
*
* @param goodsId 货物ID
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectById(Integer goodsId) throws GoodsManageServiceException;
/**
* 返回指定 goods name 的货物记录
* 支持查询分页以及模糊查询
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @param goodsName 货物的名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(int offset, int limit, String goodsName) throws GoodsManageServiceException;
/**
* 返回指定 goods name 的货物记录
* 支持模糊查询
*
* @param goodsName 货物名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(String goodsName) throws GoodsManageServiceException;
/**
* 分页查询货物记录
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(int offset, int limit) throws GoodsManageServiceException;
/**
* 查询所有的货物记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll() throws GoodsManageServiceException;
/**
* 添加货物记录
*
* @param goods 货物信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean addGoods(Goods goods) throws GoodsManageServiceException;
/**
* 更新货物记录
*
* @param goods 供应商信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean updateGoods(Goods goods) throws GoodsManageServiceException;
/**
* 删除货物记录
*
* @param goodsId 货物ID
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean deleteGoods(Integer goodsId) throws GoodsManageServiceException;
/**
* 从文件中导入货物信息
*
* @param file 导入信息的文件
* @return 返回一个Map,其中:key为total代表导入的总记录数,key为available代表有效导入的记录数
*/
Map<String, Object> importGoods(MultipartFile file) throws GoodsManageServiceException;
/**
* 导出货物信息到文件中
*
* @param goods 包含若干条 Supplier 信息的 List
* @return excel 文件
*/
File exportGoods(List<Goods> goods);
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.domain.RepositoryAdmin;
import com.ken.wms.exception.RepositoryAdminManageServiceException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 仓库管理员管理 service
*
* @author Ken / Yeguang / Genius Team
*/
public interface RepositoryAdminManageService {
/**
* 返回指定repository id 的仓库管理员记录
*
* @param repositoryAdminID 仓库管理员ID
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByID(Integer repositoryAdminID) throws RepositoryAdminManageServiceException;
/**
* 返回所属指定 repositoryID 的仓库管理员信息
*
* @param repositoryID 仓库ID 其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
* @return 返回一个Map,
*/
Map<String, Object> selectByRepositoryID(Integer repositoryID) throws RepositoryAdminManageServiceException;
/**
* 返回指定 repository address 的仓库管理员记录
* 支持查询分页以及模糊查询
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @param name 仓库管理员的名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(int offset, int limit, String name);
/**
* 返回指定 repository Name 的仓库管理员记录
* 支持模糊查询
*
* @param name 仓库管理员名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(String name);
/**
* 分页查询仓库管理员的记录
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(int offset, int limit) throws RepositoryAdminManageServiceException;
/**
* 查询所有仓库管理员的记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll() throws RepositoryAdminManageServiceException;
/**
* 添加仓库管理员信息
*
* @param repositoryAdmin 仓库管理员信息
* @return 返回一个boolean值,值为true代表添加成功,否则代表失败
*/
boolean addRepositoryAdmin(RepositoryAdmin repositoryAdmin) throws RepositoryAdminManageServiceException;
/**
* 更新仓库管理员信息
*
* @param repositoryAdmin 仓库管理员信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean updateRepositoryAdmin(RepositoryAdmin repositoryAdmin) throws RepositoryAdminManageServiceException;
/**
* 删除仓库管理员信息
*
* @param repositoryAdminID 仓库管理员ID
* @return 返回一个boolean值,值为true代表删除成功,否则代表失败
*/
boolean deleteRepositoryAdmin(Integer repositoryAdminID) throws RepositoryAdminManageServiceException;
/**
* 为仓库管理员指派指定 ID 的仓库
*
* @param repositoryAdminID 仓库管理员ID
* @param repositoryID 所指派的仓库ID
* @return 返回一个 boolean 值,值为 true 表示仓库指派成功,否则表示失败
*/
boolean assignRepository(Integer repositoryAdminID, Integer repositoryID) throws RepositoryAdminManageServiceException;
/**
* 从文件中导入仓库管理员信息
*
* @param file 导入信息的文件
* @return 返回一个Map,其中:key为total代表导入的总记录数,key为available代表有效导入的记录数
*/
Map<String, Object> importRepositoryAdmin(MultipartFile file) throws RepositoryAdminManageServiceException;
/**
* 导出仓库管理员信息到文件中
*
* @param repositoryAdmins 包含若干条 repository 信息的 List
* @return Excel 文件
*/
File exportRepositoryAdmin(List<RepositoryAdmin> repositoryAdmins);
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.domain.Repository;
import com.ken.wms.exception.RepositoryManageServiceException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 仓库信息管理 service
*
* @author Ken / Yeguang / Genius Team
*/
public interface RepositoryService {
/**
* 返回指定 repository ID 的仓库记录
*
* @param repositoryId 仓库ID
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectById(Integer repositoryId) throws RepositoryManageServiceException;
/**
* 返回指定 repository address 的仓库记录
* 支持查询分页以及模糊查询
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @param address 仓库的地址
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByAddress(int offset, int limit, String address) throws RepositoryManageServiceException;
/**
* 返回指定 repository address 的仓库记录
* 支持模糊查询
*
* @param address 仓库名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByAddress(String address) throws RepositoryManageServiceException;
/**
* 分页查询仓库记录
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(int offset, int limit) throws RepositoryManageServiceException;
/**
* 查询所有的仓库记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll() throws RepositoryManageServiceException;
/**
* 查询所有未指派仓库管理员的仓库记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectUnassign() throws RepositoryManageServiceException;
/**
* 添加仓库记录
*
* @param repository 仓库信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean addRepository(Repository repository) throws RepositoryManageServiceException;
/**
* 更新仓库记录
*
* @param repository 仓库信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean updateRepository(Repository repository) throws RepositoryManageServiceException;
/**
* 删除仓库记录
*
* @param repositoryId 仓库ID
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean deleteRepository(Integer repositoryId) throws RepositoryManageServiceException;
/**
* 从文件中导入仓库信息
*
* @param file 导入信息的文件
* @return 返回一个Map,其中:key为total代表导入的总记录数,key为available代表有效导入的记录数
*/
Map<String, Object> importRepository(MultipartFile file) throws RepositoryManageServiceException;
/**
* 导出仓库信息到文件中
*
* @param repositories 包含若干条 Supplier 信息的 List
* @return excel 文件
*/
File exportRepository(List<Repository> repositories);
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.exception.StockRecordManageServiceException;
import java.util.Map;
/**
* 出入库管理
*
* @author Ken / Yeguang / Genius Team
*/
public interface StockRecordManageService {
/**
* 货物入库操作
*
* @param supplierID 供应商ID
* @param goodsID 货物ID
* @param repositoryID 入库仓库ID
* @param number 入库数量
* @return 返回一个boolean 值,若值为true表示入库成功,否则表示入库失败
*/
boolean stockInOperation(Integer supplierID, Integer goodsID, Integer repositoryID, long number, String personInCharge) throws StockRecordManageServiceException;
/**
* 货物出库操作
*
* @param customerID 客户ID
* @param goodsID 货物ID
* @param repositoryID 出库仓库ID
* @param number 出库数量
* @return 返回一个boolean值,若值为true表示出库成功,否则表示出库失败
*/
boolean stockOutOperation(Integer customerID, Integer goodsID, Integer repositoryID, long number, String personInCharge) throws StockRecordManageServiceException;
/**
* 查询出入库记录
*
* @param repositoryID 仓库ID
* @param endDateStr 查询记录起始日期
* @param startDateStr 查询记录结束日期
* @param searchType 记录查询方式
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectStockRecord(Integer repositoryID, String startDateStr, String endDateStr, String searchType) throws StockRecordManageServiceException;
/**
* 分页查询出入库记录
*
* @param repositoryID 仓库ID
* @param endDateStr 查询记录起始日期
* @param startDateStr 查询记录结束日期
* @param searchType 记录查询方式
* @param offset 分页偏移值
* @param limit 分页大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectStockRecord(Integer repositoryID, String startDateStr, String endDateStr, String searchType, int offset, int limit) throws StockRecordManageServiceException;
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.domain.Storage;
import com.ken.wms.exception.StorageManageServiceException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 库存信息管理 service
*
* @author Ken / Yeguang / Genius Team
*/
public interface StorageManageService {
/**
* 返回所有的库存记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(Integer repositoryID) throws StorageManageServiceException;
/**
* 分页返回所有的库存记录
*
* @param offset 分页偏移值
* @param limit 分页大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(Integer repositoryID, int offset, int limit) throws StorageManageServiceException;
/**
* 返回指定货物ID的库存记录
*
* @param goodsID 指定的货物ID
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByGoodsID(Integer goodsID, Integer repositoryID) throws StorageManageServiceException;
/**
* 分页返回指定的货物库存记录
*
* @param goodsID 指定的货物ID
* @param offset 分页偏移值
* @param limit 分页大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByGoodsID(Integer goodsID, Integer repositoryID, int offset, int limit) throws StorageManageServiceException;
/**
* 返回指定货物名称的库存记录
*
* @param goodsName 货物名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByGoodsName(String goodsName, Integer repositoryID) throws StorageManageServiceException;
/**
* 分页返回指定货物名称的库存记录
*
* @param goodsName 货物名称
* @param offset 分页偏移值
* @param limit 分页大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByGoodsName(String goodsName, Integer repositoryID, int offset, int limit) throws StorageManageServiceException;
/**
* 返回指定货物类型的库存记录
*
* @param goodsType 指定的货物类型
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByGoodsType(String goodsType, Integer Repository) throws StorageManageServiceException;
/**
* 分页返回指定货物类型的库存记录
*
* @param goodsType 指定的货物类型
* @param offset 分页偏移值
* @param limit 分页大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByGoodsType(String goodsType, Integer repositoryID, int offset, int limit) throws StorageManageServiceException;
/**
* 添加一条库存记录
*
* @param goodsID 指定的货物ID
* @param repositoryID 指定的仓库ID
* @param number 库存数量
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean addNewStorage(Integer goodsID, Integer repositoryID, long number) throws StorageManageServiceException;
/**
* 更新一条库存记录
*
* @param goodsID 指定的货物ID
* @param repositoryID 指定的仓库ID
* @param number 更新的库存数量
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean updateStorage(Integer goodsID, Integer repositoryID, long number) throws StorageManageServiceException;
/**
* 为指定的货物库存记录增加指定数目
*
* @param goodsID 货物ID
* @param repositoryID 仓库ID
* @param number 增加的数量
* @return 返回一个 boolean 值,若值为true表示数目增加成功,否则表示增加失败
*/
boolean storageIncrease(Integer goodsID, Integer repositoryID, long number) throws StorageManageServiceException;
/**
* 为指定的货物库存记录减少指定的数目
*
* @param goodsID 货物ID
* @param repositoryID 仓库ID
* @param number 减少的数量
* @return 返回一个 boolean 值,若值为 true 表示数目减少成功,否则表示增加失败
*/
boolean storageDecrease(Integer goodsID, Integer repositoryID, long number) throws StorageManageServiceException;
/**
* 删除一条库存记录
* 货物ID与仓库ID可唯一确定一条库存记录
*
* @param goodsID 指定的货物ID
* @param repositoryID 指定的仓库ID
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean deleteStorage(Integer goodsID, Integer repositoryID) throws StorageManageServiceException;
/**
* 导入库存记录
*
* @param file 保存有的库存记录的文件
* @return 返回一个Map,其中:key为total代表导入的总记录数,key为available代表有效导入的记录数
*/
Map<String, Object> importStorage(MultipartFile file) throws StorageManageServiceException;
/**
* 导出库存记录
*
* @param storages 保存有库存记录的List
* @return excel 文件
*/
File exportStorage(List<Storage> storages);
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.domain.Supplier;
import com.ken.wms.exception.SupplierManageServiceException;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
import java.util.Map;
/**
* 供应商信息管理 service
*
* @author Ken / Yeguang / Genius Team
*/
public interface SupplierManageService {
/**
* 返回指定supplierID 的供应商记录
*
* @param supplierId 供应商ID
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectById(Integer supplierId) throws SupplierManageServiceException;
/**
* 返回指定 supplierName 的供应商记录
* 支持查询分页以及模糊查询
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @param supplierName 供应商的名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(int offset, int limit, String supplierName) throws SupplierManageServiceException;
/**
* 返回指定 supplierName 的供应商记录
* 支持模糊查询
*
* @param supplierName supplierName 供应商名称
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectByName(String supplierName) throws SupplierManageServiceException;
/**
* 分页查询供应商记录
*
* @param offset 分页的偏移值
* @param limit 分页的大小
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll(int offset, int limit) throws SupplierManageServiceException;
/**
* 查询所有的供应商记录
*
* @return 结果的一个Map,其中: key为 data 的代表记录数据;key 为 total 代表结果记录的数量
*/
Map<String, Object> selectAll() throws SupplierManageServiceException;
/**
* 添加供应商记录
*
* @param supplier 供应商信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean addSupplier(Supplier supplier) throws SupplierManageServiceException;
/**
* 更新供应商记录
*
* @param supplier 供应商信息
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean updateSupplier(Supplier supplier) throws SupplierManageServiceException;
/**
* 删除供应商记录
*
* @param supplierId 供应商ID
* @return 返回一个boolean值,值为true代表更新成功,否则代表失败
*/
boolean deleteSupplier(Integer supplierId);
/**
* 从文件中导入供应商信息
*
* @param file 导入信息的文件
* @return 返回一个Map,其中:key为total代表导入的总记录数,key为available代表有效导入的记录数
*/
Map<String, Object> importSupplier(MultipartFile file);
/**
* 导出供应商信息到文件中
*
* @param suppliers 包含若干条 Supplier 信息的 List
* @return excel 文件
*/
File exportSupplier(List<Supplier> suppliers);
}
package com.ken.wms.common.service.Interface;
import com.ken.wms.exception.SystemLogServiceException;
import java.util.Map;
/**
* 系统操作日志Service接口
*
* @author Ken / Yeguang / Genius Team
* @since 2019
*/
public interface SystemLogService {
String ACCESS_TYPE_LOGIN = "login";
String ACCESS_TYPE_LOGOUT = "logout";
/**
* 插入用户登入登出记录
*
* @param userID 用户ID
* @param userName 用户名
* @param accessIP 登陆IP
* @param accessType 记录类型
*/
void insertAccessRecord(Integer userID, String userName, String accessIP, String accessType) throws SystemLogServiceException;
/**
* 查询指定用户ID、记录类型或日期范围的登入登出记录
*
* @param userID 用户ID
* @param accessType 记录类型
* @param startDateStr 记录起始日期
* @param endDateStr 记录结束日期
* @return 返回一个Map, 其中键值为 data 的值为所有符合条件的记录, 而键值为 total 的值为符合条件的记录总条数
*/
Map<String, Object> selectAccessRecord(Integer userID, String accessType, String startDateStr, String endDateStr) throws SystemLogServiceException;
/**
* 分页查询指定用户ID、记录类型或日期范围的登入登出记录
*
* @param userID 用户ID
* @param accessType 记录类型
* @param startDateStr 记录起始日期
* @param endDateStr 记录结束日期
* @param offset 分页偏移值
* @param limit 分页大小
* @return 返回一个Map, 其中键值为 data 的值为所有符合条件的记录, 而键值为 total 的值为符合条件的记录总条数
*/
Map<String, Object> selectAccessRecord(Integer userID, String accessType, String startDateStr, String endDateStr, int offset, int limit) throws SystemLogServiceException;
/**
* 插入用户操作记录
*
* @param userID 执行操作的用户ID
* @param userName 执行操作的用户名
* @param operationName 操作的名称
* @param operationResult 操作的记过
*/
void insertUserOperationRecord(Integer userID, String userName, String operationName, String operationResult) throws SystemLogServiceException;
/**
* 查询指定用户ID或日期范围的用户操作记录
*
* @param userID 用户ID
* @param startDateStr 记录的起始日期
* @param endDateStr 记录的结束日期
* @return 返回一个Map, 其中键值为 data 的值为所有符合条件的记录, 而键值为 total 的值为符合条件的记录总条数
*/
Map<String, Object> selectUserOperationRecord(Integer userID, String startDateStr, String endDateStr) throws SystemLogServiceException;
/**
* 分页查询指定用户ID或日期范围的用户操作记录
*
* @param userID 用户ID
* @param startDateStr 记录的起始日期
* @param endDateStr 记录的结束日期
* @param offset 分页的偏移值
* @param limit 分页的大小
* @return 返回一个Map, 其中键值为 data 的值为所有符合条件的记录, 而键值为 total 的值为符合条件的记录总条数
*/
Map<String, Object> selectUserOperationRecord(Integer userID, String startDateStr, String endDateStr, int offset, int limit) throws SystemLogServiceException;
}