Merge remote-tracking branch 'origin/master'

This commit is contained in:
ws
2026-04-27 18:39:15 +08:00
8 changed files with 140 additions and 3 deletions
@@ -11,7 +11,7 @@ public class Result<T> {
public static <T> Result<T> success(T data) {
Result<T> result = new Result<>();
result.setCode(0);
result.setCode(200);
result.setMessage("success");
result.setData(data);
return result;
@@ -3,6 +3,8 @@ package com.example.mini_program.controller;
import com.example.mini_program.common.Result;
import com.example.mini_program.entity.VisitApplication;
import com.example.mini_program.service.AppointmentService;
import com.example.mini_program.vo.ReceptionPersonVo;
import com.example.mini_program.vo.VisitApplicationVo;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
@@ -15,6 +17,7 @@ public class AppointmentController {
private final AppointmentService appointmentService;
/**
* 根据openid获取最新的一条预约记录
*/
@@ -87,4 +90,31 @@ public class AppointmentController {
boolean success = appointmentService.approve(id, status);
return success ? Result.success(true) : Result.error("审批失败,记录不存在或状态不允许");
}
/**
* 根据id获取审批详情
*/
@PutMapping("/detail")
public Result<VisitApplicationVo> detail(@RequestParam String id, @RequestParam String openid) throws Exception {
if (id == null || id.trim().isEmpty()) {
return Result.error("id不能为空");
}
if (openid == null || openid.trim().isEmpty()) {
return Result.error("openid不能为空");
}
VisitApplicationVo vo = appointmentService.detail(id, openid);
return Result.success(vo);
}
/**
* 受访人下拉框值
*/
@PostMapping("/person/selector")
public Result<List<ReceptionPersonVo>> personSelector() {
System.out.println("----------------------------------");
// 异步处理,立即返回
List<ReceptionPersonVo> list = appointmentService.personSelector();
return Result.success(list);
}
}
@@ -0,0 +1,11 @@
package com.example.mini_program.entity;
import lombok.Data;
@Data
public class ReceptionPersonPO {
private Long id;
private String personId;
private String personName;
}
@@ -0,0 +1,11 @@
package com.example.mini_program.mapper;
import com.example.mini_program.entity.ReceptionPersonPO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ReceptionPersonMapper {
List<ReceptionPersonPO> selectReceptionPerson();
}
@@ -1,12 +1,19 @@
package com.example.mini_program.service;
import com.example.mini_program.entity.ReceptionPersonPO;
import com.example.mini_program.entity.VisitApplication;
import com.example.mini_program.mapper.ReceptionPersonMapper;
import com.example.mini_program.mapper.VisitApplicationMapper;
import com.example.mini_program.vo.ReceptionPersonVo;
import com.example.mini_program.vo.VisitApplicationVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -18,9 +25,13 @@ import java.util.UUID;
@Service
@RequiredArgsConstructor
public class AppointmentService {
@Autowired
private final VisitApplicationMapper visitApplicationMapper;
@Autowired
private final WxApprovalService wxApprovalService;
@Autowired
private ReceptionPersonMapper receptionPersonMapper;
@Autowired
private final WxSubscribeMessageService wxSubscribeMessageService;
@Value("${wx.corp.creator-userid:}")
@@ -103,7 +114,6 @@ public class AppointmentService {
log.warn("预约状态不允许取消, id: {}, status: {}", id, existing.getStatus());
return false;
}
int rows = visitApplicationMapper.updateStatusToCancelled(id, openid);
if (rows > 0) {
log.info("取消预约成功, id: {}", id);
@@ -113,6 +123,20 @@ public class AppointmentService {
return false;
}
/**
* 预约详情
*/
public VisitApplicationVo detail(String id, String openid) throws Exception {
log.info("预约详情, id: {}, openid: {}", id, openid);
VisitApplication existing = visitApplicationMapper.selectByIdAndOpenid(id, openid);
if (existing == null) {
throw new Exception("未查询到该用户的访客预约记录");
}
VisitApplicationVo visitApplicationVo = new VisitApplicationVo();
BeanUtils.copyProperties(visitApplicationVo, existing);
return visitApplicationVo;
}
/**
* 审批预约(通过/拒绝)
*/
@@ -140,4 +164,18 @@ public class AppointmentService {
return true;
}
/**
* 获取受访者下拉框的值
*/
public List<ReceptionPersonVo> personSelector() {
List<ReceptionPersonPO> receiptPersonList = receptionPersonMapper.selectReceptionPerson();
List<ReceptionPersonVo> voList = new ArrayList<>();
for(ReceptionPersonPO po : receiptPersonList){
ReceptionPersonVo vo = new ReceptionPersonVo();
BeanUtils.copyProperties(vo, po);
voList.add(vo);
}
return voList;
}
}
@@ -0,0 +1,10 @@
package com.example.mini_program.vo;
import lombok.Data;
@Data
public class ReceptionPersonVo {
private String personId;
private String personName;
}
@@ -0,0 +1,21 @@
package com.example.mini_program.vo;
import com.fasterxml.jackson.annotation.JsonAlias;
import lombok.Data;
@Data
public class VisitApplicationVo {
private String name;
private String phone;
private String company;
private String reason;
@JsonAlias("date")
private String visitDate;
@JsonAlias("time")
private String visitTime;
private String hostName;
private String area;
private String statusText;
}
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mini_program.mapper.ReceptionPersonMapper">
<resultMap id="BaseResultMap" type="com.example.mini_program.entity.ReceptionPersonPO">
<id column="id" property="id"/>
<result column="person_name" property="personName"/>
<result column="person_id" property="personId"/>
</resultMap>
<select id="selectReceptionPerson" resultMap="BaseResultMap">
SELECT id,person_id,person_name
FROM reception_person
</select>
</mapper>