소스 검색

feature: 学员自助
1.学员自助controller
2.学员自助相关的数据结构类定义

luo.yibo@datuai.com 1 년 전
부모
커밋
21f2b35df5

+ 4 - 1
ruoyi-api/ruoyi-api-backstage/src/main/java/org/dromara/backstage/api/domain/bo/RemoteUserAccountBo.java

@@ -1,6 +1,5 @@
 package org.dromara.backstage.api.domain.bo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
@@ -115,4 +114,8 @@ public class RemoteUserAccountBo implements Serializable {
     private Long cardId;
 
     private Long cardNo;
+    /**
+     * 用户身份(0=内部用户 1=老师 2=学生 3=家长  4=其他人员)
+     */
+    private String category;
 }

+ 0 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/SelfBusiness.java

@@ -67,7 +67,6 @@ public class SelfBusiness {
         mapAccount.put("pwd", accountPwd);
 
         String loginUrl = smsApi + "sms/api/v1/login";
-        // String loginUrl = "https://ykt.hnswdx.gov.cn/sms/api/v1/login";
         HttpRequest req = HttpUtil.createPost(loginUrl);
         try(HttpResponse res = req.body(JSONUtil.toJsonStr(mapAccount)).execute()) {
             ReturnResult result = JSONUtil.toBean(res.body(), ReturnResult.class);

+ 26 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java

@@ -0,0 +1,26 @@
+package org.dromara.backstage.business.self;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.backstage.domain.bo.yc.YcTraineeBo;
+import org.dromara.common.core.api.ReturnResult;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName TraineeBusiness
+ * @Description 学员业务软软处理
+ * @Author luoyibo
+ * @Date 2024-11-14 09:13
+ * @Version 1.0
+ * @since jdk17
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class TraineeBusiness {
+
+    public ReturnResult getTraineeRegisterInfo(YcTraineeBo bo) {
+
+        return ReturnResult.success();
+    }
+}

+ 0 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TeacherController.java

@@ -139,6 +139,5 @@ public class TeacherController {
     public ReturnResult queryWxRechargeResult(@RequestBody Map<String, String> queryMap) {
         String orderSn = queryMap.get("orderSn");
         return selfBusiness.getCreditBackByOrderSn(orderSn);
-
     }
 }

+ 96 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TraineeController.java

@@ -0,0 +1,96 @@
+package org.dromara.backstage.controller.self;
+
+import cn.hutool.core.codec.Base64;
+import cn.hutool.core.util.StrUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.backstage.business.accouunt.UserAccountBusiness;
+import org.dromara.backstage.business.payments.PayOrderBusiness;
+import org.dromara.backstage.business.self.SelfBusiness;
+import org.dromara.backstage.domain.bo.yc.YcTraineeBo;
+import org.dromara.backstage.domain.convert.YcVoConvert;
+import org.dromara.backstage.domain.vo.account.AccountInfoVo;
+import org.dromara.backstage.payment.domain.bo.PtUserAccountBo;
+import org.dromara.common.core.api.ResponseResult;
+import org.dromara.common.core.api.ReturnResult;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.enums.ResultCodeEnum;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.MessageFormat;
+
+/**
+ * @ClassName TraineeController
+ * @Description 学员自助控制器
+ * @Author luoyibo
+ * @Date 2024-11-08 21:05
+ * @Version 1.0
+ * @since jdk17
+ */
+@RestController("TraineeController")
+@ResponseResult
+@RequestMapping("/trainee")
+@Slf4j
+@RequiredArgsConstructor
+public class TraineeController {
+    private final UserAccountBusiness userAccountBusiness;
+    private final SelfBusiness selfBusiness;
+    private final PayOrderBusiness payOrderBusiness;
+
+    /**
+     * 根据手机号获取教职工信息
+     *
+     * @param mobile 手机号
+     * @return 教职工信息
+     */
+    @GetMapping("/api/v1/mobile/{mobile}/{checkinDate}")
+    public ReturnResult getUserByMobile(@PathVariable("mobile") String mobile, @PathVariable("checkinDate") String checkinDate) {
+        if (StrUtil.isEmpty(mobile)) {
+            return ReturnResult.failure(ResultCodeEnum.PARAM_IS_BLANK, "手机号不能为空");
+        }
+        if (StrUtil.isEmpty(checkinDate)) {
+            return ReturnResult.failure(ResultCodeEnum.PARAM_IS_BLANK, "报到日期不能为空");
+        }
+        String dePhone = Base64.decodeStr(mobile);
+        PtUserAccountBo bo = new PtUserAccountBo().setPhone(dePhone).setCategory("2");
+        R<AccountInfoVo> result = userAccountBusiness.getAccountInfo(bo);
+        if (R.isError(result)) {
+            return ReturnResult.failure(ResultCodeEnum.DATA_NOT_FOUND, MessageFormat.format("没有手机号[{0}]对应的人员信息", dePhone));
+        }
+        return ReturnResult.success(YcVoConvert.ycUserAccountConvert(result.getData()));
+    }
+
+    /**
+     * 根据身份证号获取学员信息
+     *
+     * @param identity 身份证号
+     * @return 学员信息
+     */
+    @GetMapping("/api/v1/identity/{identity}/{checkinDate}")
+    public ReturnResult getUserByIdentity(@PathVariable("identity") String identity, @PathVariable("checkinDate") String checkinDate) {
+        if (StrUtil.isEmpty(identity)) {
+            return ReturnResult.failure(ResultCodeEnum.PARAM_IS_BLANK, "身份证号不能为空");
+        }
+        if (StrUtil.isEmpty(checkinDate)) {
+            return ReturnResult.failure(ResultCodeEnum.PARAM_IS_BLANK, "报到日期不能为空");
+        }
+        String deIdentity = Base64.decodeStr(identity);
+        PtUserAccountBo bo = new PtUserAccountBo().setIdNumber(deIdentity).setCategory("2");
+        R<AccountInfoVo> result = userAccountBusiness.getAccountInfo(bo);
+        if (R.isError(result)) {
+            return ReturnResult.failure(ResultCodeEnum.DATA_NOT_FOUND, MessageFormat.format("没有身份号[{0}]对应的人员信息", deIdentity));
+        }
+        return ReturnResult.success(YcVoConvert.ycUserAccountConvert(result.getData()));
+    }
+
+    /**
+     * 学员报到
+     * @param bo 学员报到业务对象
+     * @return 报到结果
+     */
+    @PostMapping("/api/v1/register")
+    public ReturnResult checkinTrainee(@RequestBody YcTraineeBo bo){
+
+        return ReturnResult.success();
+    }
+}

+ 34 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/domain/bo/yc/YcTraineeBo.java

@@ -0,0 +1,34 @@
+package org.dromara.backstage.domain.bo.yc;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName YcTraineeVo
+ * @Description TODO
+ * @Author luoyibo
+ * @Date 2024-11-14 08:56
+ * @Version 1.0
+ * @since jdk17
+ */
+@Data
+@Accessors(chain = true)
+public class YcTraineeBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2859423845136255800L;
+
+    /**
+     * 人员Id
+     */
+    private String userId;
+
+    /**
+     * 报到日期
+     */
+    private Date checkInDate;
+}

+ 68 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/domain/vo/yc/YcClassVo.java

@@ -0,0 +1,68 @@
+package org.dromara.backstage.domain.vo.yc;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName YcClassVo
+ * @Description 培训班数据视图
+ * @Author luoyibo
+ * @Date 2024-11-14 10:04
+ * @Version 1.0
+ * @since jdk17
+ */
+@Data
+@Accessors(chain = true)
+public class YcClassVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -6591282955223651532L;
+    /**
+     * 班级Id
+     */
+    private String classId;
+    /**
+     * 班级名称
+     */
+    private String className;
+    /**
+     * 开班日期
+     */
+    private Date beginDate;
+    /**
+     * 结业日期
+     */
+    private Date endDate;
+
+    /**
+     * 报到日期
+     */
+    private Date checkInDate;
+
+    /**
+     * 缴费开始日期
+     */
+    private Date payBegin;
+
+    /**
+     * 缴费结束日期
+     */
+    private Date payEnd;
+    /**
+     * 是否就餐 0-否 1-是 默认为否
+     */
+    private Integer canEat;
+    /**
+     * 是否自主选房 0-否 1-是 默认为否
+     */
+    private Integer chooseRoom;
+
+    /**
+     * 是否缴费后报到 0-否 1-是 默认为否
+     */
+    private Integer jfhbd;
+}

+ 134 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/domain/vo/yc/YcTraineeVo.java

@@ -0,0 +1,134 @@
+package org.dromara.backstage.domain.vo.yc;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName YcTraineeVo
+ * @Description TODO
+ * @Author luoyibo
+ * @Date 2024-11-14 08:56
+ * @Version 1.0
+ * @since jdk17
+ */
+@Data
+@Accessors(chain = true)
+public class YcTraineeVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2859423845136255800L;
+    /**
+     * 人员Id
+     */
+    private String userId;
+    /**
+     * 客人Id
+     */
+    private String guesterId;
+    /**
+     * 人员姓名
+     */
+    private String userXm;
+    /**
+     * 人员编号
+     */
+    private String userNumb;
+    /**
+     * 人员性别
+     */
+    private String sexName;
+    /**
+     * 手机号码
+     */
+    private String mobilePhone;
+    /**
+     * 身份证号
+     */
+    private String idNumber;
+    /**
+     * 人员类型
+     */
+    private int category;
+    /**
+     * 报到状态 0-未报到 1-已报到
+     */
+    private int checkinState;
+    /**
+     * 支付状态 0-未支付 1-已支付
+     */
+    private  int payStatus;
+    /**
+     * 部门名称
+     */
+    private String deptName;
+    /**
+     * 部门Id
+     */
+    private String deptId;
+    /**
+     * userCardTypeId
+     */
+    private int userCardTypeId;
+    /**
+     * 卡片有效期
+     */
+    private Date userExpiryDate;
+    /**
+     * 钱包信息
+     */
+    private List<YcBagVo> userBags;
+
+    // @FieldInfo(name = "学员缴费信息")
+    // private List<VoUserPayItem> userPayItems;
+
+    private List<YcCardVo> userCards;
+    /**
+     * 人员主部门标志
+     */
+    private int isMainDept;
+    /**
+     * 充值金额
+     */
+    private BigDecimal rechargeValue = BigDecimal.ZERO;
+    /**
+     * 学员培训班信息
+     */
+    private YcClassVo userClass;
+
+    //region 人员住宿信息
+    /**
+     * 客房Id
+     */
+    private String guestRoomId;
+    /**
+     * 房间Id
+     */
+    private String roomId;
+    /**
+     * 房间编号
+     */
+    private String roomCode;
+    /**
+     * 房间顺序号,以便报到时顺序排房
+     */
+    private Integer orderIndex = 0;
+    /**
+     * 入住时间
+     */
+    private Date checkinDate;
+    /**
+     * 退房时间
+     */
+    private Date checkoutDate;
+    /**
+     * 房卡信息
+     */
+    private String roomCardData="";
+    //endregion
+}