田源
2023-05-09 d2570148ec3884de3af721bd99c4b7acbbdee075
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/controller/BtmTypeController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,153 @@
package com.vci.ubcs.omd.controller;
import com.alibaba.nacos.api.exception.NacosException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.vci.ubcs.omd.constant.OmdCacheConstant;
import com.vci.ubcs.omd.dto.BtmTypeDTO;
import com.vci.ubcs.omd.entity.BtmType;
import com.vci.ubcs.omd.repeater.DomainRepeater;
import com.vci.ubcs.omd.service.IBtmTypeService;
import com.vci.ubcs.omd.vo.BtmTypeVO;
import com.vci.ubcs.omd.wrapper.BtmTypeWrapper;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * Description: ä¸šåŠ¡ç±»åž‹æŽ§åˆ¶å™¨
 *
 * @author LiHang
 * @date 2023/4/23
 */
@NonDS
@RestController
@AllArgsConstructor
@RequestMapping("/btm-type")
@Api(value = "业务类型控制器", tags = "业务类型控制器")
public class BtmTypeController extends BladeController {
   /**
    * ä¸šåŠ¡ç±»åž‹æœåŠ¡
    */
   private final IBtmTypeService btmTypeService;
   /**
    * æŸ¥çœ‹è¯¦æƒ…
    *
    * @param oid ä¸»é”®
    * @return æ‰§è¡Œç»“æžœ
    */
   @GetMapping("/detail")
   @ApiOperationSupport(order = 1)
   @ApiOperation(value = "查看详情", notes = "传入主键")
   public R<BtmTypeVO> detail(String oid) {
      return R.data(btmTypeService.getBtmTypeByOid(oid));
   }
   /**
    * åˆ—表
    *
    * @param condition æŸ¥è¯¢æ¡ä»¶
    * @return æ‰§è¡Œç»“æžœ
    */
   @GetMapping("/list")
   @ApiImplicitParams({
      @ApiImplicitParam(name = "oid", value = "主键", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "id", value = "业务类型英文名称", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "name", value = "业务类型中文名称", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "tableName", value = "业务类型数据库表名", paramType = "query", dataType = "string"),
   })
   @ApiOperationSupport(order = 2)
   @ApiOperation(value = "查询列表", notes = "传入查询")
   public R<List<BtmTypeVO>> list(@ApiIgnore @RequestParam Map<String, Object> condition) {
      return R.data(BtmTypeWrapper.build().listEntityVO(btmTypeService.list(Condition.getQueryWrapper(condition, BtmType.class).lambda().orderByAsc(BtmType::getId))));
   }
   /**
    * åˆ†é¡µåˆ—表
    *
    * @param condition æŸ¥è¯¢æ¡ä»¶
    */
   @GetMapping("/page")
   @ApiImplicitParams({
      @ApiImplicitParam(name = "oid", value = "主键", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "id", value = "业务类型英文名称", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "name", value = "业务类型中文名称", paramType = "query", dataType = "string"),
      @ApiImplicitParam(name = "tableName", value = "业务类型数据库表名", paramType = "query", dataType = "string"),
   })
   @ApiOperationSupport(order = 2)
   @ApiOperation(value = "查询列表", notes = "传入查询")
   public R<IPage<BtmTypeVO>> parentList(@ApiIgnore @RequestParam Map<String, Object> condition, Query query) {
      IPage<BtmTypeVO> pageVO = new Page<>();
      IPage<BtmType> page = btmTypeService.page(Condition.getPage(query), Condition.getQueryWrapper(condition, BtmType.class).lambda().orderByAsc(BtmType::getId));
      BeanUtil.copy(page, pageVO);
      pageVO.setRecords(BtmTypeWrapper.build().listEntityVO(page.getRecords()));
      return R.data(pageVO);
   }
   /**
    * æ–°å¢žæˆ–修改
    *
    * @param dto å…ƒæ•°æ®é¡µé¢ä¼ è¾“对象
    * @return æ‰§è¡Œç»“æžœ
    */
   @PostMapping("/submit/{auto}")
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "新增或修改", notes = "传入业务类型对象")
   public R submit(@Valid @RequestBody BtmTypeDTO dto,@PathVariable(value = "auto") boolean auto) {
      CacheUtil.clear(OmdCacheConstant.BTM_CACHE);
      return btmTypeService.submit(dto,auto);
   }
   /**
    * åˆ é™¤
    *
    * @param ids ä¸»é”®é›†åˆ
    * @return æ‰§è¡Œç»“æžœ
    */
   @PostMapping("/remove")
   @ApiOperationSupport(order = 4)
   @ApiOperation(value = "删除", notes = "主键集合")
   public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
      CacheUtil.clear(OmdCacheConstant.BTM_CACHE);
      List<String> oidList = new ArrayList<>();
      if (ids.contains(",")) {
         oidList.addAll(Func.toStrList(",", ids));
      } else {
         oidList.add(ids);
      }
      return R.status(btmTypeService.removeBatchByIds(oidList));
   }
   /**
    * èŽ·å–é¢†åŸŸå€¼
    */
   @GetMapping("/domain")
   @ApiOperationSupport(order = 5)
   @ApiOperation(value = "获取领域值")
   public R<List<String>> getDomain(){
      try {
         return R.data(DomainRepeater.getDomain());
      } catch (NacosException e) {
         return R.fail(e.getErrMsg());
      }
   }
}