diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 65d1d7f..48701a5 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -16,7 +16,7 @@
diff --git a/backend/src/main/java/com/backend/controller/ExpressController.java b/backend/src/main/java/com/backend/controller/ExpressController.java
new file mode 100644
index 0000000..6c54daa
--- /dev/null
+++ b/backend/src/main/java/com/backend/controller/ExpressController.java
@@ -0,0 +1,103 @@
+package com.backend.controller;
+
+
+import com.backend.pojo.Express;
+import com.backend.pojo.Result;
+import com.backend.service.ExpressService;
+import jakarta.validation.constraints.Pattern;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+@RestController
+@RequestMapping("/express")
+@Validated
+public class ExpressController {
+
+ @Autowired
+ private ExpressService expressService;
+
+ @Autowired
+ private StringRedisTemplate stringRedisTemplate;
+
+ @PostMapping("/addexpress")
+ public Result addexpress(
+ @Pattern(regexp = "^[A-Za-z0-9]{10,20}$") final String expressid, // 快递ID,长度10-20字符,字母或数字
+ @Pattern(regexp = "^\\S{2,30}$") final String sename, // 发件人姓名,长度2-30字符,不能有空白
+ @Pattern(regexp = "^[0-9]{11}$") final String sephone, // 发件人电话,11位数字
+ @Pattern(regexp = "^\\S{5,100}$") final String seaddress, // 发件人地址,长度5-100字符
+ @Pattern(regexp = "^\\S{2,30}$") final String rename, // 收件人姓名,长度2-30字符,不能有空白
+ @Pattern(regexp = "^[0-9]{11}$") final String rephone, // 收件人电话,11位数字
+ @Pattern(regexp = "^\\S{5,100}$") final String readdress, // 收件人地址,长度5-100字符
+ @Pattern(regexp = "^[0-1]$") final Integer issign, // 是否签收,0或1
+ @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$") final Date signtime // 签收时间,格式yyyy-MM-dd HH:mm:ss
+ ) {
+ final Express existexpress = expressService.findExpressById(expressid);
+ if (existexpress== null) {
+ expressService.insert(expressid, sename, sephone, seaddress, rename, rephone, readdress, issign, signtime);
+ return Result.success();
+ } else {
+ return Result.error("该快递单号已存在");
+ }
+ }
+
+ @PostMapping("/updateexpress")
+ public Result updateExpress(
+ @Pattern(regexp = "^[A-Za-z0-9]{10,20}$") final String expressid, // 快递ID,长度10-20字符,字母或数字
+ @Pattern(regexp = "^\\S{2,30}$") final String sename, // 发件人姓名,长度2-30字符,不能有空白
+ @Pattern(regexp = "^[0-9]{11}$") final String sephone, // 发件人电话,11位数字
+ @Pattern(regexp = "^\\S{5,100}$") final String seaddress, // 发件人地址,长度5-100字符
+ @Pattern(regexp = "^\\S{2,30}$") final String rename, // 收件人姓名,长度2-30字符,不能有空白
+ @Pattern(regexp = "^[0-9]{11}$") final String rephone, // 收件人电话,10位数字
+ @Pattern(regexp = "^\\S{5,100}$") final String readdress, // 收件人地址,长度5-100字符
+ @Pattern(regexp = "^[0-1]$") final Integer issign, // 是否签收,0或1
+ @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$") final Date signtime // 签收时间,格式yyyy-MM-dd HH:mm:ss
+ ) {
+ Express express = new Express();
+ express.setExpressid(expressid);
+ express.setSename(sename);
+ express.setSephone(sephone);
+ express.setSeaddress(seaddress);
+ express.setRename(rename);
+ express.setRephone(rephone);
+ express.setReaddress(readdress);
+ express.setIssigned(issign);
+ express.setSigntime(signtime);
+
+ expressService.update(express);
+
+ return Result.success(express);
+ }
+
+ @PostMapping("/deleteexpress")
+ public Result deleteExpress(
+ @Pattern(regexp = "^[A-Za-z0-9]{10,20}$") final String expressid
+ ) {
+ final Express express = expressService.findExpressById(expressid);
+ if(express!= null){
+ expressService.delete(express);
+ return Result.success();
+ } else {
+ return Result.error("快递单号为空或者不存在");
+ }
+ }
+
+ @PostMapping("/getexpress")
+ public Result getExpress(
+ @Pattern(regexp = "^[A-Za-z0-9]{10,20}$") final String expressid
+ ) {
+ final Express express = expressService.findExpressById(expressid);
+ if(express != null){
+ return Result.success(express);
+ } else {
+ return Result.error("快递单号为空或者不存在");
+ }
+ }
+
+
+}
diff --git a/backend/src/main/java/com/backend/mapper/ExpressMapper.java b/backend/src/main/java/com/backend/mapper/ExpressMapper.java
new file mode 100644
index 0000000..e37ad66
--- /dev/null
+++ b/backend/src/main/java/com/backend/mapper/ExpressMapper.java
@@ -0,0 +1,28 @@
+package com.backend.mapper;
+
+import com.backend.pojo.Express;
+import org.apache.ibatis.annotations.*;
+
+import java.util.Date;
+
+@Mapper
+public interface ExpressMapper {
+
+ @Select("SELECT * FROM express_info WHERE expressid = #{expressid}")
+ Express findExpressById(String expressid);
+
+ @Insert("INSERT INTO express_info(expressid, sename, sephone, seaddress, rename, rephone, readdress, issign, signtime) " +
+ "VALUES(#{expressid}, #{sename}, #{sephone}, #{seaddress}, #{rename}, #{rephone}, #{readdress}, #{issign} , #{signtime})")
+ void add(final String expressid, final String sename, final String sephone,
+ final String seaddress, final String rename, final String rephone,
+ final String readdress, final Integer isSign, final Date signtime);
+
+ @Update("UPDATE express_info SET expressid = #{expressid}, sename = #{sename}," +
+ " seaddress = #{seaddress}, rename = #{rename}, readdress = #{readdress}, isSign = #{isSign} WHERE expressid = #{expressid}")
+ void update(Express express);
+
+ @Delete("DELETE FROM express_info WHERE expressid = #{expressid}")
+ void delete(Express express);
+
+
+}
diff --git a/backend/src/main/java/com/backend/pojo/Express.java b/backend/src/main/java/com/backend/pojo/Express.java
new file mode 100644
index 0000000..17162cf
--- /dev/null
+++ b/backend/src/main/java/com/backend/pojo/Express.java
@@ -0,0 +1,21 @@
+package com.backend.pojo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class Express {
+ private String expressid;
+ private String sename;
+ private String sephone;
+ private String seaddress;
+ private String rename;
+ private String rephone;
+ private String readdress;
+ private Integer issigned;
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy年MM月dd日")
+ private Date signtime;
+
+}
diff --git a/backend/src/main/java/com/backend/service/ExpressService.java b/backend/src/main/java/com/backend/service/ExpressService.java
new file mode 100644
index 0000000..72da867
--- /dev/null
+++ b/backend/src/main/java/com/backend/service/ExpressService.java
@@ -0,0 +1,18 @@
+package com.backend.service;
+
+import com.backend.pojo.Express;
+
+import java.util.Date;
+
+public interface ExpressService {
+ Express findExpressById(final String expressId);
+
+ void insert(final String expressId,
+ final String sename, final String sephone, final String seaddress,
+ final String rename, final String rephone, final String readdress,
+ final Integer issign, final Date signtime);
+
+ void update(final Express express);
+
+ void delete(final Express express);
+}
diff --git a/frontend/src/View/Login.vue b/frontend/src/View/Login.vue
index da68931..90a53f8 100644
--- a/frontend/src/View/Login.vue
+++ b/frontend/src/View/Login.vue
@@ -1,3 +1,69 @@
+
+
+
+
+
+
+
+ 注册
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注册
+
+
+
+
+ ← 返回
+
+
+
+
+
+
+
+ 登录
+
+
+
+
+
+
+
+
+
+ 记住我
+ 忘记密码?
+
+
+
+
+
+ 登录
+
+
+
+
+ 注册 →
+
+
+
+
+
+
-
-
-
-
-
-
-
- 注册
-
-
-
-
-
-
-
-
-
-
-
-
-
- 注册
-
-
-
-
- ← 返回
-
-
-
-
-
-
- 登录
-
-
-
-
-
-
-
-
-
- 记住我
- 忘记密码?
-
-
-
-
-
- 登录
-
-
-
-
- 注册 →
-
-
-
-
-
-