diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/InterphoneOpenController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/InterphoneOpenController.java deleted file mode 100644 index 44a65d0..0000000 --- a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/InterphoneOpenController.java +++ /dev/null @@ -1,245 +0,0 @@ -package cn.iocoder.yudao.module.interphone.controller.admin; - -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.interphone.service.InterphoneApiService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.annotation.Resource; -import jakarta.annotation.security.PermitAll; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -@Tag(name = "开放接口 - 对讲平台代理") -@RestController -@RequestMapping("/interphone/open-api") -@Validated -public class InterphoneOpenController { - - @Resource - private InterphoneApiService interphoneApiService; - - @GetMapping("/profile/agent") - @Operation(summary = "获取代理商个人信息") - @PermitAll - public CommonResult getAgentProfile() { - return success(interphoneApiService.getAgentProfile()); - } - - @GetMapping("/agent/list") - @Operation(summary = "查询代理商列表") - @Parameters({ - @Parameter(name = "pageNo", description = "页码", required = true), - @Parameter(name = "pageSize", description = "每页数量", required = true), - @Parameter(name = "name", description = "代理商名称") - }) - @PermitAll - public CommonResult getAgentList(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam(value = "name", required = false) String name) { - return success(interphoneApiService.getAgentList(pageNo, pageSize, name)); - } - - @GetMapping("/agent/detail") - @Operation(summary = "查询代理商详情") - @Parameter(name = "id", description = "代理商 ID", required = true) - @PermitAll - public CommonResult getAgentDetail(@RequestParam("id") String id) { - return success(interphoneApiService.getAgentDetail(id)); - } - - @GetMapping("/profile/faststats") - @Operation(summary = "查询代理商单位群组用户统计") - @PermitAll - public CommonResult getFastStats() { - return success(interphoneApiService.getFastStats()); - } - - @GetMapping("/group/getGroupName") - @Operation(summary = "查询群组名称") - @Parameter(name = "orgId", description = "单位 ID", required = true) - @PermitAll - public CommonResult getGroupName(@RequestParam("orgId") String orgId) { - return success(interphoneApiService.getGroupName(orgId)); - } - - @GetMapping("/terminal/querySubordinateUser") - @Operation(summary = "查询下级用户") - @Parameters({ - @Parameter(name = "pageNo", description = "页码", required = true), - @Parameter(name = "pageSize", description = "每页数量", required = true), - @Parameter(name = "agentId", description = "代理商 ID"), - @Parameter(name = "orgId", description = "单位 ID"), - @Parameter(name = "groupId", description = "群组 ID"), - @Parameter(name = "userName", description = "用户名称"), - @Parameter(name = "account", description = "账号") - }) - @PermitAll - public CommonResult querySubordinateUser(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam(value = "agentId", required = false) String agentId, - @RequestParam(value = "orgId", required = false) String orgId, - @RequestParam(value = "groupId", required = false) String groupId, - @RequestParam(value = "userName", required = false) String userName, - @RequestParam(value = "account", required = false) String account) { - return success(interphoneApiService.querySubordinateUser(pageNo, pageSize, agentId, orgId, groupId, userName, account)); - } - - @GetMapping("/agent/orgs") - @Operation(summary = "查询单位列表") - @Parameters({ - @Parameter(name = "pageNo", description = "页码", required = true), - @Parameter(name = "pageSize", description = "每页数量", required = true), - @Parameter(name = "name", description = "单位名称") - }) - @PermitAll - public CommonResult getAgentOrgs(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam(value = "name", required = false) String name) { - return success(interphoneApiService.getAgentOrgs(pageNo, pageSize, name)); - } - - @GetMapping("/group/list") - @Operation(summary = "查询群组列表") - @Parameters({ - @Parameter(name = "pageNo", description = "页码", required = true), - @Parameter(name = "pageSize", description = "每页数量", required = true), - @Parameter(name = "name", description = "群组名称"), - @Parameter(name = "orgname", description = "单位名称") - }) - @PermitAll - public CommonResult getGroupList(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam(value = "name", required = false) String name, - @RequestParam(value = "orgname", required = false) String orgName) { - return success(interphoneApiService.getGroupList(pageNo, pageSize, name, orgName)); - } - - @PostMapping("/group/add") - @Operation(summary = "新增群组") - @PermitAll - public CommonResult addGroup(@RequestBody String requestBody) { - return success(interphoneApiService.addGroup(requestBody)); - } - - @GetMapping("/group/detail") - @Operation(summary = "查询群组详情") - @Parameter(name = "id", description = "群组 ID", required = true) - @PermitAll - public CommonResult getGroupDetail(@RequestParam("id") String id) { - return success(interphoneApiService.getGroupDetail(id)); - } - - @PostMapping("/group/updateGroup") - @Operation(summary = "编辑群组") - @PermitAll - public CommonResult updateGroup(@RequestBody String requestBody) { - return success(interphoneApiService.updateGroup(requestBody)); - } - - @PostMapping("/group/delete") - @Operation(summary = "删除群组") - @PermitAll - public CommonResult deleteGroup(@RequestBody String requestBody) { - return success(interphoneApiService.deleteGroup(requestBody)); - } - - @GetMapping("/group/members") - @Operation(summary = "获取群组成员") - @Parameter(name = "id", description = "群组 ID", required = true) - @PermitAll - public CommonResult getGroupMembers(@RequestParam("id") String id) { - return success(interphoneApiService.getGroupMembers(id)); - } - - @PostMapping("/group/members/add") - @Operation(summary = "添加群组成员") - @PermitAll - public CommonResult addGroupMembers(@RequestBody String requestBody) { - return success(interphoneApiService.addGroupMembers(requestBody)); - } - - @PostMapping("/group/members/remove") - @Operation(summary = "移除群组成员") - @PermitAll - public CommonResult removeGroupMembers(@RequestBody String requestBody) { - return success(interphoneApiService.removeGroupMembers(requestBody)); - } - - @GetMapping("/jsp/queryGroupByUId") - @Operation(summary = "查询用户群组") - @PermitAll - public CommonResult queryGroupByUid(@RequestParam Map queryParams) { - return success(interphoneApiService.queryGroupByUid(queryParams)); - } - - @PostMapping("/terminal/batch") - @Operation(summary = "创建对讲用户") - @PermitAll - public CommonResult createTerminalUsers(@RequestBody String requestBody) { - return success(interphoneApiService.createTerminalUsers(requestBody)); - } - - @GetMapping("/terminal/list") - @Operation(summary = "查询对讲用户列表") - @Parameters({ - @Parameter(name = "pageNo", description = "页码", required = true), - @Parameter(name = "pageSize", description = "每页数量", required = true), - @Parameter(name = "org_id", description = "单位 ID"), - @Parameter(name = "groupId", description = "群组 ID"), - @Parameter(name = "name", description = "用户名称") - }) - @PermitAll - public CommonResult getTerminalList(@RequestParam("pageNo") Integer pageNo, - @RequestParam("pageSize") Integer pageSize, - @RequestParam(value = "org_id", required = false) String orgId, - @RequestParam(value = "groupId", required = false) String groupId, - @RequestParam(value = "name", required = false) String name) { - return success(interphoneApiService.getTerminalList(pageNo, pageSize, orgId, groupId, name)); - } - - @GetMapping("/terminal/detail") - @Operation(summary = "查询对讲用户详情") - @PermitAll - public CommonResult getTerminalDetail(@RequestParam Map queryParams) { - return success(interphoneApiService.getTerminalDetail(queryParams)); - } - - @PostMapping("/terminal/updateUser") - @Operation(summary = "修改对讲用户信息") - @PermitAll - public CommonResult updateTerminalUser(@RequestBody String requestBody) { - return success(interphoneApiService.updateTerminalUser(requestBody)); - } - - @PostMapping("/terminal/deleteUser") - @Operation(summary = "删除对讲用户") - @PermitAll - public CommonResult deleteTerminalUser(@RequestBody String requestBody) { - return success(interphoneApiService.deleteTerminalUser(requestBody)); - } - - @GetMapping("/terminal/userOnlineStatus") - @Operation(summary = "查询对讲用户在线状态") - @PermitAll - public CommonResult getTerminalUserOnlineStatus(@RequestParam Map queryParams) { - return success(interphoneApiService.getTerminalUserOnlineStatus(queryParams)); - } - - @GetMapping("/record/list") - @Operation(summary = "查询录音列表") - @PermitAll - public CommonResult getRecordList(@RequestParam Map queryParams) { - return success(interphoneApiService.getRecordList(queryParams)); - } -} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/agent/InterphoneAgentController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/agent/InterphoneAgentController.java new file mode 100644 index 0000000..d4d003b --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/agent/InterphoneAgentController.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.agent; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.interphone.service.InterphoneAgentService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台代理商") +@RestController +@RequestMapping("/interphone/open-api/agent") +@Validated +public class InterphoneAgentController { + + @Resource + private InterphoneAgentService interphoneAgentService; + + @GetMapping("/list") + @Operation(summary = "查询代理商列表") + @Parameters({ + @Parameter(name = "pageNo", description = "页码", required = true), + @Parameter(name = "pageSize", description = "每页数量", required = true), + @Parameter(name = "name", description = "代理商名称") + }) + @PermitAll + public CommonResult getAgentList(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "name", required = false) String name) { + return success(interphoneAgentService.getAgentList(pageNo, pageSize, name)); + } + + @GetMapping("/detail") + @Operation(summary = "查询代理商详情") + @Parameter(name = "id", description = "代理商 ID", required = true) + @PermitAll + public CommonResult getAgentDetail(@RequestParam("id") String id) { + return success(interphoneAgentService.getAgentDetail(id)); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/group/InterphoneGroupController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/group/InterphoneGroupController.java new file mode 100644 index 0000000..bedebea --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/group/InterphoneGroupController.java @@ -0,0 +1,104 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.group; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.interphone.service.InterphoneGroupService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台群组") +@RestController +@RequestMapping("/interphone/open-api/group") +@Validated +public class InterphoneGroupController { + + @Resource + private InterphoneGroupService interphoneGroupService; + + @GetMapping("/getGroupName") + @Operation(summary = "查询群组名称") + @Parameter(name = "orgId", description = "单位 ID", required = true) + @PermitAll + public CommonResult getGroupName(@RequestParam("orgId") String orgId) { + return success(interphoneGroupService.getGroupName(orgId)); + } + + @GetMapping("/list") + @Operation(summary = "查询群组列表") + @Parameters({ + @Parameter(name = "pageNo", description = "页码", required = true), + @Parameter(name = "pageSize", description = "每页数量", required = true), + @Parameter(name = "name", description = "群组名称"), + @Parameter(name = "orgname", description = "单位名称") + }) + @PermitAll + public CommonResult getGroupList(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "name", required = false) String name, + @RequestParam(value = "orgname", required = false) String orgName) { + return success(interphoneGroupService.getGroupList(pageNo, pageSize, name, orgName)); + } + + @PostMapping("/add") + @Operation(summary = "新增群组") + @PermitAll + public CommonResult addGroup(@RequestBody String requestBody) { + return success(interphoneGroupService.addGroup(requestBody)); + } + + @GetMapping("/detail") + @Operation(summary = "查询群组详情") + @Parameter(name = "id", description = "群组 ID", required = true) + @PermitAll + public CommonResult getGroupDetail(@RequestParam("id") String id) { + return success(interphoneGroupService.getGroupDetail(id)); + } + + @PostMapping("/updateGroup") + @Operation(summary = "编辑群组") + @PermitAll + public CommonResult updateGroup(@RequestBody String requestBody) { + return success(interphoneGroupService.updateGroup(requestBody)); + } + + @PostMapping("/delete") + @Operation(summary = "删除群组") + @PermitAll + public CommonResult deleteGroup(@RequestBody String requestBody) { + return success(interphoneGroupService.deleteGroup(requestBody)); + } + + @GetMapping("/members") + @Operation(summary = "获取群组成员") + @Parameter(name = "id", description = "群组 ID", required = true) + @PermitAll + public CommonResult getGroupMembers(@RequestParam("id") String id) { + return success(interphoneGroupService.getGroupMembers(id)); + } + + @PostMapping("/members/add") + @Operation(summary = "添加群组成员") + @PermitAll + public CommonResult addGroupMembers(@RequestBody String requestBody) { + return success(interphoneGroupService.addGroupMembers(requestBody)); + } + + @PostMapping("/members/remove") + @Operation(summary = "移除群组成员") + @PermitAll + public CommonResult removeGroupMembers(@RequestBody String requestBody) { + return success(interphoneGroupService.removeGroupMembers(requestBody)); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/jsp/InterphoneJspController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/jsp/InterphoneJspController.java new file mode 100644 index 0000000..6a95a19 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/jsp/InterphoneJspController.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.jsp; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.interphone.service.InterphoneJspService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台用户群组") +@RestController +@RequestMapping("/interphone/open-api/jsp") +@Validated +public class InterphoneJspController { + + @Resource + private InterphoneJspService interphoneJspService; + + @GetMapping("/queryGroupByUId") + @Operation(summary = "查询用户群组") + @PermitAll + public CommonResult queryGroupByUid(@RequestParam Map queryParams) { + return success(interphoneJspService.queryGroupByUid(queryParams)); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/InterphoneOrgController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/InterphoneOrgController.java new file mode 100644 index 0000000..9f80f73 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/InterphoneOrgController.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.org; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgCreateReqVO; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgPageReqVO; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgRespVO; +import cn.iocoder.yudao.module.interphone.service.InterphoneOrgService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import jakarta.validation.Valid; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台单位创建") +@RestController +@RequestMapping("/interphone/open-api/org") +@Validated +public class InterphoneOrgController { + + @Resource + private InterphoneOrgService interphoneOrgService; + + @GetMapping("/orgs") + @Operation(summary = "查询单位列表") + @PermitAll + public CommonResult> getAgentOrgs(@Valid InterphoneOrgPageReqVO reqVO) { + return success(interphoneOrgService.getAgentOrgs(reqVO)); + } + +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgCreateReqVO.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgCreateReqVO.java new file mode 100644 index 0000000..14618e8 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgCreateReqVO.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.org.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.apache.commons.lang3.StringUtils; + +@Schema(description = "管理后台 - 对讲平台单位创建 Request VO") +@Data +public class InterphoneOrgCreateReqVO { + + @Schema(description = "单位id(uuid类型)") + private String id; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试平台") + @NotBlank(message = "单位名称不能为空") + private String name; + + @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "broadtest") + private String loginname; + + @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") + private String password; + + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试测试") + private String contact; + + @Schema(description = "手机号", example = "13800138000") + private String phone; + + @Schema(description = "详细地址", example = "广东省深圳市") + private String address; + + +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgPageReqVO.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgPageReqVO.java new file mode 100644 index 0000000..0425e97 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgPageReqVO.java @@ -0,0 +1,15 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.org.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "管理后台 - 对讲平台单位分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class InterphoneOrgPageReqVO extends PageParam { + + @Schema(description = "单位名称", example = "测试平台") + private String name; +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgRespVO.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgRespVO.java new file mode 100644 index 0000000..a40b73f --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/org/vo/InterphoneOrgRespVO.java @@ -0,0 +1,88 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.org.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 对讲平台单位 Response VO") +@Data +public class InterphoneOrgRespVO { + + @Schema(description = "单位自增 ID", example = "865") + @JsonProperty("corg_id") + private Long corgId; + + @Schema(description = "单位名称", example = "测试透传") + @JsonProperty("corg_name") + private String corgName; + + @Schema(description = "父级单位 ID", example = "0") + @JsonProperty("corg_parent") + private Integer corgParent; + + @Schema(description = "单位层级", example = "0") + @JsonProperty("corg_level") + private Integer corgLevel; + + @Schema(description = "是否允许用户设置优先级", example = "1") + @JsonProperty("corg_isallowusersetprior") + private Integer corgIsAllowUserSetPrior; + + @Schema(description = "临时群组优先级", example = "1") + @JsonProperty("corg_tempgroupprior") + private Integer corgTempGroupPrior; + + @Schema(description = "临时群组发言时长限制", example = "30") + @JsonProperty("corg_tempgrouplimitsecond") + private Integer corgTempGroupLimitSecond; + + @Schema(description = "单位类型", example = "0") + @JsonProperty("corg_type") + private Integer corgType; + + @Schema(description = "是否启用", example = "1") + @JsonProperty("isactive") + private Integer active; + + @Schema(description = "代理商 ID", example = "efad38ced1bb4ac0bf97665041db752a") + @JsonProperty("agent_id") + private String agentId; + + @Schema(description = "单位 UUID", example = "30b119a9c36c46de8a19afe8722e99d6") + private String id; + + @Schema(description = "手机号", example = "13800138000") + private String mobile; + + @Schema(description = "地址", example = "广东省深圳市") + private String address; + + @Schema(description = "联系人", example = "测试测试") + private String contact; + + @Schema(description = "成员详情级别", example = "1") + @JsonProperty("corg_memberdetaillevel") + private Integer corgMemberDetailLevel; + + @Schema(description = "是否开启降噪", example = "false") + @JsonProperty("is_denoise") + private Boolean denoise; + + @Schema(description = "手机号码串", example = "") + private String mobiles; + + @Schema(description = "群组总数", example = "2") + @JsonProperty("group_count") + private Integer groupCount; + + @Schema(description = "名称", example = "测试平台") + private String name; + + @Schema(description = "登录账号", example = "broadtest") + @JsonProperty("loginname") + private String loginName; + + @Schema(description = "用户总数", example = "2") + @JsonProperty("user_count") + private Integer userCount; +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/profile/InterphoneProfileController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/profile/InterphoneProfileController.java new file mode 100644 index 0000000..d999fff --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/profile/InterphoneProfileController.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.profile; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.interphone.service.InterphoneProfileService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台个人信息") +@RestController +@RequestMapping("/interphone/open-api/profile") +@Validated +public class InterphoneProfileController { + + @Resource + private InterphoneProfileService interphoneProfileService; + + @GetMapping("/agent") + @Operation(summary = "获取代理商个人信息") + @PermitAll + public CommonResult getAgentProfile() { + return success(interphoneProfileService.getAgentProfile()); + } + + @GetMapping("/faststats") + @Operation(summary = "查询代理商单位群组用户统计") + @PermitAll + public CommonResult getFastStats() { + return success(interphoneProfileService.getFastStats()); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/record/InterphoneRecordController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/record/InterphoneRecordController.java new file mode 100644 index 0000000..05e0bc8 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/record/InterphoneRecordController.java @@ -0,0 +1,34 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.record; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.interphone.service.InterphoneRecordService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台录音") +@RestController +@RequestMapping("/interphone/open-api/record") +@Validated +public class InterphoneRecordController { + + @Resource + private InterphoneRecordService interphoneRecordService; + + @GetMapping("/list") + @Operation(summary = "查询录音列表") + @PermitAll + public CommonResult getRecordList(@RequestParam Map queryParams) { + return success(interphoneRecordService.getRecordList(queryParams)); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/terminal/InterphoneTerminalController.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/terminal/InterphoneTerminalController.java new file mode 100644 index 0000000..080b73c --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/controller/admin/terminal/InterphoneTerminalController.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.interphone.controller.admin.terminal; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.interphone.service.InterphoneTerminalService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.annotation.security.PermitAll; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "开放接口 - 对讲平台终端") +@RestController +@RequestMapping("/interphone/open-api/terminal") +@Validated +public class InterphoneTerminalController { + + @Resource + private InterphoneTerminalService interphoneTerminalService; + + @GetMapping("/querySubordinateUser") + @Operation(summary = "查询下级用户") + @Parameters({ + @Parameter(name = "pageNo", description = "页码", required = true), + @Parameter(name = "pageSize", description = "每页数量", required = true), + @Parameter(name = "agentId", description = "代理商 ID"), + @Parameter(name = "orgId", description = "单位 ID"), + @Parameter(name = "groupId", description = "群组 ID"), + @Parameter(name = "userName", description = "用户名称"), + @Parameter(name = "account", description = "账号") + }) + @PermitAll + public CommonResult querySubordinateUser(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "agentId", required = false) String agentId, + @RequestParam(value = "orgId", required = false) String orgId, + @RequestParam(value = "groupId", required = false) String groupId, + @RequestParam(value = "userName", required = false) String userName, + @RequestParam(value = "account", required = false) String account) { + return success(interphoneTerminalService.querySubordinateUser(pageNo, pageSize, agentId, orgId, groupId, userName, account)); + } + + @PostMapping("/batch") + @Operation(summary = "创建对讲用户") + @PermitAll + public CommonResult createTerminalUsers(@RequestBody String requestBody) { + return success(interphoneTerminalService.createTerminalUsers(requestBody)); + } + + @GetMapping("/list") + @Operation(summary = "查询对讲用户列表") + @Parameters({ + @Parameter(name = "pageNo", description = "页码", required = true), + @Parameter(name = "pageSize", description = "每页数量", required = true), + @Parameter(name = "org_id", description = "单位 ID"), + @Parameter(name = "groupId", description = "群组 ID"), + @Parameter(name = "name", description = "用户名称") + }) + @PermitAll + public CommonResult getTerminalList(@RequestParam("pageNo") Integer pageNo, + @RequestParam("pageSize") Integer pageSize, + @RequestParam(value = "org_id", required = false) String orgId, + @RequestParam(value = "groupId", required = false) String groupId, + @RequestParam(value = "name", required = false) String name) { + return success(interphoneTerminalService.getTerminalList(pageNo, pageSize, orgId, groupId, name)); + } + + @GetMapping("/detail") + @Operation(summary = "查询对讲用户详情") + @PermitAll + public CommonResult getTerminalDetail(@RequestParam Map queryParams) { + return success(interphoneTerminalService.getTerminalDetail(queryParams)); + } + + @PostMapping("/updateUser") + @Operation(summary = "修改对讲用户信息") + @PermitAll + public CommonResult updateTerminalUser(@RequestBody String requestBody) { + return success(interphoneTerminalService.updateTerminalUser(requestBody)); + } + + @PostMapping("/deleteUser") + @Operation(summary = "删除对讲用户") + @PermitAll + public CommonResult deleteTerminalUser(@RequestBody String requestBody) { + return success(interphoneTerminalService.deleteTerminalUser(requestBody)); + } + + @GetMapping("/userOnlineStatus") + @Operation(summary = "查询对讲用户在线状态") + @PermitAll + public CommonResult getTerminalUserOnlineStatus(@RequestParam Map queryParams) { + return success(interphoneTerminalService.getTerminalUserOnlineStatus(queryParams)); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiClient.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiClient.java index 44ca447..fd81207 100644 --- a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiClient.java +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiClient.java @@ -91,10 +91,7 @@ public class ApiClient { if (apiRequest.getMethod() == HttpMethod.GET) { builder.get(); } else if (apiRequest.getMethod() == HttpMethod.POST) { - RequestBody requestBody = RequestBody.create( - apiRequest.getJsonBody() == null ? "" : apiRequest.getJsonBody(), - MediaType.parse("application/json; charset=utf-8") - ); + RequestBody requestBody = RequestBody.create("", null); builder.post(requestBody); } else { throw new RuntimeException("不支持的请求方法: " + apiRequest.getMethod()); diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiRequest.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiRequest.java index 08e5dd9..8668778 100644 --- a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiRequest.java +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiRequest.java @@ -60,11 +60,15 @@ public class ApiRequest { return request; } - public static ApiRequest postJson(String path, String jsonBody) { + + public static ApiRequest postParam(String path, Map queryParams) { ApiRequest request = new ApiRequest(); request.setMethod(HttpMethod.POST); request.setPath(path); - request.setJsonBody(jsonBody); + if (queryParams != null) { + request.setQueryParams(queryParams); + } return request; } + } \ No newline at end of file diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiResponse.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiResponse.java index 90c9e88..267ec4f 100644 --- a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiResponse.java +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/core/ApiResponse.java @@ -1,11 +1,14 @@ package cn.iocoder.yudao.module.interphone.core; +import com.alibaba.fastjson.JSONObject; import lombok.Data; +import lombok.extern.slf4j.Slf4j; import java.util.List; import java.util.Map; @Data +@Slf4j public class ApiResponse { private int code; diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneAgentService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneAgentService.java new file mode 100644 index 0000000..d04280d --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneAgentService.java @@ -0,0 +1,8 @@ +package cn.iocoder.yudao.module.interphone.service; + +public interface InterphoneAgentService { + + String getAgentList(Integer pageNo, Integer pageSize, String name); + + String getAgentDetail(String id); +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneApiService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneApiService.java deleted file mode 100644 index 7651c45..0000000 --- a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneApiService.java +++ /dev/null @@ -1,53 +0,0 @@ -package cn.iocoder.yudao.module.interphone.service; - -import java.util.Map; - -public interface InterphoneApiService { - - String getAgentProfile(); - - String getAgentList(Integer pageNo, Integer pageSize, String name); - - String getAgentDetail(String id); - - String getFastStats(); - - String getGroupName(String orgId); - - String querySubordinateUser(Integer pageNo, Integer pageSize, String agentId, String orgId, - String groupId, String userName, String account); - - String getAgentOrgs(Integer pageNo, Integer pageSize, String name); - - String getGroupList(Integer pageNo, Integer pageSize, String name, String orgName); - - String addGroup(String requestBody); - - String getGroupDetail(String id); - - String updateGroup(String requestBody); - - String deleteGroup(String requestBody); - - String getGroupMembers(String id); - - String addGroupMembers(String requestBody); - - String removeGroupMembers(String requestBody); - - String queryGroupByUid(Map queryParams); - - String createTerminalUsers(String requestBody); - - String getTerminalList(Integer pageNo, Integer pageSize, String orgId, String groupId, String name); - - String getTerminalDetail(Map queryParams); - - String updateTerminalUser(String requestBody); - - String deleteTerminalUser(String requestBody); - - String getTerminalUserOnlineStatus(Map queryParams); - - String getRecordList(Map queryParams); -} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneGroupService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneGroupService.java new file mode 100644 index 0000000..fce7713 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneGroupService.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.interphone.service; + +public interface InterphoneGroupService { + + String getGroupName(String orgId); + + String getGroupList(Integer pageNo, Integer pageSize, String name, String orgName); + + String addGroup(String requestBody); + + String getGroupDetail(String id); + + String updateGroup(String requestBody); + + String deleteGroup(String requestBody); + + String getGroupMembers(String id); + + String addGroupMembers(String requestBody); + + String removeGroupMembers(String requestBody); +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneJspService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneJspService.java new file mode 100644 index 0000000..b16b451 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneJspService.java @@ -0,0 +1,8 @@ +package cn.iocoder.yudao.module.interphone.service; + +import java.util.Map; + +public interface InterphoneJspService { + + String queryGroupByUid(Map queryParams); +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneOrgService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneOrgService.java new file mode 100644 index 0000000..be6d38b --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneOrgService.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.interphone.service; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgCreateReqVO; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgPageReqVO; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgRespVO; + +public interface InterphoneOrgService { + + /** + * 新增单位 + * @param createReqVO + * @return 单位ID + */ + String addOrg(InterphoneOrgCreateReqVO createReqVO); + + PageResult getAgentOrgs(InterphoneOrgPageReqVO reqVO); + + /** + * 删除单位 + * @param id 单位id(uuid类型) + */ + void deleteOrg(String id); + + /** + * 修改单位信息 + */ + void updateOrg(InterphoneOrgCreateReqVO createReqVO); + +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneProfileService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneProfileService.java new file mode 100644 index 0000000..6d152ab --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneProfileService.java @@ -0,0 +1,8 @@ +package cn.iocoder.yudao.module.interphone.service; + +public interface InterphoneProfileService { + + String getAgentProfile(); + + String getFastStats(); +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneRecordService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneRecordService.java new file mode 100644 index 0000000..6bd2f24 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneRecordService.java @@ -0,0 +1,8 @@ +package cn.iocoder.yudao.module.interphone.service; + +import java.util.Map; + +public interface InterphoneRecordService { + + String getRecordList(Map queryParams); +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneTerminalService.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneTerminalService.java new file mode 100644 index 0000000..c4bab65 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/InterphoneTerminalService.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.interphone.service; + +import java.util.Map; + +public interface InterphoneTerminalService { + + String querySubordinateUser(Integer pageNo, Integer pageSize, String agentId, String orgId, + String groupId, String userName, String account); + + String createTerminalUsers(String requestBody); + + String getTerminalList(Integer pageNo, Integer pageSize, String orgId, String groupId, String name); + + String getTerminalDetail(Map queryParams); + + String updateTerminalUser(String requestBody); + + String deleteTerminalUser(String requestBody); + + String getTerminalUserOnlineStatus(Map queryParams); +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/dto/InterphonePageResponse.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/dto/InterphonePageResponse.java new file mode 100644 index 0000000..e0a9986 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/dto/InterphonePageResponse.java @@ -0,0 +1,17 @@ +package cn.iocoder.yudao.module.interphone.service.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class InterphonePageResponse { + + private Integer code; + + private String msg; + + private List data; + + private Long count; +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/AbstractInterphoneServiceSupport.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/AbstractInterphoneServiceSupport.java new file mode 100644 index 0000000..4bf4af4 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/AbstractInterphoneServiceSupport.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.core.ApiRequest; +import cn.iocoder.yudao.module.interphone.core.ApiResponse; +import com.alibaba.fastjson.JSONObject; + +import java.util.LinkedHashMap; +import java.util.Map; + +public abstract class AbstractInterphoneServiceSupport { + + private final ApiClient apiClient; + + protected AbstractInterphoneServiceSupport(ApiClient apiClient) { + this.apiClient = apiClient; + } + + protected String executeGet(String path) { + return executeGet(path, null); + } + + protected String executeGet(String path, Map queryParams) { + ApiRequest request = ApiRequest.get(path, sanitizeQueryParams(queryParams)); + ApiResponse response = apiClient.execute(request); + JSONObject jsonBody = JSONObject.parseObject(response.getBody()); + + if (!jsonBody.getString("code").startsWith("200")) throw new RuntimeException(response.getBody()); + // 修改后 + JSONObject data = jsonBody.getJSONObject("data"); + return data != null ? data.toString() : ""; + } + + protected String executePost(String path, Map queryParams) { + ApiRequest request = ApiRequest.postParam(path, sanitizeQueryParams(queryParams)); + ApiResponse response = apiClient.execute(request); + JSONObject jsonBody = JSONObject.parseObject(response.getBody()); + + if (!jsonBody.getString("code").startsWith("200")) throw new RuntimeException(response.getBody()); + // 修改后 + JSONObject data = jsonBody.getJSONObject("data"); + return data != null ? data.toString() : ""; + } + + protected Map newQueryParams() { + return new LinkedHashMap<>(); + } + + protected void putIfHasText(Map queryParams, String key, String value) { + if (StrUtil.isNotBlank(value)) { + queryParams.put(key, value); + } + } + + protected void putIfNotNull(Map queryParams, String key, Object value) { + if (value != null) { + queryParams.put(key, String.valueOf(value)); + } + } + + private Map sanitizeQueryParams(Map queryParams) { + if (queryParams == null || queryParams.isEmpty()) { + return null; + } + Map sanitized = new LinkedHashMap<>(); + queryParams.forEach((key, value) -> { + if (value != null) { + sanitized.put(key, value); + } + }); + return sanitized.isEmpty() ? null : sanitized; + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneAgentServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneAgentServiceImpl.java new file mode 100644 index 0000000..f12ee92 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneAgentServiceImpl.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneAgentService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Map; + +@Service +@Validated +public class InterphoneAgentServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneAgentService { + + public InterphoneAgentServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String getAgentList(Integer pageNo, Integer pageSize, String name) { + Map queryParams = newQueryParams(); + putIfNotNull(queryParams, "pageNo", pageNo); + putIfNotNull(queryParams, "pageSize", pageSize); + putIfHasText(queryParams, "name", name); + return executeGet("/agent/list", queryParams); + } + + @Override + public String getAgentDetail(String id) { + return executeGet("/agent/detail", Map.of("id", id)); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneApiServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneApiServiceImpl.java deleted file mode 100644 index d0fac1c..0000000 --- a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneApiServiceImpl.java +++ /dev/null @@ -1,207 +0,0 @@ -package cn.iocoder.yudao.module.interphone.service.impl; - -import cn.hutool.core.util.StrUtil; -import cn.iocoder.yudao.module.interphone.core.ApiClient; -import cn.iocoder.yudao.module.interphone.core.ApiRequest; -import cn.iocoder.yudao.module.interphone.core.ApiResponse; -import cn.iocoder.yudao.module.interphone.service.InterphoneApiService; -import org.springframework.stereotype.Service; -import org.springframework.validation.annotation.Validated; - -import java.util.LinkedHashMap; -import java.util.Map; - -@Service -@Validated -public class InterphoneApiServiceImpl implements InterphoneApiService { - - private final ApiClient apiClient; - - public InterphoneApiServiceImpl(ApiClient apiClient) { - this.apiClient = apiClient; - } - - @Override - public String getAgentProfile() { - return executeGet("/profile/agent"); - } - - @Override - public String getAgentList(Integer pageNo, Integer pageSize, String name) { - Map queryParams = new LinkedHashMap<>(); - putIfNotNull(queryParams, "pageNo", pageNo); - putIfNotNull(queryParams, "pageSize", pageSize); - putIfHasText(queryParams, "name", name); - return executeGet("/agent/list", queryParams); - } - - @Override - public String getAgentDetail(String id) { - return executeGet("/agent/detail", Map.of("id", id)); - } - - @Override - public String getFastStats() { - return executeGet("/profile/faststats"); - } - - @Override - public String getGroupName(String orgId) { - return executeGet("/group/getGroupName", Map.of("orgId", orgId)); - } - - @Override - public String querySubordinateUser(Integer pageNo, Integer pageSize, String agentId, String orgId, - String groupId, String userName, String account) { - Map queryParams = new LinkedHashMap<>(); - putIfNotNull(queryParams, "pageNo", pageNo); - putIfNotNull(queryParams, "pageSize", pageSize); - putIfHasText(queryParams, "agentId", agentId); - putIfHasText(queryParams, "orgId", orgId); - putIfHasText(queryParams, "groupId", groupId); - putIfHasText(queryParams, "userName", userName); - putIfHasText(queryParams, "account", account); - return executeGet("/terminal/querySubordinateUser", queryParams); - } - - @Override - public String getAgentOrgs(Integer pageNo, Integer pageSize, String name) { - Map queryParams = new LinkedHashMap<>(); - putIfNotNull(queryParams, "pageNo", pageNo); - putIfNotNull(queryParams, "pageSize", pageSize); - putIfHasText(queryParams, "name", name); - return executeGet("/agent/orgs", queryParams); - } - - @Override - public String getGroupList(Integer pageNo, Integer pageSize, String name, String orgName) { - Map queryParams = new LinkedHashMap<>(); - putIfNotNull(queryParams, "pageNo", pageNo); - putIfNotNull(queryParams, "pageSize", pageSize); - putIfHasText(queryParams, "name", name); - putIfHasText(queryParams, "orgname", orgName); - return executeGet("/group/list", queryParams); - } - - @Override - public String addGroup(String requestBody) { - return executePost("/group/add", requestBody); - } - - @Override - public String getGroupDetail(String id) { - return executeGet("/group/detail", Map.of("id", id)); - } - - @Override - public String updateGroup(String requestBody) { - return executePost("/group/updateGroup", requestBody); - } - - @Override - public String deleteGroup(String requestBody) { - return executePost("/group/delete", requestBody); - } - - @Override - public String getGroupMembers(String id) { - return executeGet("/group/members", Map.of("id", id)); - } - - @Override - public String addGroupMembers(String requestBody) { - return executePost("/group/members/add", requestBody); - } - - @Override - public String removeGroupMembers(String requestBody) { - return executePost("/group/members/remove", requestBody); - } - - @Override - public String queryGroupByUid(Map queryParams) { - return executeGet("/jsp/queryGroupByUId", queryParams); - } - - @Override - public String createTerminalUsers(String requestBody) { - return executePost("/terminal/batch", requestBody); - } - - @Override - public String getTerminalList(Integer pageNo, Integer pageSize, String orgId, String groupId, String name) { - Map queryParams = new LinkedHashMap<>(); - putIfNotNull(queryParams, "pageNo", pageNo); - putIfNotNull(queryParams, "pageSize", pageSize); - putIfHasText(queryParams, "org_id", orgId); - putIfHasText(queryParams, "groupId", groupId); - putIfHasText(queryParams, "name", name); - return executeGet("/terminal/list", queryParams); - } - - @Override - public String getTerminalDetail(Map queryParams) { - return executeGet("/terminal/detail", queryParams); - } - - @Override - public String updateTerminalUser(String requestBody) { - return executePost("/terminal/updateUser", requestBody); - } - - @Override - public String deleteTerminalUser(String requestBody) { - return executePost("/terminal/deleteUser", requestBody); - } - - @Override - public String getTerminalUserOnlineStatus(Map queryParams) { - return executeGet("/terminal/userOnlineStatus", queryParams); - } - - @Override - public String getRecordList(Map queryParams) { - return executeGet("/record/list", queryParams); - } - - private String executeGet(String path) { - return executeGet(path, null); - } - - private String executeGet(String path, Map queryParams) { - ApiRequest request = ApiRequest.get(path, sanitizeQueryParams(queryParams)); - ApiResponse response = apiClient.execute(request); - return response.getBody(); - } - - private String executePost(String path, String requestBody) { - ApiRequest request = ApiRequest.postJson(path, StrUtil.emptyToDefault(requestBody, "")); - ApiResponse response = apiClient.execute(request); - return response.getBody(); - } - - private Map sanitizeQueryParams(Map queryParams) { - if (queryParams == null || queryParams.isEmpty()) { - return null; - } - Map sanitized = new LinkedHashMap<>(); - queryParams.forEach((key, value) -> { - if (value != null) { - sanitized.put(key, value); - } - }); - return sanitized.isEmpty() ? null : sanitized; - } - - private void putIfHasText(Map queryParams, String key, String value) { - if (StrUtil.isNotBlank(value)) { - queryParams.put(key, value); - } - } - - private void putIfNotNull(Map queryParams, String key, Object value) { - if (value != null) { - queryParams.put(key, String.valueOf(value)); - } - } -} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneGroupServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneGroupServiceImpl.java new file mode 100644 index 0000000..ca06eb6 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneGroupServiceImpl.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneGroupService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Map; + +@Service +@Validated +public class InterphoneGroupServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneGroupService { + + public InterphoneGroupServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String getGroupName(String orgId) { + return executeGet("/group/getGroupName", Map.of("orgId", orgId)); + } + + @Override + public String getGroupList(Integer pageNo, Integer pageSize, String name, String orgName) { + Map queryParams = newQueryParams(); + putIfNotNull(queryParams, "pageNo", pageNo); + putIfNotNull(queryParams, "pageSize", pageSize); + putIfHasText(queryParams, "name", name); + putIfHasText(queryParams, "orgname", orgName); + return executeGet("/group/list", queryParams); + } + + @Override + public String addGroup(String requestBody) { + return null; + } + + @Override + public String getGroupDetail(String id) { + return executeGet("/group/detail", Map.of("id", id)); + } + + @Override + public String updateGroup(String requestBody) { + return null; + } + + @Override + public String deleteGroup(String requestBody) { + return null; + } + + @Override + public String getGroupMembers(String id) { + return executeGet("/group/members", Map.of("id", id)); + } + + @Override + public String addGroupMembers(String requestBody) { + return null; + } + + @Override + public String removeGroupMembers(String requestBody) { + return null; + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneJspServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneJspServiceImpl.java new file mode 100644 index 0000000..33201e9 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneJspServiceImpl.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneJspService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Map; + +@Service +@Validated +public class InterphoneJspServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneJspService { + + public InterphoneJspServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String queryGroupByUid(Map queryParams) { + return executeGet("/jsp/queryGroupByUId", queryParams); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneOrgServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneOrgServiceImpl.java new file mode 100644 index 0000000..30e675c --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneOrgServiceImpl.java @@ -0,0 +1,83 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgCreateReqVO; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgPageReqVO; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgRespVO; +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneOrgService; +import cn.iocoder.yudao.module.interphone.service.dto.InterphonePageResponse; +import com.fasterxml.jackson.core.type.TypeReference; +import lombok.extern.log4j.Log4j; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Collections; +import java.util.Map; + +@Service +@Validated +@Slf4j +public class InterphoneOrgServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneOrgService { + + public InterphoneOrgServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String addOrg(InterphoneOrgCreateReqVO createReqVO) { + Map queryParams = newQueryParams(); + putIfHasText(queryParams, "name", createReqVO.getName()); + putIfHasText(queryParams, "loginname", createReqVO.getLoginname()); + putIfHasText(queryParams, "password", createReqVO.getPassword()); + putIfHasText(queryParams, "phone", createReqVO.getPhone()); + putIfHasText(queryParams, "address", createReqVO.getAddress()); + putIfHasText(queryParams, "contact", createReqVO.getContact()); + putIfNotNull(queryParams, "isDefault", "0"); + + String responseBody = executePost("/org/add", queryParams); + try { + InterphoneOrgRespVO response = JsonUtils.parseObject(responseBody, InterphoneOrgRespVO.class); + return response.getId(); + } catch (Exception e) { + throw new RuntimeException("对讲平台新增单位失败", e); + } + + } + + @Override + public PageResult getAgentOrgs(InterphoneOrgPageReqVO reqVO) { + Map queryParams = newQueryParams(); + putIfNotNull(queryParams, "pageNo", reqVO.getPageNo()); + putIfNotNull(queryParams, "pageSize", reqVO.getPageSize()); + putIfHasText(queryParams, "name", reqVO.getName()); + String responseBody = executeGet("/agent/orgs", queryParams); + InterphonePageResponse response = JsonUtils.parseObject(responseBody, + new TypeReference>() { + }); + if (response == null) { + return PageResult.empty(); + } + return new PageResult<>(response.getData() == null ? Collections.emptyList() : response.getData(), + response.getCount() == null ? 0L : response.getCount()); + } + + @Override + public void deleteOrg(String id) { + Map queryParams = newQueryParams(); + putIfHasText(queryParams, "id", id); + executePost("/org/deletingUnit", queryParams); + } + + @Override + public void updateOrg(InterphoneOrgCreateReqVO createReqVO) { + Map queryParams = newQueryParams(); + putIfHasText(queryParams, "id", createReqVO.getId()); + putIfHasText(queryParams, "corgName", createReqVO.getName()); + putIfHasText(queryParams, "contact", createReqVO.getContact()); + putIfHasText(queryParams, "address", createReqVO.getAddress()); + executePost("/org/xiugaiUnit", queryParams); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneProfileServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneProfileServiceImpl.java new file mode 100644 index 0000000..23a1951 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneProfileServiceImpl.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneProfileService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +@Service +@Validated +public class InterphoneProfileServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneProfileService { + + public InterphoneProfileServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String getAgentProfile() { + return executeGet("/profile/agent"); + } + + @Override + public String getFastStats() { + return executeGet("/profile/faststats"); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneRecordServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneRecordServiceImpl.java new file mode 100644 index 0000000..c15edf5 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneRecordServiceImpl.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneRecordService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Map; + +@Service +@Validated +public class InterphoneRecordServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneRecordService { + + public InterphoneRecordServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String getRecordList(Map queryParams) { + return executeGet("/record/list", queryParams); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneTerminalServiceImpl.java b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneTerminalServiceImpl.java new file mode 100644 index 0000000..d5b5316 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/main/java/cn/iocoder/yudao/module/interphone/service/impl/InterphoneTerminalServiceImpl.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.interphone.service.impl; + +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.service.InterphoneTerminalService; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.Map; + +@Service +@Validated +public class InterphoneTerminalServiceImpl extends AbstractInterphoneServiceSupport implements InterphoneTerminalService { + + public InterphoneTerminalServiceImpl(ApiClient apiClient) { + super(apiClient); + } + + @Override + public String querySubordinateUser(Integer pageNo, Integer pageSize, String agentId, String orgId, + String groupId, String userName, String account) { + Map queryParams = newQueryParams(); + putIfNotNull(queryParams, "pageNo", pageNo); + putIfNotNull(queryParams, "pageSize", pageSize); + putIfHasText(queryParams, "agentId", agentId); + putIfHasText(queryParams, "orgId", orgId); + putIfHasText(queryParams, "groupId", groupId); + putIfHasText(queryParams, "userName", userName); + putIfHasText(queryParams, "account", account); + return executeGet("/terminal/querySubordinateUser", queryParams); + } + + @Override + public String createTerminalUsers(String requestBody) { + return null; + } + + @Override + public String getTerminalList(Integer pageNo, Integer pageSize, String orgId, String groupId, String name) { + Map queryParams = newQueryParams(); + putIfNotNull(queryParams, "pageNo", pageNo); + putIfNotNull(queryParams, "pageSize", pageSize); + putIfHasText(queryParams, "org_id", orgId); + putIfHasText(queryParams, "groupId", groupId); + putIfHasText(queryParams, "name", name); + return executeGet("/terminal/list", queryParams); + } + + @Override + public String getTerminalDetail(Map queryParams) { + return executeGet("/terminal/detail", queryParams); + } + + @Override + public String updateTerminalUser(String requestBody) { + return null; + } + + @Override + public String deleteTerminalUser(String requestBody) { + return null; + } + + @Override + public String getTerminalUserOnlineStatus(Map queryParams) { + return executeGet("/terminal/userOnlineStatus", queryParams); + } +} diff --git a/cc-admin-master/yudao-module-interphone/src/test/java/cn/iocoder/yudao/module/interphone/demo/orgClientTest.java b/cc-admin-master/yudao-module-interphone/src/test/java/cn/iocoder/yudao/module/interphone/demo/orgClientTest.java new file mode 100644 index 0000000..f840a03 --- /dev/null +++ b/cc-admin-master/yudao-module-interphone/src/test/java/cn/iocoder/yudao/module/interphone/demo/orgClientTest.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.interphone.demo; + +import cn.iocoder.yudao.framework.test.core.ut.BaseRedisUnitTest; +import cn.iocoder.yudao.module.interphone.auth.DefaultLoginService; +import cn.iocoder.yudao.module.interphone.auth.DefaultTokenManager; +import cn.iocoder.yudao.module.interphone.config.OkHttpClientConfig; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgCreateReqVO; +import cn.iocoder.yudao.module.interphone.core.ApiClient; +import cn.iocoder.yudao.module.interphone.retry.TokenExpiredRetryHandler; +import cn.iocoder.yudao.module.interphone.service.InterphoneOrgService; +import cn.iocoder.yudao.module.interphone.service.impl.InterphoneOrgServiceImpl; +import jakarta.annotation.Resource; +import okhttp3.OkHttpClient; +import org.checkerframework.checker.units.qual.A; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Import; + +@Import({ + OkHttpClientConfig.class, + DefaultLoginService.class, + DefaultTokenManager.class, + ApiClient.class, + TokenExpiredRetryHandler.class, + OkHttpClient.class, + InterphoneOrgServiceImpl.class +}) +public class orgClientTest extends BaseRedisUnitTest { + + @Autowired + private InterphoneOrgService orgService; + + @Test + public void testAddOrg_Success() { + InterphoneOrgCreateReqVO createReqVO = new InterphoneOrgCreateReqVO(); + createReqVO.setName("fubowen"); + createReqVO.setLoginname("fubowen"); + createReqVO.setPassword("Gsking164411."); + createReqVO.setContact("fubowen"); + String s = orgService.addOrg(createReqVO); + System.out.println(s); + } + + + +} diff --git a/cc-admin-master/yudao-module-system/pom.xml b/cc-admin-master/yudao-module-system/pom.xml index 9689dec..aeaef64 100644 --- a/cc-admin-master/yudao-module-system/pom.xml +++ b/cc-admin-master/yudao-module-system/pom.xml @@ -129,6 +129,12 @@ hutool-extra + + cn.iocoder.boot + yudao-module-interphone + ${revision} + + diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java index 5a444b5..b834f36 100644 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java +++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantRespVO.java @@ -52,4 +52,7 @@ public class TenantRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "联系地址-适配对讲平台", example = "北京市海淀区") + @ExcelProperty("联系地址-适配对讲平台") + private String address; } diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java index 175afa3..5d3d222 100644 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java +++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant; import cn.hutool.core.util.ObjectUtil; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgCreateReqVO; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -60,6 +61,9 @@ public class TenantSaveReqVO { @Length(min = 4, max = 16, message = "密码长度为 4-16 位") private String password; + @Schema(description = "联系地址-适配对讲平台", example = "北京市海淀区") + private String address; + @AssertTrue(message = "用户账号、密码不能为空") @JsonIgnore public boolean isUsernameValid() { @@ -67,4 +71,15 @@ public class TenantSaveReqVO { || (ObjectUtil.isAllNotEmpty(username, password)); // 新增时,必须都传递 username、password } + public InterphoneOrgCreateReqVO toInterphoneOrgCreateReqVO() { + InterphoneOrgCreateReqVO interphoneOrgCreateReqVO = new InterphoneOrgCreateReqVO(); + interphoneOrgCreateReqVO.setName(name); + interphoneOrgCreateReqVO.setLoginname(username); + interphoneOrgCreateReqVO.setPassword(password); + interphoneOrgCreateReqVO.setContact(contactName); + interphoneOrgCreateReqVO.setPhone(contactMobile); + interphoneOrgCreateReqVO.setAddress(address); + return interphoneOrgCreateReqVO; + } + } diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/TenantInterphoneController.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/TenantInterphoneController.java deleted file mode 100644 index a08c400..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/TenantInterphoneController.java +++ /dev/null @@ -1,104 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.tenantinterphone; - -import org.springframework.web.bind.annotation.*; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import jakarta.validation.constraints.*; -import jakarta.validation.*; -import jakarta.servlet.http.*; -import java.util.*; -import java.io.IOException; - -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - -import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; -import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo.*; -import cn.iocoder.yudao.module.system.dal.dataobject.tenantinterphone.TenantInterphoneDO; -import cn.iocoder.yudao.module.system.service.tenantinterphone.TenantInterphoneService; - -@Tag(name = "管理后台 - 租户对讲平台对应") -@RestController -@RequestMapping("/system/tenant-interphone") -@Validated -public class TenantInterphoneController { - - @Resource - private TenantInterphoneService tenantInterphoneService; - - @PostMapping("/create") - @Operation(summary = "创建租户对讲平台对应") - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:create')") - public CommonResult createTenantInterphone(@Valid @RequestBody TenantInterphoneSaveReqVO createReqVO) { - return success(tenantInterphoneService.createTenantInterphone(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新租户对讲平台对应") - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:update')") - public CommonResult updateTenantInterphone(@Valid @RequestBody TenantInterphoneSaveReqVO updateReqVO) { - tenantInterphoneService.updateTenantInterphone(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除租户对讲平台对应") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:delete')") - public CommonResult deleteTenantInterphone(@RequestParam("id") Long id) { - tenantInterphoneService.deleteTenantInterphone(id); - return success(true); - } - - @DeleteMapping("/delete-list") - @Parameter(name = "ids", description = "编号", required = true) - @Operation(summary = "批量删除租户对讲平台对应") - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:delete')") - public CommonResult deleteTenantInterphoneList(@RequestParam("ids") List ids) { - tenantInterphoneService.deleteTenantInterphoneListByIds(ids); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得租户对讲平台对应") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:query')") - public CommonResult getTenantInterphone(@RequestParam("id") Long id) { - TenantInterphoneDO tenantInterphone = tenantInterphoneService.getTenantInterphone(id); - return success(BeanUtils.toBean(tenantInterphone, TenantInterphoneRespVO.class)); - } - - @GetMapping("/page") - @Operation(summary = "获得租户对讲平台对应分页") - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:query')") - public CommonResult> getTenantInterphonePage(@Valid TenantInterphonePageReqVO pageReqVO) { - PageResult pageResult = tenantInterphoneService.getTenantInterphonePage(pageReqVO); - return success(BeanUtils.toBean(pageResult, TenantInterphoneRespVO.class)); - } - - @GetMapping("/export-excel") - @Operation(summary = "导出租户对讲平台对应 Excel") - @PreAuthorize("@ss.hasPermission('system:tenant-interphone:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportTenantInterphoneExcel(@Valid TenantInterphonePageReqVO pageReqVO, - HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = tenantInterphoneService.getTenantInterphonePage(pageReqVO).getList(); - // 导出 Excel - ExcelUtils.write(response, "租户对讲平台对应.xls", "数据", TenantInterphoneRespVO.class, - BeanUtils.toBean(list, TenantInterphoneRespVO.class)); - } - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphonePageReqVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphonePageReqVO.java deleted file mode 100644 index a44f23d..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphonePageReqVO.java +++ /dev/null @@ -1,44 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo; - -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; - -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -@Schema(description = "管理后台 - 租户对讲平台对应分页 Request VO") -@Data -public class TenantInterphonePageReqVO extends PageParam { - - @Schema(description = "租户id", example = "18871") - private Long tendId; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; - - @Schema(description = "对讲平台单位id", example = "16985") - private Long corgId; - - @Schema(description = "对讲平台单位名称", example = "张三") - private String corgName; - - @Schema(description = "对讲平台用户数量", example = "11267") - private Long userCount; - - @Schema(description = "对讲平台群组数量", example = "27649") - private Long groupCount; - - @Schema(description = "对讲平台账号", example = "张三") - private String loginname; - - @Schema(description = "对讲平台联系人") - private String contact; - - @Schema(description = "对讲平台单位是否绑定平台") - private Integer bindingPlatform; - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphoneRespVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphoneRespVO.java deleted file mode 100644 index 568c118..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphoneRespVO.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; -import com.alibaba.excel.annotation.*; - -@Schema(description = "管理后台 - 租户对讲平台对应 Response VO") -@Data -@ExcelIgnoreUnannotated -public class TenantInterphoneRespVO { - - @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8781") - @ExcelProperty("id") - private Long id; - - @Schema(description = "租户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18871") - @ExcelProperty("租户id") - private Long tendId; - - @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @Schema(description = "对讲平台单位id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16985") - @ExcelProperty("对讲平台单位id") - private Long corgId; - - @Schema(description = "对讲平台单位名称", example = "张三") - @ExcelProperty("对讲平台单位名称") - private String corgName; - - @Schema(description = "对讲平台用户数量", example = "11267") - @ExcelProperty("对讲平台用户数量") - private Long userCount; - - @Schema(description = "对讲平台群组数量", example = "27649") - @ExcelProperty("对讲平台群组数量") - private Long groupCount; - - @Schema(description = "对讲平台账号", example = "张三") - @ExcelProperty("对讲平台账号") - private String loginname; - - @Schema(description = "对讲平台联系人") - @ExcelProperty("对讲平台联系人") - private String contact; - - @Schema(description = "对讲平台单位是否绑定平台") - @ExcelProperty("对讲平台单位是否绑定平台") - private Integer bindingPlatform; - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphoneSaveReqVO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphoneSaveReqVO.java deleted file mode 100644 index df94ccb..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantinterphone/vo/TenantInterphoneSaveReqVO.java +++ /dev/null @@ -1,44 +0,0 @@ -package cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import jakarta.validation.constraints.*; - -@Schema(description = "管理后台 - 租户对讲平台对应新增/修改 Request VO") -@Data -public class TenantInterphoneSaveReqVO { - - @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8781") - private Long id; - - @Schema(description = "租户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18871") - @NotNull(message = "租户id不能为空") - private Long tendId; - - @Schema(description = "对讲平台单位id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16985") - @NotNull(message = "对讲平台单位id不能为空") - private Long corgId; - - @Schema(description = "对讲平台单位名称", example = "张三") - private String corgName; - - @Schema(description = "对讲平台用户数量", example = "11267") - private Long userCount; - - @Schema(description = "对讲平台群组数量", example = "27649") - private Long groupCount; - - @Schema(description = "对讲平台账号", example = "张三") - private String loginname; - - @Schema(description = "对讲平台密码") - private String password; - - @Schema(description = "对讲平台联系人") - private String contact; - - @Schema(description = "对讲平台单位是否绑定平台") - private Integer bindingPlatform; - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java index 6e60f61..3d08272 100644 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java +++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java @@ -79,4 +79,14 @@ public class TenantDO extends BaseDO { */ private Integer accountCount; + /** + * 联系地址-适配对讲平台 + */ + private String address; + + /** + * 对讲平台公司id + */ + private String orgId; + } diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantinterphone/TenantInterphoneDO.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantinterphone/TenantInterphoneDO.java deleted file mode 100644 index d78c1a5..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantinterphone/TenantInterphoneDO.java +++ /dev/null @@ -1,68 +0,0 @@ -package cn.iocoder.yudao.module.system.dal.dataobject.tenantinterphone; - -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; - -/** - * 租户对讲平台对应 DO - * - * @author 超级管理员 - */ -@TableName("system_tenant_interphone") -@KeySequence("system_tenant_interphone_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class TenantInterphoneDO extends BaseDO { - - /** - * id - */ - @TableId - private Long id; - /** - * 租户id - */ - private Long tendId; - /** - * 对讲平台单位id - */ - private Long corgId; - /** - * 对讲平台单位名称 - */ - private String corgName; - /** - * 对讲平台用户数量 - */ - private Long userCount; - /** - * 对讲平台群组数量 - */ - private Long groupCount; - /** - * 对讲平台账号 - */ - private String loginname; - /** - * 对讲平台密码 - */ - private String password; - /** - * 对讲平台联系人 - */ - private String contact; - /** - * 对讲平台单位是否绑定平台 - */ - private Integer bindingPlatform; - - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenantinterphone/TenantInterphoneMapper.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenantinterphone/TenantInterphoneMapper.java deleted file mode 100644 index 6a61328..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenantinterphone/TenantInterphoneMapper.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.iocoder.yudao.module.system.dal.mysql.tenantinterphone; - -import java.util.*; - -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.system.dal.dataobject.tenantinterphone.TenantInterphoneDO; -import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo.*; - -/** - * 租户对讲平台对应 Mapper - * - * @author 超级管理员 - */ -@Mapper -public interface TenantInterphoneMapper extends BaseMapperX { - - default PageResult selectPage(TenantInterphonePageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(TenantInterphoneDO::getTendId, reqVO.getTendId()) - .betweenIfPresent(TenantInterphoneDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(TenantInterphoneDO::getCorgId, reqVO.getCorgId()) - .likeIfPresent(TenantInterphoneDO::getCorgName, reqVO.getCorgName()) - .eqIfPresent(TenantInterphoneDO::getUserCount, reqVO.getUserCount()) - .eqIfPresent(TenantInterphoneDO::getGroupCount, reqVO.getGroupCount()) - .likeIfPresent(TenantInterphoneDO::getLoginname, reqVO.getLoginname()) - .eqIfPresent(TenantInterphoneDO::getContact, reqVO.getContact()) - .eqIfPresent(TenantInterphoneDO::getBindingPlatform, reqVO.getBindingPlatform()) - .orderByDesc(TenantInterphoneDO::getId)); - } - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java index 30c6340..ec0faec 100644 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java +++ b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java @@ -13,6 +13,8 @@ import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; import cn.iocoder.yudao.framework.tenant.config.TenantProperties; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; +import cn.iocoder.yudao.module.interphone.controller.admin.org.vo.InterphoneOrgCreateReqVO; +import cn.iocoder.yudao.module.interphone.service.InterphoneOrgService; import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleSaveReqVO; import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.tenant.TenantSaveReqVO; @@ -21,7 +23,9 @@ import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO; import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantPackageDO; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantMapper; +import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; import cn.iocoder.yudao.module.system.service.permission.MenuService; @@ -74,6 +78,10 @@ public class TenantServiceImpl implements TenantService { private MenuService menuService; @Resource private PermissionService permissionService; + @Resource + private InterphoneOrgService interphoneOrgService; + @Resource + private AdminUserMapper adminUserMapper; @Override public List getTenantIdList() { @@ -118,6 +126,13 @@ public class TenantServiceImpl implements TenantService { // 修改租户的管理员 tenantMapper.updateById(new TenantDO().setId(tenant.getId()).setContactUserId(userId)); }); + + // 创建对讲平台公司 + InterphoneOrgCreateReqVO interphoneOrgCreateReqVO = createReqVO.toInterphoneOrgCreateReqVO(); + String orgId = interphoneOrgService.addOrg(interphoneOrgCreateReqVO); + tenant.setOrgId(orgId); + tenantMapper.updateById(tenant); + return tenant.getId(); } @@ -154,11 +169,28 @@ public class TenantServiceImpl implements TenantService { // 更新租户 TenantDO updateObj = BeanUtils.toBean(updateReqVO, TenantDO.class); + // 先查询判断name是否修改-用于对讲平台接口调整,对讲平台接口bug如果name不调整会报错 + boolean changeName = !ObjectUtil.equals(tenant.getName(), updateReqVO.getName()); + tenantMapper.updateById(updateObj); // 如果套餐发生变化,则修改其角色的权限 if (ObjectUtil.notEqual(tenant.getPackageId(), updateReqVO.getPackageId())) { updateTenantRoleMenu(tenant.getId(), tenantPackage.getMenuIds()); } + + // 更新对讲平台公司 + // 查询orgid + String orgId = tenant.getOrgId(); + if (StrUtil.isEmpty(orgId)) { + return; + } + + InterphoneOrgCreateReqVO interphoneOrgCreateReqVO = updateReqVO.toInterphoneOrgCreateReqVO(); + interphoneOrgCreateReqVO.setId(orgId); + if (!changeName) interphoneOrgCreateReqVO.setName(null); + + interphoneOrgService.updateOrg(interphoneOrgCreateReqVO); + } private void validTenantNameDuplicate(String name, Long id) { @@ -221,8 +253,16 @@ public class TenantServiceImpl implements TenantService { public void deleteTenant(Long id) { // 校验存在 validateUpdateTenant(id); + + TenantDO tenantDO = tenantMapper.selectById(id); // 删除 tenantMapper.deleteById(id); + + // 删除对讲平台 + if (tenantDO.getOrgId() != null && !tenantDO.getOrgId().isEmpty()) { + interphoneOrgService.deleteOrg(tenantDO.getOrgId()); + } + } @Override @@ -230,8 +270,18 @@ public class TenantServiceImpl implements TenantService { // 1. 校验存在 ids.forEach(this::validateUpdateTenant); - // 2. 批量删除 + // 2. 获取所有租户信息(用于删除对讲平台) + List tenants = tenantMapper.selectBatchIds(ids); + + // 3. 批量删除租户 tenantMapper.deleteByIds(ids); + + // 4. 批量删除对讲平台 + for (TenantDO tenant : tenants) { + if (tenant.getOrgId() != null && !tenant.getOrgId().isEmpty()) { + interphoneOrgService.deleteOrg(tenant.getOrgId()); + } + } } private TenantDO validateUpdateTenant(Long id) { diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenantinterphone/TenantInterphoneService.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenantinterphone/TenantInterphoneService.java deleted file mode 100644 index abf97c9..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenantinterphone/TenantInterphoneService.java +++ /dev/null @@ -1,62 +0,0 @@ -package cn.iocoder.yudao.module.system.service.tenantinterphone; - -import java.util.*; -import jakarta.validation.*; -import cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo.*; -import cn.iocoder.yudao.module.system.dal.dataobject.tenantinterphone.TenantInterphoneDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; - -/** - * 租户对讲平台对应 Service 接口 - * - * @author 超级管理员 - */ -public interface TenantInterphoneService { - - /** - * 创建租户对讲平台对应 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - Long createTenantInterphone(@Valid TenantInterphoneSaveReqVO createReqVO); - - /** - * 更新租户对讲平台对应 - * - * @param updateReqVO 更新信息 - */ - void updateTenantInterphone(@Valid TenantInterphoneSaveReqVO updateReqVO); - - /** - * 删除租户对讲平台对应 - * - * @param id 编号 - */ - void deleteTenantInterphone(Long id); - - /** - * 批量删除租户对讲平台对应 - * - * @param ids 编号 - */ - void deleteTenantInterphoneListByIds(List ids); - - /** - * 获得租户对讲平台对应 - * - * @param id 编号 - * @return 租户对讲平台对应 - */ - TenantInterphoneDO getTenantInterphone(Long id); - - /** - * 获得租户对讲平台对应分页 - * - * @param pageReqVO 分页查询 - * @return 租户对讲平台对应分页 - */ - PageResult getTenantInterphonePage(TenantInterphonePageReqVO pageReqVO); - -} \ No newline at end of file diff --git a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenantinterphone/TenantInterphoneServiceImpl.java b/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenantinterphone/TenantInterphoneServiceImpl.java deleted file mode 100644 index e2b0861..0000000 --- a/cc-admin-master/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenantinterphone/TenantInterphoneServiceImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -package cn.iocoder.yudao.module.system.service.tenantinterphone; - -import cn.hutool.core.collection.CollUtil; -import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import cn.iocoder.yudao.module.system.controller.admin.tenantinterphone.vo.*; -import cn.iocoder.yudao.module.system.dal.dataobject.tenantinterphone.TenantInterphoneDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - -import cn.iocoder.yudao.module.system.dal.mysql.tenantinterphone.TenantInterphoneMapper; - -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.diffList; -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; - -/** - * 租户对讲平台对应 Service 实现类 - * - * @author 超级管理员 - */ -@Service -@Validated -public class TenantInterphoneServiceImpl implements TenantInterphoneService { - - @Resource - private TenantInterphoneMapper tenantInterphoneMapper; - - @Override - public Long createTenantInterphone(TenantInterphoneSaveReqVO createReqVO) { - // 插入 - TenantInterphoneDO tenantInterphone = BeanUtils.toBean(createReqVO, TenantInterphoneDO.class); - tenantInterphoneMapper.insert(tenantInterphone); - - // 返回 - return tenantInterphone.getId(); - } - - @Override - public void updateTenantInterphone(TenantInterphoneSaveReqVO updateReqVO) { - // 校验存在 - validateTenantInterphoneExists(updateReqVO.getId()); - // 更新 - TenantInterphoneDO updateObj = BeanUtils.toBean(updateReqVO, TenantInterphoneDO.class); - tenantInterphoneMapper.updateById(updateObj); - } - - @Override - public void deleteTenantInterphone(Long id) { - // 校验存在 - validateTenantInterphoneExists(id); - // 删除 - tenantInterphoneMapper.deleteById(id); - } - - @Override - public void deleteTenantInterphoneListByIds(List ids) { - // 删除 - tenantInterphoneMapper.deleteByIds(ids); - } - - - private void validateTenantInterphoneExists(Long id) { - if (tenantInterphoneMapper.selectById(id) == null) { - throw exception(TENANT_INTERPHONE_NOT_EXISTS); - } - } - - @Override - public TenantInterphoneDO getTenantInterphone(Long id) { - return tenantInterphoneMapper.selectById(id); - } - - @Override - public PageResult getTenantInterphonePage(TenantInterphonePageReqVO pageReqVO) { - return tenantInterphoneMapper.selectPage(pageReqVO); - } - -} \ No newline at end of file