| 
					
				 | 
			
			
				@ -0,0 +1,150 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.figure.controller.patient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.controller.BaseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.model.patient.portrait.UserPortrait; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.service.PortraitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.figure.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.http.MediaType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RequestMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RequestParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by chenweida on 2017/3/8. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 用户标签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RequestMapping(value = "/portrait", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Api(description = "用户标签") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class PortraitController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PortraitService portraitService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = " 生成用户标签") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "newPortrait", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String newPortrait( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "category", value = "标签父类", required = true) @RequestParam(value = "category", required = true) String category, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "subCategory", value = "标签子类", required = true) @RequestParam(value = "subCategory", required = true) String subCategory, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "value", value = "标签值", required = false) @RequestParam(value = "value", required = false) String value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            portraitService.newPortrait(category, subCategory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return success("成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return invalidUserException(e, -1, "启动失败:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "获取疾病-所在区域") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "getPortraits1002001", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getPortraits1002001( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Integer> data = portraitService.getPortraits("1001005", value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, String> returnData = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map.Entry<String, Integer> one : data.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!one.getKey().equals("allSize")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    returnData.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return write(200, "获取成功!", "data", returnData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return invalidUserException(e, -1, "启动失败:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "获取疾病-所在年龄") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "getPortraits1002003", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getPortraits1002003( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Integer> data = portraitService.getPortraits("1001003", value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, String> returnData = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map.Entry<String, Integer> one : data.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!one.getKey().equals("allSize")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    returnData.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return write(200, "获取成功!", "data", returnData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return invalidUserException(e, -1, "启动失败:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "获取疾病-所在性别") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "getPortraits1001001", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getPortraits1001001( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "value", value = "疾病名称(糖尿病,高血压)", required = true) @RequestParam(value = "value", required = true) String value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Integer> data = portraitService.getPortraits("1001001", value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, String> returnData = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map.Entry<String, Integer> one : data.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!one.getKey().equals("allSize")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    returnData.put(one.getKey(), round(one.getValue(), data.get("allSize"), 2) + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return write(200, "获取成功!", "data", returnData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return invalidUserException(e, -1, "启动失败:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "获取一级的标签信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value = "getPortraitsLevel1", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getPortraitsLevel1( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "key", value = "1 疾病 2 健康分布", required = true) @RequestParam(value = "key", required = true) String key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Integer> data = portraitService.getPortraitsLevel1(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject return1 = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map.Entry<String, Integer> one : data.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!one.getKey().equals("allSize")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject return2 = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return2.put("count", one.getValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return2.put("scale ", round(one.getValue(), data.get("allSize"), 2) + ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return1.put(one.getKey(), return2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return write(200, "获取成功!", "data", return1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            error(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return invalidUserException(e, -1, "启动失败:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static double round(Integer up, Integer down, int scale) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (scale < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new IllegalArgumentException( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "The scale must be a positive integer or zero"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BigDecimal upB = new BigDecimal(up); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BigDecimal downB = new BigDecimal(down); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return upB.divide(downB, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |