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 @@ + -