From 95985b5a5bb7c5656098cc8923ed3d1d8aaa3d2b Mon Sep 17 00:00:00 2001 From: yupeng <roc__yu@163.com> Date: 星期五, 24 一月 2025 10:44:59 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into xizang-changyun --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java | 161 ++++++++++ ruoyi-admin/src/main/resources/application-test.yml | 8 ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml | 7 ruoyi-system/src/main/java/com/ruoyi/system/dto/TContractDTO.java | 29 + ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 2 ruoyi-common/src/main/java/com/ruoyi/common/constant/DictConstants.java | 18 + ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java | 2 ruoyi-admin/src/main/resources/mybatis-config.xml | 2 ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml | 18 ruoyi-system/src/main/java/com/ruoyi/system/vo/TenantVO.java | 21 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java | 29 + ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java | 18 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java | 13 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 15 ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/COSController.java | 48 +++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java | 6 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTenantController.java | 34 + ruoyi-system/pom.xml | 6 ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml | 17 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java | 5 ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java | 35 ++ /dev/null | 51 --- ruoyi-system/src/main/java/com/ruoyi/system/model/TContractRentType.java | 7 ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java | 126 +++++-- ruoyi-admin/src/main/resources/application-prod.yml | 8 ruoyi-system/src/main/java/com/ruoyi/system/model/TInvoice.java | 4 sql/xizang.sql | 159 ++++++++- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java | 13 ruoyi-system/src/main/java/com/ruoyi/system/model/TTenant.java | 20 ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java | 19 + ruoyi-system/src/main/java/com/ruoyi/system/query/TTenantQuery.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/model/TContract.java | 12 36 files changed, 751 insertions(+), 176 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/COSController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/COSController.java new file mode 100644 index 0000000..5fe8e8d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/COSController.java @@ -0,0 +1,48 @@ +package com.ruoyi.web.controller.api; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.web.controller.tool.TencentCosUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.OutputStream; + +/** + * @author HJL + * @version 1.0 + * @since 2024-05-30 9:27 + */ +@RestController +@RequestMapping("/cos") +@Api(tags = "公共-文件上传") +public class COSController { + + @Resource + private TencentCosUtil tencentCosUtil; + + @PostMapping("/upload") + @ApiOperation(value = "文件上传", tags = "公共-文件上传") + @ApiImplicitParams({ + @ApiImplicitParam(value = "文件", name = "file", dataType = "MultipartFile", required = true) + }) + public R<String> upload(@RequestParam("file") MultipartFile file) { + String url = tencentCosUtil.upLoadFile(file); + return R.ok(url, url); + } + @PostMapping("/download") + @ApiOperation(value = "文件下载", tags = "公共-文件下载") + @ApiImplicitParams({ + @ApiImplicitParam(value = "文件url", name = "url", dataType = "String", required = true) + }) + public void upload(@RequestParam("url") String url) { + tencentCosUtil.downLoadFile(url); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OssController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OssController.java deleted file mode 100644 index d84919e..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OssController.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.ruoyi.web.controller.api; - -import com.aliyun.oss.OSSClient; -import com.aliyun.oss.model.ObjectMetadata; -import com.aliyun.oss.model.PutObjectRequest; -import com.aliyun.oss.model.PutObjectResult; -import io.swagger.annotations.ApiOperation; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; - -@CrossOrigin -@RestController -@RequestMapping("/base/oss") -class OssController { - - private static final String endpoint = "oss-cn-chengdu.aliyuncs.com"; - private static final String accessKeyId = "LTAI5tCQHjSsP7TXuyjSG1PJ"; - private static final String accessKeySecret = "RIDXxzOrdMS0V8vQDT53MGvAgsegRV"; - private static final String bucketName = "inspectionbucket"; - - @PostMapping("/upload") - @ApiOperation(value = "文件上传",tags = "文件上传") - public ResponseEntity<String> upload(@RequestParam("file") MultipartFile file) throws IOException { - // 创建 OSSClient 实例 - OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); - - - // 创建 PutObjectRequest 对象 - PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, file.getOriginalFilename(), file.getInputStream()); - - ObjectMetadata metadata = new ObjectMetadata(); - // 取消文件缓存,文件每次都会从OSS服务器获取 - metadata.setHeader("Cache-Control", "no-cache"); - metadata.setHeader("Expires", "0"); - - - // 上传文件 - PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest); - - // 关闭 OSSClient 实例 - ossClient.shutdown(); - - String fileUrl = "https://" + bucketName + "." + endpoint + "/" + file.getOriginalFilename(); - return ResponseEntity.ok(fileUrl); - } - - -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java index fc28438..108901e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java @@ -1,22 +1,37 @@ package com.ruoyi.web.controller.api; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.dto.TContractDTO; import com.ruoyi.system.dto.THouseDTO; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.TContractRentType; import com.ruoyi.system.model.THouse; +import com.ruoyi.system.query.TContractQuery; import com.ruoyi.system.query.THouseQuery; import com.ruoyi.system.query.TUserHistoryQuery; +import com.ruoyi.system.service.TContractRentTypeService; import com.ruoyi.system.service.TContractService; import com.ruoyi.system.service.THouseService; import com.ruoyi.system.vo.HouseVO; import io.swagger.annotations.Api; +import com.ruoyi.system.vo.TContractVO; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; /** * <p> @@ -32,39 +47,82 @@ public class TContractController { @Autowired private TContractService contractService; -// @Log(title = "房屋基础信息管理-新增房屋", businessType = BusinessType.INSERT) -// @ApiOperation(value = "新增房屋") -// @PostMapping(value = "/addHouse") -// public AjaxResult<Boolean> addHouse(@Validated @RequestBody THouseDTO dto) { -// return AjaxResult.success(contractService.save(dto)); -// } -// @Log(title = "房屋基础信息管理-编辑房屋", businessType = BusinessType.UPDATE) -// @ApiOperation(value = "编辑房屋") -// @PostMapping(value = "/updateHouse") -// public AjaxResult<Boolean> updateHouse(@Validated @RequestBody THouseDTO dto) { -// return AjaxResult.success(contractService.updateById(dto)); -// } -// @Log(title = "房屋基础信息管理-查询房屋信息", businessType = BusinessType.DELETE) -// @ApiOperation(value = "查询房屋信息") -// @GetMapping(value = "/getHouseById") -// public AjaxResult<THouse> getHouseById(@RequestParam Long id) { -// return AjaxResult.success(contractService.getById(id)); -// } -// @Log(title = "房屋基础信息管理-删除房屋", businessType = BusinessType.DELETE) -// @ApiOperation(value = "删除房屋") -// @DeleteMapping(value = "/deleteHouseById") -// public AjaxResult<Boolean> deleteHouseById(@RequestParam Long id) { -// return AjaxResult.success(contractService.removeById(id)); -// } -// @ApiOperation(value = "获取房屋分页列表") -// @PostMapping(value = "/houseList") -// public AjaxResult<PageInfo<THouse>> houseList(@RequestBody THouseQuery query) { -// return AjaxResult.success(contractService.houseList(query)); -// } -// @ApiOperation(value = "历史租户列表") -// @PostMapping(value = "/userHistoryList") -// public AjaxResult<PageInfo<HouseVO>> userHistoryList(@RequestBody TUserHistoryQuery query) { -// return AjaxResult.success(contractService.userHistoryList(query)); -// } + @Autowired + private TContractRentTypeService contractRentTypeService; + @Autowired + private THouseService houseService; + @ApiOperation(value = "获取合同分页列表") + @PostMapping(value = "/contractList") + public R<PageInfo<TContract>> contractList(@RequestBody TContractQuery query) { + return R.ok(contractService.contractList(query)); + } + @Log(title = "合同管理-新增合同", businessType = BusinessType.INSERT) + @ApiOperation(value = "新增合同") + @PostMapping(value = "/addContract") + public R<Boolean> addContract(@Validated @RequestBody TContractDTO dto) { + contractService.save(dto); + if (dto.getIsIncreasing()==1){ + TContractRentType tContractRentType = new TContractRentType(); + tContractRentType.setContractId(dto.getId()); + tContractRentType.setIncreasingDecreasing(dto.getIncreasingDecreasing()); + tContractRentType.setIncreasingDecreasingType(dto.getIncreasingDecreasingType()); + tContractRentType.setNumericalValue(dto.getNumericalValue()); + tContractRentType.setChangeTime(dto.getChangeTime()); + contractRentTypeService.save(tContractRentType); + } + return R.ok(); + } + @Log(title = "合同管理-编辑合同", businessType = BusinessType.UPDATE) + @ApiOperation(value = "编辑合同") + @PostMapping(value = "/updateContract") + public R<Boolean> updateContract(@Validated @RequestBody TContractDTO dto) { + contractService.updateById(dto); + contractRentTypeService.remove(new LambdaQueryWrapper<TContractRentType>() + .eq(TContractRentType::getContractId,dto.getId())); + if (dto.getIsIncreasing()==1){ + TContractRentType tContractRentType = new TContractRentType(); + tContractRentType.setContractId(dto.getId()); + tContractRentType.setIncreasingDecreasing(dto.getIncreasingDecreasing()); + tContractRentType.setIncreasingDecreasingType(dto.getIncreasingDecreasingType()); + tContractRentType.setNumericalValue(dto.getNumericalValue()); + tContractRentType.setChangeTime(dto.getChangeTime()); + contractRentTypeService.save(tContractRentType); + } + return R.ok(); + } + @Log(title = "合同管理-批量删除合同", businessType = BusinessType.DELETE) + @ApiOperation(value = "批量删除合同") + @DeleteMapping(value = "/deleteContractByIds") + public R<Boolean> deleteContractByIds3 + (@RequestParam String ids) { + if (StringUtils.isNotEmpty(ids)){ + contractService.removeBatchByIds(Arrays.asList(ids.split(","))); + } + return R.ok(); + } + + @ApiOperation(value = "查询合同信息信息") + @GetMapping(value = "/getContractById") + public R<TContractVO> getContractById(@RequestParam String id) { + TContractVO res = new TContractVO(); + TContract contract = contractService.getById(id); + BeanUtils.copyProperties(contract,res); + TContractRentType contractRentType = contractRentTypeService.lambdaQuery().eq(TContractRentType::getContractId, id).one(); + if (contractRentType!=null){ + BeanUtils.copyProperties(contractRentType,res); + } + TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>() + .eq(TContract::getHouseId,contract.getHouseId()) + .eq(TContract::getStatus, 4) + .le(TContract::getStartTime, LocalDateTime.now()) + .ge(TContract::getEndTime, LocalDateTime.now())); + THouse house = houseService.getById(contract.getHouseId()); + if (oldContract!=null){ + house.setTenantType(oldContract.getPayType()); + } + res.setHouse(house); + return R.ok(res); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java index aaab61a..78fb2fd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java @@ -3,7 +3,8 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.dto.THouseDTO; import com.ruoyi.system.dto.TTenantDTO; @@ -14,6 +15,7 @@ import com.ruoyi.system.query.TUserHistoryQuery; import com.ruoyi.system.service.THouseService; import com.ruoyi.system.vo.HouseVO; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -27,6 +29,7 @@ * @author xiaochen * @since 2025-01-17 */ +@Api(tags = "房屋基础信息管理") @RestController @RequestMapping("/t-house") public class THouseController { @@ -35,36 +38,36 @@ @Log(title = "房屋基础信息管理-新增房屋", businessType = BusinessType.INSERT) @ApiOperation(value = "新增房屋") @PostMapping(value = "/addHouse") - public AjaxResult<Boolean> addHouse(@Validated @RequestBody THouseDTO dto) { - return AjaxResult.success(tHouseService.save(dto)); + public R<Boolean> addHouse(@Validated @RequestBody THouseDTO dto) { + return R.ok(tHouseService.save(dto)); } @Log(title = "房屋基础信息管理-编辑房屋", businessType = BusinessType.UPDATE) @ApiOperation(value = "编辑房屋") @PostMapping(value = "/updateHouse") - public AjaxResult<Boolean> updateHouse(@Validated @RequestBody THouseDTO dto) { - return AjaxResult.success(tHouseService.updateById(dto)); + public R<Boolean> updateHouse(@Validated @RequestBody THouseDTO dto) { + return R.ok(tHouseService.updateById(dto)); } @Log(title = "房屋基础信息管理-查询房屋信息", businessType = BusinessType.DELETE) @ApiOperation(value = "查询房屋信息") @GetMapping(value = "/getHouseById") - public AjaxResult<THouse> getHouseById(@RequestParam Long id) { - return AjaxResult.success(tHouseService.getById(id)); + public R<THouse> getHouseById(@RequestParam String id) { + return R.ok(tHouseService.getById(id)); } @Log(title = "房屋基础信息管理-删除房屋", businessType = BusinessType.DELETE) @ApiOperation(value = "删除房屋") @DeleteMapping(value = "/deleteHouseById") - public AjaxResult<Boolean> deleteHouseById(@RequestParam Long id) { - return AjaxResult.success(tHouseService.removeById(id)); + public R<Boolean> deleteHouseById(@RequestParam String id) { + return R.ok(tHouseService.removeById(id)); } @ApiOperation(value = "获取房屋分页列表") @PostMapping(value = "/houseList") - public AjaxResult<PageInfo<THouse>> houseList(@RequestBody THouseQuery query) { - return AjaxResult.success(tHouseService.houseList(query)); + public R<PageInfo<THouse>> houseList(@RequestBody THouseQuery query) { + return R.ok(tHouseService.houseList(query)); } @ApiOperation(value = "历史租户列表") @PostMapping(value = "/userHistoryList") - public AjaxResult<PageInfo<HouseVO>> userHistoryList(@RequestBody TUserHistoryQuery query) { - return AjaxResult.success(tHouseService.userHistoryList(query)); + public R<PageInfo<HouseVO>> userHistoryList(@RequestBody TUserHistoryQuery query) { + return R.ok(tHouseService.userHistoryList(query)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTenantController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTenantController.java index 10fe7a4..b2eeaaf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTenantController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTenantController.java @@ -3,7 +3,7 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; @@ -11,9 +11,11 @@ import com.ruoyi.system.model.TTenant; import com.ruoyi.system.query.TTenantQuery; import com.ruoyi.system.service.TTenantService; +import com.ruoyi.system.vo.TenantVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -41,65 +43,71 @@ /** * 获取租户管理列表 */ + @PreAuthorize("@ss.hasPermi('system:tenant:list')") @ApiOperation(value = "获取租户分页列表") @PostMapping(value = "/pageList") - public AjaxResult<PageInfo<TTenant>> pageList(@RequestBody TTenantQuery query) { - return AjaxResult.success(tenantService.pageList(query)); + public R<PageInfo<TenantVO>> pageList(@RequestBody TTenantQuery query) { + return R.ok(tenantService.pageList(query)); } /** * 添加租户管理 */ + @PreAuthorize("@ss.hasPermi('system:tenant:add')") @Log(title = "租户信息-新增租户", businessType = BusinessType.INSERT) @ApiOperation(value = "添加租户") @PostMapping(value = "/add") - public AjaxResult<Boolean> add(@Validated @RequestBody TTenantDTO dto) { + public R<Boolean> add(@Validated @RequestBody TTenantDTO dto) { // 密码加密 dto.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); - return AjaxResult.success(tenantService.save(dto)); + return R.ok(tenantService.save(dto)); } /** * 修改租户 */ + @PreAuthorize("@ss.hasPermi('system:tenant:update')") @Log(title = "租户信息-修改租户", businessType = BusinessType.UPDATE) @ApiOperation(value = "修改租户") @PostMapping(value = "/update") - public AjaxResult<Boolean> update(@Validated @RequestBody TTenantDTO dto) { + public R<Boolean> update(@Validated @RequestBody TTenantDTO dto) { // 密码加密 if(StringUtils.isNotBlank(dto.getPassword())){ dto.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); } - return AjaxResult.success(tenantService.updateById(dto)); + return R.ok(tenantService.updateById(dto)); } /** * 查看租户详情 */ + @PreAuthorize("@ss.hasPermi('system:tenant:detail')") @ApiOperation(value = "查看租户详情") @GetMapping(value = "/getDetailById") - public AjaxResult<TTenant> getDetailById(@RequestParam Long id) { - return AjaxResult.success(tenantService.getById(id)); + public R<TTenant> getDetailById(@RequestParam String id) { + return R.ok(tenantService.getById(id)); } /** * 删除租户 */ + @PreAuthorize("@ss.hasPermi('system:tenant:delete')") @Log(title = "租户信息-删除租户", businessType = BusinessType.DELETE) @ApiOperation(value = "删除租户") @DeleteMapping(value = "/deleteById") - public AjaxResult<Boolean> deleteById(@RequestParam Long id) { - return AjaxResult.success(tenantService.removeById(id)); + public R<Boolean> deleteById(@RequestParam String id) { + return R.ok(tenantService.removeById(id)); } /** * 批量删除租户 */ + @PreAuthorize("@ss.hasPermi('system:tenant:delete')") @Log(title = "租户信息-删除租户", businessType = BusinessType.DELETE) @ApiOperation(value = "批量删除租户") @DeleteMapping(value = "/deleteByIds") - public AjaxResult<Boolean> deleteByIds(@RequestBody List<Long> ids) { - return AjaxResult.success(tenantService.removeByIds(ids)); + public R<Boolean> deleteByIds(@RequestBody List<String> ids) { + return R.ok(tenantService.removeByIds(ids)); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 310a24a..3475998 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -194,6 +194,21 @@ return AjaxResult.success(sysUser); } + /** + * 获取用户详情 + */ + @ApiOperation(value = "获取用户详情") + @GetMapping("/queryDetail") + public AjaxResult queryDetail() + { + Long userId = tokenService.getLoginUser().getUserId(); + SysUser sysUser = userService.selectUserById(userId); + SysUserVO sysUserVO = new SysUserVO(); + BeanUtils.copyProperties(sysUser,sysUserVO); + + return AjaxResult.success(sysUser); + } + /** * 获取用户数量统计 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java new file mode 100644 index 0000000..be2bdbb --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java @@ -0,0 +1,161 @@ +package com.ruoyi.web.controller.tool; + +import com.qcloud.cos.COSClient; +import com.qcloud.cos.ClientConfig; +import com.qcloud.cos.auth.BasicCOSCredentials; +import com.qcloud.cos.auth.COSCredentials; +import com.qcloud.cos.exception.CosClientException; +import com.qcloud.cos.exception.CosServiceException; +import com.qcloud.cos.http.HttpProtocol; +import com.qcloud.cos.model.COSObject; +import com.qcloud.cos.model.GetObjectRequest; +import com.qcloud.cos.model.ObjectMetadata; +import com.qcloud.cos.model.PutObjectResult; +import com.qcloud.cos.region.Region; +import com.qcloud.cos.utils.IOUtils; +import com.ruoyi.common.utils.WebUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.UUID; + +/** + * @author HJL + */ +@Component +public class TencentCosUtil { + + /** + * COS的SecretId + */ + @Value("${cos.client.accessKey}") + private String secretId; + /** + * COS的SecretKey + */ + @Value("${cos.client.secretKey}") + private String secretKey; + /** + * 文件上传后访问路径的根路径,后面要最佳文件名字与类型 + */ + @Value("${cos.client.rootSrc}") + private String rootSrc; + /** + * 上传的存储桶的地域 + */ + @Value("${cos.client.bucketAddr}") + private String bucketAddr; + /** + * 存储桶的名字,是自己在存储空间自己创建的,我创建的名字是:qq-test-1303****** + */ + @Value("${cos.client.bucket}") + private String bucketName; + /** + * 文件存放位置 + */ + @Value("${cos.client.location}") + private String location; + + /** + * 1.调用静态方法getCosClient()就会获得COSClient实例 + * 2.本方法根据永久密钥初始化 COSClient的,官方是不推荐,官方推荐使用临时密钥,是可以限制密钥使用权限,创建cred时有些区别 + * + * @return COSClient实例 + */ + private COSClient getCosClient() { + // 1 初始化用户身份信息(secretId, secretKey)。 + COSCredentials cred = new BasicCOSCredentials(secretId, secretKey); + // 2.1 设置存储桶的地域(上文获得) + Region region = new Region(bucketAddr); + ClientConfig clientConfig = new ClientConfig(region); + // 2.2 使用https协议传输 + clientConfig.setHttpProtocol(HttpProtocol.https); + // 生成 cos 客户端 + return new COSClient(cred, clientConfig); + } + + /** + * 只要调用静态方法upLoadFile(MultipartFile multipartFile)就可以获取上传后文件的全路径 + * + * @param file + * @return 返回文件的浏览全路径 + */ + public String upLoadFile(MultipartFile file) { + try { + // 获取上传的文件的输入流 + InputStream inputStream = file.getInputStream(); + // 避免文件覆盖,获取文件的原始名称,如123.jpg,然后通过截取获得文件的后缀,也就是文件的类型 + String originalFilename = file.getOriginalFilename(); + //获取文件的类型 + String fileType = originalFilename.substring(originalFilename.lastIndexOf(".")); + //使用UUID工具 创建唯一名称,放置文件重名被覆盖,在拼接上上命令获取的文件类型 + String fileName = UUID.randomUUID() + fileType; + // 指定文件上传到 COS 上的路径,即对象键。最终文件会传到存储桶名字中的images文件夹下的fileName名字 + String key = location+"/" + fileName; + // 创建上传Object的Metadata + ObjectMetadata objectMetadata = new ObjectMetadata(); + // - 使用输入流存储,需要设置请求长度 + objectMetadata.setContentLength(inputStream.available()); + // - 设置缓存 + objectMetadata.setCacheControl("no-cache"); + // - 设置Content-Type + objectMetadata.setContentType(fileType); + //上传文件 + PutObjectResult putResult = getCosClient().putObject(bucketName, key, inputStream, objectMetadata); + // 创建文件的网络访问路径 + String url = rootSrc + key; + //关闭 cosClient,并释放 HTTP 连接的后台管理线程 + getCosClient().shutdown(); + return url; + } catch (Exception e) { + e.printStackTrace(); + // 发生IO异常、COS连接异常等,返回空 + return null; + } + } + + /** + * 下载文件 + * @param file + * @return + */ + public void downLoadFile(String file) { + HttpServletResponse response = WebUtils.response(); + String replace = file.replace(rootSrc, ""); + COSCredentials cred = new BasicCOSCredentials( + secretId, + secretKey); + // 2.1 设置存储桶的地域(上文获得) + Region region = new Region(bucketAddr); + ClientConfig clientConfig = new ClientConfig(region); + // 2.2 使用https协议传输 + clientConfig.setHttpProtocol(HttpProtocol.https); + COSClient cosClient = new COSClient(cred, clientConfig); + try { + // 5. 下载文件并获取输入流 + InputStream inputStream = cosClient.getObject(bucketName, replace).getObjectContent(); + ServletOutputStream outputStream = response.getOutputStream(); + // 6. 处理输入流,例如读取内容或保存到本地文件 + // 这里仅作示例,实际应用中需要根据需求处理输入流 + byte[] buffer = new byte[1024]; + int len; + while ((len = inputStream.read(buffer)) != -1) { + // 处理读取到的数据 + outputStream.write(buffer, 0, len); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + // 7. 关闭输入流 + cosClient.shutdown(); + } + } +// https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/xizang/e4ea88b8-5470-456e-bf97-75cf47f38e84.jpg +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index d12c582..ee46864 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -206,3 +206,11 @@ accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8 signName: "四川金达通信工程" templateCode: "SMS_293985284" +cos: + client: + accessKey: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x + secretKey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU + bucket: xzgttest-1305134071 + bucketAddr: ap-chengdu + rootSrc: https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/ + location: xizang \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml index 9d492fd..2f6795f 100644 --- a/ruoyi-admin/src/main/resources/application-test.yml +++ b/ruoyi-admin/src/main/resources/application-test.yml @@ -205,3 +205,11 @@ accessKeySecret: 0SRb6XGkciQDPWn2rYqbJtq2qRMDY8 signName: "四川金达通信工程" templateCode: "SMS_293985284" +cos: + client: + accessKey: AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x + secretKey: lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU + bucket: xzgttest-1305134071 + bucketAddr: ap-chengdu + rootSrc: https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/ + location: xizang diff --git a/ruoyi-admin/src/main/resources/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis-config.xml index 7d487eb..53c5587 100644 --- a/ruoyi-admin/src/main/resources/mybatis-config.xml +++ b/ruoyi-admin/src/main/resources/mybatis-config.xml @@ -10,7 +10,7 @@ <setting name="cacheEnabled" value="true"/> <!-- 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。默认 false --> <!-- <setting name="lazyLoadingEnabled" value="true"/> --> - <setting name="mapUnderscoreToCamelCase" value="false"/><!--是否将map下划线方式转为驼峰式命名--> + <setting name="mapUnderscoreToCamelCase" value="true"/><!--是否将map下划线方式转为驼峰式命名--> <!-- 当开启时,任何方法的调用都会加载该对象的所有属性。默认 false,可通过select标签的 fetchType来覆盖--> <!-- <setting name="aggressiveLazyLoading" value="false"/>--> <!-- Mybatis 创建具有延迟加载能力的对象所用到的代理工具,默认JAVASSIST --> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/DictConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/DictConstants.java new file mode 100644 index 0000000..73005e3 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/DictConstants.java @@ -0,0 +1,18 @@ +package com.ruoyi.common.constant; + +/** + * 缓存的key 常量 + * + * @author ruoyi + */ +public class DictConstants +{ + /** + * 租户属性 + */ + public static final String DICT_TYPE_TENANT_ATTRIBUTE = "t_tenant_attribute"; + /** + * 租户类型 + */ + public static final String DICT_TYPE_TENANT_TYPE = "t_tenant_type"; +} diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml index 10998d3..f4f7c3b 100644 --- a/ruoyi-system/pom.xml +++ b/ruoyi-system/pom.xml @@ -16,7 +16,11 @@ </description> <dependencies> - + <dependency> + <groupId>com.qcloud</groupId> + <artifactId>cos_api</artifactId> + <version>5.6.227</version> + </dependency> <!-- 通用工具--> <dependency> <groupId>com.ruoyi</groupId> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TContractDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TContractDTO.java new file mode 100644 index 0000000..8bf0052 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TContractDTO.java @@ -0,0 +1,29 @@ +package com.ruoyi.system.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.TTenant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "合同新增编辑DTO") +public class TContractDTO extends TContract { + @ApiModelProperty(value = "递增递减 1=递增 2=递减") + private Integer increasingDecreasing; + + @ApiModelProperty(value = "递增递减形式 1=百分比 2=金额元") + private Integer increasingDecreasingType; + + @ApiModelProperty(value = "数值") + private BigDecimal numericalValue; + + @ApiModelProperty(value = "递增或递减时点") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime changeTime; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java index a341f1e..c8bf9cf 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.mapper; import java.util.List; + +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysDictData; @@ -9,6 +11,7 @@ * * @author ruoyi */ +@Mapper public interface SysDictDataMapper { /** @@ -92,4 +95,6 @@ * @return 结果 */ public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); + + public String selectDictDataByTypeAndValue(@Param("dictType")String dictType, @Param("dictValue")Integer dictValue); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java index d5bc9f9..8c24731 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TContractMapper.java @@ -1,7 +1,12 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TContract; +import com.ruoyi.system.query.TContractQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +18,5 @@ */ public interface TContractMapper extends BaseMapper<TContract> { + List<TContract> contractList(@Param("query") TContractQuery query, @Param("pageInfo") PageInfo<TContract> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java index 8bf23ff..a93206e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TTenantMapper.java @@ -4,6 +4,7 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TTenant; import com.ruoyi.system.query.TTenantQuery; +import com.ruoyi.system.vo.TenantVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -24,7 +25,7 @@ * @param pageInfo * @return */ - List<TTenant> pageList(@Param("query") TTenantQuery query, @Param("pageInfo")PageInfo<TTenant> pageInfo); + List<TenantVO> pageList(@Param("query") TTenantQuery query, @Param("pageInfo")PageInfo<TenantVO> pageInfo); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java index c75228c..7abdadb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TBill.java @@ -42,7 +42,7 @@ @ApiModelProperty(value = "应缴费") @TableField("payable_fees_money") - private Double payableFeesMoney; + private BigDecimal payableFeesMoney; @ApiModelProperty(value = "应缴费日期") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TContract.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TContract.java index 6dc8972..4b73a95 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TContract.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TContract.java @@ -61,7 +61,7 @@ @TableField("deposit") private BigDecimal deposit; - @ApiModelProperty(value = "租金支付方式 1=季付") + @ApiModelProperty(value = "租金支付方式 1=月付 2=季付 3=年付") @TableField("pay_type") private Integer payType; @@ -114,7 +114,7 @@ @TableField("party_two_phone") private String partyTwoPhone; - @ApiModelProperty(value = "合同附件") + @ApiModelProperty(value = "合同附件,多个逗号拼接") @TableField("contract_file") private String contractFile; @@ -122,8 +122,14 @@ @TableField("remark") private String remark; - @ApiModelProperty(value = "状态 1=待审批 2=未签订 3=已签订") + @ApiModelProperty(value = "状态 1=待提交 2=待审批 3=未签订 4=已签订") @TableField("status") private Integer status; + @ApiModelProperty(value = "内存大小多个文件逗号拼接") + @TableField("memory") + private Integer memory; + @ApiModelProperty(value = "附件名称 逗号拼接") + @TableField("contract_file_name") + private Integer contractFileName; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TContractRentType.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TContractRentType.java index 35d8311..f3f45ae 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TContractRentType.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TContractRentType.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -47,5 +49,10 @@ @TableField("numerical_value") private BigDecimal numericalValue; + @ApiModelProperty(value = "递增或递减时点") + @TableField("change_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime changeTime; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java index ba521cd..5c30185 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java @@ -88,4 +88,7 @@ @TableField("room_number") private String roomNumber; + @ApiModelProperty(value = "住户类型 1月租 2季租 3年租") + @TableField(exist = false) + private Integer tenantType; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TInvoice.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TInvoice.java index 6ee6c90..287b231 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TInvoice.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TInvoice.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableId; + +import java.math.BigDecimal; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; @@ -39,7 +41,7 @@ @ApiModelProperty(value = "金额") @TableField("invoice_money") - private Double invoiceMoney; + private BigDecimal invoiceMoney; @ApiModelProperty(value = "申请人") @TableField("apply_name") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTenant.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTenant.java index 7ec52d0..92a1d88 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TTenant.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TTenant.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableId; + +import java.time.LocalDate; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; @@ -43,9 +45,9 @@ @ApiModelProperty(value = "入住时间") @NotNull(message = "入住时间不能为空") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @TableField("checkIn_time") - private LocalDateTime checkinTime; + private LocalDate checkinTime; @ApiModelProperty(value = "租户属性") @TableField("tenant_attributes") @@ -53,19 +55,7 @@ @ApiModelProperty(value = "租户类型") @TableField("tenant_type") - private Integer tenantType; - - @ApiModelProperty(value = "租户楼栋") - @TableField("tenant_building") - private String tenantBuilding; - - @ApiModelProperty(value = "房号") - @TableField("room_number") - private String roomNumber; - - @ApiModelProperty(value = "建筑面积") - @TableField("building_area") - private Integer buildingArea; + private String tenantType; @ApiModelProperty(value = "联系电话") @NotBlank(message = "联系电话不能为空") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java new file mode 100644 index 0000000..5d90194 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TContractQuery.java @@ -0,0 +1,19 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.BasePage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "合同分页列表查询Query") +public class TContractQuery extends BasePage { + @ApiModelProperty(value = "乙方名称") + private String partyTwoName; + @ApiModelProperty(value = "合同编号") + private String contractNumber; + @ApiModelProperty(value = "合同名称") + private Integer contractName; + @ApiModelProperty(value = "合同状态 1=待提交 2=待审批 3=未签订 4=已签订") + private Integer status; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTenantQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTenantQuery.java index 28652a0..83e1748 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TTenantQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TTenantQuery.java @@ -11,7 +11,7 @@ public class TTenantQuery extends BasePage { @ApiModelProperty(value = "租户姓名") - private String tenantName; + private String residentName; @ApiModelProperty(value = "联系电话") private String phone; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java index 1cb1fd5..b580ba2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TContractService.java @@ -1,7 +1,9 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TContract; +import com.ruoyi.system.query.TContractQuery; /** * <p> @@ -13,4 +15,5 @@ */ public interface TContractService extends IService<TContract> { + PageInfo<TContract> contractList(TContractQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java index 883c195..0357962 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TTenantService.java @@ -4,6 +4,7 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.TTenant; import com.ruoyi.system.query.TTenantQuery; +import com.ruoyi.system.vo.TenantVO; /** * <p> @@ -20,5 +21,5 @@ * @param query * @return */ - PageInfo<TTenant> pageList(TTenantQuery query); + PageInfo<TenantVO> pageList(TTenantQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java index f598310..1cb2a34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TContractServiceImpl.java @@ -1,10 +1,15 @@ package com.ruoyi.system.service.impl; +import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.mapper.TContractMapper; import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.TTenant; +import com.ruoyi.system.query.TContractQuery; import com.ruoyi.system.service.TContractService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +22,12 @@ @Service public class TContractServiceImpl extends ServiceImpl<TContractMapper, TContract> implements TContractService { + @Override + public PageInfo<TContract> contractList(TContractQuery query) { + PageInfo<TContract> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TContract> list = this.baseMapper.contractList(query,pageInfo); + pageInfo.setRecords(list); + return pageInfo; + + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java index 594e1e1..436ae5f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java @@ -1,7 +1,10 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.mapper.TContractMapper; import com.ruoyi.system.mapper.THouseMapper; +import com.ruoyi.system.model.TContract; import com.ruoyi.system.model.THouse; import com.ruoyi.system.query.THouseQuery; import com.ruoyi.system.query.TUserHistoryQuery; @@ -10,6 +13,8 @@ import com.ruoyi.system.vo.HouseVO; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.List; /** @@ -22,11 +27,22 @@ */ @Service public class THouseServiceImpl extends ServiceImpl<THouseMapper, THouse> implements THouseService { - + @Resource + private TContractMapper contractMapper; @Override public PageInfo<THouse> houseList(THouseQuery query) { PageInfo<THouse> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<THouse> list = this.baseMapper.houseList(query,pageInfo); + List<TContract> tContracts = contractMapper.selectList(new LambdaQueryWrapper<TContract>() + .eq(TContract::getStatus, 4) + .le(TContract::getStartTime, LocalDateTime.now()) + .ge(TContract::getEndTime, LocalDateTime.now())); + for (THouse tHouse : list) { + TContract tContract = tContracts.stream().filter(e -> e.getHouseId().equals(tHouse.getId())).findFirst().orElse(null); + if (tContract!=null){ + tHouse.setTenantType(tContract.getPayType()); + } + } pageInfo.setRecords(list); return pageInfo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java index 068a061..c6d65f1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTenantServiceImpl.java @@ -1,12 +1,15 @@ package com.ruoyi.system.service.impl; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.constant.DictConstants; +import com.ruoyi.common.utils.DictUtils; import com.ruoyi.system.mapper.TTenantMapper; import com.ruoyi.system.model.TTenant; import com.ruoyi.system.query.TTenantQuery; import com.ruoyi.system.service.TTenantService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.vo.SysUserVO; +import com.ruoyi.system.vo.TenantVO; import org.springframework.stereotype.Service; import java.util.List; @@ -23,9 +26,13 @@ public class TTenantServiceImpl extends ServiceImpl<TTenantMapper, TTenant> implements TTenantService { @Override - public PageInfo<TTenant> pageList(TTenantQuery query) { - PageInfo<TTenant> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); - List<TTenant> list = this.baseMapper.pageList(query,pageInfo); + public PageInfo<TenantVO> pageList(TTenantQuery query) { + PageInfo<TenantVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + List<TenantVO> list = this.baseMapper.pageList(query,pageInfo); + for (TenantVO tenantVO : list) { + tenantVO.setTenantAttributesName(DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_ATTRIBUTE,tenantVO.getTenantAttributes())); + tenantVO.setTenantTypeName(DictUtils.getDictLabel(DictConstants.DICT_TYPE_TENANT_TYPE,tenantVO.getTenantType())); + } pageInfo.setRecords(list); return pageInfo; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java new file mode 100644 index 0000000..ce55215 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TContractVO.java @@ -0,0 +1,35 @@ +package com.ruoyi.system.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.model.TContract; +import com.ruoyi.system.model.THouse; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "合同详情页VO") +public class TContractVO extends TContract { + + + @ApiModelProperty(value = "递增递减 1=递增 2=递减") + private Integer increasingDecreasing; + + @ApiModelProperty(value = "递增递减形式 1=百分比 2=金额元") + private Integer increasingDecreasingType; + + @ApiModelProperty(value = "数值") + private BigDecimal numericalValue; + + @ApiModelProperty(value = "递增或递减时点") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime changeTime; + + @ApiModelProperty(value = "房屋信息") + private THouse house; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TenantVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TenantVO.java new file mode 100644 index 0000000..52566aa --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TenantVO.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.system.model.TTenant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@ApiModel(value = "租户列表VO") +public class TenantVO extends TTenant { + + @ApiModelProperty(value = "租户属性") + private String tenantAttributesName; + + @ApiModelProperty(value = "租户类型") + private String tenantTypeName; + +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml index 8da9030..4fae8d7 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -59,8 +59,11 @@ <select id="countDictDataByType" resultType="Integer"> select count(1) from sys_dict_data where dict_type=#{dictType} </select> - - <delete id="deleteDictDataById" parameterType="Long"> + <select id="selectDictDataByTypeAndValue" resultType="java.lang.String"> + select dict_label from sys_dict_data where dict_type=#{dictType} and dict_value=#{dictValue} + </select> + + <delete id="deleteDictDataById" parameterType="Long"> delete from sys_dict_data where dict_code = #{dictCode} </delete> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index c0b58fa..7336905 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -137,7 +137,7 @@ left join sys_user_role ur on u.user_id = ur.user_id left join sys_role sr on ur.role_id = sr.role_id left join sys_dept sd on u.dept_id = sd.dept_id - where u.user_id = #{userId} and u.del_flag = 0 group by u.user_id + where u.user_id = #{userId} and u.del_flag = 0 </select> <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult"> diff --git a/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml index 6531e6f..27b7137 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml @@ -38,5 +38,22 @@ <sql id="Base_Column_List"> id, contract_number, contract_name, start_time, end_time, total_rent, deposit, pay_type, first_pay_time, isIncreasing, isIncreasing_deposit, proportion, house_id, party_one_name, party_one_person, party_one_phone, tenant_id, party_two_name, party_two_person, party_two_phone, contract_file, remark, status, create_time, update_time, create_by, update_by, disabled </sql> + <select id="contractList" resultType="com.ruoyi.system.model.TContract"> + select t1.* from t_contract t1 + <where> + <if test="query.partyTwoName != null and query.partyTwoName != ''"> + and t1.party_two_name like concat('%',#{query.partyTwoName},'%') + </if> + <if test="query.contractNumber != null and query.contractNumber != ''"> + and t1.contract_number like concat('%',#{query.contractNumber},'%') + </if> + <if test="query.contractName != null and query.contractName != ''"> + and t1.contract_name like concat('%',#{query.contractName},'%') + </if> + <if test="query.status != null"> + and t1.status = #{query.status} + </if> + </where> + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml index 96f74cc..ec45f48 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TTenantMapper.xml @@ -9,9 +9,6 @@ <result column="checkIn_time" property="checkinTime" /> <result column="tenant_attributes" property="tenantAttributes" /> <result column="tenant_type" property="tenantType" /> - <result column="tenant_building" property="tenantBuilding" /> - <result column="room_number" property="roomNumber" /> - <result column="building_area" property="buildingArea" /> <result column="phone" property="phone" /> <result column="id_card" property="idCard" /> <result column="email" property="email" /> @@ -28,18 +25,19 @@ <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, resident_name, checkIn_time, tenant_attributes, tenant_type, tenant_building, room_number, building_area, phone, id_card, email, + id, resident_name, checkIn_time, tenant_attributes, tenant_type, phone, id_card, email, bank_number, mail_address, create_time, update_time, create_by, update_by, disabled,account,password </sql> - <select id="pageList" resultType="com.ruoyi.system.model.TTenant"> - SELECT <include refid="Base_Column_List"/> + <select id="pageList" resultType="com.ruoyi.system.vo.TenantVO"> + SELECT id, resident_name, checkIn_time, tenant_attributes, tenant_type, phone, id_card, email, + bank_number, mail_address, create_time, disabled,account, FROM t_tenant <where> - <if test="residentName != null and residentName != ''"> - AND resident_name LIKE concat('%',#{residentName},'%') + <if test="query.residentName != null and query.residentName != ''"> + AND resident_name LIKE concat('%',#{query.residentName},'%') </if> - <if test="phone != null and phone != ''"> - AND phone LIKE concat('%',#{phone},'%') + <if test="query.phone != null and query.phone != ''"> + AND phone LIKE concat('%',#{query.phone},'%') </if> AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> diff --git a/sql/xizang.sql b/sql/xizang.sql index 3dd7b04..66d6c23 100644 --- a/sql/xizang.sql +++ b/sql/xizang.sql @@ -11,7 +11,7 @@ Target Server Version : 80019 File Encoding : 65001 - Date: 20/01/2025 10:22:50 + Date: 21/01/2025 17:37:24 */ SET NAMES utf8mb4; @@ -235,7 +235,7 @@ `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', PRIMARY KEY (`config_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数配置表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_config @@ -268,7 +268,7 @@ `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`dept_id`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_dept @@ -304,7 +304,7 @@ `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', PRIMARY KEY (`dict_code`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 29 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_dict_data @@ -338,6 +338,18 @@ INSERT INTO `sys_dict_data` VALUES (27, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2023-10-02 14:09:11', '', NULL, '清空操作'); INSERT INTO `sys_dict_data` VALUES (28, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2023-10-02 14:09:11', '', NULL, '正常状态'); INSERT INTO `sys_dict_data` VALUES (29, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2023-10-02 14:09:11', '', NULL, '停用状态'); +INSERT INTO `sys_dict_data` VALUES (30, 1, '个人', '1', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性个人'); +INSERT INTO `sys_dict_data` VALUES (31, 2, '企业', '2', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性企业'); +INSERT INTO `sys_dict_data` VALUES (32, 3, '联系人', '3', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性联系人'); +INSERT INTO `sys_dict_data` VALUES (33, 4, '个体户', '4', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性个体户'); +INSERT INTO `sys_dict_data` VALUES (34, 5, '政府机构', '5', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性政府机构'); +INSERT INTO `sys_dict_data` VALUES (35, 6, '车主', '6', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性车主'); +INSERT INTO `sys_dict_data` VALUES (36, 7, '国有企业', '7', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性国有企业'); +INSERT INTO `sys_dict_data` VALUES (37, 8, '其他', '8', 't_tenant_attribute', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:12:04', '', NULL, '属性其他'); +INSERT INTO `sys_dict_data` VALUES (38, 1, '业主', '1', 't_tenant_type', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:15:26', '', NULL, '类型业主'); +INSERT INTO `sys_dict_data` VALUES (39, 2, '业主家庭成员', '2', 't_tenant_type', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:15:26', '', NULL, '类型业主家庭成员'); +INSERT INTO `sys_dict_data` VALUES (40, 3, '租户', '3', 't_tenant_type', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:15:26', '', NULL, '类型租户'); +INSERT INTO `sys_dict_data` VALUES (41, 4, '租户家庭成员', '4', 't_tenant_type', NULL, NULL, 'N', '0', 'admin', '2025-01-21 14:15:26', '', NULL, '类型租户家庭成员'); -- ---------------------------- -- Table structure for sys_dict_type @@ -370,6 +382,8 @@ INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'admin', '2023-10-02 14:09:11', '', NULL, '通知状态列表'); INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'admin', '2023-10-02 14:09:11', '', NULL, '操作类型列表'); INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'admin', '2023-10-02 14:09:11', '', NULL, '登录状态列表'); +INSERT INTO `sys_dict_type` VALUES (11, '租户属性', 't_tenant_attribute', '0', 'admin', '2025-01-21 14:05:14', '', NULL, '租户属性列表'); +INSERT INTO `sys_dict_type` VALUES (12, '租户类别', 't_tenant_type', '0', 'admin', '2025-01-21 14:05:47', '', NULL, '租户类别列表'); -- ---------------------------- -- Table structure for sys_job @@ -390,7 +404,7 @@ `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注信息', PRIMARY KEY (`job_id`, `job_name`, `job_group`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 100 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务调度表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_job @@ -436,7 +450,7 @@ PRIMARY KEY (`info_id`) USING BTREE, INDEX `idx_sys_logininfor_s`(`status`) USING BTREE, INDEX `idx_sys_logininfor_lt`(`login_time`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1199 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1273 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_logininfor @@ -1541,6 +1555,101 @@ INSERT INTO `sys_logininfor` VALUES (1197, '17780483325', '192.168.110.91', '内网IP', 'Mobile Safari', 'iOS 11 (iPhone)', '0', '登录成功', '2024-03-04 10:03:38'); INSERT INTO `sys_logininfor` VALUES (1198, '17780483325', '192.168.110.29', '内网IP', 'Chrome Mobile', 'Android 1.x', '0', '登录成功', '2024-03-04 10:19:27'); INSERT INTO `sys_logininfor` VALUES (1199, '17780483325', '192.168.110.29', '内网IP', 'Chrome Mobile', 'Android 1.x', '0', '登录成功', '2024-03-04 10:34:13'); +INSERT INTO `sys_logininfor` VALUES (1200, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '密码输入错误1次', '2025-01-20 17:46:06'); +INSERT INTO `sys_logininfor` VALUES (1201, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-01-20 17:46:06'); +INSERT INTO `sys_logininfor` VALUES (1202, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:47:51'); +INSERT INTO `sys_logininfor` VALUES (1203, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '密码输入错误1次', '2025-01-20 17:48:50'); +INSERT INTO `sys_logininfor` VALUES (1204, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-01-20 17:48:50'); +INSERT INTO `sys_logininfor` VALUES (1205, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:48:56'); +INSERT INTO `sys_logininfor` VALUES (1206, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:49:19'); +INSERT INTO `sys_logininfor` VALUES (1207, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:49:21'); +INSERT INTO `sys_logininfor` VALUES (1208, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:49:35'); +INSERT INTO `sys_logininfor` VALUES (1209, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:51:29'); +INSERT INTO `sys_logininfor` VALUES (1210, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:51:32'); +INSERT INTO `sys_logininfor` VALUES (1211, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:51:48'); +INSERT INTO `sys_logininfor` VALUES (1212, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '密码输入错误1次', '2025-01-20 17:52:06'); +INSERT INTO `sys_logininfor` VALUES (1213, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-01-20 17:52:06'); +INSERT INTO `sys_logininfor` VALUES (1214, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:52:10'); +INSERT INTO `sys_logininfor` VALUES (1215, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-01-20 17:52:27'); +INSERT INTO `sys_logininfor` VALUES (1216, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '密码输入错误1次', '2025-01-20 17:52:27'); +INSERT INTO `sys_logininfor` VALUES (1217, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:52:30'); +INSERT INTO `sys_logininfor` VALUES (1218, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:53:47'); +INSERT INTO `sys_logininfor` VALUES (1219, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:54:08'); +INSERT INTO `sys_logininfor` VALUES (1220, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:54:54'); +INSERT INTO `sys_logininfor` VALUES (1221, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '密码输入错误1次', '2025-01-20 17:56:04'); +INSERT INTO `sys_logininfor` VALUES (1222, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '1', '用户不存在/密码错误', '2025-01-20 17:56:04'); +INSERT INTO `sys_logininfor` VALUES (1223, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:56:08'); +INSERT INTO `sys_logininfor` VALUES (1224, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:56:52'); +INSERT INTO `sys_logininfor` VALUES (1225, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:57:27'); +INSERT INTO `sys_logininfor` VALUES (1226, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 17:59:48'); +INSERT INTO `sys_logininfor` VALUES (1227, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:00:29'); +INSERT INTO `sys_logininfor` VALUES (1228, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:00:44'); +INSERT INTO `sys_logininfor` VALUES (1229, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:01:05'); +INSERT INTO `sys_logininfor` VALUES (1230, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:01:20'); +INSERT INTO `sys_logininfor` VALUES (1231, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:01:46'); +INSERT INTO `sys_logininfor` VALUES (1232, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:02:04'); +INSERT INTO `sys_logininfor` VALUES (1233, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:02:29'); +INSERT INTO `sys_logininfor` VALUES (1234, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:02:46'); +INSERT INTO `sys_logininfor` VALUES (1235, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:03:46'); +INSERT INTO `sys_logininfor` VALUES (1236, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:04:02'); +INSERT INTO `sys_logininfor` VALUES (1237, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:04:41'); +INSERT INTO `sys_logininfor` VALUES (1238, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:04:52'); +INSERT INTO `sys_logininfor` VALUES (1239, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:05:43'); +INSERT INTO `sys_logininfor` VALUES (1240, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:05:55'); +INSERT INTO `sys_logininfor` VALUES (1241, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:06:01'); +INSERT INTO `sys_logininfor` VALUES (1242, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:06:30'); +INSERT INTO `sys_logininfor` VALUES (1243, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:06:42'); +INSERT INTO `sys_logininfor` VALUES (1244, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:08:52'); +INSERT INTO `sys_logininfor` VALUES (1245, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:09:34'); +INSERT INTO `sys_logininfor` VALUES (1246, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:10:06'); +INSERT INTO `sys_logininfor` VALUES (1247, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:10:09'); +INSERT INTO `sys_logininfor` VALUES (1248, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:10:17'); +INSERT INTO `sys_logininfor` VALUES (1249, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:10:45'); +INSERT INTO `sys_logininfor` VALUES (1250, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:11:13'); +INSERT INTO `sys_logininfor` VALUES (1251, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:11:20'); +INSERT INTO `sys_logininfor` VALUES (1252, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:12:41'); +INSERT INTO `sys_logininfor` VALUES (1253, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:12:51'); +INSERT INTO `sys_logininfor` VALUES (1254, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:13:43'); +INSERT INTO `sys_logininfor` VALUES (1255, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:14:14'); +INSERT INTO `sys_logininfor` VALUES (1256, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-20 18:16:44'); +INSERT INTO `sys_logininfor` VALUES (1257, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 10:47:15'); +INSERT INTO `sys_logininfor` VALUES (1258, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:08:28'); +INSERT INTO `sys_logininfor` VALUES (1259, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:09:55'); +INSERT INTO `sys_logininfor` VALUES (1260, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:20:23'); +INSERT INTO `sys_logininfor` VALUES (1261, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:21:07'); +INSERT INTO `sys_logininfor` VALUES (1262, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:24:52'); +INSERT INTO `sys_logininfor` VALUES (1263, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:51:22'); +INSERT INTO `sys_logininfor` VALUES (1264, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:57:01'); +INSERT INTO `sys_logininfor` VALUES (1265, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:58:29'); +INSERT INTO `sys_logininfor` VALUES (1266, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 11:59:22'); +INSERT INTO `sys_logininfor` VALUES (1267, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:18:17'); +INSERT INTO `sys_logininfor` VALUES (1268, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:24:19'); +INSERT INTO `sys_logininfor` VALUES (1269, 'admin', '192.168.110.10', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:24:48'); +INSERT INTO `sys_logininfor` VALUES (1270, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:25:00'); +INSERT INTO `sys_logininfor` VALUES (1271, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:27:32'); +INSERT INTO `sys_logininfor` VALUES (1272, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:28:40'); +INSERT INTO `sys_logininfor` VALUES (1273, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:47:20'); +INSERT INTO `sys_logininfor` VALUES (1274, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 13:55:52'); +INSERT INTO `sys_logininfor` VALUES (1275, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 14:18:41'); +INSERT INTO `sys_logininfor` VALUES (1276, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 14:22:44'); +INSERT INTO `sys_logininfor` VALUES (1277, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 14:23:53'); +INSERT INTO `sys_logininfor` VALUES (1278, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 14:30:34'); +INSERT INTO `sys_logininfor` VALUES (1279, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 14:44:08'); +INSERT INTO `sys_logininfor` VALUES (1280, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 14:45:20'); +INSERT INTO `sys_logininfor` VALUES (1281, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:06:27'); +INSERT INTO `sys_logininfor` VALUES (1282, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:07:13'); +INSERT INTO `sys_logininfor` VALUES (1283, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:08:22'); +INSERT INTO `sys_logininfor` VALUES (1284, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:09:26'); +INSERT INTO `sys_logininfor` VALUES (1285, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:09:55'); +INSERT INTO `sys_logininfor` VALUES (1286, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:11:01'); +INSERT INTO `sys_logininfor` VALUES (1287, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:12:25'); +INSERT INTO `sys_logininfor` VALUES (1288, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:13:00'); +INSERT INTO `sys_logininfor` VALUES (1289, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:13:36'); +INSERT INTO `sys_logininfor` VALUES (1290, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:14:17'); +INSERT INTO `sys_logininfor` VALUES (1291, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:16:40'); +INSERT INTO `sys_logininfor` VALUES (1292, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:17:16'); +INSERT INTO `sys_logininfor` VALUES (1293, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:28:50'); +INSERT INTO `sys_logininfor` VALUES (1294, 'admin', '192.168.110.103', '内网IP', 'Chrome 13', 'Windows 10', '0', '登录成功', '2025-01-21 15:39:35'); -- ---------------------------- -- Table structure for sys_menu @@ -1567,7 +1676,7 @@ `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注', PRIMARY KEY (`menu_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 54 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 2008 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_menu @@ -4082,7 +4191,7 @@ `removeDays` int(0) NULL DEFAULT NULL COMMENT '删除天数', `postType` int(0) NULL DEFAULT NULL COMMENT '岗位类型 1=经理 2=负责人 3=专员', PRIMARY KEY (`role_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 122 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色信息表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 123 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色信息表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_role @@ -4681,12 +4790,12 @@ `districtId` int(0) NULL DEFAULT NULL COMMENT '区县id', `deptName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名称', PRIMARY KEY (`user_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 151 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 152 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of sys_user -- ---------------------------- -INSERT INTO `sys_user` VALUES (1, 100, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', 'https://we-park-life.oss-cn-beijing.aliyuncs.com/img/ebcc2c95e1504371a8b3f3b1167a03a0.jpg', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '192.168.110.6', '2024-03-04 09:33:39', 'admin', '2023-10-02 14:09:09', 'admin', '2024-03-04 09:33:38', '管理员', 0, 4, '测试部门'); +INSERT INTO `sys_user` VALUES (1, 100, 'admin', '若依', '00', 'ry@163.com', '15888888888', '1', 'https://we-park-life.oss-cn-beijing.aliyuncs.com/img/ebcc2c95e1504371a8b3f3b1167a03a0.jpg', '$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2', '0', '0', '192.168.110.103', '2025-01-21 15:39:35', 'admin', '2023-10-02 14:09:09', 'admin', '2025-01-21 15:39:35', '管理员', 0, 4, '测试部门'); INSERT INTO `sys_user` VALUES (100, 3, '18008172471', '蒲悦添', '00', '', '18008172471', '0', 'https://we-park-life.oss-cn-beijing.aliyuncs.com/img/ebcc2c95e1504371a8b3f3b1167a03a0.jpg', '$2a$10$gL9RGP3b2d9YnmLxWm8GSu8XnvHDdJemGLgrslbe.hJPRKQ6Yk5jK', '0', '2', '', NULL, '若依', '2023-10-20 18:25:45', '若依', '2023-10-21 09:33:02', NULL, 0, 2, '测试部门'); INSERT INTO `sys_user` VALUES (101, 3, '18008172470', '蒲悦添', '00', '', '18008172470', '0', 'https://we-park-life.oss-cn-beijing.aliyuncs.com/img/ebcc2c95e1504371a8b3f3b1167a03a0.jpg', '$2a$10$PapRFYddk9FIcsKPJLFby.JKnRt2C1dngbr2EUiDgCNca8fxEfafi', '0', '2', '', NULL, '若依', '2023-10-20 18:27:54', '若依', '2023-10-21 09:33:00', 'string', 0, 2, '测试部门'); INSERT INTO `sys_user` VALUES (102, 3, '18008172471', '蒲悦添', '00', '', '18008172471', '0', 'https://we-park-life.oss-cn-beijing.aliyuncs.com/img/ebcc2c95e1504371a8b3f3b1167a03a0.jpg', '$2a$10$C6fSf7r6uZhWD8kc1nYoAO2oUlp3cFc.Q92Qqa8xQhueD74Ram/pG', '0', '2', '127.0.0.1', '2023-10-23 17:31:08', '若依', '2023-10-21 10:11:08', '蒲悦添', '2023-10-23 17:31:07', NULL, 0, 2, '测试部门'); @@ -4800,7 +4909,7 @@ `actual_money` double(10, 2) NULL DEFAULT NULL COMMENT '实际收款', `voucher` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '凭证上传', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -4832,7 +4941,7 @@ `check_result` int(0) NULL DEFAULT NULL COMMENT '验收结果 1=合格 2=不合格', `check_money` double(10, 2) NULL DEFAULT NULL COMMENT '验收结算金额', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -4868,11 +4977,11 @@ `party_two_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '乙方名称', `party_two_person` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '乙方联系人', `party_two_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '乙方联系方式', - `contract_file` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '合同附件', + `contract_file` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '合同附件', `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注', `status` int(0) NULL DEFAULT 1 COMMENT '状态 1=待审批 2=未签订 3=已签订', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -4948,12 +5057,12 @@ `leave_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '留言', `handle_person` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理人', `handle_time` datetime(0) NULL DEFAULT NULL COMMENT '处理时间', - `reault_describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '结果描述', + `result_describe` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '结果描述', `repair_picture` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理照片', `attachment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件', `status` int(0) NULL DEFAULT 1 COMMENT '状态 1=待处理 2=已处理', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -4982,7 +5091,7 @@ `pay_type` int(0) NULL DEFAULT NULL COMMENT '支付方式 1=微信支付 2=支付宝支付 3=线下支付', `payment_bill_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '缴费账单id', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -5012,10 +5121,12 @@ `property_right_duration` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '产权年限', `lease_status` int(0) NULL DEFAULT 1 COMMENT '租赁状态 1=待出租 2=已出租 3=维修中', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', + `building` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '楼栋', + `room_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '房号', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '房屋管理' ROW_FORMAT = Dynamic; @@ -5036,7 +5147,7 @@ `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容', `attachment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '附件', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -5065,7 +5176,7 @@ `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', `contract_number` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '开票合同编号逗号分割', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -5087,7 +5198,7 @@ `sort_by` int(0) NULL DEFAULT NULL COMMENT '权重', `pictures` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -5107,7 +5218,7 @@ `type_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类名称', `sort_by` int(0) NULL DEFAULT NULL COMMENT '权重', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', @@ -5153,10 +5264,12 @@ `bank_number` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '银行转账专号', `mail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '通讯地址', `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', `create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', `update_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '修改人', `disabled` int(0) NULL DEFAULT 0 COMMENT '是否删除 0=否 1=是', + `account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录账号', + `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '密码', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户' ROW_FORMAT = Dynamic; -- Gitblit v1.7.1