123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- package com.dragoninfo.dcuc.authweb.restcontroller.app;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.util.StrUtil;
- import com.alibaba.nacos.client.naming.utils.CollectionUtils;
- import com.dragoninfo.dcuc.app.dto.ApplyInfoDTO;
- import com.dragoninfo.dcuc.app.entity.ApplyInfo;
- import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
- import com.dragoninfo.dcuc.app.facade.IManufacturerInfoFacade;
- import com.dragoninfo.dcuc.auth.auth.vo.ApplicationInfoVO;
- import com.dragoninfo.dcuc.auth.power.facade.IApplicationInfoFacade;
- import com.dragoninfo.dcuc.auth.sub.dto.AuthOrgDTO;
- import com.dragoninfo.dcuc.auth.sub.facade.IAuthOrgInfoFacade;
- import com.dragoninfo.dcuc.authweb.business.MtAuthBusiness;
- import com.dragoninfo.dcuc.authweb.restcontroller.app.vo.AppVo;
- import com.dragoninfo.dcuc.duceap.facade.IDuceapUploadFacade;
- import com.dragoninfo.duceap.core.enums.ResultEnum;
- import com.dragoninfo.duceap.core.response.Result;
- import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
- import com.dragonsoft.duceap.base.entity.search.SearchDTO;
- import com.dragonsoft.duceap.base.exception.ApplicationException;
- import com.dragonsoft.duceap.commons.util.string.StringUtils;
- import com.dragonsoft.duceap.core.search.Searchable;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.web.bind.annotation.*;
- import java.util.*;
- /**
- * @author yica
- * @date 2018/8/8
- */
- @Slf4j
- @Api(tags = {"应用管理接口"})
- @RestController
- @RequestMapping(value = "/appsvr/v2")
- public class AppController {
- @Autowired
- private IApplyInfoFacade applyInfoFacade;
- @Autowired
- private IAuthOrgInfoFacade authOrgInfoFacade;
- @Autowired
- private IDuceapUploadFacade uploadFacade;
- @Autowired
- private IApplicationInfoFacade applicationInfoFacade;
- @ApiOperation(value = "查询所有应用列表")
- @ApiImplicitParam(name = "applyStatus", value = "applyStatus:应用在用标识(0:启用 1:禁用)")
- @GetMapping("allApps")
- public Result<List<ApplyInfo>> allApps(@RequestParam(value = "applyStatus",required = false) String applyStatus){
- List<ApplyInfo> applyList = applyInfoFacade.findList(applyStatus);
- return Result.success(applyList);
- }
- @ApiOperation(value = "查询应用列表")
- @ApiImplicitParam(name = "searchable", value = "查询条件(applyName:应用名称,like;managerOrgCode:应用系统事权单位代码,like;applyStatus:应用在用标识(0:启用 1:禁用);=;)")
- @PostMapping(value = "apps")
- public Result<List<ApplyInfo>> applyPage(Searchable searchable) {
- SearchDTO searchDTO = searchable.toSearchDTO();
- Page<ApplyInfo> page = applyInfoFacade.applyInfoPage(searchDTO);
- return Result.success(page.getTotalElements(), page.getContent());
- }
- @ApiOperation(value = "修改应用")
- @PutMapping(value = "/app/{id}")
- public Result<Object> update(@RequestBody AppVo appVo) {
- try {
- ApplyInfoDTO applyInfoDTO = new ApplyInfoDTO();
- BeanUtil.copyProperties(appVo, applyInfoDTO);
- //检查应用信息是否已存
- ResponseStatus responseStatus = applyInfoFacade.isRepeat(applyInfoDTO);
- if (!ResponseStatus.SUCCESS_CODE.equals(responseStatus.getStatusCode())) {
- return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), responseStatus.getMessage());
- }
- applyInfoFacade.updateApply(applyInfoDTO);
- } catch (Exception e) {
- log.error("update app", e);
- return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), "修改异常");
- }
- return Result.success();
- }
- @ApiOperation(value = "保存应用")
- @PostMapping(value = "/app")
- public Result<Object> save(@RequestBody AppVo appVo) {
- try {
- ApplyInfoDTO applyInfoDTO = new ApplyInfoDTO();
- BeanUtil.copyProperties(appVo, applyInfoDTO);
- //检查应用信息是否已存
- ResponseStatus responseStatus = applyInfoFacade.isRepeat(applyInfoDTO);
- if (!ResponseStatus.SUCCESS_CODE.equals(responseStatus.getStatusCode())) {
- return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), responseStatus.getMessage());
- }
- applyInfoFacade.saveAppIy(applyInfoDTO);
- } catch (Exception e) {
- log.error("save app", e);
- return Result.fail(ResultEnum.SERVICE_FAIL.getValue(), "保存异常");
- }
- return Result.success();
- }
- @ApiOperation(value = "删除应用")
- @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "应用ID", required = true
- , example = "40288a8b699fc2500169a33b20540000")})
- @DeleteMapping(value = "/app/{id}")
- public Result<Object> del(@PathVariable("id") String id) {
- //TODO
- //权限中心对施工人员和厂商未做管理
- applyInfoFacade.del(id);
- return Result.success("删除成功");
- }
- /**
- * 详情
- *
- * @param id
- * @return
- */
- @ApiOperation(value = "查询应用")
- @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "应用ID", required = true
- , example = "40288a8b699fc2500169a33b20540000")})
- @GetMapping(value = "/app/{id}")
- public Result<AppVo> toDetail(@PathVariable("id") String id) {
- //查询应用信息
- ApplyInfo applyInfo = applyInfoFacade.applyDetail(id);
- //存入机构信息信息
- String orgCode = applyInfo.getOrgCode();
- if(StringUtils.isNotBlank(orgCode)) {
- applyInfo.setOrgName(authOrgInfoFacade.getOrgByCode(orgCode).getFullName());
- }
- AppVo appVo = new AppVo();
- BeanUtil.copyProperties(applyInfo, appVo);
- appVo.setFile(uploadFacade.queryByBusiId(id, ""));
- return Result.success(appVo);
- }
- @ApiOperation(value = "开启停止应用")
- @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "应用ID", required = true
- , example = "40288a8b699fc2500169a33b20540000")})
- @PutMapping(value = "/app/status/{id}")
- public Result<Object> startOrStop(@PathVariable String id) {
- String message = "";
- try {
- message = applyInfoFacade.startOrStop(id);
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- throw new ApplicationException(300, "操作失败", e);
- }
- return Result.success(message);
- }
- @ApiOperation(value = "根据厂商ID,获取厂商所有的应用")
- @ApiImplicitParams({@ApiImplicitParam(paramType = "path", name = "id", value = "厂商ID", required = true
- , example = "40288a8b699fc2500169a33b20540000")})
- @GetMapping(value = "app/manufacturer/{mfrId}")
- public Result<List<Map<String, String>>> getAppByMfr(@PathVariable String mfrId) {
- if (StrUtil.isBlank(mfrId)) {
- return Result.success(Collections.emptyList());
- }
- List<ApplyInfo> appList = applyInfoFacade.getAppListByManufacturerId(mfrId);
- List<Map<String, String>> list = new ArrayList<>(appList.size());
- for (ApplyInfo app : appList) {
- Map<String, String> appmap = new HashMap<>();
- appmap.put("code", app.getId());
- appmap.put("value", app.getApplyName());
- appmap.put("managerName", app.getManagerName());
- appmap.put("managerPhone", app.getManagerPhone());
- list.add(appmap);
- }
- return Result.success(list);
- }
- /**
- * 根据机构Id获取应用信息列表
- **/
- @ApiOperation(value = "查询应用列表")
- @ApiImplicitParam(name = "searchable", value = "查询条件")
- @PostMapping(value = "apps/role/_serach")
- public Result getAppList(Searchable searchable) {
- // AuthUserDTO userInfo = authUserInfoFacade.get(ContextUtils.getUserInfo().getId());
- //TODO
- //权限中心同步的应用厂商非必填
- //外部人员只能配置自己所属厂商下的应用
- // if (UserTypeEnum.EXTERNAL.getValue().equals(userInfo.getUserType())) {
- // searchable.addSearchParam("manufacturerId", userInfo.getCompany());
- // }
- SearchDTO searchDTO = searchable.toSearchDTO();
- Page<ApplyInfo> applyInfos = applyInfoFacade.applyInfoPage(searchDTO);
- if (CollectionUtils.isEmpty(applyInfos.getContent())) {
- return Result.success(0L, "");
- }
- //填充统计数据
- List<ApplicationInfoVO> apps = applicationInfoFacade.addCountInfo(objectConvert(applyInfos));
- return Result.success(applyInfos.getTotalElements(), apps);
- }
- private List<ApplicationInfoVO> objectConvert(Page<ApplyInfo> applyInfos) {
- List<ApplicationInfoVO> apps = new ArrayList<>();
- for (ApplyInfo applyInfo : applyInfos) {
- ApplicationInfoVO applicationInfoVO = new ApplicationInfoVO();
- applicationInfoVO.setId(applyInfo.getId());
- applicationInfoVO.setCode(applyInfo.getApplyCode());
- applicationInfoVO.setName(applyInfo.getApplyName());
- applicationInfoVO.setMenus(0L);
- applicationInfoVO.setRoles(0L);
- applicationInfoVO.setInitquotas(0L);
- applicationInfoVO.setQuotaed(0L);
- applicationInfoVO.setLeavequotas(0L);
- apps.add(applicationInfoVO);
- }
- return apps;
- }
- }
|