From f31660b01b79e6e1ab6521529bd6f41adba1a4e9 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Mon, 6 Dec 2021 18:00:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=92=E5=B1=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yanyuan/api/TrainBelongController.java | 57 +++++ .../yanyuan/api/TrainPlanController.java | 12 +- .../ccsens/yanyuan/api/TraineeController.java | 12 + .../yanyuan/bean/dto/TrainBelongDto.java | 40 ++++ .../ccsens/yanyuan/bean/dto/TrainPlanDto.java | 10 + .../bean/dto/message/TalkingPenDto.java | 138 +++++++++++ .../yanyuan/bean/po/TrainProcessCard.java | 11 + .../bean/po/TrainProcessCardExample.java | 60 +++++ .../com/ccsens/yanyuan/bean/vo/ToolVo.java | 4 +- .../ccsens/yanyuan/bean/vo/TrainBelongVo.java | 69 ++++++ .../yanyuan/bean/vo/TrainContentVo.java | 15 +- .../ccsens/yanyuan/bean/vo/TrainPlanVo.java | 18 +- .../com/ccsens/yanyuan/config/BeanConfig.java | 4 + .../ccsens/yanyuan/mq/TalkingPenReceive.java | 221 ++++++++++++++++++ .../yanyuan/persist/dao/TrainCardDao.java | 11 +- .../persist/dao/TrainProcessCardDao.java | 18 ++ .../yanyuan/persist/dao/TrainRecordDao.java | 10 + .../yanyuan/persist/dao/UserRelationDao.java | 8 + .../yanyuan/service/ITrainBelongService.java | 28 +++ .../yanyuan/service/ITrainPlanService.java | 11 + .../yanyuan/service/ITraineeService.java | 7 + .../yanyuan/service/TrainBelongService.java | 103 ++++++++ .../yanyuan/service/TrainPlanService.java | 15 ++ .../yanyuan/service/TraineeService.java | 5 + .../ccsens/yanyuan/util/YanYuanConstant.java | 13 ++ src/main/resources/mapper_dao/ToolDao.xml | 1 - .../resources/mapper_dao/TrainCardDao.xml | 84 ++++++- .../mapper_dao/TrainProcessCardDao.xml | 30 +++ .../resources/mapper_dao/TrainRecordDao.xml | 22 ++ .../resources/mapper_dao/UserRelationDao.xml | 17 ++ .../mapper_raw/TrainProcessCardMapper.xml | 31 ++- src/main/resources/mbg.xml | 2 +- 32 files changed, 1066 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/ccsens/yanyuan/api/TrainBelongController.java create mode 100644 src/main/java/com/ccsens/yanyuan/bean/dto/TrainBelongDto.java create mode 100644 src/main/java/com/ccsens/yanyuan/bean/dto/message/TalkingPenDto.java create mode 100644 src/main/java/com/ccsens/yanyuan/bean/vo/TrainBelongVo.java create mode 100644 src/main/java/com/ccsens/yanyuan/mq/TalkingPenReceive.java create mode 100644 src/main/java/com/ccsens/yanyuan/persist/dao/TrainProcessCardDao.java create mode 100644 src/main/java/com/ccsens/yanyuan/service/ITrainBelongService.java create mode 100644 src/main/java/com/ccsens/yanyuan/service/TrainBelongService.java create mode 100644 src/main/resources/mapper_dao/TrainProcessCardDao.xml diff --git a/src/main/java/com/ccsens/yanyuan/api/TrainBelongController.java b/src/main/java/com/ccsens/yanyuan/api/TrainBelongController.java new file mode 100644 index 0000000..5fd9f6b --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/api/TrainBelongController.java @@ -0,0 +1,57 @@ +package com.ccsens.yanyuan.api; + +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import com.ccsens.yanyuan.bean.dto.TrainBelongDto; +import com.ccsens.yanyuan.bean.vo.TrainBelongVo; +import com.ccsens.yanyuan.service.ITrainBelongService; +import com.ccsens.yanyuan.util.YanYuanCodeError; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @description: + * @author: whj + * @time: 2021/12/6 9:29 + */ +@Api(tags = "训练归属" ) +@Slf4j +@RestController +@RequestMapping("/trainBelong") +public class TrainBelongController { + + @Resource + private ITrainBelongService trainBelongService; + + @MustLogin + @ApiOperation(value = "查询无主的训练过程", notes = "查询无主的训练过程") + @RequestMapping(value = "/queryUnknown", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryUnknown(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查询无主的训练过程:{}",params); + PageInfo contents = trainBelongService.queryUnknown(params.getParam(), params.getUserId()); + log.info("查询无主的训练过程结束{}", contents); + return JsonResponse.newInstance().ok(contents); + } + + @MustLogin + @ApiOperation(value = "选择老人", notes = "选择老人") + @RequestMapping(value = "/chooseRecord", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse chooseRecord(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("选择老人:{}",params); + YanYuanCodeError.Code code = trainBelongService.chooseRecord(params.getParam(), params.getUserId()); + log.info("选择老人结束{}"); + return JsonResponse.newInstance().ok(code); + } + +} diff --git a/src/main/java/com/ccsens/yanyuan/api/TrainPlanController.java b/src/main/java/com/ccsens/yanyuan/api/TrainPlanController.java index a524975..8d5a37c 100644 --- a/src/main/java/com/ccsens/yanyuan/api/TrainPlanController.java +++ b/src/main/java/com/ccsens/yanyuan/api/TrainPlanController.java @@ -5,11 +5,8 @@ import com.ccsens.util.CodeError; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; import com.ccsens.yanyuan.bean.dto.TrainPlanDto; -import com.ccsens.yanyuan.bean.dto.TraineeDto; -import com.ccsens.yanyuan.bean.vo.QuestionVo; import com.ccsens.yanyuan.bean.vo.TaskVo; import com.ccsens.yanyuan.bean.vo.TrainPlanVo; -import com.ccsens.yanyuan.bean.vo.TraineeVo; import com.ccsens.yanyuan.service.ITrainPlanService; import com.ccsens.yanyuan.util.YanYuanCodeError; import io.swagger.annotations.Api; @@ -67,4 +64,13 @@ public class TrainPlanController { log.info("修改训练结果结束:{}",code); return JsonResponse.newInstance().ok(code); } + + @ApiOperation(value = "查询指定日期前后一周的训练计划", notes = "查询指定日期前后一周的训练计划") + @RequestMapping(value = "/queryRecent", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryRecent(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查询指定日期前后一周的训练计划:{}",params); + List list = trainPlanService.queryRecent(params.getParam(), params.getUserId()); + log.info("查询指定日期前后一周的训练计划结束:{}",list); + return JsonResponse.newInstance().ok(list); + } } diff --git a/src/main/java/com/ccsens/yanyuan/api/TraineeController.java b/src/main/java/com/ccsens/yanyuan/api/TraineeController.java index bd1b6ee..cb04538 100644 --- a/src/main/java/com/ccsens/yanyuan/api/TraineeController.java +++ b/src/main/java/com/ccsens/yanyuan/api/TraineeController.java @@ -104,4 +104,16 @@ public class TraineeController { log.info("查询用户信息结束: {}",userInfo); return JsonResponse.newInstance().ok(userInfo); } + + @MustLogin + @ApiOperation(value = "查询所有关联的用户信息", notes = "查询所有关联的用户信息") + @RequestMapping(value = "/queryRelation", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse queryRelation(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查询所有关联的用户信息:{}",params); + List userInfo = traineeService.queryRelation(params.getUserId()); + log.info("查询所有关联的用户信息结束: {}",userInfo); + return JsonResponse.newInstance().ok(userInfo); + } + + } diff --git a/src/main/java/com/ccsens/yanyuan/bean/dto/TrainBelongDto.java b/src/main/java/com/ccsens/yanyuan/bean/dto/TrainBelongDto.java new file mode 100644 index 0000000..7e7d3e3 --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/bean/dto/TrainBelongDto.java @@ -0,0 +1,40 @@ +package com.ccsens.yanyuan.bean.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +/** + * @description: + * @author: whj + * @time: 2021/12/6 9:50 + */ +public class TrainBelongDto { + + @Data + @ApiModel("查询无主训练-请求") + public static class QueryUnknown{ + @ApiModelProperty("页码") + private Integer pageNum = 1; + @ApiModelProperty("分页大小") + private Integer pageSize = 10; + } + @Data + @ApiModel("选择老人-请求") + public static class ChooseTrainee { + @NotNull + @ApiModelProperty("训练结果id") + private Long trainRecordId; + @Min(0) + @Max(1) + @ApiModelProperty("训练结果类型0:训练结果 1:过程记录") + private byte resultType; + @NotNull + @ApiModelProperty("训练计划ID") + private Long recordId; + } +} diff --git a/src/main/java/com/ccsens/yanyuan/bean/dto/TrainPlanDto.java b/src/main/java/com/ccsens/yanyuan/bean/dto/TrainPlanDto.java index 7adfaab..3ac71c3 100644 --- a/src/main/java/com/ccsens/yanyuan/bean/dto/TrainPlanDto.java +++ b/src/main/java/com/ccsens/yanyuan/bean/dto/TrainPlanDto.java @@ -42,4 +42,14 @@ public class TrainPlanDto { @ApiModelProperty("完成状态") private BigDecimal finishResult; } + @Data + @ApiModel("修改训练结果-请求") + public static class QueryRecent { + @NotNull + @ApiModelProperty("使用者userID") + private Long keyUserId; + @NotNull + @ApiModelProperty("查询时间") + private Long time; + } } diff --git a/src/main/java/com/ccsens/yanyuan/bean/dto/message/TalkingPenDto.java b/src/main/java/com/ccsens/yanyuan/bean/dto/message/TalkingPenDto.java new file mode 100644 index 0000000..b3c057c --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/bean/dto/message/TalkingPenDto.java @@ -0,0 +1,138 @@ +package com.ccsens.yanyuan.bean.dto.message; + +import lombok.Data; + +/** + * @author 逗 + */ +@Data +public class TalkingPenDto { + /** + * 点读笔编号 + */ + private String authId; + /** + * 类型 + */ + private Byte type; + /** + * 寄存器地址 + */ + private int addr; + /** + * 类型对应的值, + */ + private Long value; + /** + * 时间 + */ + private Long time; + + public Byte getType(){ + if(this.type != null){ + return type; + } + switch (addr){ + case Addr.STATUS: + return Type.STATUS; + case Addr.WIFI: + return Type.WIFI; + case Addr.ELECTRIC: + return Type.ELECTRIC; + case Addr.QUESTION: + return Type.QUESTION; + case Addr.INDEX_1: + case Addr.INDEX_2: + return Type.INDEX; + case Addr.PACKAGE: + return Type.PACKAGE; + case Addr.FRAME: + return Type.FRAME; + default: + return Type.PROCESS; + } + } + + public static class Type { + /** + * 点读笔状态 + */ + public static final byte STATUS = 0; + /** + * 联网状态 + */ + public static final byte WIFI = 1; + /** + * 电池电量 + */ + public static final byte ELECTRIC = 2; + /** + * 题目查询 + */ + public static final byte QUESTION = 3; + /** + * 序号/结果通知(oid3普通码) + */ + public static final byte INDEX = 4; + /** + * 包序号 + */ + public static final byte PACKAGE = 5; + /** + * 帧序号 + */ + public static final byte FRAME = 6; + /** + * 过程 + */ + public static final byte PROCESS = 7; + + } + + public static class Addr{ + /** + * 点读笔状态 + */ + public static final int STATUS = 0; + /** + * 联网状态 + */ + public static final int WIFI = 1; + /** + * 电池电量 + */ + public static final int ELECTRIC = 2; + /** + * 题目 + */ + public static final int QUESTION = 3; + /** + * 语音(仅服务端通知点读笔,无点读笔通知服务端) + */ + public static final int VOICE = 4; + /** + * 序号通知1 + */ + public static final int INDEX_1 = 5; + /** + * 序号通知2 + */ + public static final int INDEX_2 = 6; + /** + * 包序号 + */ + public static final int PACKAGE = 7; + /** + * 帧序号 + */ + public static final int FRAME = 8; + /** + * 过程起始坐标时间 + */ + public static final int PROCESS_START = 9; + /** + * 过程一组寄存器数量 + */ + public static final int PROCESS_NUM = 6; + } +} diff --git a/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCard.java b/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCard.java index 23a0e24..d11ddf2 100644 --- a/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCard.java +++ b/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCard.java @@ -8,6 +8,8 @@ public class TrainProcessCard implements Serializable { private Long cardId; + private Long operateTime; + private Long operator; private Date createdAt; @@ -36,6 +38,14 @@ public class TrainProcessCard implements Serializable { this.cardId = cardId; } + public Long getOperateTime() { + return operateTime; + } + + public void setOperateTime(Long operateTime) { + this.operateTime = operateTime; + } + public Long getOperator() { return operator; } @@ -84,6 +94,7 @@ public class TrainProcessCard implements Serializable { sb.append("Hash = ").append(hashCode()); sb.append(", id=").append(id); sb.append(", cardId=").append(cardId); + sb.append(", operateTime=").append(operateTime); sb.append(", operator=").append(operator); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); diff --git a/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCardExample.java b/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCardExample.java index 2303f74..069dceb 100644 --- a/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCardExample.java +++ b/src/main/java/com/ccsens/yanyuan/bean/po/TrainProcessCardExample.java @@ -225,6 +225,66 @@ public class TrainProcessCardExample { return (Criteria) this; } + public Criteria andOperateTimeIsNull() { + addCriterion("operate_time is null"); + return (Criteria) this; + } + + public Criteria andOperateTimeIsNotNull() { + addCriterion("operate_time is not null"); + return (Criteria) this; + } + + public Criteria andOperateTimeEqualTo(Long value) { + addCriterion("operate_time =", value, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeNotEqualTo(Long value) { + addCriterion("operate_time <>", value, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeGreaterThan(Long value) { + addCriterion("operate_time >", value, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("operate_time >=", value, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeLessThan(Long value) { + addCriterion("operate_time <", value, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeLessThanOrEqualTo(Long value) { + addCriterion("operate_time <=", value, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeIn(List values) { + addCriterion("operate_time in", values, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeNotIn(List values) { + addCriterion("operate_time not in", values, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeBetween(Long value1, Long value2) { + addCriterion("operate_time between", value1, value2, "operateTime"); + return (Criteria) this; + } + + public Criteria andOperateTimeNotBetween(Long value1, Long value2) { + addCriterion("operate_time not between", value1, value2, "operateTime"); + return (Criteria) this; + } + public Criteria andOperatorIsNull() { addCriterion("operator is null"); return (Criteria) this; diff --git a/src/main/java/com/ccsens/yanyuan/bean/vo/ToolVo.java b/src/main/java/com/ccsens/yanyuan/bean/vo/ToolVo.java index 9409924..1696892 100644 --- a/src/main/java/com/ccsens/yanyuan/bean/vo/ToolVo.java +++ b/src/main/java/com/ccsens/yanyuan/bean/vo/ToolVo.java @@ -56,8 +56,8 @@ public class ToolVo { private Long equipmentId; @ApiModelProperty("工具箱码") private String code; - @ApiModelProperty("wifi名称") - private String wifiName; +// @ApiModelProperty("wifi名称") +// private String wifiName; @ApiModelProperty("wifi状态(0未设置,1wifi未连接,2wifi已连接)") private Byte wifiStatus; @ApiModelProperty("电量") diff --git a/src/main/java/com/ccsens/yanyuan/bean/vo/TrainBelongVo.java b/src/main/java/com/ccsens/yanyuan/bean/vo/TrainBelongVo.java new file mode 100644 index 0000000..27bc5f8 --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/bean/vo/TrainBelongVo.java @@ -0,0 +1,69 @@ +package com.ccsens.yanyuan.bean.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2021/12/6 9:49 + */ +public class TrainBelongVo { + + @Data + @ApiModel("无主训练内容-返回") + public static class Content{ + @ApiModelProperty("结果id") + private Long trainRecordId; + @ApiModelProperty("训练结果类型0:训练结果 1:过程记录") + private byte resultType; + @ApiModelProperty("操作时间") + private Date createTime; + @ApiModelProperty("点读笔ID") + private Long equipmentId; + @ApiModelProperty("工具箱ID") + private Long toolId; + @ApiModelProperty("工具箱码") + private String toolCode; + // 结果 + @ApiModelProperty("训练结果 0:非常困难 1:略有困难 2:轻松完成") + private BigDecimal finishResult; + @ApiModelProperty("训练完成时间 单位:秒") + private Long finishTime; + // 记录 + @ApiModelProperty("卡片ID") + private Long assistId; + @ApiModelProperty("卡片类型 0:迷宫 1:找不同") + private byte cardType; + @ApiModelProperty("卡片路径") + private String cardUrl; + @ApiModelProperty("过程记录") + private List lines; + + } + + @Data + @ApiModel("记录点") + public static class Line{ + @ApiModelProperty("线中有多个点,不同点之间使用;分割,点信息:x,y,time") + private String line; + @ApiModelProperty("操作时间") + private Long operateTime; + } + + @Data + @ApiModel("记录和线条") + public static class RecordLine{ + @ApiModelProperty("结果id") + private Long trainRecordId; + @ApiModelProperty("记录") + private List lines; + } +} diff --git a/src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java b/src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java index e6bc916..058a1ed 100644 --- a/src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java +++ b/src/main/java/com/ccsens/yanyuan/bean/vo/TrainContentVo.java @@ -3,6 +3,7 @@ package com.ccsens.yanyuan.bean.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -76,6 +77,7 @@ public class TrainContentVo { @ApiModelProperty("时间") private Date createdAt; } + @EqualsAndHashCode(callSuper = true) @Data @ApiModel("训练结果") public static class TrainResult extends TrainRecord { @@ -84,6 +86,7 @@ public class TrainContentVo { @ApiModelProperty("训练完成时间 单位:秒") private Long finishTime; } + @EqualsAndHashCode(callSuper = true) @Data @ApiModel("训练过程") public static class TrainCard extends TrainRecord { @@ -97,10 +100,18 @@ public class TrainContentVo { private Long assistId; @ApiModelProperty("卡片路径") private String cardUrl; - @ApiModelProperty("过程记录,其中,一条数据为一条线,线中有多个点,不同点之间使用;分割,点信息:x,y,time") - private List lines; + @ApiModelProperty("过程记录") + private List lines; } + @Data + @ApiModel("线条") + public static class Line{ + @ApiModelProperty("线中有多个点,不同点之间使用;分割,点信息:x,y,time") + private String line; + @ApiModelProperty("操作时间") + private Long operateTime; + } @Data @ApiModel("训练的详细内容") diff --git a/src/main/java/com/ccsens/yanyuan/bean/vo/TrainPlanVo.java b/src/main/java/com/ccsens/yanyuan/bean/vo/TrainPlanVo.java index 4620ad6..29d5bc3 100644 --- a/src/main/java/com/ccsens/yanyuan/bean/vo/TrainPlanVo.java +++ b/src/main/java/com/ccsens/yanyuan/bean/vo/TrainPlanVo.java @@ -1,11 +1,27 @@ package com.ccsens.yanyuan.bean.vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + /** * @description: * @author: whj * @time: 2021/11/18 9:01 */ public class TrainPlanVo { - public static class Detail { + + + @Data + @ApiModel("简单训练计划-返回") + public static class Simple { + @ApiModelProperty("训练计划ID") + private Long recordId; + @ApiModelProperty("训练题目") + private String content; + @ApiModelProperty("训练等级 训练内容是几星级") + private byte level; + @ApiModelProperty("训练计划时间") + private Long startTime; } } diff --git a/src/main/java/com/ccsens/yanyuan/config/BeanConfig.java b/src/main/java/com/ccsens/yanyuan/config/BeanConfig.java index 8c4b85a..8cb1694 100644 --- a/src/main/java/com/ccsens/yanyuan/config/BeanConfig.java +++ b/src/main/java/com/ccsens/yanyuan/config/BeanConfig.java @@ -31,4 +31,8 @@ public class BeanConfig { public Queue queueMentalTestAll(){ return new Queue(YanYuanConstant.Mq.MENTAL_TEST_ALL); } + @Bean + public Queue talkingPen(){ + return new Queue(YanYuanConstant.Mq.TALKING_PEN); + } } diff --git a/src/main/java/com/ccsens/yanyuan/mq/TalkingPenReceive.java b/src/main/java/com/ccsens/yanyuan/mq/TalkingPenReceive.java new file mode 100644 index 0000000..dc90405 --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/mq/TalkingPenReceive.java @@ -0,0 +1,221 @@ +package com.ccsens.yanyuan.mq; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.ccsens.util.bean.message.common.OutMessage; +import com.ccsens.util.bean.message.common.OutMessageSet; +import com.ccsens.yanyuan.bean.dto.message.TalkingPenDto; +import com.ccsens.yanyuan.bean.vo.TraineeVo; +import com.ccsens.yanyuan.persist.mapper.TrainEquipmentMapper; +import com.ccsens.yanyuan.util.YanYuanConstant; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @description: + * @author: whj + * @time: 2021/12/2 10:38 + */ +@Slf4j +@Component +@RabbitListener(queues = YanYuanConstant.Mq.TALKING_PEN) +public class TalkingPenReceive { + + @Resource + private TrainEquipmentMapper trainEquipmentMapper; + + @RabbitHandler + public void process(String messageJson){ + log.info("接收到消息系统点读笔相关的消息:{}", messageJson); + OutMessageSet outMessageSet = JSONObject.parseObject(messageJson, OutMessageSet.class); + if (ObjectUtil.isNull(outMessageSet)) { + return; + } + Set messageSet = outMessageSet.getMessageSet(); + if (CollectionUtil.isEmpty(messageSet)) { + return; + } + // 计算并分类 + Map> messageMap = dealMessage(messageSet); + + // 根据类型处理数据 + for (Byte type: messageMap.keySet()) { + switch (type) { + case TalkingPenDto.Type.STATUS: + dealStatus(messageMap.get(type).get(0)); + break; + case TalkingPenDto.Type.WIFI: + dealWifi(messageMap.get(type).get(0)); + break; + case TalkingPenDto.Type.ELECTRIC: + dealElectric(messageMap.get(type).get(0)); + break; + case TalkingPenDto.Type.QUESTION: + dealQuestion(messageMap.get(type).get(0)); + break; + default: + break; + } + } + // 处理过程通知 + + + log.info("点读笔消息处理完成"); + } + + /** + * 处理查询试题 + * @param talkingPen 试题 + */ + private void dealQuestion(TalkingPenDto talkingPen) { + // 查找使用者 + + + + } + + /** + * 处理电量状态 + * @param talkingPenDto 电量状态 + */ + private void dealElectric(TalkingPenDto talkingPenDto) { + } + + /** + * 处理wifi + * @param talkingPen wifi + */ + private void dealWifi(TalkingPenDto talkingPen) { + } + + /** + * 处理点读笔状态 + * @param talkingPen 状态 + */ + private void dealStatus(TalkingPenDto talkingPen) { + } + + /** + * 计算寄存器的值,并按照类型分类 + * @param messageSet 原始数据 + * @return map key:类型 value:类型数据对应的数组 + */ + private Map> dealMessage(Set messageSet) { + Map> penMessages = new HashMap<>(16); + Map penMap = new HashMap<>(messageSet.size()); + messageSet.forEach(set -> { + TalkingPenDto dto = JSONObject.parseObject(set.getData(), TalkingPenDto.class); + penMap.put(dto.getAddr(), new ValueUse(dto)); + }); + for (Integer addr: penMap.keySet()) { + ValueUse valueUse = penMap.get(addr); + // 数据已经处理 + if (valueUse.used) { + continue; + } + // 根据类型,计算对应的值 + TalkingPenDto talkingPen = valueUse.talkingPen; + Byte type = talkingPen.getType(); + List pens = penMessages.getOrDefault(type, new ArrayList<>()); + switch (type) { + case TalkingPenDto.Type.STATUS: + case TalkingPenDto.Type.WIFI: + case TalkingPenDto.Type.ELECTRIC: + case TalkingPenDto.Type.QUESTION: + case TalkingPenDto.Type.PACKAGE: + case TalkingPenDto.Type.FRAME: + pens.add(talkingPen); + penMessages.put(type, pens); + break; + case TalkingPenDto.Type.INDEX: + getIndex(penMap, talkingPen); + pens.add(talkingPen); + penMessages.put(type, pens); + break; + case TalkingPenDto.Type.PROCESS: + getProcess(penMap, talkingPen); + pens.add(talkingPen); + penMessages.put(type, pens); + break; + default: + break; + + } + } + + return penMessages; + } + + /** + * 计算画图过程的值 + * @param penMap 全部寄存器 + * @param talkingPen 某个过程寄存器 + */ + private void getProcess(Map penMap, TalkingPenDto talkingPen) { + int addr = talkingPen.getAddr(); + int position = (addr - TalkingPenDto.Addr.PROCESS_START) % TalkingPenDto.Addr.PROCESS_NUM; + TalkingPenDto high; + TalkingPenDto low; + switch (position) { + case 0: + case 2: + case 4: + high = talkingPen; + low = penMap.get(addr + 1).talkingPen; + break; + default: + high = penMap.get(addr + 1).talkingPen; + low = talkingPen; + break; + } + // 计算序号或结果值 + long value = high.getValue() << YanYuanConstant.Equipment.REGISTER_BIT | low.getValue(); + talkingPen.setValue(value); + penMap.get(high.getAddr()).used = true; + penMap.get(low.getAddr()).used = true; + } + + /** + * 计算序号的值 + * @param penMap 所有的寄存器 + * @param index 当前寄存器 + */ + private void getIndex(Map penMap, TalkingPenDto index) { + int addr = index.getAddr(); + // 获取序号高位和低位的值 + TalkingPenDto high; + TalkingPenDto low; + if (addr == TalkingPenDto.Addr.INDEX_1) { + high = index; + low = penMap.get(TalkingPenDto.Addr.INDEX_2).talkingPen; + } else { + high = penMap.get(TalkingPenDto.Addr.INDEX_1).talkingPen; + low = index; + } + // 计算序号或结果值 + long value = high.getValue() << YanYuanConstant.Equipment.REGISTER_BIT | low.getValue(); + index.setValue(value); + penMap.get(high.getAddr()).used = true; + penMap.get(low.getAddr()).used = true; + } + + + public static class ValueUse{ + TalkingPenDto talkingPen; + boolean used = false; + + public ValueUse(){} + public ValueUse(TalkingPenDto talkingPen){ + this(); + this.talkingPen = talkingPen; + } + } +} diff --git a/src/main/java/com/ccsens/yanyuan/persist/dao/TrainCardDao.java b/src/main/java/com/ccsens/yanyuan/persist/dao/TrainCardDao.java index 911df79..e656ecd 100644 --- a/src/main/java/com/ccsens/yanyuan/persist/dao/TrainCardDao.java +++ b/src/main/java/com/ccsens/yanyuan/persist/dao/TrainCardDao.java @@ -1,6 +1,8 @@ package com.ccsens.yanyuan.persist.dao; +import com.ccsens.yanyuan.bean.vo.TrainBelongVo; import com.ccsens.yanyuan.bean.vo.TrainContentVo; +import com.ccsens.yanyuan.persist.mapper.TrainCardMapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -8,7 +10,7 @@ import java.util.List; /** * @author whj */ -public interface TrainCardDao { +public interface TrainCardDao extends TrainCardMapper { /** * 查询记录 @@ -16,4 +18,11 @@ public interface TrainCardDao { * @return 训练记录 */ List queryByRecord(@Param("recordId") Long recordId); + + /** + * 查询用户关联的、不知道归属的记录 + * @param userId 用户 + * @return 训练记录 + */ + List queryUnknown(@Param("userId") Long userId); } diff --git a/src/main/java/com/ccsens/yanyuan/persist/dao/TrainProcessCardDao.java b/src/main/java/com/ccsens/yanyuan/persist/dao/TrainProcessCardDao.java new file mode 100644 index 0000000..e7d3637 --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/persist/dao/TrainProcessCardDao.java @@ -0,0 +1,18 @@ +package com.ccsens.yanyuan.persist.dao; + +import com.ccsens.yanyuan.bean.vo.TrainBelongVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author whj + */ +public interface TrainProcessCardDao { + /** + * 查询线条 + * @param recordIds 点读笔卡片ID + * @return + */ + List queryLines(@Param("recordIds") List recordIds); +} diff --git a/src/main/java/com/ccsens/yanyuan/persist/dao/TrainRecordDao.java b/src/main/java/com/ccsens/yanyuan/persist/dao/TrainRecordDao.java index 8f3411c..6b995f3 100644 --- a/src/main/java/com/ccsens/yanyuan/persist/dao/TrainRecordDao.java +++ b/src/main/java/com/ccsens/yanyuan/persist/dao/TrainRecordDao.java @@ -2,6 +2,7 @@ package com.ccsens.yanyuan.persist.dao; import com.ccsens.yanyuan.bean.po.TrainRecord; import com.ccsens.yanyuan.bean.vo.TaskVo; +import com.ccsens.yanyuan.bean.vo.TrainPlanVo; import com.ccsens.yanyuan.persist.mapper.TrainRecordMapper; import org.apache.ibatis.annotations.Param; @@ -30,4 +31,13 @@ public interface TrainRecordDao extends TrainRecordMapper { * @return 训练计划内容 */ TaskVo.Train queryById(@Param("recordId") Long recordId); + + /** + * 查询训练计划 + * @param keyUserId 使用者 + * @param startTime 开始时间(包含) + * @param endTime 结束时间(不包含) + * @return 训练计划 + */ + List query(@Param("keyUserId") Long keyUserId, @Param("startTime") long startTime, @Param("endTime") long endTime); } diff --git a/src/main/java/com/ccsens/yanyuan/persist/dao/UserRelationDao.java b/src/main/java/com/ccsens/yanyuan/persist/dao/UserRelationDao.java index 287220b..87e74dc 100644 --- a/src/main/java/com/ccsens/yanyuan/persist/dao/UserRelationDao.java +++ b/src/main/java/com/ccsens/yanyuan/persist/dao/UserRelationDao.java @@ -1,6 +1,7 @@ package com.ccsens.yanyuan.persist.dao; import com.ccsens.yanyuan.bean.vo.ToolVo; +import com.ccsens.yanyuan.bean.vo.TraineeVo; import com.ccsens.yanyuan.persist.mapper.UserRelationMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -40,4 +41,11 @@ public interface UserRelationDao extends UserRelationMapper { * @return 关联的老人数量 */ Integer queryPersonNumber(@Param("userId") Long userId); + + /** + * 查询用户关联的使用者信息 + * @param userId 用户 + * @return 使用者 + */ + List queryRelation(@Param("userId") Long userId); } diff --git a/src/main/java/com/ccsens/yanyuan/service/ITrainBelongService.java b/src/main/java/com/ccsens/yanyuan/service/ITrainBelongService.java new file mode 100644 index 0000000..f27c370 --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/service/ITrainBelongService.java @@ -0,0 +1,28 @@ +package com.ccsens.yanyuan.service; + +import com.ccsens.util.CodeError; +import com.ccsens.yanyuan.bean.dto.TrainBelongDto; +import com.ccsens.yanyuan.bean.vo.TrainBelongVo; +import com.github.pagehelper.PageInfo; + + +/** + * @author whj + */ +public interface ITrainBelongService { + /** + * 查询没有归属的记录 + * @param param 分页 + * @param userId 用户ID + * @return 归属 + */ + PageInfo queryUnknown(TrainBelongDto.QueryUnknown param, Long userId); + + /** + * 选择训练计划 + * @param param 训练结果和训练计划 + * @param userId 操作者ID + * @return 选择结果 + */ + CodeError.Code chooseRecord(TrainBelongDto.ChooseTrainee param, Long userId); +} diff --git a/src/main/java/com/ccsens/yanyuan/service/ITrainPlanService.java b/src/main/java/com/ccsens/yanyuan/service/ITrainPlanService.java index ef8d132..bd7a24d 100644 --- a/src/main/java/com/ccsens/yanyuan/service/ITrainPlanService.java +++ b/src/main/java/com/ccsens/yanyuan/service/ITrainPlanService.java @@ -3,8 +3,11 @@ package com.ccsens.yanyuan.service; import com.ccsens.util.CodeError; import com.ccsens.yanyuan.bean.dto.TrainPlanDto; import com.ccsens.yanyuan.bean.vo.TaskVo; +import com.ccsens.yanyuan.bean.vo.TrainPlanVo; import com.ccsens.yanyuan.util.YanYuanCodeError; +import java.util.List; + /** * @author whj */ @@ -40,4 +43,12 @@ public interface ITrainPlanService { * @return 成功/失败 */ CodeError.Code updateResult(TrainPlanDto.TrainResult param, Long userId); + + /** + * 查询指定日期前后一周的训练计划 + * @param param 使用者和时间 + * @param userId 操作者ID + * @return 训练计划 + */ + List queryRecent(TrainPlanDto.QueryRecent param, Long userId); } diff --git a/src/main/java/com/ccsens/yanyuan/service/ITraineeService.java b/src/main/java/com/ccsens/yanyuan/service/ITraineeService.java index 7fdd55d..243b0d3 100644 --- a/src/main/java/com/ccsens/yanyuan/service/ITraineeService.java +++ b/src/main/java/com/ccsens/yanyuan/service/ITraineeService.java @@ -65,4 +65,11 @@ public interface ITraineeService { * @return 使用者信息 */ TraineeVo.UserInfo query(TraineeDto.QueryUserInfo param, Long userId); + + /** + * 查询所有关联的用户信息 + * @param userId 用户 + * @return 关联老人 + */ + List queryRelation(Long userId); } diff --git a/src/main/java/com/ccsens/yanyuan/service/TrainBelongService.java b/src/main/java/com/ccsens/yanyuan/service/TrainBelongService.java new file mode 100644 index 0000000..beda7ae --- /dev/null +++ b/src/main/java/com/ccsens/yanyuan/service/TrainBelongService.java @@ -0,0 +1,103 @@ +package com.ccsens.yanyuan.service; + +import cn.hutool.core.collection.CollectionUtil; +import com.ccsens.util.CodeError; +import com.ccsens.yanyuan.bean.dto.TrainBelongDto; +import com.ccsens.yanyuan.bean.po.TrainCard; +import com.ccsens.yanyuan.bean.po.TrainProcessCard; +import com.ccsens.yanyuan.bean.po.TrainRecord; +import com.ccsens.yanyuan.bean.po.TrainResult; +import com.ccsens.yanyuan.bean.vo.TrainBelongVo; +import com.ccsens.yanyuan.persist.dao.TrainCardDao; +import com.ccsens.yanyuan.persist.dao.TrainProcessCardDao; +import com.ccsens.yanyuan.persist.dao.TrainRecordDao; +import com.ccsens.yanyuan.persist.dao.TrainResultDao; +import com.ccsens.yanyuan.util.YanYuanCodeError; +import com.ccsens.yanyuan.util.YanYuanConstant; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @description: + * @author: whj + * @time: 2021/12/6 9:47 + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class TrainBelongService implements ITrainBelongService { + + @Resource + private TrainCardDao trainCardDao; + @Resource + private TrainProcessCardDao trainProcessCardDao; + @Resource + private TrainRecordDao trainRecordDao; + @Resource + private TrainResultDao trainResultDao; + + @Override + public PageInfo queryUnknown(TrainBelongDto.QueryUnknown param, Long userId) { + PageHelper.startPage(param.getPageNum(), param.getPageSize()); + List list = trainCardDao.queryUnknown(userId); + if (CollectionUtil.isEmpty(list)) { + return new PageInfo<>(list); + } + // 查询迷宫和找不同对应的过程记录 + List lineIds = new ArrayList<>(); + Map lineMap = new HashMap<>(); + list.forEach(content -> { + // 训练结果,不处理 + if (content.getResultType() == YanYuanConstant.Train.RECORD_RESULT) { + return; + } + lineIds.add(content.getTrainRecordId()); + lineMap.put(content.getTrainRecordId(), content); + }); + if (CollectionUtil.isEmpty(lineIds)) { + return new PageInfo<>(list); + } + log.info("查询过程点"); + List lines = trainProcessCardDao.queryLines(lineIds); + if (CollectionUtil.isNotEmpty(lines)) { + lines.forEach(line -> lineMap.get(line.getTrainRecordId()).setLines(line.getLines())); + } + return new PageInfo<>(list); + } + + @Override + public CodeError.Code chooseRecord(TrainBelongDto.ChooseTrainee param, Long userId) { + // 校验训练计划存在 + TrainRecord record = trainRecordDao.selectByPrimaryKey(param.getRecordId()); + if (record == null) { + return YanYuanCodeError.PARAM_ERROR; + } + if (param.getResultType() == YanYuanConstant.Train.RECORD_RESULT) { + // 训练结果 + TrainResult result = new TrainResult(); + result.setId(param.getTrainRecordId()); + result.setRecordId(param.getRecordId()); + result.setOperator(userId); + trainResultDao.updateByPrimaryKeySelective(result); + } else { + // 训练计划 + TrainCard card = new TrainCard(); + card.setId(param.getTrainRecordId()); + card.setRecordId(param.getRecordId()); + card.setOperator(userId); + trainCardDao.updateByPrimaryKeySelective(card); + } + return YanYuanCodeError.SUCCESS; + } +} diff --git a/src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java b/src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java index 1a61dc8..e8cbfea 100644 --- a/src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java +++ b/src/main/java/com/ccsens/yanyuan/service/TrainPlanService.java @@ -1,13 +1,16 @@ package com.ccsens.yanyuan.service; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateTime; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ObjectUtil; import com.ccsens.util.CodeError; +import com.ccsens.util.DateUtil; import com.ccsens.yanyuan.bean.dto.TrainPlanDto; import com.ccsens.yanyuan.bean.po.*; import com.ccsens.yanyuan.bean.vo.TaskVo; import com.ccsens.yanyuan.bean.vo.TrainContentVo; +import com.ccsens.yanyuan.bean.vo.TrainPlanVo; import com.ccsens.yanyuan.persist.dao.*; import com.ccsens.yanyuan.persist.mapper.ToolEquipmentMapper; import com.ccsens.yanyuan.persist.mapper.TrainEquipmentMapper; @@ -19,7 +22,9 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.validation.constraints.NotNull; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -126,4 +131,14 @@ public class TrainPlanService implements ITrainPlanService { trainResultDao.updateByPrimaryKeySelective(trainResult); return CodeError.SUCCESS; } + + @Override + public List queryRecent(TrainPlanDto.QueryRecent param, Long userId) { + + Date date = new Date(); + date.setTime(param.getTime()); + long time = DateUtil.beginOfDay(date).getTime(); + long halfPeriod = YanYuanConstant.MentalTest.PERIOD / 2 * YanYuanConstant.DAY_TIME; + return trainRecordDao.query(param.getKeyUserId(), time - halfPeriod, time + halfPeriod); + } } diff --git a/src/main/java/com/ccsens/yanyuan/service/TraineeService.java b/src/main/java/com/ccsens/yanyuan/service/TraineeService.java index 4624e7c..3249b61 100644 --- a/src/main/java/com/ccsens/yanyuan/service/TraineeService.java +++ b/src/main/java/com/ccsens/yanyuan/service/TraineeService.java @@ -206,6 +206,11 @@ public class TraineeService implements ITraineeService { return userInfo; } + @Override + public List queryRelation(Long userId) { + return userRelationDao.queryRelation(userId); + } + /** * 生成脑力测评 * @param userId 操作者 diff --git a/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java b/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java index 4852027..ed1ddf2 100644 --- a/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java +++ b/src/main/java/com/ccsens/yanyuan/util/YanYuanConstant.java @@ -25,6 +25,10 @@ public class YanYuanConstant { /**一天的毫秒数*/ public static final long DAY_TIME = 24 * 3600 * 1000; + public static class Equipment{ + public final static byte REGISTER_BIT = 16; + } + public static class Zarit{ public final static String STATE_CREATE = "create"; public final static String STATE_FINISH = "finish"; @@ -33,6 +37,7 @@ public class YanYuanConstant { public static class Mq{ public final static String MENTAL_TEST_ALL = "mentalTestAll"; public final static String MENTAL_TEST_SINGLE = "mentalTestSingle"; + public final static String TALKING_PEN = "talking_pen_mq"; } public static class Question{ @@ -44,6 +49,14 @@ public class YanYuanConstant { public static class Train{ public final static byte TYPE_TRAIN = 0; public final static byte TYPE_RELAX = 1; + /** + * 记录:结果 + */ + public final static byte RECORD_RESULT = 0; + /** + * 记录:过程 + */ + public final static byte RECORD_PROCESS = 1; diff --git a/src/main/resources/mapper_dao/ToolDao.xml b/src/main/resources/mapper_dao/ToolDao.xml index 3a46fdf..122e8d6 100644 --- a/src/main/resources/mapper_dao/ToolDao.xml +++ b/src/main/resources/mapper_dao/ToolDao.xml @@ -19,7 +19,6 @@ select c.id as trainRecordId,c.created_at AS createdAt, 1 as resultType, c.equipment_id as equipmentId, - t.id as toolId, t.`code` as toolCode, c.assist_id as assistId, tc.url as cardUrl,pc.id as pcId, pc.points + t.id as toolId, t.`code` as toolCode, c.assist_id as assistId, tc.url as cardUrl,pc.id as pcId, pc.points, pc.operate_time from u_train_card c left join t_tool_equipment e on c.equipment_id = e.id and e.rec_status = 0 left join t_tool t on e.tool_id = t.id and t.rec_status = 0 @@ -26,4 +27,81 @@ left join u_train_process_card pc on c.id = pc.card_id and pc.rec_status = 0 where c.record_id = #{recordId} and c.rec_status = 0 + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/TrainProcessCardDao.xml b/src/main/resources/mapper_dao/TrainProcessCardDao.xml new file mode 100644 index 0000000..85b5351 --- /dev/null +++ b/src/main/resources/mapper_dao/TrainProcessCardDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/TrainRecordDao.xml b/src/main/resources/mapper_dao/TrainRecordDao.xml index 81fdcbf..80ab1af 100644 --- a/src/main/resources/mapper_dao/TrainRecordDao.xml +++ b/src/main/resources/mapper_dao/TrainRecordDao.xml @@ -30,4 +30,26 @@ group by r.id limit 1 + \ No newline at end of file diff --git a/src/main/resources/mapper_dao/UserRelationDao.xml b/src/main/resources/mapper_dao/UserRelationDao.xml index ea8a8ed..37543cd 100644 --- a/src/main/resources/mapper_dao/UserRelationDao.xml +++ b/src/main/resources/mapper_dao/UserRelationDao.xml @@ -59,4 +59,21 @@ AND user_id = #{userId} + \ No newline at end of file diff --git a/src/main/resources/mapper_raw/TrainProcessCardMapper.xml b/src/main/resources/mapper_raw/TrainProcessCardMapper.xml index ad8820f..e9c2854 100644 --- a/src/main/resources/mapper_raw/TrainProcessCardMapper.xml +++ b/src/main/resources/mapper_raw/TrainProcessCardMapper.xml @@ -4,6 +4,7 @@ + @@ -71,7 +72,7 @@ - id, card_id, operator, created_at, updated_at, rec_status + id, card_id, operate_time, operator, created_at, updated_at, rec_status points @@ -125,12 +126,12 @@ - insert into u_train_process_card (id, card_id, operator, - created_at, updated_at, rec_status, - points) - values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{operator,jdbcType=BIGINT}, - #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, - #{points,jdbcType=LONGVARCHAR}) + insert into u_train_process_card (id, card_id, operate_time, + operator, created_at, updated_at, + rec_status, points) + values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{operateTime,jdbcType=BIGINT}, + #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}, #{points,jdbcType=LONGVARCHAR}) insert into u_train_process_card @@ -141,6 +142,9 @@ card_id, + + operate_time, + operator, @@ -164,6 +168,9 @@ #{cardId,jdbcType=BIGINT}, + + #{operateTime,jdbcType=BIGINT}, + #{operator,jdbcType=BIGINT}, @@ -196,6 +203,9 @@ card_id = #{record.cardId,jdbcType=BIGINT}, + + operate_time = #{record.operateTime,jdbcType=BIGINT}, + operator = #{record.operator,jdbcType=BIGINT}, @@ -220,6 +230,7 @@ update u_train_process_card set id = #{record.id,jdbcType=BIGINT}, card_id = #{record.cardId,jdbcType=BIGINT}, + operate_time = #{record.operateTime,jdbcType=BIGINT}, operator = #{record.operator,jdbcType=BIGINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, @@ -233,6 +244,7 @@ update u_train_process_card set id = #{record.id,jdbcType=BIGINT}, card_id = #{record.cardId,jdbcType=BIGINT}, + operate_time = #{record.operateTime,jdbcType=BIGINT}, operator = #{record.operator,jdbcType=BIGINT}, created_at = #{record.createdAt,jdbcType=TIMESTAMP}, updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, @@ -247,6 +259,9 @@ card_id = #{cardId,jdbcType=BIGINT}, + + operate_time = #{operateTime,jdbcType=BIGINT}, + operator = #{operator,jdbcType=BIGINT}, @@ -268,6 +283,7 @@ update u_train_process_card set card_id = #{cardId,jdbcType=BIGINT}, + operate_time = #{operateTime,jdbcType=BIGINT}, operator = #{operator,jdbcType=BIGINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, @@ -278,6 +294,7 @@ update u_train_process_card set card_id = #{cardId,jdbcType=BIGINT}, + operate_time = #{operateTime,jdbcType=BIGINT}, operator = #{operator,jdbcType=BIGINT}, created_at = #{createdAt,jdbcType=TIMESTAMP}, updated_at = #{updatedAt,jdbcType=TIMESTAMP}, diff --git a/src/main/resources/mbg.xml b/src/main/resources/mbg.xml index bddf510..73b9265 100644 --- a/src/main/resources/mbg.xml +++ b/src/main/resources/mbg.xml @@ -55,7 +55,7 @@ -
+