乘车人表的设计
新增/修改时间保存到毫秒
drop table if exists `passenger`; create table `passenger` ( `id` bigint not null comment 'id', `member_id` bigint not null comment '会员id', `name` varchar(20) not null comment '姓名', `id_card` varchar(18) not null comment '身份证', `type` char(1) not null comment '旅客类型|枚举[PassengerTypeEnum]', `create_time` datetime(3) comment '新增时间', `update_time` datetime(3) comment '修改时间', primary key (`id`), index `member_id_index` (`member_id`) ) engine=innodb default charset=utf8mb4 comment='乘车人';
用generator-config-member.xml生成持久层代码
<table tableName="passenger" domainObjectName="Passenger"/>
打开方式Maven--generator--Plugins--mybatis-generator--双击
增加乘车人类型枚举
1 package com.zihans.train.member.enums; 2 3 import java.util.ArrayList; 4 import java.util.EnumSet; 5 import java.util.HashMap; 6 import java.util.List; 7 8 public enum PassengerTypeEnum { 9 10 ADULT("1", "成人"), 11 CHILD("2", "儿童"), 12 STUDENT("3", "学生"); 13 14 private String code; 15 16 private String desc; 17 18 PassengerTypeEnum(String code, String desc) { 19 this.code = code; 20 this.desc = desc; 21 } 22 23 public String getCode() { 24 return code; 25 } 26 27 public void setCode(String code) { 28 this.code = code; 29 } 30 31 public void setDesc(String desc) { 32 this.desc = desc; 33 } 34 35 public String getDesc() { 36 return desc; 37 } 38 39 public static List<HashMap<String,String>> getEnumList() { 40 List<HashMap<String, String>> list = new ArrayList<>(); 41 for (PassengerTypeEnum anEnum : EnumSet.allOf(PassengerTypeEnum.class)) { 42 HashMap<String, String> map = new HashMap<>(); 43 map.put("code",anEnum.code); 44 map.put("desc",anEnum.desc); 45 list.add(map); 46 } 47 return list; 48 } 49 }
乘车人新增接口开发
暂时与Passager相同
1 package com.zihans.train.member.req; 2 3 import java.util.Date; 4 5 public class PassengerSaveReq { 6 private Long id; 7 8 private Long memberId; 9 10 private String name; 11 12 private String idCard; 13 14 private String type; 15 16 private Date createTime; 17 18 private Date updateTime; 19 20 public Long getId() { 21 return id; 22 } 23 24 public void setId(Long id) { 25 this.id = id; 26 } 27 28 public Long getMemberId() { 29 return memberId; 30 } 31 32 public void setMemberId(Long memberId) { 33 this.memberId = memberId; 34 } 35 36 public String getName() { 37 return name; 38 } 39 40 public void setName(String name) { 41 this.name = name; 42 } 43 44 public String getIdCard() { 45 return idCard; 46 } 47 48 public void setIdCard(String idCard) { 49 this.idCard = idCard; 50 } 51 52 public String getType() { 53 return type; 54 } 55 56 public void setType(String type) { 57 this.type = type; 58 } 59 60 public Date getCreateTime() { 61 return createTime; 62 } 63 64 public void setCreateTime(Date createTime) { 65 this.createTime = createTime; 66 } 67 68 public Date getUpdateTime() { 69 return updateTime; 70 } 71 72 public void setUpdateTime(Date updateTime) { 73 this.updateTime = updateTime; 74 } 75 76 @Override 77 public String toString() { 78 StringBuilder sb = new StringBuilder(); 79 sb.append(getClass().getSimpleName()); 80 sb.append(" ["); 81 sb.append("Hash = ").append(hashCode()); 82 sb.append(", id=").append(id); 83 sb.append(", memberId=").append(memberId); 84 sb.append(", name=").append(name); 85 sb.append(", idCard=").append(idCard); 86 sb.append(", type=").append(type); 87 sb.append(", createTime=").append(createTime); 88 sb.append(", updateTime=").append(updateTime); 89 sb.append("]"); 90 return sb.toString(); 91 } 92 }
保存用户信息
1 package com.zihans.train.member.service; 2 3 import cn.hutool.core.bean.BeanUtil; 4 import cn.hutool.core.date.DateTime; 5 import com.zihans.train.common.util.SnowUtil; 6 import com.zihans.train.member.domain.Passenger; 7 import com.zihans.train.member.mapper.PassengerMapper; 8 import com.zihans.train.member.req.PassengerSaveReq; 9 import jakarta.annotation.Resource; 10 import org.springframework.stereotype.Service; 11 12 @Service 13 public class PassengerService { 14 15 @Resource 16 private PassengerMapper passengerMapper; 17 18 public void save(PassengerSaveReq req) { 19 DateTime now = DateTime.now(); 20 Passenger passenger = BeanUtil.copyProperties(req, Passenger.class); 21 passenger.setId(SnowUtil.getSnowflakeNextId()); 22 passenger.setCreateTime(now); 23 passenger.setUpdateTime(now); 24 passengerMapper.insert(passenger); 25 } 26 }
controller
1 package com.zihans.train.member.controller; 2 3 4 import com.zihans.train.common.resp.CommonResp; 5 import com.zihans.train.member.req.PassengerSaveReq; 6 import com.zihans.train.member.service.PassengerService; 7 import jakarta.annotation.Resource; 8 import jakarta.validation.Valid; 9 import org.springframework.web.bind.annotation.PostMapping; 10 import org.springframework.web.bind.annotation.RequestBody; 11 import org.springframework.web.bind.annotation.RequestMapping; 12 import org.springframework.web.bind.annotation.RestController; 13 14 @RestController 15 @RequestMapping("/passenger") 16 public class PassengerController { 17 18 @Resource 19 private PassengerService passengerService; 20 21 @PostMapping("/save") 22 public CommonResp<Object> save(@Valid @RequestBody PassengerSaveReq req) { 23 passengerService.save(req); 24 return new CommonResp<>(); 25 } 26 27 }