Authored by zhaoyue

Merge branch 'zhaoyue-dev3' into 'master'

Fix names

删除了一些重复的entity文件,对相应功能做了合并。

See merge request !6
Showing 32 changed files with 808 additions and 739 deletions
git add --all src/*
git add push.sh
git add pom.xml
git commit -m "Fix little bug"
git push origin master
git commit -m "Fix names"
git push origin zhaoyue-dev3
git status
... ...
... ... @@ -3,7 +3,7 @@ package com.xkl.authorization.resolvers;
import com.xkl.authorization.annotation.CurrentAdmin;
import com.xkl.config.Constants;
import com.xkl.controller.uploadsoft.UpSoftAccountController;
import com.xkl.domain.Admin;
import com.xkl.domain.XklAdminEntity;
import com.xkl.repository.AdminRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.MethodParameter;
... ... @@ -29,7 +29,7 @@ public class CurrentAdminMethodArgumentResolver implements HandlerMethodArgument
@Override
public boolean supportsParameter(MethodParameter parameter) {
//如果参数类型是Admin并且有CurrentAdmin注解则支持
if (parameter.getParameterType().isAssignableFrom(Admin.class) &&
if (parameter.getParameterType().isAssignableFrom(XklAdminEntity.class) &&
parameter.hasParameterAnnotation(CurrentAdmin.class)) {
return true;
}
... ... @@ -42,7 +42,7 @@ public class CurrentAdminMethodArgumentResolver implements HandlerMethodArgument
String currentAdminId = ((String) webRequest.getAttribute(Constants.CURRENT_USER_ID, RequestAttributes.SCOPE_REQUEST)).replace(UpSoftAccountController.UPSOFT_TOKEN_PREFIX, "");
if (currentAdminId != null) {
//从数据库中查询并返回
Admin admin = adminRepository.findByIdAndStatus(Long.parseLong(currentAdminId), Constants.STATUS_OK);
XklAdminEntity admin = adminRepository.findByIdAndStatus(Long.parseLong(currentAdminId), Constants.STATUS_OK);
return admin;
}
throw new MissingServletRequestPartException(Constants.CURRENT_USER_ID);
... ...
... ... @@ -68,7 +68,11 @@ public interface Constants {
public static final int STATUS_BAD = 0;
public static final boolean STATUS_BAD2 = false;
public static final Byte STATUS_BAD3 = 0;
public static final int STATUS_OK = 1;
public static final boolean STATUS_OK2= true;
public static final Byte STATUS_OK3= 1;
}
... ...
... ... @@ -168,7 +168,7 @@ public class ReportController {
if(xklAmpReportEntity!=null && xklAmpReportEntity.size()>0){
for(XklAmpReportEntity report:xklAmpReportEntity){
long reportTime= UtilTools.getLongTime(report.getUptime());
long reportTime= report.getUptime().getTime();
long stimeLong= UtilTools.getLongTime(stime);
long etimeLong= UtilTools.getLongTime(etime);
long reportId= report.getId();
... ...
... ... @@ -10,7 +10,7 @@ import com.xkl.authorization.manager.ITokenManager;
import com.xkl.authorization.model.TokenModel;
import com.xkl.config.Constants;
import com.xkl.config.ResultStatus;
import com.xkl.domain.Admin;
import com.xkl.domain.XklAdminEntity;
import com.xkl.model.ResultModel;
import com.xkl.repository.AMPMachineRepository;
import com.xkl.repository.AdminRepository;
... ... @@ -51,13 +51,13 @@ public class UpSoftAccountController {
Assert.notNull(password, "password can not be empty");
// Assert.notNull(ampserial, "ampserial can not be empty");
// Assert.notNull(ampkey, "ampkey can not be empty");
// AMPMachine ampMachine = ampMachineRepository.findBySecretKey(ampkey.trim());
// XklAMPMachineEntity ampMachine = ampMachineRepository.findBySecretKey(ampkey.trim());
// if (ampMachine == null ||// 未找到密钥所对应的机器
// !ampMachine.getAMPSerial().equals(ampserial) ||//amp序号不符合
// ampMachine.getStatus() != 1) {//用户无效
// return new ResponseEntity<>(ResultModel.error(ResultStatus.AMP_KEY_ERROR), HttpStatus.NOT_FOUND);
// }
Admin admin = adminRepository.findByAccountAndStatus(account, Constants.STATUS_OK);
XklAdminEntity admin = adminRepository.findByAccountAndStatus(account, Constants.STATUS_OK);
//未注册
if (admin == null) {
//提示用户名或密码错误
... ... @@ -83,7 +83,7 @@ public class UpSoftAccountController {
@ApiImplicitParams({
@ApiImplicitParam(name = "authorization", value = "请输入登录返回信息:userId_tokens", required = true, dataType = "string", paramType = "header"),
})
public ResponseEntity<ResultModel> logout(@CurrentAdmin Admin admin) {
public ResponseEntity<ResultModel> logout(@CurrentAdmin XklAdminEntity admin) {
tokenManager.deleteToken(UPSOFT_TOKEN_PREFIX + admin.getId());
return new ResponseEntity<>(ResultModel.ok(), HttpStatus.OK);
}
... ... @@ -94,7 +94,7 @@ public class UpSoftAccountController {
@ApiImplicitParams({
@ApiImplicitParam(name = "authorization", value = "请以如下格式输入登录返回信息:adminId_tokens", required = true, dataType = "string", paramType = "header"),
})
public ResponseEntity<ResultModel> modpwd(@CurrentAdmin Admin admin, @RequestParam String newpwd) {
public ResponseEntity<ResultModel> modpwd(@CurrentAdmin XklAdminEntity admin, @RequestParam String newpwd) {
Assert.notNull(newpwd, "password can not be empty");
String salt = SecurityTool.genSalt();
String pass2Db = SecurityTool.getPassword(admin.getAccount(), newpwd, salt);
... ...
... ... @@ -5,26 +5,18 @@ import com.wordnik.swagger.annotations.ApiImplicitParams;
import com.wordnik.swagger.annotations.ApiOperation;
import com.xkl.authorization.annotation.Authorization;
import com.xkl.authorization.annotation.CurrentAdmin;
import com.xkl.config.Constants;
import com.xkl.config.ResultStatus;
import com.xkl.domain.*;
import com.xkl.model.ReportIdModel;
import com.xkl.model.ResultModel;
import com.xkl.repository.*;
import com.xkl.security.AntiXSS;
import com.xkl.security.SecurityTool;
import com.xkl.service.IReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.util.List;
/**
* 上传报告及删除报告接口。
... ... @@ -59,7 +51,7 @@ public class UpSoftReportController {
@ApiImplicitParams({
@ApiImplicitParam(name = "authorization", value = "请输入登录返回信息:userId_tokens", required = true, dataType = "string", paramType = "header"),
})
public ResponseEntity<ResultModel> save(@CurrentAdmin Admin admin, @RequestParam String json_report) {
public ResponseEntity<ResultModel> save(@CurrentAdmin XklAdminEntity admin, @RequestParam String json_report) {
// 其中json_report格式为上传软件上传上来的原始report格式。
return reportService.save(admin, json_report);
}
... ... @@ -71,7 +63,7 @@ public class UpSoftReportController {
@ApiImplicitParams({
@ApiImplicitParam(name = "authorization", value = "请输入登录返回信息:userId_tokens", required = true, dataType = "string", paramType = "header"),
})
public ResponseEntity<ResultModel> delete(@CurrentAdmin Admin admin, @RequestParam long report_id) {
public ResponseEntity<ResultModel> delete(@CurrentAdmin XklAdminEntity admin, @RequestParam long report_id) {
return reportService.delete(admin, report_id);
}
... ...
... ... @@ -2,7 +2,7 @@ package com.xkl.controller.uploadsoft;
import com.wordnik.swagger.annotations.ApiOperation;
import com.xkl.domain.UpSoftVersion;
import com.xkl.domain.XklUpSoftVersionEntity;
import com.xkl.model.ResultModel;
import com.xkl.repository.UpSoftVersionRepository;
... ... @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
... ... @@ -31,8 +30,8 @@ public class UpSoftVerController {
@RequestMapping(method = RequestMethod.GET)
@ApiOperation(value = "获取最新软件版本信息,返回值中,version_num为版本号")
public ResponseEntity<ResultModel> getVersionInfo() {
List<UpSoftVersion> versionList = upSoftVersionRepository.findAllVersion();
UpSoftVersion version = versionList.get(versionList.size() - 1);
List<XklUpSoftVersionEntity> versionList = upSoftVersionRepository.findAllVersion();
XklUpSoftVersionEntity version = versionList.get(versionList.size() - 1);
return new ResponseEntity<>(ResultModel.ok(version), HttpStatus.OK);
}
... ...
package com.xkl.domain;
import lombok.Data;
import javax.persistence.*;
import java.sql.Timestamp;
/**
* 用户数据的domain类
*/
@Entity
@Table(name = "xkl_amp_report")
@Data
public class AMPReport {
//用户id
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "member_id")
private int member_id;
// 姓名
@Column(name = "name")
private String name;
// 报告标题
@Column(name = "title")
private String title;
// 体检时间
@Column(name = "check_time")
private Timestamp check_time;
// 上传时间
@Column(name = "uptime")
private Timestamp uptime;
//用户账号
@Column(name = "account_str")
private String account_str;
// 0, 男; 1,女
@Column(name = "sex")
private int sex;
@Column(name = "age")
private int age;
@Column(name = "weight")
private int weight;
// 脉搏
@Column(name = "pulse")
private int pulse;
// 呼吸频率
@Column(name = "breath_rate")
private int breath_rate;
// 大气压力
@Column(name = "atmos_pressure")
private float atmos_pressure;
@Column(name = "LCA")
private float LCA;
@Column(name = "RCA")
private float RCA;
@Column(name = "LAC")
private float LAC;
@Column(name = "RAC")
private float RAC;
@Column(name = "ABD")
private float ABD;
// 温度和
@Column(name = "temp_sum")
private float temp_sum;
// 稳定值
@Column(name = "stable")
private int stable;
// 报告md5值
@Column(name = "md5")
private String md5;
// 创建者id
@Column(name = "create_by")
private int create_by;
// 机器号码
@Column(name = "machine_num")
private String machine_num;
@Column(name = "T0")
private String T0;
@Column(name = "T1")
private String T1;
@Column(name = "T2")
private String T2;
@Column(name = "T3")
private String T3;
@Column(name = "T4")
private String T4;
// 体检结论
@Column(name = "conclusion")
private String conclusion;
// 健康评分
@Column(name = "score")
private float score;
// 所属公司id
@Column(name = "company_id")
private int company_id;
// 报告状态 0,失效;1有效。
@Column(name = "status")
private int status;
public void setReport(String name, String title, Timestamp check_time,
Timestamp uptime, String account_str, int sex, int age,
int weight, int pulse, int breath_rate, float atmos_pressure,
float LCA, float RCA, float LAC, float RAC, float ABD, float temp_sum,
int stable, String md5,String machine_num, String conclusion) {
this.name = name;
this.title = title;
this.check_time = check_time;
this.uptime = uptime;
this.account_str = account_str;
this.sex = sex;
this.age = age;
this.weight = weight;
this.pulse = pulse;
this.breath_rate = breath_rate;
this.atmos_pressure = atmos_pressure;
this.LCA = LCA;
this.RCA = RCA;
this.LAC = LAC;
this.RAC = RAC;
this.ABD = ABD;
this.temp_sum = temp_sum;
this.stable = stable;
this.md5 = md5;
this.machine_num = machine_num;
this.conclusion = conclusion;
this.status = 1; //默认为有效。
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getMember_id() {
return member_id;
}
public void setMember_id(int member_id) {
this.member_id = member_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Timestamp getCheck_time() {
return check_time;
}
public void setCheck_time(Timestamp check_time) {
this.check_time = check_time;
}
public Timestamp getUptime() {
return uptime;
}
public void setUptime(Timestamp uptime) {
this.uptime = uptime;
}
public String getAccount_str() {
return account_str;
}
public void setAccount_str(String account_str) {
this.account_str = account_str;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public int getPulse() {
return pulse;
}
public void setPulse(int pulse) {
this.pulse = pulse;
}
public int getBreath_rate() {
return breath_rate;
}
public void setBreath_rate(int breath_rate) {
this.breath_rate = breath_rate;
}
public float getAtmos_pressure() {
return atmos_pressure;
}
public void setAtmos_pressure(float atmos_pressure) {
this.atmos_pressure = atmos_pressure;
}
public float getLCA() {
return LCA;
}
public void setLCA(float LCA) {
this.LCA = LCA;
}
public float getRCA() {
return RCA;
}
public void setRCA(float RCA) {
this.RCA = RCA;
}
public float getLAC() {
return LAC;
}
public void setLAC(float LAC) {
this.LAC = LAC;
}
public float getRAC() {
return RAC;
}
public void setRAC(float RAC) {
this.RAC = RAC;
}
public float getABD() {
return ABD;
}
public void setABD(float ABD) {
this.ABD = ABD;
}
public float getTemp_sum() {
return temp_sum;
}
public void setTemp_sum(float temp_sum) {
this.temp_sum = temp_sum;
}
public int getStable() {
return stable;
}
public void setStable(int stable) {
this.stable = stable;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public int getCreate_by() {
return create_by;
}
public void setCreate_by(int create_by) {
this.create_by = create_by;
}
public String getMachine_num() {
return machine_num;
}
public void setMachine_num(String machine_num) {
this.machine_num = machine_num;
}
public String getT0() {
return T0;
}
public void setT0(String t0) {
T0 = t0;
}
public String getT1() {
return T1;
}
public void setT1(String t1) {
T1 = t1;
}
public String getT2() {
return T2;
}
public void setT2(String t2) {
T2 = t2;
}
public String getT3() {
return T3;
}
public void setT3(String t3) {
T3 = t3;
}
public String getT4() {
return T4;
}
public void setT4(String t4) {
T4 = t4;
}
public String getConclusion() {
return conclusion;
}
public void setConclusion(String conclusion) {
this.conclusion = conclusion;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
public int getCompany_id() {
return company_id;
}
public void setCompany_id(int company_id) {
this.company_id = company_id;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
package com.xkl.domain;
import org.hibernate.annotations.Cascade;
import javax.persistence.*;
/**
* 用户数据的domain类
*/
@Entity
@Table(name = "xkl_amp_report_detail")
public class AMPReportDetail {
//自增id
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
// 报告id
@Column(name = "report_id")
private int reportId;
// 指标id
@Column(name = "item_id")
private int itemId;
// 指标值
@Column(name = "item_value")
private float itemValue;
// 0, normal; 1, lower; 2, higher.
@Column(name = "status")
private int status;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getReportId() {
return reportId;
}
public void setReportId(int reportId) {
this.reportId = reportId;
}
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public float getItemValue() {
return itemValue;
}
public void setItemValue(float itemValue) {
this.itemValue = itemValue;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
... ... @@ -8,27 +8,27 @@ import com.xkl.config.ResultStatus;
* Created by zhao yue on 2016/11/13.
*/
public class ReportData {
private AMPReport ampReport;
private List<AMPReportDetail> rpDetailList;
private XklAmpReportEntity ampReport;
private List<XklAmpReportDetailEntity> rpDetailList;
// ResultStatus resStatus;
// public ReportData(ResultStatus resStatus) {
// this.resStatus = resStatus;
// }
public AMPReport getAmpReport() {
public XklAmpReportEntity getAmpReport() {
return ampReport;
}
public void setAmpReport(AMPReport ampReport) {
public void setAmpReport(XklAmpReportEntity ampReport) {
this.ampReport = ampReport;
}
public List<AMPReportDetail> getRpDetailList() {
public List<XklAmpReportDetailEntity> getRpDetailList() {
return rpDetailList;
}
public void setRpDetailList(List<AMPReportDetail> rpDetailList) {
public void setRpDetailList(List<XklAmpReportDetailEntity> rpDetailList) {
this.rpDetailList = rpDetailList;
}
... ...
package com.xkl.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 指标数据标准的domain类
*/
@Entity
@Table(name = "xkl_amp_report_meta_items")
public class ReportMetaItem {
// id
@Id
@Column(name = "id")
private long id;
// item_id
@Column(name = "item_id")
private int item_id;
// type
@Column(name = "type")
private int type;
// title
@Column(name = "title")
private String title;
// standard_low_male
@Column(name = "standard_low_male")
private float standard_low_male;
// standard_high_male
@Column(name = "standard_high_male")
private float standard_high_male;
// standard_low_female
@Column(name = "standard_low_female")
private float standard_low_female;
// standard_high_female
@Column(name = "standard_high_female")
private float standard_high_female;
// explain_low
@Column(name = "explain_low")
private String explain_low;
// explain_high
@Column(name = "explain_high")
private String explain_high;
// explain_normal
@Column(name = "explain_normal")
private String explain_normal;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getItem_id() {
return item_id;
}
public void setItem_id(int item_id) {
this.item_id = item_id;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public float getStandard_low_male() {
return standard_low_male;
}
public void setStandard_low_male(float standard_low_male) {
this.standard_low_male = standard_low_male;
}
public float getStandard_high_male() {
return standard_high_male;
}
public void setStandard_high_male(float standard_high_male) {
this.standard_high_male = standard_high_male;
}
public float getStandard_low_female() {
return standard_low_female;
}
public void setStandard_low_female(float standard_low_female) {
this.standard_low_female = standard_low_female;
}
public float getStandard_high_female() {
return standard_high_female;
}
public void setStandard_high_female(float standard_high_female) {
this.standard_high_female = standard_high_female;
}
public String getExplain_low() {
return explain_low;
}
public void setExplain_low(String explain_low) {
this.explain_low = explain_low;
}
public String getExplain_high() {
return explain_high;
}
public void setExplain_high(String explain_high) {
this.explain_high = explain_high;
}
public String getExplain_normal() {
return explain_normal;
}
public void setExplain_normal(String explain_normal) {
this.explain_normal = explain_normal;
}
}
... ... @@ -11,7 +11,7 @@ import java.sql.Timestamp;
*/
@Entity
@Table(name = "xkl_amp_machine")
public class AMPMachine {
public class XklAMPMachineEntity {
//machine id
@Id
... ...
... ... @@ -10,7 +10,7 @@ import javax.persistence.Table;
*/
@Entity
@Table(name = "xkl_admin")
public class Admin {
public class XklAdminEntity {
//用户id
@Id
@Column(name = "id")
... ...
... ... @@ -13,7 +13,7 @@ import javax.persistence.*;
@Table(name = "xkl_amp_report_detail", schema = "hanhe_test", catalog = "")
public class XklAmpReportDetailEntity {
@Id
@GeneratedValue
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Basic
... ... @@ -28,4 +28,44 @@ public class XklAmpReportDetailEntity {
@Basic
@Column(name = "status")
private int status;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getReportId() {
return reportId;
}
public void setReportId(long reportId) {
this.reportId = reportId;
}
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public double getItemValue() {
return itemValue;
}
public void setItemValue(double itemValue) {
this.itemValue = itemValue;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
... ...
... ... @@ -3,7 +3,7 @@ package com.xkl.domain;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* Created by win7 on 2016/11/20.
... ... @@ -15,6 +15,7 @@ import java.io.Serializable;
public class XklAmpReportEntity {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Basic
@Column(name = "member_id")
... ... @@ -27,10 +28,10 @@ public class XklAmpReportEntity {
private String title;
@Basic
@Column(name = "check_time")
private String checkTime;
private Timestamp checkTime;
@Basic
@Column(name = "uptime")
private String uptime;
private Timestamp uptime;
@Basic
@Column(name = "account_str")
private String accountStr;
... ... @@ -109,4 +110,290 @@ public class XklAmpReportEntity {
@Basic
@Column(name = "status")
private Byte status;
public long getId() {
return id;
}
public void setReport(String name, String title, Timestamp check_time,
Timestamp uptime, String account_str, Byte sex, Byte age,
int weight, int pulse, int breath_rate, Double atmos_pressure,
Double LCA, Double RCA, Double LAC, Double RAC, Double ABD, Double temp_sum,
int stable, String md5, String machine_num, String conclusion) {
this.name = name;
this.title = title;
this.checkTime = check_time;
this.uptime = uptime;
this.accountStr = account_str;
this.sex = sex;
this.age = age;
this.weight = weight;
this.pulse = pulse;
this.breathRate = breath_rate;
this.atmosPressure = atmos_pressure;
this.lca = LCA;
this.rca = RCA;
this.lac = LAC;
this.rac = RAC;
this.abd = ABD;
this.tempSum = temp_sum;
this.stable = stable;
this.md5 = md5;
this.machineNum = machine_num;
this.conclusion = conclusion;
this.status = 1; //默认为有效。
}
public void setId(long id) {
this.id = id;
}
public long getMemberId() {
return memberId;
}
public void setMemberId(long memberId) {
this.memberId = memberId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Timestamp getCheckTime() {
return checkTime;
}
public void setCheckTime(Timestamp checkTime) {
this.checkTime = checkTime;
}
public Timestamp getUptime() {
return uptime;
}
public void setUptime(Timestamp uptime) {
this.uptime = uptime;
}
public String getAccountStr() {
return accountStr;
}
public void setAccountStr(String accountStr) {
this.accountStr = accountStr;
}
public Byte getSex() {
return sex;
}
public void setSex(Byte sex) {
this.sex = sex;
}
public Byte getAge() {
return age;
}
public void setAge(Byte age) {
this.age = age;
}
public long getWeight() {
return weight;
}
public void setWeight(long weight) {
this.weight = weight;
}
public long getPulse() {
return pulse;
}
public void setPulse(long pulse) {
this.pulse = pulse;
}
public long getBreathRate() {
return breathRate;
}
public void setBreathRate(long breathRate) {
this.breathRate = breathRate;
}
public Double getAtmosPressure() {
return atmosPressure;
}
public void setAtmosPressure(Double atmosPressure) {
this.atmosPressure = atmosPressure;
}
public Double getLca() {
return lca;
}
public void setLca(Double lca) {
this.lca = lca;
}
public Double getRca() {
return rca;
}
public void setRca(Double rca) {
this.rca = rca;
}
public Double getLac() {
return lac;
}
public void setLac(Double lac) {
this.lac = lac;
}
public Double getRac() {
return rac;
}
public void setRac(Double rac) {
this.rac = rac;
}
public Double getAbd() {
return abd;
}
public void setAbd(Double abd) {
this.abd = abd;
}
public Double getTempSum() {
return tempSum;
}
public void setTempSum(Double tempSum) {
this.tempSum = tempSum;
}
public long getStable() {
return stable;
}
public void setStable(long stable) {
this.stable = stable;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public long getCreateBy() {
return createBy;
}
public void setCreateBy(long createBy) {
this.createBy = createBy;
}
public String getMachineNum() {
return machineNum;
}
public void setMachineNum(String machineNum) {
this.machineNum = machineNum;
}
public String getT0() {
return t0;
}
public void setT0(String t0) {
this.t0 = t0;
}
public String getT1() {
return t1;
}
public void setT1(String t1) {
this.t1 = t1;
}
public String getT2() {
return t2;
}
public void setT2(String t2) {
this.t2 = t2;
}
public String getT3() {
return t3;
}
public void setT3(String t3) {
this.t3 = t3;
}
public String getT4() {
return t4;
}
public void setT4(String t4) {
this.t4 = t4;
}
public String getConclusion() {
return conclusion;
}
public void setConclusion(String conclusion) {
this.conclusion = conclusion;
}
public Double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
public long getCompanyId() {
return companyId;
}
public void setCompanyId(long companyId) {
this.companyId = companyId;
}
public Byte getStatus() {
return status;
}
public void setStatus(Byte status) {
this.status = status;
}
}
... ...
... ... @@ -26,4 +26,35 @@ public class XklAmpReportHealthScoreEntity {
@Column(name = "type_health_score")
private double typeHealthScore;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getReportId() {
return reportId;
}
public void setReportId(long reportId) {
this.reportId = reportId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public double getTypeHealthScore() {
return typeHealthScore;
}
public void setTypeHealthScore(double typeHealthScore) {
this.typeHealthScore = typeHealthScore;
}
}
... ...
... ... @@ -45,4 +45,92 @@ public class XklAmpReportMetaItemsEntity {
@Basic
@Column(name = "explain_normal")
private String explainNormal;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public double getStandardLowMale() {
return standardLowMale;
}
public void setStandardLowMale(double standardLowMale) {
this.standardLowMale = standardLowMale;
}
public double getStandardHighMale() {
return standardHighMale;
}
public void setStandardHighMale(double standardHighMale) {
this.standardHighMale = standardHighMale;
}
public double getStandardLowFemale() {
return standardLowFemale;
}
public void setStandardLowFemale(double standardLowFemale) {
this.standardLowFemale = standardLowFemale;
}
public double getStandardHighFemale() {
return standardHighFemale;
}
public void setStandardHighFemale(double standardHighFemale) {
this.standardHighFemale = standardHighFemale;
}
public String getExplainLow() {
return explainLow;
}
public void setExplainLow(String explainLow) {
this.explainLow = explainLow;
}
public String getExplainHigh() {
return explainHigh;
}
public void setExplainHigh(String explainHigh) {
this.explainHigh = explainHigh;
}
public String getExplainNormal() {
return explainNormal;
}
public void setExplainNormal(String explainNormal) {
this.explainNormal = explainNormal;
}
}
... ...
... ... @@ -90,4 +90,156 @@ public class XklAmpReportMetaScoreStandardEntity {
result = interval5Score;
return result;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public int getItemType() {
return itemType;
}
public void setItemType(int itemType) {
this.itemType = itemType;
}
public double getInterval1Min() {
return interval1Min;
}
public void setInterval1Min(double interval1Min) {
this.interval1Min = interval1Min;
}
public double getInterval1Max() {
return interval1Max;
}
public void setInterval1Max(double interval1Max) {
this.interval1Max = interval1Max;
}
public double getInterval1Score() {
return interval1Score;
}
public void setInterval1Score(double interval1Score) {
this.interval1Score = interval1Score;
}
public double getInterval2Min() {
return interval2Min;
}
public void setInterval2Min(double interval2Min) {
this.interval2Min = interval2Min;
}
public double getInterval2Max() {
return interval2Max;
}
public void setInterval2Max(double interval2Max) {
this.interval2Max = interval2Max;
}
public double getInterval2Score() {
return interval2Score;
}
public void setInterval2Score(double interval2Score) {
this.interval2Score = interval2Score;
}
public double getInterval3Min() {
return interval3Min;
}
public void setInterval3Min(double interval3Min) {
this.interval3Min = interval3Min;
}
public double getInterval3Max() {
return interval3Max;
}
public void setInterval3Max(double interval3Max) {
this.interval3Max = interval3Max;
}
public double getInterval3Score() {
return interval3Score;
}
public void setInterval3Score(double interval3Score) {
this.interval3Score = interval3Score;
}
public double getInterval4Min() {
return interval4Min;
}
public void setInterval4Min(double interval4Min) {
this.interval4Min = interval4Min;
}
public double getInterval4Max() {
return interval4Max;
}
public void setInterval4Max(double interval4Max) {
this.interval4Max = interval4Max;
}
public double getInterval4Score() {
return interval4Score;
}
public void setInterval4Score(double interval4Score) {
this.interval4Score = interval4Score;
}
public double getInterval5Min() {
return interval5Min;
}
public void setInterval5Min(double interval5Min) {
this.interval5Min = interval5Min;
}
public double getInterval5Max() {
return interval5Max;
}
public void setInterval5Max(double interval5Max) {
this.interval5Max = interval5Max;
}
public double getInterval5Score() {
return interval5Score;
}
public void setInterval5Score(double interval5Score) {
this.interval5Score = interval5Score;
}
}
... ...
... ... @@ -10,7 +10,7 @@ import javax.persistence.Table;
*/
@Entity
@Table(name = "xkl_upsoft_version")
public class UpSoftVersion {
public class XklUpSoftVersionEntity {
//用户id
@Id
@Column(name = "id")
... ...
... ... @@ -24,4 +24,68 @@ public class ReportDetailModel {
*/
private int type;
private double typeHealthScore;
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public double getItemValue() {
return itemValue;
}
public void setItemValue(double itemValue) {
this.itemValue = itemValue;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getNormalNv() {
return normalNv;
}
public void setNormalNv(String normalNv) {
this.normalNv = normalNv;
}
public String getNormal() {
return normal;
}
public void setNormal(String normal) {
this.normal = normal;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public double getTypeHealthScore() {
return typeHealthScore;
}
public void setTypeHealthScore(double typeHealthScore) {
this.typeHealthScore = typeHealthScore;
}
}
... ...
... ... @@ -4,18 +4,18 @@ package com.xkl.model;
public class ReportIdModel {
// Report Id
private int reportId;
private long reportId;
public ReportIdModel(int reportId) {
public ReportIdModel(long reportId) {
this.reportId = reportId;
}
public int getReportId() {
public long getReportId() {
return reportId;
}
public void setReportId(int reportId) {
public void setReportId(long reportId) {
this.reportId = reportId;
}
}
... ...
... ... @@ -12,4 +12,22 @@ import lombok.Data;
public class ReportItemGraphModel {
public long time;
public double value;
public long getTime() {
return time;
}
public void setTime(long time) {
this.time = time;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
}
... ...
... ... @@ -18,4 +18,5 @@ public class ReportModel {
private XklAmpReportEntity Report;
private List<ReportDetailModel> ReportDetailList;
}
... ...
package com.xkl.repository;
import com.xkl.domain.AMPMachine;
import com.xkl.domain.XklAMPMachineEntity;
import org.springframework.data.repository.CrudRepository;
/**
* AMPMachine 类的CRUD操作
* XklAMPMachineEntity 类的CRUD操作
*
* @see AMPMachine
* @see XklAMPMachineEntity
*/
public interface AMPMachineRepository extends CrudRepository<AMPMachine, Long> {
public interface AMPMachineRepository extends CrudRepository<XklAMPMachineEntity, Long> {
public AMPMachine findBySecretKey(String secretKey);
public XklAMPMachineEntity findBySecretKey(String secretKey);
}
... ...
package com.xkl.repository;
import com.xkl.domain.Admin;
import com.xkl.domain.XklAdminEntity;
import org.springframework.data.repository.CrudRepository;
/**
* Admin类的CRUD操作
* @see Admin
* @see XklAdminEntity
*/
public interface AdminRepository extends CrudRepository<Admin, Long> {
public interface AdminRepository extends CrudRepository<XklAdminEntity, Long> {
// public Admin findByAccount(String account);
public Admin findByAccountAndStatus(String account,int status);
public Admin findByIdAndStatus(long id,int status);
// public XklAdminEntity findByAccount(String account);
public XklAdminEntity findByAccountAndStatus(String account, int status);
public XklAdminEntity findByIdAndStatus(long id, int status);
}
... ...
package com.xkl.repository;
import com.xkl.domain.AMPReport;
import com.xkl.domain.AMPReportDetail;
import com.xkl.domain.XklAmpReportDetailEntity;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
... ... @@ -9,8 +8,8 @@ import java.util.List;
/**
* AMPReportDetail类的CRUD操作
*
* @see AMPReportDetail
* @see XklAmpReportDetailEntity
*/
public interface ReportDetailRepository extends CrudRepository<AMPReportDetail, Long> {
public List<AMPReportDetail> findByReportId(int reportId);
public interface ReportDetailRepository extends CrudRepository<XklAmpReportDetailEntity, Long> {
public List<XklAmpReportDetailEntity> findByReportId(long reportId);
}
... ...
package com.xkl.repository;
import com.xkl.domain.ReportMetaItem;
import com.xkl.domain.XklAmpReportMetaItemsEntity;
import com.xkl.domain.User;
import org.springframework.data.repository.CrudRepository;
... ... @@ -8,5 +8,5 @@ import org.springframework.data.repository.CrudRepository;
* ReportMetaItems类的CRUD操作
* @see User
*/
public interface ReportMetaItemsRepository extends CrudRepository<ReportMetaItem, Long> {
public interface ReportMetaItemsRepository extends CrudRepository<XklAmpReportMetaItemsEntity, Long> {
}
... ...
package com.xkl.repository;
import com.xkl.domain.AMPReport;
import com.xkl.domain.Admin;
import org.springframework.data.repository.CrudRepository;
import com.xkl.domain.XklAmpReportEntity;
/**
* AMPReport类的CRUD操作
*
* @see AMPReport
* @see XklAmpReportEntity
*/
public interface ReportRepository extends CrudRepository<AMPReport, Long> {
public AMPReport findByMd5AndStatus(String md5,int status);
public interface ReportRepository extends CrudRepository<XklAmpReportEntity, Long> {
public XklAmpReportEntity findByMd5AndStatus(String md5, Byte status);
public AMPReport findById(int id);
public XklAmpReportEntity findById(long id);
}
... ...
package com.xkl.repository;
import com.xkl.domain.UpSoftVersion;
import com.xkl.domain.XklUpSoftVersionEntity;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
... ... @@ -9,9 +9,9 @@ import java.util.List;
/**
* User类的CRUD操作
*
* @see UpSoftVersion
* @see XklUpSoftVersionEntity
*/
public interface UpSoftVersionRepository extends CrudRepository<UpSoftVersion, Long> {
@Query("select upsoft from UpSoftVersion upsoft")
public List<UpSoftVersion> findAllVersion();
public interface UpSoftVersionRepository extends CrudRepository<XklUpSoftVersionEntity, Long> {
@Query("select upsoft from XklUpSoftVersionEntity upsoft")
public List<XklUpSoftVersionEntity> findAllVersion();
}
... ...
package com.xkl.service;
import com.xkl.domain.Admin;
import com.xkl.domain.ReportData;
import com.xkl.domain.User;
import com.xkl.domain.XklAdminEntity;
import com.xkl.model.ResultModel;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestParam;
/**
* Created by zhao yue on 2016/11/26.
... ... @@ -13,10 +10,10 @@ import org.springframework.web.bind.annotation.RequestParam;
public interface IReportService {
// public ReportData parseReport(String reportJson, String md5);
// public int saveReport(ReportData report, Admin admin, User user);
// public int saveReport(ReportData report, XklAdminEntity admin, User user);
public ResponseEntity<ResultModel> delete(Admin admin, long report_id);
public ResponseEntity<ResultModel> save(Admin admin, String json_report);
public ResponseEntity<ResultModel> delete(XklAdminEntity admin, long report_id);
public ResponseEntity<ResultModel> save(XklAdminEntity admin, String json_report);
... ...
... ... @@ -11,6 +11,7 @@ import com.xkl.repository.ReportMetaItemsRepository;
import com.xkl.repository.ReportRepository;
import com.xkl.repository.UserRepository;
import com.xkl.security.SecurityTool;
import com.xkl.tools.UtilTools;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
... ... @@ -45,12 +46,12 @@ public class ReportService implements IReportService {
this.redis = redis;
}
private static Map<Integer, ReportMetaItem> rpMetaItemMap = new HashMap<Integer, ReportMetaItem>();
private static Map<Integer, XklAmpReportMetaItemsEntity> rpMetaItemMap = new HashMap<Integer, XklAmpReportMetaItemsEntity>();
/*
* 存储报告
*/
public ResponseEntity<ResultModel> save(Admin admin, String json_report) {
public ResponseEntity<ResultModel> save(XklAdminEntity admin, String json_report) {
// 验证存在性
String reportMd5 = SecurityTool.encode("MD5", json_report);
// 验证是无对应的会员,rediskey
... ... @@ -60,7 +61,7 @@ public class ReportService implements IReportService {
/*
* 如果已经处理过的报告,不再进行处理。
*/
AMPReport report = reportRepository.findByMd5AndStatus(reportMd5, Constants.STATUS_OK);
XklAmpReportEntity report = reportRepository.findByMd5AndStatus(reportMd5, Constants.STATUS_OK3);
if (report != null && report.getStatus() > 0) {
// 返回,报告已存在。
return new ResponseEntity<>(ResultModel.ok(new ReportIdModel(report.getId())), HttpStatus.OK);
... ... @@ -86,7 +87,7 @@ public class ReportService implements IReportService {
/*
* 检验会员存在性
*/
User user = userRepository.findByLoginAccountAndStatus(reportData.getAmpReport().getAccount_str(), Constants.STATUS_OK2);
User user = userRepository.findByLoginAccountAndStatus(reportData.getAmpReport().getAccountStr(), Constants.STATUS_OK2);
if (user == null) {
redis.boundValueOps(reportWithNoUser).set("");
// 返回,报告对应会员不存在。
... ... @@ -96,7 +97,7 @@ public class ReportService implements IReportService {
/*
* 存储报告
*/
int reportId = save2DB(reportData, admin, user);
long reportId = save2DB(reportData, admin, user);
if (reportId > 0) {
// 返回,报告存储成功,报告id
return new ResponseEntity<>(ResultModel.ok(new ReportIdModel(reportId)), HttpStatus.OK);
... ... @@ -109,22 +110,22 @@ public class ReportService implements IReportService {
/*
* 操作员删除报告,只能删除该操作员自己创建的报告。
*/
public ResponseEntity<ResultModel> delete(Admin admin, long report_id) {
public ResponseEntity<ResultModel> delete(XklAdminEntity admin, long report_id) {
// 1. 得到report,验证报告存在性
AMPReport report = reportRepository.findById((int) report_id);
XklAmpReportEntity report = reportRepository.findById( report_id);
if (report == null || report.getStatus() == 0) {
// 报告不存在,返回
return new ResponseEntity<>(ResultModel.ok(), HttpStatus.OK);
}
// 2. 验证admin
if (report.getCreate_by() != admin.getId()) {
if (report.getCreateBy() != admin.getId()) {
// 非此admin创建,不能删除,返回
return new ResponseEntity<>(ResultModel.error(ResultStatus.INVALID_ADMIN_RPDEL_ERROR), HttpStatus.NOT_FOUND);
}
// 3. 删除report和detail,返回ok
reportRepository.delete(report);
List<AMPReportDetail> detailList = reportDetailRepository.findByReportId(report.getId());
List<XklAmpReportDetailEntity> detailList = reportDetailRepository.findByReportId(report.getId());
reportDetailRepository.delete(detailList);
return new ResponseEntity<>(ResultModel.ok(), HttpStatus.OK);
}
... ... @@ -137,12 +138,12 @@ public class ReportService implements IReportService {
验证member
获取admin
*/
// 需要程喆增加 title,account,machine_num字段 String; 修改set字段为int,0男,1女。
// 125项目,改为float类型。
// 需要程喆增加 title,account,machine_num字段 String; 修改set字段为int,0男,1女。125项目,改为float类型。
//
private ReportData parseReport(String reportJson, String md5) {
ReportData reportData = new ReportData();
AMPReport ampReport = new AMPReport();
List<AMPReportDetail> detailList = new ArrayList<>();
XklAmpReportEntity ampReport = new XklAmpReportEntity();
List<XklAmpReportDetailEntity> detailList = new ArrayList<>();
int sex;
/*
... ... @@ -156,18 +157,18 @@ public class ReportService implements IReportService {
Timestamp.valueOf(rpJson.getString("report_date")),
new Timestamp(System.currentTimeMillis()),
rpJson.getString("account"),///
rpJson.getInteger("sex").intValue(),///
rpJson.getInteger("age").intValue(),
rpJson.getInteger("sex").byteValue(),///
rpJson.getInteger("age").byteValue(),
rpJson.getInteger("weight").intValue(),
rpJson.getInteger("pulse").intValue(),
rpJson.getInteger("respiratory_rate").intValue(),
rpJson.getFloat("atmospheric_pressure").floatValue(),
rpJson.getFloat("LCA").floatValue(),
rpJson.getFloat("RCA").floatValue(),
rpJson.getFloat("LAC").floatValue(),
rpJson.getFloat("RAC").floatValue(),
rpJson.getFloat("ABD").floatValue(),
rpJson.getFloat("total").floatValue(),
rpJson.getDouble("atmospheric_pressure").doubleValue(),
rpJson.getDouble("LCA").doubleValue(),
rpJson.getDouble("RCA").doubleValue(),
rpJson.getDouble("LAC").doubleValue(),
rpJson.getDouble("RAC").doubleValue(),
rpJson.getDouble("ABD").doubleValue(),
rpJson.getDouble("total").doubleValue(),
rpJson.getInteger("stable").intValue(),
md5, rpJson.getString("machine_num"), rpJson.getString("basic_result"));
/*
... ... @@ -176,7 +177,7 @@ public class ReportService implements IReportService {
JSONObject rpDetails = rpJson.getJSONObject("detail");
for (int item_id = 1; item_id <= 125; item_id++) {
float val = rpDetails.getFloat(String.valueOf(item_id)).floatValue();
AMPReportDetail detail = new AMPReportDetail();
XklAmpReportDetailEntity detail = new XklAmpReportDetailEntity();
detail.setItemValue(val);
detail.setItemId(item_id);
detailList.add(detail);
... ... @@ -193,12 +194,12 @@ public class ReportService implements IReportService {
/*
* 存储报告
*/
private int save2DB(ReportData report, Admin admin, User user) {
report.getAmpReport().setCreate_by((int) admin.getId());
report.getAmpReport().setCompany_id(admin.getCoid());
report.getAmpReport().setMember_id(user.getMemberId());
AMPReport ampReport = reportRepository.save(report.getAmpReport());
for (AMPReportDetail detail : report.getRpDetailList()) {
private long save2DB(ReportData report, XklAdminEntity admin, User user) {
report.getAmpReport().setCreateBy(admin.getId());
report.getAmpReport().setCompanyId((long)admin.getCoid());
report.getAmpReport().setMemberId((long)user.getMemberId());
XklAmpReportEntity ampReport = reportRepository.save(report.getAmpReport());
for (XklAmpReportDetailEntity detail : report.getRpDetailList()) {
detail.setReportId(ampReport.getId());
}
reportDetailRepository.save(report.getRpDetailList());
... ... @@ -208,28 +209,28 @@ public class ReportService implements IReportService {
/*
* 判断detail是正常,高于标准或低于标准。
*/
private void markItemStatus(int sex, List<AMPReportDetail> detailList) {
private void markItemStatus(int sex, List<XklAmpReportDetailEntity> detailList) {
// load ReportMetaItems into memory.
synchronized (this) {
if (rpMetaItemMap.size() == 0) {
Iterator<ReportMetaItem> rpMetaIter = reportMetaItemsRepository.findAll().iterator();
Iterator<XklAmpReportMetaItemsEntity> rpMetaIter = reportMetaItemsRepository.findAll().iterator();
while (rpMetaIter.hasNext()) {
ReportMetaItem rpMetaItem = rpMetaIter.next();
rpMetaItemMap.put(rpMetaItem.getItem_id(), rpMetaItem);
XklAmpReportMetaItemsEntity rpMetaItem = rpMetaIter.next();
rpMetaItemMap.put(rpMetaItem.getItemId(), rpMetaItem);
}
}
}
// mark status
for (AMPReportDetail detail : detailList) {
float lowSt;
float highSt;
for (XklAmpReportDetailEntity detail : detailList) {
double lowSt;
double highSt;
// get standard
if (sex == Constants.MALE) { // male
lowSt = rpMetaItemMap.get(detail.getItemId()).getStandard_low_male();
highSt = rpMetaItemMap.get(detail.getItemId()).getStandard_high_male();
lowSt = rpMetaItemMap.get(detail.getItemId()).getStandardLowMale();
highSt = rpMetaItemMap.get(detail.getItemId()).getStandardHighMale();
} else { // female
lowSt = rpMetaItemMap.get(detail.getItemId()).getStandard_low_female();
highSt = rpMetaItemMap.get(detail.getItemId()).getStandard_high_female();
lowSt = rpMetaItemMap.get(detail.getItemId()).getStandardLowFemale();
highSt = rpMetaItemMap.get(detail.getItemId()).getStandardHighFemale();
}
int status;
if (detail.getItemValue() < lowSt) {
... ...
server.port=8090
#server.ssl.key-store = ${user.home}/.keystore
#server.ssl.key-store-password = xkl2016
#server.ssl.key-password = xkl2016
#MySQL
spring.datasource.url=jdbc:mysql://db.hanhezy.com:4096/hanhe_test?useUnicode=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=round&autoReconnect=true
spring.datasource.username=hanhe
spring.datasource.password=HANhetest2016
#Redis
spring.redis.host=127.0.0.1
#spring.redis.password=foobared
#spring.redis.host=r-m5e7cedd3124afd4.redis.rds.aliyuncs.com
#spring.redis.password=r-m5e7cedd3124afd4:XIkaiLURedis2016
spring.redis.port=6379
... ...