|  | @ -0,0 +1,156 @@
 | 
	
		
			
				|  |  | package com.yihu.jw.healthyhouse.controller.dict;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.ApiException;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.model.dict.DictEntryKey;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.model.dict.SystemDict;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.model.dict.SystemDictEntry;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.service.dict.SystemDictEntryService;
 | 
	
		
			
				|  |  | import com.yihu.jw.healthyhouse.service.dict.SystemDictService;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.health.house.HealthyHouseMapping;
 | 
	
		
			
				|  |  | import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.data.domain.Page;
 | 
	
		
			
				|  |  | import org.springframework.http.MediaType;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | import java.io.IOException;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.HashMap;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * @author zdm
 | 
	
		
			
				|  |  |  * @version 1.0
 | 
	
		
			
				|  |  |  * @created 2018.09.18
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @RestController
 | 
	
		
			
				|  |  | @RequestMapping(HealthyHouseMapping.api_healthyHouse_common)
 | 
	
		
			
				|  |  | @Api(value = "DictionaryEntry", description = "系统全局字典项管理", tags = {"系统字典-系统全局字典项管理"})
 | 
	
		
			
				|  |  | public class SystemDictEntryController extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SystemDictService dictService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SystemDictEntryService systemDictEntryService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "获取字典项列表")
 | 
	
		
			
				|  |  |     @GetMapping(value = HealthyHouseMapping.HealthyHouse.SystemDictEntry.PAGE)
 | 
	
		
			
				|  |  |     public PageEnvelop getSystemDictEntrys(
 | 
	
		
			
				|  |  |             @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "fields", required = false) String fields,
 | 
	
		
			
				|  |  |             @ApiParam(name = "filters", value = "过滤器", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "filters", required = false) String filters,
 | 
	
		
			
				|  |  |             @ApiParam(name = "sorts", value = "排序", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "sorts", required = false) String sorts,
 | 
	
		
			
				|  |  |             @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
 | 
	
		
			
				|  |  |             @RequestParam(value = "size", required = false) Integer size,
 | 
	
		
			
				|  |  |             @ApiParam(name = "page", value = "页码", defaultValue = "1")
 | 
	
		
			
				|  |  |             @RequestParam(value = "page", required = false) Integer page) throws Exception {
 | 
	
		
			
				|  |  |         List<SystemDictEntry> systemDictEntryList = systemDictEntryService.search(fields,filters,sorts,page,size);
 | 
	
		
			
				|  |  |         return success(systemDictEntryList,systemDictEntryList.size(),page, size);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "创建字典项")
 | 
	
		
			
				|  |  |     @PostMapping(value = HealthyHouseMapping.HealthyHouse.SystemDictEntry.CREATE)
 | 
	
		
			
				|  |  |     public ObjEnvelop<SystemDictEntry> createDictEntry (
 | 
	
		
			
				|  |  |             @ApiParam(name = "entryJson", value = "字典JSON结构")
 | 
	
		
			
				|  |  |             @RequestParam(value = "entryJson") String entryJson) throws IOException{
 | 
	
		
			
				|  |  |         SystemDictEntry entry = toEntity(entryJson, SystemDictEntry.class);
 | 
	
		
			
				|  |  |         SystemDict systemDict = dictService.retrieve(entry.getDictId());
 | 
	
		
			
				|  |  |         if (systemDict == null) {
 | 
	
		
			
				|  |  |             return  failed("所属字典不存在!",ObjEnvelop.class);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         int nextSort = systemDictEntryService.getNextSN(entry.getDictId());
 | 
	
		
			
				|  |  |         entry.setSort(nextSort);
 | 
	
		
			
				|  |  |         systemDictEntryService.createDictEntry(entry);
 | 
	
		
			
				|  |  |         return success(entry);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "获取字典项")
 | 
	
		
			
				|  |  |     @GetMapping(value = HealthyHouseMapping.HealthyHouse.SystemDictEntry.GETDICTENTRYBYDICTIDANDCODE)
 | 
	
		
			
				|  |  |     public ObjEnvelop getDictEntry(
 | 
	
		
			
				|  |  |             @ApiParam(name = "dictId", value = "字典ID", required = true)
 | 
	
		
			
				|  |  |             @RequestParam(value = "dictId") String dictId,
 | 
	
		
			
				|  |  |             @ApiParam(name = "code", value = "字典项代码", required = true)
 | 
	
		
			
				|  |  |             @RequestParam(value = "code") String code) throws Exception{
 | 
	
		
			
				|  |  |         SystemDictEntry systemDictEntry = systemDictEntryService.getDictEntry(dictId, code);
 | 
	
		
			
				|  |  |         return success(systemDictEntry);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "删除字典项")
 | 
	
		
			
				|  |  |     @DeleteMapping(HealthyHouseMapping.HealthyHouse.SystemDictEntry.DELETEBYDICTIDANDCODE)
 | 
	
		
			
				|  |  |     public Envelop deleteDictEntry(
 | 
	
		
			
				|  |  |             @ApiParam(name = "dictId", value = "字典ID")
 | 
	
		
			
				|  |  |             @RequestParam(value = "dictId") String dictId,
 | 
	
		
			
				|  |  |             @ApiParam(name = "code", value = "字典项编码")
 | 
	
		
			
				|  |  |             @RequestParam(value = "code") String code) throws Exception{
 | 
	
		
			
				|  |  |         systemDictEntryService.deleteDictEntry(dictId, code);
 | 
	
		
			
				|  |  |         return success("success");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "删除字典")
 | 
	
		
			
				|  |  |     @DeleteMapping(value = HealthyHouseMapping.HealthyHouse.SystemDictEntry.DELETE)
 | 
	
		
			
				|  |  |     public Envelop deleteSystemDictEntry(
 | 
	
		
			
				|  |  |             @ApiParam(name = "entryId", value = "字典项ID")
 | 
	
		
			
				|  |  |             @RequestParam(value = "entryId") String entryId) throws Exception {
 | 
	
		
			
				|  |  |         systemDictEntryService.delete(entryId);
 | 
	
		
			
				|  |  |         return success("success");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @ApiOperation(value = "修改字典项")
 | 
	
		
			
				|  |  |     @PutMapping(value =HealthyHouseMapping.HealthyHouse.SystemDictEntry.UPDATE)
 | 
	
		
			
				|  |  |     public ObjEnvelop<SystemDictEntry> updateDictEntry(
 | 
	
		
			
				|  |  |             @ApiParam(name = "entryJson", value = "字典JSON结构")
 | 
	
		
			
				|  |  |             @RequestParam(value = "entryJson") String entryJson) throws IOException {
 | 
	
		
			
				|  |  |         SystemDictEntry entry = toEntity(entryJson, SystemDictEntry.class);
 | 
	
		
			
				|  |  |         SystemDictEntry temp = systemDictEntryService.retrieve(new DictEntryKey(entry.getCode(), entry.getDictId()));
 | 
	
		
			
				|  |  |         if (null == temp) {
 | 
	
		
			
				|  |  |             failed("字典项不存在!",ObjEnvelop.class);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         systemDictEntryService.saveDictEntry(entry);
 | 
	
		
			
				|  |  |         return success(entry);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @GetMapping(value =HealthyHouseMapping.HealthyHouse.SystemDictEntry.ISEXISTSDICTENTRYBYDICTIDANDCODE)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "根据dictId和code判断提交的字典项是否已经存在")
 | 
	
		
			
				|  |  |     public boolean isDictEntryCodeExists(
 | 
	
		
			
				|  |  |             @ApiParam(name = "dictId", value = "字典", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "dictId",required = true) String dictId,
 | 
	
		
			
				|  |  |             @ApiParam(name = "code", value = "字典项编码", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "code") String code){
 | 
	
		
			
				|  |  |         return systemDictEntryService.isDictContainEntry(dictId, code);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @GetMapping(value =HealthyHouseMapping.HealthyHouse.SystemDictEntry.GETDICTENTRYBYDICTIDANDNAME)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "根据dictId和code判断提交的字典项是否已经存在")
 | 
	
		
			
				|  |  |     public boolean isDictEntryNameExists(
 | 
	
		
			
				|  |  |             @ApiParam(name = "dictId", value = "字典", defaultValue = "")
 | 
	
		
			
				|  |  |             @RequestParam(value = "dictId",required = true) String dictId,
 | 
	
		
			
				|  |  |             @ApiParam(name = "name", value = "字典项名称")
 | 
	
		
			
				|  |  |             @RequestParam(value = "name") String name){
 | 
	
		
			
				|  |  |         Page<SystemDictEntry> systemDictEntryPage= systemDictEntryService.findByDictIdAndValueLike(dictId, name,0,100);
 | 
	
		
			
				|  |  |         if(null!=systemDictEntryPage&&systemDictEntryPage.getSize()>0){
 | 
	
		
			
				|  |  |             return  true;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return false;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @GetMapping(HealthyHouseMapping.HealthyHouse.SystemDictEntry.LIST)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "根据dictId获取所有字典项")
 | 
	
		
			
				|  |  |     public ListEnvelop GetSystemDictEntryListByDictId(
 | 
	
		
			
				|  |  |             @ApiParam(name = "dictId", value = "字典id")
 | 
	
		
			
				|  |  |             @RequestParam(value = "dictId") String dictId) throws Exception{
 | 
	
		
			
				|  |  |         List<SystemDictEntry> cardList = systemDictEntryService.getDictEntryCodeAndValueByDictId(dictId);
 | 
	
		
			
				|  |  |         return success(cardList);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |