Browse Source

update

tags/v0
zhaohe 1 year ago
parent
commit
4101dd8904
  1. 81
      src/main/java/a8k/appbase/appret/AppRet.java
  2. 8
      src/main/java/a8k/appbase/appret/AppRetType.java
  3. 23
      src/main/java/a8k/appbase/ecode/AppRetEcodeInfo.java
  4. 2
      src/main/java/a8k/controler/A8kExceptionProcesser.java
  5. 2
      src/main/java/a8k/controler/engineer/EngineerPageControler.java
  6. 29
      src/main/java/a8k/db/AppUser.java
  7. 51
      src/main/java/a8k/db/MdbUser.java
  8. 2
      src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java
  9. 2
      src/main/java/a8k/service/hardware/CommonHardwareOpeartion.java
  10. 2
      src/main/java/a8k/service/hardware/HbotControlService.java
  11. 2
      src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java
  12. 2
      src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java
  13. 2
      src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java
  14. 2
      src/main/java/a8k/service/hardware/TestScript.java
  15. 5
      src/main/java/a8k/service/hardware/canbus/protocol/A8kEcode.java
  16. 8
      src/main/java/a8k/service/state_service/A8kStateMgrService.java
  17. 59
      src/main/java/a8k/service/usermgr/UserMgrService.java
  18. BIN
      zhaohe_app.db

81
src/main/java/a8k/appbase/ecode/AppRet.java → src/main/java/a8k/appbase/appret/AppRet.java

@ -1,5 +1,6 @@
package a8k.appbase.ecode;
package a8k.appbase.appret;
import a8k.appbase.ecode.AppRetEcodeInfo;
import a8k.service.hardware.canbus.protocol.CmdId;
import a8k.service.hardware.canbus.protocol.MId;
import a8k.service.hardware.canbus.protocol.A8kEcode;
@ -7,20 +8,27 @@ import a8k.appbase.HardwareException;
public class AppRet<T> {
boolean success = false;
AppRetEcodeInfo ecode;
String dataType;
T data;
long timestamp;//接口请求时间
String traceInfo;
String message;
AppRetType appRetType = AppRetType.NORMAL;
//错误信息
AppRetEcodeInfo ecode = null;
String traceInfo = null;
//携带的对象
String dataType;
T data;
//显示给用户的内容
String message = null;
long timestamp;//接口请求时间
public AppRet() {
this.timestamp = System.currentTimeMillis();
}
public boolean isSuccess() {
return success;
return !AppRetType.FAILURE.equals(appRetType);
}
public long getTimestamp() {
@ -47,60 +55,70 @@ public class AppRet<T> {
return dataType;
}
public static <T> AppRet<T> message(String message) {
AppRet<T> r = new AppRet<>();
r.appRetType = AppRetType.MESSAGE;
r.message = message;
return r;
}
public static <T> AppRet<T> reconfirm(String message) {
AppRet<T> r = new AppRet<>();
r.appRetType = AppRetType.RECONFIRM;
r.message = message;
return r;
}
public static <T> AppRet<T> success(T data) {
AppRet<T> r = new AppRet<>();
r.success = true;
r.ecode = null;
r.data = data;
r.dataType = null == data ? null : data.getClass().getSimpleName();
r.data = data;
r.appRetType = AppRetType.NORMAL;
r.dataType = null == data ? null : data.getClass().getSimpleName();
return r;
}
public static <T> AppRet<T> success() {
AppRet<T> r = new AppRet<>();
r.success = true;
r.ecode = null;
r.data = null;
r.appRetType = AppRetType.NORMAL;
return r;
}
public static <T> AppRet<T> fail(A8kEcode errorCode, MId mid, CmdId cmd) {
AppRet<T> r = new AppRet<>();
r.success = false;
r.ecode = new AppRetEcodeInfo(errorCode, mid, cmd);
r.data = null;
r.message = r.ecode.toDisPlayString();
r.appRetType = AppRetType.FAILURE;
r.ecode = new AppRetEcodeInfo(errorCode, mid, cmd);
r.message = r.ecode.toDisPlayString();
return r;
}
public static <T> AppRet<T> fail(A8kEcode errorCode, MId mid) {
AppRet<T> r = new AppRet<>();
r.success = false;
r.appRetType = AppRetType.FAILURE;
r.ecode = new AppRetEcodeInfo(errorCode, mid, null);
r.data = null;
r.message = r.ecode.toDisPlayString();
return r;
}
public static <T> AppRet<T> fail(A8kEcode errorCode) {
AppRet<T> r = new AppRet<>();
r.success = false;
r.appRetType = AppRetType.FAILURE;
r.ecode = new AppRetEcodeInfo(errorCode, null, null);
r.data = null;
r.message = r.ecode.toDisPlayString();
return r;
}
public static <T> AppRet<T> fail(AppRet<Object> ret) {
AppRet<T> r = new AppRet<>();
r.success = false;
r.appRetType = AppRetType.FAILURE;
r.ecode = new AppRetEcodeInfo(ret.getEcode().errorCode, ret.getEcode().mid, ret.getEcode().cmd);
r.data = null;
r.message = r.ecode.toDisPlayString();
return r;
}
@ -111,17 +129,14 @@ public class AppRet<T> {
}
String trace = traceSb.toString();
AppRet<T> r = new AppRet<>();
r.appRetType = AppRetType.FAILURE;
if (e instanceof HardwareException hexcep) {
r.success = false;
r.ecode = new AppRetEcodeInfo(hexcep.getErrorCode(), hexcep.getModuleId(), hexcep.getCmdId());
r.data = null;
r.traceInfo = r.ecode.toDisPlayString()+hexcep.getExtMessage();
r.message = r.ecode.toDisPlayString()+hexcep.getExtMessage();
r.traceInfo = r.ecode.toDisPlayString() + hexcep.getExtMessage();
r.message = r.ecode.toDisPlayString() + hexcep.getExtMessage();
} else {
r.success = false;
r.ecode = new AppRetEcodeInfo(A8kEcode.CodeException, null, null);
r.data = null;
r.traceInfo = trace;
r.message = e.getMessage();
}

8
src/main/java/a8k/appbase/appret/AppRetType.java

@ -0,0 +1,8 @@
package a8k.appbase.appret;
public enum AppRetType {
NORMAL,
FAILURE,
RECONFIRM,
MESSAGE,
}

23
src/main/java/a8k/appbase/ecode/AppRetEcodeInfo.java

@ -5,11 +5,11 @@ import a8k.service.hardware.canbus.protocol.CmdId;
import a8k.service.hardware.canbus.protocol.MId;
public class AppRetEcodeInfo {
A8kEcode errorCode;
MId mid;
CmdId cmd;
public A8kEcode errorCode;
public MId mid;
public CmdId cmd;
AppRetEcodeInfo(A8kEcode errorCode, MId mid, CmdId cmd) {
public AppRetEcodeInfo(A8kEcode errorCode, MId mid, CmdId cmd) {
this.errorCode = errorCode;
this.mid = mid;
this.cmd = cmd;
@ -76,15 +76,14 @@ public class AppRetEcodeInfo {
}
public String toDisPlayString() {
if (errorCode != null && mid != null && cmd != null) {
// return String.format("ECode:%s, MID:%s, CMD:%s", errorCode, mid, cmd);
return String.format("[%s]执行[%s]出现[]错误", mid, cmd, errorCode);
} else if (errorCode != null && mid != null) {
return String.format("捕获到模块[%s]的[%s]错误", mid, errorCode);
} else if (errorCode != null) {
return String.format("捕获到[%s]错误", errorCode);
if (mid == null && cmd == null) {
return String.format("%s", errorCode.chname);
} else if (mid == null) {
return String.format("捕获到执行[%s]出现[%s]错误", cmd.chName, errorCode.chname);
} else if (cmd == null) {
return String.format("捕获到模块[%s]的[%s]错误", mid.chname, errorCode.chname);
} else {
return String.format("[%s]执行[%s]出现[]错误", mid, cmd, errorCode);
return String.format("捕获到模块[%s]执行[%s]出现[%s]错误", mid.chname, cmd.chName, errorCode.chname);
}
}
}

2
src/main/java/a8k/controler/A8kExceptionProcesser.java

@ -1,6 +1,6 @@
package a8k.controler;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;

2
src/main/java/a8k/controler/engineer/EngineerPageControler.java

@ -1,5 +1,5 @@
package a8k.controler.engineer;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.controler.engineer.utils.*;
import a8k.db.HardwareServiceSetting;
import a8k.utils.*;

29
src/main/java/a8k/db/AppUser.java

@ -0,0 +1,29 @@
package a8k.db;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iflytop.uf.UfActiveRecord;
import com.iflytop.uf.UfActiveRecordField;
public class AppUser extends UfActiveRecord {
@UfActiveRecordField
public String account;
@JsonIgnore
@UfActiveRecordField
public String password;
@UfActiveRecordField
public Integer isAdmin;
// get table name
public static String getTableName() {
return "AppUser" + "Table";
}
// check if password matches
public Boolean matchPassword(String password) {
return this.password.equals(password);
}
}

51
src/main/java/a8k/db/MdbUser.java

@ -1,51 +0,0 @@
package a8k.db;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iflytop.uf.UfActiveRecord;
import com.iflytop.uf.UfActiveRecordField;
import org.springframework.util.DigestUtils;
public class MdbUser extends UfActiveRecord {
@UfActiveRecordField
public String account;
@JsonIgnore
@UfActiveRecordField
public String password;
@JsonIgnore
@UfActiveRecordField
public String salt;
@UfActiveRecordField
public Integer isAdmin;
@UfActiveRecordField
public Integer createdAt;
@UfActiveRecordField
public String createdBy;
@JsonIgnore
@UfActiveRecordField
public String accessToken;
@JsonIgnore
@UfActiveRecordField
public Integer accessTokenExpiredAt;
// get table name
public static String getTableName() {
return "app_users";
}
// check if password matches
public Boolean matchPassword(String password) {
String hash = this.hashPassword(password);
return this.password.equals(hash);
}
// hash password
public String hashPassword(String password) {
String salt = this.salt;
return DigestUtils.md5DigestAsHex((salt + password + salt).getBytes());
}
}

2
src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java

@ -4,7 +4,7 @@ import a8k.service.hardware.canbus.protocol.A8kEcode;
import a8k.service.hardware.canbus.protocol.IOId;
import a8k.service.hardware.canbus.protocol.MId;
import a8k.appbase.HardwareException;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.service.hardware.canbus.A8kCanBusService;
import a8k.service.hardware.CommonHardwareOpeartion;
import a8k.service.hardware.SamplesPreProcessModuleCtrlService;

2
src/main/java/a8k/service/hardware/CommonHardwareOpeartion.java

@ -2,7 +2,7 @@ package a8k.service.hardware;
import a8k.service.hardware.canbus.protocol.MId;
import a8k.appbase.HardwareException;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.service.hardware.canbus.A8kCanBusService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Controller;

2
src/main/java/a8k/service/hardware/HbotControlService.java

@ -3,7 +3,7 @@ package a8k.service.hardware;
import a8k.appbase.ConsumableGroup;
import a8k.appbase.HardwareException;
import a8k.appbase.cfg.*;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.controler.engineer.utils.*;
import a8k.service.hardware.canbus.A8kCanBusService;
import a8k.service.hardware.canbus.protocol.A8kEcode;

2
src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java

@ -4,7 +4,7 @@ import a8k.appbase.TargetPosMeasureDirection;
import a8k.controler.engineer.utils.*;
import a8k.service.hardware.canbus.protocol.*;
import a8k.appbase.HardwareException;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.service.hardware.canbus.A8kCanBusService;
import jakarta.annotation.Resource;
import org.slf4j.Logger;

2
src/main/java/a8k/service/hardware/ReactionPlatesTransmitCtrlService.java

@ -6,7 +6,7 @@ import a8k.controler.engineer.utils.*;
import a8k.service.hardware.canbus.protocol.A8kEcode;
import a8k.service.hardware.canbus.protocol.IOId;
import a8k.service.hardware.canbus.protocol.MId;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.service.hardware.canbus.A8kCanBusService;
import a8k.service.hardware.canbus.protocol.RegIndex;
import a8k.algo.opt_algo.A8kOptAlgo;

2
src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java

@ -5,7 +5,7 @@ import a8k.service.hardware.canbus.protocol.A8kEcode;
import a8k.service.hardware.canbus.protocol.MId;
import a8k.appbase.A8kTubeType;
import a8k.appbase.HardwareException;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.service.hardware.canbus.A8kCanBusService;
import jakarta.annotation.Resource;
import org.slf4j.Logger;

2
src/main/java/a8k/service/hardware/TestScript.java

@ -3,7 +3,7 @@ package a8k.service.hardware;
import a8k.appbase.ConsumableGroup;
import a8k.appbase.HardwareException;
import a8k.appbase.cfg.*;
import a8k.appbase.ecode.AppRet;
import a8k.appbase.appret.AppRet;
import a8k.service.hardware.canbus.A8kCanBusService;
import a8k.service.hardware.canbus.protocol.A8kEcode;
import a8k.service.hardware.canbus.protocol.MId;

5
src/main/java/a8k/service/hardware/canbus/protocol/A8kEcode.java

@ -8,7 +8,6 @@ public enum A8kEcode {
TubeNotHasHat(1, "全血试管未盖帽"), //
SampleLiquidLevelWasNotDetected(2, "取样时未探测到液面"),//
LargeBufferNotEnough(3, "大瓶缓冲液不足"), //
PasswdError(4, "密码错误"), //
UserDoesNotExist(5, "用户不存在"), //
GripperMPosError(6, "抓手舵机位置异常"), //
GripperZMPosError(8, "抓手升降电机位置异常"), //
@ -33,6 +32,10 @@ public enum A8kEcode {
TakeTipFail(27, "取Tip失败"),//
PutTipFail(28, "放Tip失败"),//
PasswdError(100, "密码错误"), //
UsrNotExitError(101, "用户不存在"), //
//
// FOR HARDWARE
//

8
src/main/java/a8k/service/state_service/A8kStateMgrService.java

@ -31,10 +31,10 @@ public class A8kStateMgrService {
@PostConstruct
public void init() {
var list = UfActiveRecord.find(A8kStateDB.class);
if (list.isEmpty()) {
updateA8kState(new A8kState());
}
// var list = UfActiveRecord.find(A8kStateDB.class);
// if (list.isEmpty()) {
// updateA8kState(new A8kState());
// }
}
//

59
src/main/java/a8k/service/usermgr/UserMgrService.java

@ -0,0 +1,59 @@
package a8k.service.usermgr;
import a8k.appbase.appret.AppRet;
import a8k.db.AppUser;
import a8k.service.hardware.canbus.protocol.A8kEcode;
import com.iflytop.uf.UfActiveRecord;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
public class UserMgrService {
static Logger logger = org.slf4j.LoggerFactory.getLogger(UserMgrService.class);
AppUser loginUsr;
@PostConstruct
public void init() {
logger.info("UserMgrService init");
}
List<AppUser> getUserList() {
return UfActiveRecord.find(AppUser.class);
}
AppUser getUser(String account) {
return UfActiveRecord.findOne(AppUser.class, Map.of("account", account));
}
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// EXTFUNC
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public AppRet<AppUser> login(String account, String password) {
var user = getUser(account);
if (user == null) {
return AppRet.fail(A8kEcode.UsrNotExitError);
}
if (!user.matchPassword(password)) {
return AppRet.fail(A8kEcode.PasswdError);
}
loginUsr = user;
return AppRet.success(user);
}
public AppRet<AppUser> getLoginUsr() {
return AppRet.success(loginUsr);
}
public AppRet<List<AppUser>> loginList() {
return AppRet.success(getUserList());
}
}

BIN
zhaohe_app.db

Loading…
Cancel
Save