Commit 3e8a0fae authored by mengmeng's avatar mengmeng

线上测试运行版本V1

parent b6930e3c
# hmit-security-enterprise # hmit-security-enterprise
## 订单状态 appointment_order 表 status
***
### status 0 失约/爽约
### status 1 已预约
### status 2 预约已取消
### status 3 已取号
### status 4 消除无效号码
***
...@@ -23,9 +23,11 @@ public class AppointmentOrderServiceImpl extends CrudServiceImpl<AppointmentOrde ...@@ -23,9 +23,11 @@ public class AppointmentOrderServiceImpl extends CrudServiceImpl<AppointmentOrde
@Override @Override
public QueryWrapper<AppointmentOrderEntity> getWrapper(Map<String, Object> params){ public QueryWrapper<AppointmentOrderEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get("id"); String id = (String)params.get("id");
String status = null !=params.get("status")?params.get("status").toString():"";
QueryWrapper<AppointmentOrderEntity> wrapper = new QueryWrapper<>(); QueryWrapper<AppointmentOrderEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), "id", id); wrapper.eq(StringUtils.isNotBlank(id), "id", id);
wrapper.eq(StringUtils.isNotBlank(status), "status", status);
return wrapper; return wrapper;
} }
......
package io.hmit.modules.job.task;
import io.hmit.common.constant.Constant;
import io.hmit.common.utils.DateUtils;
import io.hmit.modules.appointment.service.AppointmentOrderService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 检查是否超出预约时间还未取号
* 是 则将订单状态status改成0 爽约/失约
*
*/
@Component("checkReservationTime")
public class CheckReservationTimeTask implements ITask {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private AppointmentOrderService appointmentOrderService;
@Override
public void run(String params) {
logger.debug("TestTask定时任务正在执行,参数为:{}", params);
Map<String, Object> queryParams = new HashMap<>();
queryParams.put("status", Constant.ReservationStatus.RESERVATION.getValue());
appointmentOrderService.list(queryParams).stream().forEach(item->{
System.out.println("订单状态:"+item.getStatus()+" "+item.getServiceName());
try {
if(DateUtils.compareTime(item.getAppointmentTime())){
item.setStatus(Constant.ReservationStatus.BREAK_APPOINTMENT.getValue());
item.setStatusName(Constant.ReservationStatus.BREAK_APPOINTMENT.getMsg());
item.setUpdateDate(new Date());
appointmentOrderService.update(item);
}
} catch (ParseException e) {
e.printStackTrace();
}
});
}
}
...@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.module.SimpleModule; ...@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.hmit.common.utils.DateUtils; import io.hmit.common.utils.DateUtils;
import io.hmit.interceptor.AuthorizationInterceptor; import io.hmit.interceptor.AuthorizationInterceptor;
import io.hmit.interceptor.CorsInterceptor;
import io.hmit.resolver.LoginUserHandlerMethodArgumentResolver; import io.hmit.resolver.LoginUserHandlerMethodArgumentResolver;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
...@@ -32,6 +33,9 @@ import java.util.TimeZone; ...@@ -32,6 +33,9 @@ import java.util.TimeZone;
@Configuration @Configuration
public class WebMvcConfig implements WebMvcConfigurer { public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private CorsInterceptor corsInterceptor;
@Autowired @Autowired
private AuthorizationInterceptor authorizationInterceptor; private AuthorizationInterceptor authorizationInterceptor;
@Autowired @Autowired
...@@ -39,7 +43,11 @@ public class WebMvcConfig implements WebMvcConfigurer { ...@@ -39,7 +43,11 @@ public class WebMvcConfig implements WebMvcConfigurer {
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
// 跨域拦截器需放在最上面
registry.addInterceptor(corsInterceptor).addPathPatterns("/**");
registry.addInterceptor(authorizationInterceptor).addPathPatterns("/api/**"); registry.addInterceptor(authorizationInterceptor).addPathPatterns("/api/**");
registry.addInterceptor(authorizationInterceptor).addPathPatterns("/app/**");
} }
@Override @Override
......
...@@ -4,6 +4,7 @@ package io.hmit.controller; ...@@ -4,6 +4,7 @@ package io.hmit.controller;
import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.api.R;
import io.hmit.annotation.Login; import io.hmit.annotation.Login;
import io.hmit.common.constant.Constant; import io.hmit.common.constant.Constant;
import io.hmit.common.utils.MD5;
import io.hmit.common.utils.Result; import io.hmit.common.utils.Result;
import io.hmit.common.validator.ValidatorUtils; import io.hmit.common.validator.ValidatorUtils;
import io.hmit.config.ZhelibanUtils; import io.hmit.config.ZhelibanUtils;
...@@ -85,6 +86,9 @@ public class ApiLoginController { ...@@ -85,6 +86,9 @@ public class ApiLoginController {
Map<String,Object> user_map = ZhelibanUtils.getUserInfo(map); Map<String,Object> user_map = ZhelibanUtils.getUserInfo(map);
System.out.println("UserMap是——————————————————————————————"); System.out.println("UserMap是——————————————————————————————");
System.out.println(user_map); System.out.println(user_map);
if ("6001".equals(user_map.get("result"))){
return new Result().error("ticket失效");
}
if (user_map.get("idnum") !=null){ if (user_map.get("idnum") !=null){
//判断是否已经存在了这条信息 //判断是否已经存在了这条信息
UserEntity oldUser=userService.queryByIdnum(URLEncoder.encode(user_map.get("idnum").toString(), "UTF8")); UserEntity oldUser=userService.queryByIdnum(URLEncoder.encode(user_map.get("idnum").toString(), "UTF8"));
...@@ -94,13 +98,20 @@ public class ApiLoginController { ...@@ -94,13 +98,20 @@ public class ApiLoginController {
UserEntity user=new UserEntity(); UserEntity user=new UserEntity();
user.setUsername(user_map.get("username").toString()); user.setUsername(user_map.get("username").toString());
user.setMobile(URLEncoder.encode(user_map.get("mobile").toString(), "UTF8")); user.setMobile(URLEncoder.encode(user_map.get("mobile").toString(), "UTF8"));
user.setPassword(URLEncoder.encode(user_map.get("idnum").toString(), "UTF8")); user.setPassword(URLEncoder.encode(MD5.md5(user_map.get("idnum").toString()), "UTF8"));
user.setIdCardNo(URLEncoder.encode(user_map.get("idnum").toString(), "UTF8")); user.setIdCardNo(URLEncoder.encode(user_map.get("idnum").toString(), "UTF8"));
userService.insert(user); userService.insert(user);
userId = user.getId(); userId = user.getId();
userMap.put("username", user.getUsername());
userMap.put("mobile", user.getMobile());
userMap.put("idnum",user.getIdCardNo());
}else{ }else{
userId = oldUser.getId(); userId = oldUser.getId();
userMap.put("username", oldUser.getUsername());
userMap.put("mobile", oldUser.getMobile());
userMap.put("idnum",oldUser.getIdCardNo());
} }
TokenEntity tokenEntity = tokenService.createToken(userId); TokenEntity tokenEntity = tokenService.createToken(userId);
userMap.put("token", tokenEntity.getToken()); userMap.put("token", tokenEntity.getToken());
......
...@@ -2,6 +2,7 @@ package io.hmit.modules.appointment.controller; ...@@ -2,6 +2,7 @@ package io.hmit.modules.appointment.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import io.hmit.annotation.Login;
import io.hmit.annotation.LoginUser; import io.hmit.annotation.LoginUser;
import io.hmit.common.constant.Constant; import io.hmit.common.constant.Constant;
import io.hmit.common.page.PageData; import io.hmit.common.page.PageData;
...@@ -24,6 +25,7 @@ import io.swagger.annotations.Api; ...@@ -24,6 +25,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -52,21 +54,23 @@ public class AppointmentOrderController { ...@@ -52,21 +54,23 @@ public class AppointmentOrderController {
@Autowired @Autowired
private AppointmentOrderServiceService appointmentOrderServiceService; private AppointmentOrderServiceService appointmentOrderServiceService;
@Login
@GetMapping("page") @GetMapping("page")
@ApiOperation("分页") @ApiOperation("分页")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") , @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") , @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") , @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String"), @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
@ApiImplicitParam(name = "flag", value = "预约或取号,预约传Y,取号传Q", paramType = "query", dataType="String")
}) })
public Result<PageData<AppointmentOrderDTO>> page(@LoginUser UserEntity user, @ApiIgnore @RequestParam Map<String, Object> params){ public Result<PageData<AppointmentOrderDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params,
params.put("userdId",user.getId()); @ApiIgnore @LoginUser UserEntity userEntity){
params.put("appointmentIdCard",userEntity.getIdCardNo());
params.put("appointmentPhone",userEntity.getMobile());
PageData<AppointmentOrderDTO> page = appointmentOrderService.page(params); PageData<AppointmentOrderDTO> page = appointmentOrderService.page(params);
page.getList().forEach(l->{ page.getList().forEach(l->{
//判断已取号或者消除过号 //判断已取号或者消除过号
if(null!=l.getStatus() && 3<=l.getStatus()){ if(null!=l.getStatus() && Constant.ReservationStatus.GET_NUM.getValue()<=l.getStatus()){
YynumberDTO yynumberDTO = appointmentOrderService.findByYuNumber(l.getAppointmentNum()); YynumberDTO yynumberDTO = appointmentOrderService.findByYuNumber(l.getAppointmentNum());
l.setYynumberDTO(yynumberDTO); l.setYynumberDTO(yynumberDTO);
} }
...@@ -75,18 +79,19 @@ public class AppointmentOrderController { ...@@ -75,18 +79,19 @@ public class AppointmentOrderController {
return new Result<PageData<AppointmentOrderDTO>>().ok(page); return new Result<PageData<AppointmentOrderDTO>>().ok(page);
} }
@Login
@GetMapping("{id}") @GetMapping("{id}")
@ApiOperation("信息,预约详情接口") @ApiOperation("信息,预约详情接口")
public Result<AppointmentOrderDTO> get(@PathVariable("id") Long id){ public Result<AppointmentOrderDTO> get(@PathVariable("id") Long id){
AppointmentOrderDTO data = appointmentOrderService.get(id); AppointmentOrderDTO data = appointmentOrderService.get(id);
if(null!=data.getStatus() && 3<=data.getStatus() ) { if(null!=data.getStatus() && Constant.ReservationStatus.GET_NUM.getValue()<=data.getStatus() ) {
data.setYynumberDTO(appointmentOrderService.findByYuNumber(data.getAppointmentNum())); data.setYynumberDTO(appointmentOrderService.findByYuNumber(data.getAppointmentNum()));
} }
return new Result<AppointmentOrderDTO>().ok(data); return new Result<AppointmentOrderDTO>().ok(data);
} }
@GetMapping("orderInfo") @GetMapping("orderInfo")
@ApiOperation("根据手机号或身份证号获取信息") @ApiOperation("根据手机号或身份证号获取信息(给杭州接口)")
public Result<List<ReservationOrderInfoDTO>> queryInfo(String identity){ public Result<List<ReservationOrderInfoDTO>> queryInfo(String identity){
// PageData<AppointmentOrderDTO> pageData = appointmentOrderService.getAppointmentInfoPage(params, identity); // PageData<AppointmentOrderDTO> pageData = appointmentOrderService.getAppointmentInfoPage(params, identity);
List<ReservationOrderInfoDTO> data = appointmentOrderService.getAppointmentInfoPage(identity); List<ReservationOrderInfoDTO> data = appointmentOrderService.getAppointmentInfoPage(identity);
...@@ -100,19 +105,21 @@ public class AppointmentOrderController { ...@@ -100,19 +105,21 @@ public class AppointmentOrderController {
return new Result<List<ReservationOrderInfoDTO>>().ok(data); return new Result<List<ReservationOrderInfoDTO>>().ok(data);
} }
@Login
@PostMapping @PostMapping
@ApiOperation("预约保存") @ApiOperation("预约保存")
public Result<ReservationSuccessDTO> save(@RequestBody ReservationDTO dto){ public Result<ReservationSuccessDTO> save(@RequestBody ReservationDTO dto,
@ApiIgnore @LoginUser UserEntity userEntity){
//校验数据 //校验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
AppointmentOrderDTO appointmentOrderDTO = new AppointmentOrderDTO().assembleAppointmentOrderDTO(dto); AppointmentOrderDTO appointmentOrderDTO = new AppointmentOrderDTO().assembleAppointmentOrderDTO(dto,userEntity);
appointmentOrderService.save(appointmentOrderDTO); appointmentOrderService.save(appointmentOrderDTO);
ReservationSuccessDTO successData = ConvertUtils.sourceToTarget(appointmentOrderDTO,ReservationSuccessDTO.class); ReservationSuccessDTO successData = ConvertUtils.sourceToTarget(appointmentOrderDTO,ReservationSuccessDTO.class);
AppointmentOrderServiceDTO orderServiceDTO = new AppointmentOrderServiceDTO().assembleAppointmentOrderServiceDTO(appointmentOrderDTO); AppointmentOrderServiceDTO orderServiceDTO = new AppointmentOrderServiceDTO().assembleAppointmentOrderServiceDTO(appointmentOrderDTO,userEntity);
appointmentOrderServiceService.save(orderServiceDTO); appointmentOrderServiceService.save(orderServiceDTO);
...@@ -120,7 +127,7 @@ public class AppointmentOrderController { ...@@ -120,7 +127,7 @@ public class AppointmentOrderController {
} }
@PostMapping("/updateReservationInfo") @PostMapping("/updateReservationInfo")
@ApiOperation("更新预约人取号信息") @ApiOperation("更新预约人取号信息(给杭州接口)")
public Result updateReservationInfo(@RequestBody UpdateInfoDTO dto){ public Result updateReservationInfo(@RequestBody UpdateInfoDTO dto){
AppointmentOrderEntity appointmentOrderEntity = appointmentOrderService.selectById(dto.getOrderId()); AppointmentOrderEntity appointmentOrderEntity = appointmentOrderService.selectById(dto.getOrderId());
...@@ -133,33 +140,38 @@ public class AppointmentOrderController { ...@@ -133,33 +140,38 @@ public class AppointmentOrderController {
appointmentOrderEntity.setServiceWindow(String.join(",", dto.getListWin())); appointmentOrderEntity.setServiceWindow(String.join(",", dto.getListWin()));
appointmentOrderEntity.setTicketDate(dto.getTicketDate()); appointmentOrderEntity.setTicketDate(dto.getTicketDate());
//取号机生成取号码则设置取号预约状态为:完成 //取号机生成取号码则设置取号预约状态为:完成
appointmentOrderEntity.setStatus(3); appointmentOrderEntity.setStatus(Constant.ReservationStatus.GET_NUM.getValue());
appointmentOrderEntity.setStatusName("已完成"); appointmentOrderEntity.setStatusName(Constant.ReservationStatus.GET_NUM.getMsg());
appointmentOrderService.updateById(appointmentOrderEntity); appointmentOrderService.updateById(appointmentOrderEntity);
return new Result(); return new Result();
} }
@Login
@GetMapping("/cancel/{id}") @GetMapping("/cancel/{id}")
@ApiOperation("预约取消") @ApiOperation("预约取消")
public Result cancelReservation(@PathVariable("id") Long id){ public Result cancelReservation(@PathVariable("id") Long id,@ApiIgnore @LoginUser UserEntity user){
AppointmentOrderDTO data = appointmentOrderService.get(id); AppointmentOrderDTO data = appointmentOrderService.get(id);
data.setStatus(2); data.setStatus(Constant.ReservationStatus.CANCEL.getValue());
data.setServiceName("已取消"); data.setServiceName(Constant.ReservationStatus.CANCEL.getMsg());
data.setUpdateDate(new Date()); data.setUpdateDate(new Date());
data.setUpdateDate(new Date());
data.setUpdater(user.getId());
appointmentOrderService.update(data); appointmentOrderService.update(data);
return new Result(); return new Result();
} }
@Login
@GetMapping("/deleteOverNum/{id}") @GetMapping("/deleteOverNum/{id}")
@ApiOperation("消除过号") @ApiOperation("消除过号")
public Result deleteOverNum(@PathVariable("id") Long id,@ApiIgnore @LoginUser UserEntity user){ public Result deleteOverNum(@PathVariable("id") Long id,@ApiIgnore @LoginUser UserEntity user){
AppointmentOrderDTO data = appointmentOrderService.get(id); AppointmentOrderDTO data = appointmentOrderService.get(id);
data.setStatus(4); data.setStatus(Constant.ReservationStatus.ELIMINATE_INVALID_NUM.getValue());
data.setStatusName("已消除过号"); data.setStatusName(Constant.ReservationStatus.ELIMINATE_INVALID_NUM.getMsg());
data.setUpdateDate(new Date()); data.setUpdateDate(new Date());
data.setUpdater(user.getId()); data.setUpdater(user.getId());
appointmentOrderService.update(data); appointmentOrderService.update(data);
...@@ -178,7 +190,7 @@ public class AppointmentOrderController { ...@@ -178,7 +190,7 @@ public class AppointmentOrderController {
String appointmentPhone = appointmentOrderDTO.getAppointmentPhone(); String appointmentPhone = appointmentOrderDTO.getAppointmentPhone();
String serviceId = appointmentOrderDTO.getServiceId().toString(); String serviceId = appointmentOrderDTO.getServiceId().toString();
String appointmentPerson = appointmentOrderDTO.getAppointmentPerson(); String appointmentPerson = appointmentOrderDTO.getAppointmentPerson();
String nowtime = String.valueOf(new Date().getTime()/1000); String nowtime = String.valueOf(System.currentTimeMillis()/1000);
String sign = "hjfhsdjfueytRwYSdsa%hdf^jdshfh*KGh$e"+serviceId+nowtime; String sign = "hjfhsdjfueytRwYSdsa%hdf^jdshfh*KGh$e"+serviceId+nowtime;
//判断签到时间是否在预约时间前 //判断签到时间是否在预约时间前
...@@ -192,8 +204,7 @@ public class AppointmentOrderController { ...@@ -192,8 +204,7 @@ public class AppointmentOrderController {
"&sName="+appointmentPerson+ "&sName="+appointmentPerson+
"&sCardID="+appointmentIdCard; "&sCardID="+appointmentIdCard;
// String s = HttpRequestUtil.sendGetAndRetrieveContent(url); // String s = HttpRequestUtil.sendGetAndRetrieveContent(url);
String s = "{\"nStatus\":0,\"sMsg\":\"\",\"sPaperNumber\":\"Z1001\",\"nWait\":1,\"nid\":4322,\"sRegTime\":\"2018-12-21 13:49:21\",\"sQueueName\":\"预约-交通违法处理\",\"listWin\":[\"B03\",\"B04\",\"B05\",\"B06\"]}\n" + String s = "{\"nStatus\":0,\"sMsg\":\"成功\",\"nWait\":9,\"sCallTime\":\"\",\"sRegTime\":\"2018-12-21 13:49:21\",\"sQueueName\":\"交通违法处理\",\"listWin\":[\"B03\",\"B04\",\"B05\",\"B06\"]}\n";
"{\"nStatus\":0,\"sMsg\":\"成功\",\"nWait\":9,\"sCallTime\":\"\",\"sRegTime\":\"2018-12-21 13:49:21\",\"sQueueName\":\"交通违法处理\",\"listWin\":[\"B03\",\"B04\",\"B05\",\"B06\"]}\n";
YynumberDTO yynumberDTO = JSONObject.parseObject(s,YynumberDTO.class); YynumberDTO yynumberDTO = JSONObject.parseObject(s,YynumberDTO.class);
//根据接口返回的结果更新预约单号 //根据接口返回的结果更新预约单号
...@@ -202,8 +213,8 @@ public class AppointmentOrderController { ...@@ -202,8 +213,8 @@ public class AppointmentOrderController {
appointmentOrderDTO.setTicketDate(yynumberDTO.getSRegTime()); appointmentOrderDTO.setTicketDate(yynumberDTO.getSRegTime());
appointmentOrderDTO.setWaitNum(yynumberDTO.getNWait()); appointmentOrderDTO.setWaitNum(yynumberDTO.getNWait());
appointmentOrderDTO.setServiceWindow(String.join(",",yynumberDTO.getListWin())); appointmentOrderDTO.setServiceWindow(String.join(",",yynumberDTO.getListWin()));
appointmentOrderDTO.setStatus(3); appointmentOrderDTO.setStatus(Constant.ReservationStatus.GET_NUM.getValue());
appointmentOrderDTO.setStatusName("签到"); appointmentOrderDTO.setStatusName(Constant.ReservationStatus.GET_NUM.getMsg());
appointmentOrderDTO.setUpdateDate(new Date()); appointmentOrderDTO.setUpdateDate(new Date());
appointmentOrderService.update(appointmentOrderDTO); appointmentOrderService.update(appointmentOrderDTO);
...@@ -221,8 +232,6 @@ public class AppointmentOrderController { ...@@ -221,8 +232,6 @@ public class AppointmentOrderController {
Integer serviceWaitingNum = appointmentOrderService.serviceWaitingNum(serviceId); Integer serviceWaitingNum = appointmentOrderService.serviceWaitingNum(serviceId);
return new Result().ok(serviceWaitingNum); return new Result().ok(serviceWaitingNum);
......
...@@ -50,6 +50,7 @@ public class AppointmentServiceController { ...@@ -50,6 +50,7 @@ public class AppointmentServiceController {
return new Result<PageData<AppointmentServiceDTO>>().ok(page); return new Result<PageData<AppointmentServiceDTO>>().ok(page);
} }
@GetMapping("list") @GetMapping("list")
@ApiOperation("服务树形列表") @ApiOperation("服务树形列表")
public Result<List<AppointmentServiceDTO>> list() { public Result<List<AppointmentServiceDTO>> list() {
......
package io.hmit.modules.appointment.dto; package io.hmit.modules.appointment.dto;
import io.hmit.common.utils.SerialNumberTool; import io.hmit.common.utils.SerialNumberTool;
import io.hmit.entity.UserEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -95,7 +96,7 @@ public class AppointmentOrderDTO implements Serializable { ...@@ -95,7 +96,7 @@ public class AppointmentOrderDTO implements Serializable {
private YynumberDTO yynumberDTO; private YynumberDTO yynumberDTO;
public AppointmentOrderDTO assembleAppointmentOrderDTO(ReservationDTO reservationDTO){ public AppointmentOrderDTO assembleAppointmentOrderDTO(ReservationDTO reservationDTO, UserEntity userEntity){
AppointmentOrderDTO dto = new AppointmentOrderDTO(); AppointmentOrderDTO dto = new AppointmentOrderDTO();
// 当天程序重启后标识位会重置,此处可以设置开始的标识位,4标识下一个生成的会是Y00004 // 当天程序重启后标识位会重置,此处可以设置开始的标识位,4标识下一个生成的会是Y00004
...@@ -111,13 +112,15 @@ public class AppointmentOrderDTO implements Serializable { ...@@ -111,13 +112,15 @@ public class AppointmentOrderDTO implements Serializable {
dto.setServiceName(reservationDTO.getServiceName()); dto.setServiceName(reservationDTO.getServiceName());
dto.setIsApp(reservationDTO.getIsApp()); dto.setIsApp(reservationDTO.getIsApp());
dto.setOrderQueueId(reservationDTO.getOrderQueueId()); dto.setOrderQueueId(reservationDTO.getOrderQueueId());
dto.setAppointmentPerson(reservationDTO.getAppointmentPerson()); dto.setAppointmentPerson(userEntity.getUsername());
dto.setAppointmentPhone(reservationDTO.getAppointmentPhone()); dto.setAppointmentPhone(userEntity.getMobile());
dto.setAppointmentIdCard(reservationDTO.getAppointmentIdCard()); dto.setAppointmentIdCard(userEntity.getIdCardNo());
dto.setAppointmentTime(reservationDTO.getAppointmentTime()); dto.setAppointmentTime(reservationDTO.getAppointmentTime());
dto.setServiceWindow(reservationDTO.getServiceWindow()); dto.setServiceWindow(reservationDTO.getServiceWindow());
dto.setRemark(reservationDTO.getRemark()); dto.setRemark(reservationDTO.getRemark());
dto.setCreator(userEntity.getId());
dto.setUpdater(userEntity.getId());
dto.setCreateDate(new Date()); dto.setCreateDate(new Date());
dto.setUpdateDate(new Date()); dto.setUpdateDate(new Date());
......
package io.hmit.modules.appointment.dto; package io.hmit.modules.appointment.dto;
import io.hmit.entity.UserEntity;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -43,10 +44,14 @@ public class AppointmentOrderServiceDTO implements Serializable { ...@@ -43,10 +44,14 @@ public class AppointmentOrderServiceDTO implements Serializable {
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
private Date updateDate; private Date updateDate;
public AppointmentOrderServiceDTO assembleAppointmentOrderServiceDTO(AppointmentOrderDTO orderDTO){ public AppointmentOrderServiceDTO assembleAppointmentOrderServiceDTO(AppointmentOrderDTO orderDTO, UserEntity userEntity){
AppointmentOrderServiceDTO dto = new AppointmentOrderServiceDTO(); AppointmentOrderServiceDTO dto = new AppointmentOrderServiceDTO();
dto.setOrderId(orderDTO.getId()); dto.setOrderId(orderDTO.getId());
dto.setServiceId(orderDTO.getServiceId()); dto.setServiceId(orderDTO.getServiceId());
dto.setCreator(userEntity.getId());
dto.setUpdater(userEntity.getId());
dto.setCreateDate(new Date());
dto.setUpdateDate(new Date());
return dto; return dto;
} }
......
...@@ -58,11 +58,13 @@ public class AppointmentOrderServiceImpl extends CrudServiceImpl<AppointmentOrde ...@@ -58,11 +58,13 @@ public class AppointmentOrderServiceImpl extends CrudServiceImpl<AppointmentOrde
String id = (String)params.get("id"); String id = (String)params.get("id");
String userId = (String)params.get("userId"); String userId = (String)params.get("userId");
String flag = (String)params.get("flag"); String flag = (String)params.get("flag");
String status = (String)params.get("status");
QueryWrapper<AppointmentOrderEntity> wrapper = new QueryWrapper<>(); QueryWrapper<AppointmentOrderEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), "id", id); wrapper.eq(StringUtils.isNotBlank(id), "id", id);
wrapper.le(StringUtils.isNotBlank(flag) && "Y".equals(flag), "status", 2); wrapper.le(StringUtils.isNotBlank(flag) && "Y".equals(flag), "status", 2);
wrapper.ge(StringUtils.isNotBlank(flag) && "Q".equals(flag), "status", 3); wrapper.ge(StringUtils.isNotBlank(flag) && "Q".equals(flag), "status", 3);
wrapper.eq(StringUtils.isNotBlank(status), "status", status);
return wrapper; return wrapper;
...@@ -88,7 +90,8 @@ public class AppointmentOrderServiceImpl extends CrudServiceImpl<AppointmentOrde ...@@ -88,7 +90,8 @@ public class AppointmentOrderServiceImpl extends CrudServiceImpl<AppointmentOrde
List<AppointmentOrderEntity> appointmentOrders = baseDao.selectList(new QueryWrapper<AppointmentOrderEntity>() List<AppointmentOrderEntity> appointmentOrders = baseDao.selectList(new QueryWrapper<AppointmentOrderEntity>()
.eq(StringUtils.isNotBlank(phone), "appointment_phone", phone) .eq(StringUtils.isNotBlank(phone), "appointment_phone", phone)
.eq(StringUtils.isNotBlank(idCard), "appointment_id_card", idCard) .eq(StringUtils.isNotBlank(idCard), "appointment_id_card", idCard)
.eq("status","1").like("appointment_time",now)); .eq("status",Constant.ReservationStatus.RESERVATION.getValue())
.like("appointment_time",now));
if(appointmentOrders.size()==0){ if(appointmentOrders.size()==0){
return null; return null;
......
...@@ -4,7 +4,7 @@ spring: ...@@ -4,7 +4,7 @@ spring:
# driver-class-name: com.mysql.cj.jdbc.Driver # driver-class-name: com.mysql.cj.jdbc.Driver
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
# url: jdbc:mysql://112.51.130.215:3306/security_enterprise?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai # url: jdbc:mysql://112.51.130.215:3306/security_enterprise?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
url: jdbc:mysql://sh-cdb-jsrwe2i2.sql.tencentcdb.com:60548/bl_appointment?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false url: jdbc:mysql://sh-cdb-jsrwe2i2.sql.tencentcdb.com:60548/bl_appointment?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useSSL=false
username: root username: root
password: Hmit@2020 password: Hmit@2020
initial-size: 10 initial-size: 10
......
...@@ -93,12 +93,12 @@ public interface Constant { ...@@ -93,12 +93,12 @@ public interface Constant {
String MAIL_CONFIG_KEY = "MAIL_CONFIG_KEY"; String MAIL_CONFIG_KEY = "MAIL_CONFIG_KEY";
/** /**
* 邮件配置KEY * 预约时间--上午截止时间
*/ */
String AM_END_TIME = "11:30"; String AM_END_TIME = "11:30";
/** /**
* 邮件配置KEY * 预约时间--下午开始时间
*/ */
String PM_START_TIME = "13:30"; String PM_START_TIME = "13:30";
...@@ -189,4 +189,46 @@ public interface Constant { ...@@ -189,4 +189,46 @@ public interface Constant {
} }
} }
/**
* 预约状态
*/
enum ReservationStatus {
/**
* 已预约
*/
RESERVATION(1,"已预约"),
/**
* 预约已取消
*/
CANCEL(2,"预约已取消"),
/**
* 已取号
*/
GET_NUM(3,"已取号"),
/**
* 消除无效号码
*/
ELIMINATE_INVALID_NUM(4,"消除无效号码"),
/**
* 爽约/失约
*/
BREAK_APPOINTMENT(0,"爽约");
private int value;
private String msg;
ReservationStatus(int value,String msg) {
this.value = value;
this.msg = msg;
}
public int getValue() {
return value;
}
public String getMsg() {
return msg;
}
}
} }
...@@ -8,10 +8,7 @@ import org.joda.time.format.DateTimeFormatter; ...@@ -8,10 +8,7 @@ import org.joda.time.format.DateTimeFormatter;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/** /**
* 日期处理 * 日期处理
...@@ -24,6 +21,10 @@ public class DateUtils { ...@@ -24,6 +21,10 @@ public class DateUtils {
* 时间格式(yyyy-MM-dd) * 时间格式(yyyy-MM-dd)
*/ */
public final static String DATE_PATTERN = "yyyy-MM-dd"; public final static String DATE_PATTERN = "yyyy-MM-dd";
/**
* 时间格式(HH:mm)
*/
public final static String HOUR_PATTERN = "HH:mm";
/** /**
* 时间格式(yyyy-MM-dd HH:mm:ss) * 时间格式(yyyy-MM-dd HH:mm:ss)
*/ */
...@@ -267,4 +268,32 @@ public class DateUtils { ...@@ -267,4 +268,32 @@ public class DateUtils {
return timeList; return timeList;
} }
/**
* 将预约时间格式拆分,比较时间大小并返回
*
* @param times 开始时间 传入的时间格式:2021-02-02 08:30-09:00
* @return 当前时间是否大于传入的时间
* @throws ParseException
*/
public static boolean compareTime(String times) throws ParseException {
String [] time = times.split(" ");
String now = format(new Date());
if(now.compareTo(time[0])>0){
System.out.println("当前时间:"+now+" > 传入时间:"+time[0]);
return true;
}
if(now.compareTo(time[0]) == 0){
String hour = format(new Date(),HOUR_PATTERN);
String [] hours = time[1].split("-");
if(hour.compareTo(hours[1]) >0 ){
System.out.println("当前小时:"+hour+" > 传入小时:"+ hours[1]);
}
return true;
}
return false;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment