|
@@ -42,6 +42,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmQuiz;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.PersonalScoreRecordVO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.vo.UserBusinessCardVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.WmQuizVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
@@ -187,6 +188,7 @@ import java.time.Duration;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.function.Function;
|
|
@@ -4300,14 +4302,64 @@ public class ApiController {
|
|
|
updateUser.setIdCardNumber(resource.getIdCardNumber());
|
|
|
}
|
|
|
updateUser.setDegree(resource.getDegree());
|
|
|
+ updateUser.setQualificationRecordNumber(resource.getQualificationRecordNumber());
|
|
|
+ updateUser.setQualificationsUrl(resource.getQualificationsUrl());
|
|
|
sysUserService.updateById(updateUser);
|
|
|
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
- @GetMapping("/get-personal-business-card")
|
|
|
- public R<?> getPersonalBusinessCard() {
|
|
|
- // TODO
|
|
|
- return null;
|
|
|
+ /**
|
|
|
+ * 查询个人名片
|
|
|
+ *
|
|
|
+ * @param userId 用户id
|
|
|
+ * @return {@link R}<{@link ?}> 结果
|
|
|
+ */
|
|
|
+ @GetMapping("/get-personal-business-card/{userId}")
|
|
|
+ public R<?> getPersonalBusinessCard(@PathVariable("userId") Integer userId) {
|
|
|
+ SysUser user = sysUserService.getById(userId);
|
|
|
+ SysDept dept = sysDeptService.getById(user.getDeptId());
|
|
|
+
|
|
|
+ UserBusinessCardVO cardVO = new UserBusinessCardVO();
|
|
|
+ // 基本信息
|
|
|
+ cardVO.setUserId(userId);
|
|
|
+ cardVO.setRealname(user.getRealname());
|
|
|
+ cardVO.setGender(user.getGender());
|
|
|
+ cardVO.setIdCardNumber(user.getIdCardNumber());
|
|
|
+ cardVO.setUsername(user.getUsername());
|
|
|
+ if (IdcardUtil.isValidCard(user.getIdCardNumber())) {
|
|
|
+ // 根据身份证号计算年龄
|
|
|
+ cardVO.setAge(IdcardUtil.getAgeByIdCard(user.getIdCardNumber()));
|
|
|
+ }
|
|
|
+ cardVO.setDegree(user.getDegree());
|
|
|
+
|
|
|
+ // 平台经历
|
|
|
+ cardVO.setServiceDeptName(dept.getName());
|
|
|
+ // 服务时长 = 当前时间 - 用户创建时间
|
|
|
+ long monthDifference = ChronoUnit.MONTHS.between(user.getCreateTime(), LocalDateTime.now());
|
|
|
+ cardVO.setServiceDuration(String.format("%s个月", monthDifference));
|
|
|
+ // 完成任务量
|
|
|
+ int finishTaskCount = wmTaskService.count(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .eq(WmTask::getTaskUserId, userId)
|
|
|
+ .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
+ .eq(WmTask::getRealFlag, "0")
|
|
|
+ .ne(WmTask::getTaskStatus, TaskStatusEnum.INIT.val())
|
|
|
+ .gt(WmTask::getScore, 0));
|
|
|
+ // 审核通过任务量
|
|
|
+ int approvedTaskCount = wmTaskService.count(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .eq(WmTask::getTaskUserId, userId)
|
|
|
+ .eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
|
|
|
+ .eq(WmTask::getRealFlag, "0")
|
|
|
+ .eq(WmTask::getTaskStatus, TaskStatusEnum.APPROVED.val())
|
|
|
+ .gt(WmTask::getScore, 0));
|
|
|
+ cardVO.setFinishTaskCount(finishTaskCount);
|
|
|
+ cardVO.setApprovedTaskCount(approvedTaskCount);
|
|
|
+ cardVO.setApprovedTaskRate(String.format("%.0f%%", approvedTaskCount * 100.00 / finishTaskCount));
|
|
|
+
|
|
|
+ // 专业技能
|
|
|
+ cardVO.setQualificationRecordNumber(user.getQualificationRecordNumber());
|
|
|
+ cardVO.setQualificationsUrl(user.getQualificationsUrl());
|
|
|
+
|
|
|
+ return R.ok(cardVO);
|
|
|
}
|
|
|
}
|