|
@ -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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|