|  | @@ -1,21 +1,39 @@
 | 
	
		
			
				|  |  |  package com.yonge.cooleshow.admin.controller;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSONObject;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  |  import com.microsvc.toolkit.common.response.paging.PageInfo;
 | 
	
		
			
				|  |  |  import com.microsvc.toolkit.common.response.paging.QueryInfo;
 | 
	
		
			
				|  |  |  import com.microsvc.toolkit.common.response.template.R;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.entity.TenantGroup;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.service.TenantGroupService;
 | 
	
		
			
				|  |  |  import com.yonge.cooleshow.biz.dal.wrapper.TenantGroupWrapper;
 | 
	
		
			
				|  |  | +import com.yonge.cooleshow.tenant.vo.TenantGroupVo;
 | 
	
		
			
				|  |  | +import com.yonge.toolset.base.exception.BizException;
 | 
	
		
			
				|  |  |  import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  |  import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  |  import lombok.extern.slf4j.Slf4j;
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.security.access.prepost.PreAuthorize;
 | 
	
		
			
				|  |  |  import org.springframework.validation.annotation.Validated;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.GetMapping;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.PathVariable;
 | 
	
		
			
				|  |  |  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 javax.annotation.Resource;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  @Slf4j
 | 
	
		
			
				|  |  |  @Validated
 | 
	
		
			
				|  |  |  @RestController
 | 
	
	
		
			
				|  | @@ -26,6 +44,12 @@ public class TenantGroupController {
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private TenantGroupService tenantGroupService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private ImGroupService imGroupService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      @ApiOperation(value = "查询分页", notes = "机构小组表- 传入 TenantGroupWrapper.TenantGroupQuery")
 | 
	
		
			
				|  |  |      @PreAuthorize("@pcs.hasPermissions('tenantGroup/page', {'BACKEND'})")
 | 
	
		
			
				|  |  |      @PostMapping("/page")
 | 
	
	
		
			
				|  | @@ -40,4 +64,64 @@ public class TenantGroupController {
 | 
	
		
			
				|  |  |          return R.from(tenantGroupService.adjustTenantGroup(adjustTenantGroup));
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "详情", notes = "机构小组表-根据详情ID查询单条, 传入id")
 | 
	
		
			
				|  |  | +    @GetMapping("/detail/{id}")
 | 
	
		
			
				|  |  | +    @PreAuthorize("@pcs.hasPermissions('tenantGroup/detail')")
 | 
	
		
			
				|  |  | +    public R<TenantGroupWrapper.TenantGroup> detail(@PathVariable("id") Long id) {
 | 
	
		
			
				|  |  | +        TenantGroup wrapper = tenantGroupService.detail(id);
 | 
	
		
			
				|  |  | +        if (wrapper == null) {
 | 
	
		
			
				|  |  | +            return R.from(new TenantGroupWrapper.TenantGroup());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        TenantGroupWrapper.TenantGroup group = TenantGroupWrapper.TenantGroup.from(JSON.toJSONString(wrapper));
 | 
	
		
			
				|  |  | +        group.setImGroupExist(false);
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(wrapper.getImGroupId())) {
 | 
	
		
			
				|  |  | +            ImGroup imGroup = imGroupService.getById(wrapper.getImGroupId());
 | 
	
		
			
				|  |  | +            if (imGroup != null) {
 | 
	
		
			
				|  |  | +                group.setImGroupExist(true);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        List<TenantGroupWrapper.TenantGroupMember> members =
 | 
	
		
			
				|  |  | +                tenantGroupService.queryGroupMember(wrapper.getTenantId(), id);
 | 
	
		
			
				|  |  | +        List<Long> userIds = members.stream().map(TenantGroupWrapper.TenantGroupMember::getUserId)
 | 
	
		
			
				|  |  | +                .collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        group.setUserIds(userIds);
 | 
	
		
			
				|  |  | +        group.setGroupUserCount(members.size());
 | 
	
		
			
				|  |  | +        group.setUserList(members);
 | 
	
		
			
				|  |  | +        return R.from(group);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "新增", notes = "机构小组表- 传入 TenantGroupWrapper.TenantGroup")
 | 
	
		
			
				|  |  | +    @PostMapping("/save")
 | 
	
		
			
				|  |  | +    @PreAuthorize("@pcs.hasPermissions('tenantGroup/add')")
 | 
	
		
			
				|  |  | +    public R<JSONObject> add(@Validated @RequestBody TenantGroupVo.TenantGroup tenantGroup) {
 | 
	
		
			
				|  |  | +        Long tenantId = tenantGroup.getTenantId();
 | 
	
		
			
				|  |  | +        if (tenantId == null) {
 | 
	
		
			
				|  |  | +            throw new BizException("机构ID不能为空");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +        TenantGroupWrapper.TenantGroup group = TenantGroupWrapper.TenantGroup.from(tenantGroup.jsonString());
 | 
	
		
			
				|  |  | +        group.setCreateBy(sysUser.getId());
 | 
	
		
			
				|  |  | +        // 新增数据
 | 
	
		
			
				|  |  | +        tenantGroupService.add(group, tenantGroup.getImGroupCreate());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return R.defaultR();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "修改", notes = "机构小组表- 传入 TenantGroupWrapper.TenantGroup")
 | 
	
		
			
				|  |  | +    @PostMapping("/update")
 | 
	
		
			
				|  |  | +    @PreAuthorize("@pcs.hasPermissions('tenantGroup/update')")
 | 
	
		
			
				|  |  | +    public R<JSONObject> update(@Validated @RequestBody TenantGroupVo.TenantGroup tenantGroup) {
 | 
	
		
			
				|  |  | +        // 更新数据
 | 
	
		
			
				|  |  | +        tenantGroupService.update(TenantGroupWrapper.TenantGroup.from(tenantGroup.jsonString()), tenantGroup.getImGroupCreate());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return R.defaultR();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @ApiOperation(value = "删除", notes = "机构小组表- 传入id")
 | 
	
		
			
				|  |  | +    @PostMapping("/remove")
 | 
	
		
			
				|  |  | +    @PreAuthorize("@pcs.hasPermissions('tenantGroup/detail')")
 | 
	
		
			
				|  |  | +    public R<Boolean> remove(@RequestParam Long id) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return R.from(tenantGroupService.delete(id));
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |