admin-server/pom.xml
@@ -150,7 +150,7 @@ <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> <version>3.5.2</version> </dependency> </dependencies> admin-server/src/main/java/com/estate/expert/admin/config/MybatisPlusConfig.java
New file @@ -0,0 +1,17 @@ package com.estate.expert.admin.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 根据数据库类型选择 return interceptor; } } admin-server/src/main/java/com/estate/expert/admin/controller/admin/ClientController.java
@@ -2,22 +2,29 @@ import com.estate.expert.admin.domain.business.client.ClientDto; import com.estate.expert.admin.domain.business.client.clientparam.ClientParam; import com.estate.expert.admin.domain.report.ReportTemplate; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.domain.common.request.BatchReq; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.business.client.ClientType; import com.estate.expert.admin.service.ClientParamService; import com.estate.expert.admin.service.ClientService; import com.estate.expert.admin.service.ReportTemplateService; import com.estate.expert.common.domain.Session; import com.estate.expert.common.rpc.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import static org.springframework.data.jpa.domain.AbstractPersistable_.id; @Slf4j @CrossOrigin @@ -71,4 +78,11 @@ clientParamService.saveOrUpdate(clientParam); return Result.success(); } @ApiOperation(value = "委托方获取模板",response = ReportTemplate.class) @PostMapping("/getTemplate") public Result getTemplate(@ApiParam(value = "模板类型0安全 1设备") @RequestParam(value = "type") Integer type) { List<ReportTemplate> list = clientParamService.getTemplate(type); return Result.success(list); } } admin-server/src/main/java/com/estate/expert/admin/controller/admin/ScreenAccountController.java
@@ -34,7 +34,7 @@ @PostMapping("/list") public Result list(@ApiParam(value = "账号名称") @RequestParam(value = "name", required = false) String name, @ApiParam(value = "关键词") @RequestParam(value = "keyword", required = false) String keyword, @ApiParam(value = "账号类型") @RequestParam(value = "type", required = false) Integer type, @ApiParam(value = "账号类型 1委托方 2项目") @RequestParam(value = "type", required = false) Integer type, @Validated @RequestBody PageReq pageReq) { return Result.success(screenAccountService.list(name, keyword, type,pageReq)); } @@ -71,12 +71,6 @@ public Result edit(@Validated @RequestBody ScreenAccountEditDto dto) { ScreenAccount screenAccount = new ScreenAccount(); BeanUtils.copyProperties(dto, screenAccount); if (screenAccountService.existsByAccountAndIdNot(dto.getAccount(), dto.getId())) { return Result.error("账号已存在"); } if (dto.getPassword() != null && !dto.getPassword().isEmpty()) { screenAccount.setPassword(MD5Utils.encrypt(dto.getPassword())); } return Result.success(screenAccountService.updateById(screenAccount)); } admin-server/src/main/java/com/estate/expert/admin/domain/business/check/Check.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.estate.expert.admin.domain.user.User; @@ -29,6 +30,7 @@ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("check_info") public class Check extends Model<Check> { private static final long serialVersionUID = 1L; admin-server/src/main/java/com/estate/expert/admin/domain/business/screenaccount/ScreenAccount.java
@@ -1,35 +1,71 @@ package com.estate.expert.admin.domain.business.screenaccount; import com.estate.expert.admin.domain.common.EntityBase; import com.estate.expert.admin.domain.user.User; import lombok.Getter; import lombok.Setter; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; /** * 大屏账号 **/ @Getter @Setter @Entity @Table(name = "screen_account") public class ScreenAccount extends EntityBase { * <p> * 在岗情况 * </p> * * @author l * @since 2026-01-12 */ @Data @EqualsAndHashCode(callSuper = false) @TableName("screen_account") @ApiModel(value="ScreenAccount对象", description="大屏账号") public class ScreenAccount implements Serializable { @Column(nullable = false) private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "1委托方 2项目") @TableField("type") private Integer type; @Column(nullable = false) @ApiModelProperty(value = "1启用 2关闭") @TableField("state") private Integer state; @Column(name = "client_project_ids") private String clientProjectIds; @ApiModelProperty(value = "false正常true删除") @TableField("deleted") private Boolean deleted; @Column(unique = true, nullable = false) @ApiModelProperty(value = "创建时间") @TableField("create_time") private LocalDateTime createTime; @ApiModelProperty(value = "账号") @TableField("account") private String account; @Column(nullable = false) @ApiModelProperty(value = "密码") @TableField("password") private String password; @ApiModelProperty(value = "项目/委托方id") @TableField("client_project_ids") private String clientProjectIds; @ApiModelProperty(value = "图片") @TableField("update_time") private LocalDateTime updateTime; } admin-server/src/main/java/com/estate/expert/admin/domain/business/screenaccount/ScreenAccountEditDto.java
@@ -15,31 +15,23 @@ public class ScreenAccountEditDto { @ApiModelProperty("ID") Integer id; private Integer id; @ApiModelProperty("账号名称") @NotBlank(message = "账号名称不能为空") String name; private String name; @ApiModelProperty("账号类型 1委托方 2项目") @NotNull(message = "账号类型不能为空") Integer type; private Integer type; @ApiModelProperty("账号状态 1启用 2关闭") @NotNull(message = "账号状态不能为空") Integer state; private Integer state; @ApiModelProperty("关联ID字符串") @NotBlank(message = "关联ID不能为空") String clientProjectIds; @ApiModelProperty("登录账号") @NotBlank(message = "登录账号不能为空") String account; @ApiModelProperty("登录密码") @NotBlank(message = "登录密码不能为空") String password; private String clientProjectIds; admin-server/src/main/java/com/estate/expert/admin/domain/business/screenaccount/ScreenAccountMapper.java
@@ -6,7 +6,6 @@ import org.mapstruct.MappingConstants; import org.mapstruct.ReportingPolicy; @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, componentModel = MappingConstants.ComponentModel.SPRING, uses = {EntityRefMapper.class}) public interface ScreenAccountMapper extends IMapperBase<ScreenAccountDto, ScreenAccount> { } admin-server/src/main/java/com/estate/expert/admin/domain/business/screenaccount/ScreenAccountRepository.java
File was deleted admin-server/src/main/java/com/estate/expert/admin/domain/repository/ClientParamMapper.java
@@ -3,6 +3,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.estate.expert.admin.domain.business.client.clientparam.ClientParam; import com.estate.expert.admin.domain.report.ReportTemplate; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -14,4 +18,6 @@ */ public interface ClientParamMapper extends BaseMapper<ClientParam> { List<ReportTemplate> getTemplate(@Param("type") Integer type); } admin-server/src/main/java/com/estate/expert/admin/service/ClientParamService.java
@@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.estate.expert.admin.domain.business.client.clientparam.ClientParam; import com.estate.expert.admin.domain.report.ReportTemplate; import java.util.List; /** * <p> @@ -14,4 +17,7 @@ */ public interface ClientParamService extends IService<ClientParam> { List<ReportTemplate> getTemplate(Integer type); } admin-server/src/main/java/com/estate/expert/admin/service/ReportTemplateService.java
@@ -6,6 +6,8 @@ import com.estate.expert.admin.domain.report.ReportTemplateDto; import com.estate.expert.admin.service.common.CrudServiceBase; import java.util.List; /** * 报告模板服务 */ @@ -23,4 +25,6 @@ * 创建默认报告模板 */ void createDefaultTemplates(); List<ReportTemplate> getTemplate(Integer type); } admin-server/src/main/java/com/estate/expert/admin/service/impl/ClientParamServiceImpl.java
@@ -3,9 +3,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.estate.expert.admin.domain.business.client.clientparam.ClientParam; import com.estate.expert.admin.domain.report.ReportTemplate; import com.estate.expert.admin.domain.repository.ClientParamMapper; import com.estate.expert.admin.service.ClientParamService; import org.springframework.stereotype.Service; import java.util.List; /** * <p> @@ -18,4 +21,8 @@ @Service public class ClientParamServiceImpl extends ServiceImpl<ClientParamMapper, ClientParam> implements ClientParamService { @Override public List<ReportTemplate> getTemplate(Integer type) { return this.baseMapper.getTemplate(type); } } admin-server/src/main/java/com/estate/expert/admin/service/impl/ReportTemplateServiceImpl.java
@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * 报告模板服务实现 @@ -58,6 +59,11 @@ .build(); add(userService.getSystemUser(), template); } @Override public List<ReportTemplate> getTemplate(Integer type) { return List.of(); } } admin-server/src/main/java/com/estate/expert/admin/service/impl/ScreenAccountServiceImpl.java
@@ -6,24 +6,15 @@ import com.estate.expert.admin.domain.business.client.ClientRepository; import com.estate.expert.admin.domain.business.screenaccount.ScreenAccount; import com.estate.expert.admin.domain.business.screenaccount.ScreenAccountDto; import com.estate.expert.admin.domain.business.screenaccount.ScreenAccountMapper; import com.estate.expert.admin.domain.business.screenaccount.ScreenAccountRepository; import com.estate.expert.admin.domain.common.EntityBase; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.project.ProjectRepository; import com.estate.expert.admin.domain.repository.ScreenAccountMybatisMapper; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.enums.BizResultCode; import com.estate.expert.admin.service.ScreenAccountService; import com.estate.expert.admin.utils.MD5Utils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * 大屏账号服务实现 @@ -32,8 +23,6 @@ @Service public class ScreenAccountServiceImpl extends ServiceImpl<ScreenAccountMybatisMapper, ScreenAccount> implements ScreenAccountService { @Resource private ScreenAccountRepository screenAccountRepository; @Resource private ClientRepository clientRepository; @@ -63,6 +52,7 @@ } Page<ScreenAccountDto> page = new Page<>(pageReq.getPage(), pageReq.getSize()); List<ScreenAccountDto> list = screenAccountMybatisMapper.list(page, name,keyword, type,clientListIds, projectIds); // Page<ScreenAccountDto> list = screenAccountMybatisMapper.listPage(page, name,keyword, type,clientListIds, projectIds); if(!list.isEmpty()){ for (ScreenAccountDto screenAccountDto : list) { if(screenAccountDto.getType()==1){ @@ -84,13 +74,13 @@ @Override public boolean existsByAccount(String account) { List<ScreenAccount> screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper<ScreenAccount>().eq(ScreenAccount::getAccount, account).eq(EntityBase::isDeleted, false)); List<ScreenAccount> screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper<ScreenAccount>().eq(ScreenAccount::getAccount, account).eq(ScreenAccount::getDeleted, false)); return !screenAccounts.isEmpty(); } @Override public boolean existsByAccountAndIdNot(String account, Integer id) { List<ScreenAccount> screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper<ScreenAccount>().eq(ScreenAccount::getAccount, account).ne(EntityBase::getId,id).eq(EntityBase::isDeleted, false)); List<ScreenAccount> screenAccounts = screenAccountMybatisMapper.selectList(new LambdaUpdateWrapper<ScreenAccount>().eq(ScreenAccount::getAccount, account).ne(ScreenAccount::getId,id).eq(ScreenAccount::getDeleted, false)); return !screenAccounts.isEmpty(); } admin-server/src/main/resources/mapper/ClientParamMapper.xml
@@ -3,4 +3,11 @@ <mapper namespace="com.estate.expert.admin.domain.repository.ClientParamMapper"> <select id="getTemplate" resultType="com.estate.expert.admin.domain.report.ReportTemplate" parameterType="java.lang.Integer"> select id,name from report_template where type = #{type} and deleted =0 </select> </mapper>