From ef717882ae3d0a448b95a3f17fb8a66a5f783d34 Mon Sep 17 00:00:00 2001 From: clay <20932067@zju.edu.cn> Date: Fri, 18 Dec 2020 12:24:29 +0800 Subject: [PATCH] 01 --- .../controller/ComplaintController.java | 150 ++++++++++++++++++ .../controller/MailConfigController.java | 60 ++++--- .../express/controller/MessageController.java | 91 +++++++---- .../tomey/api/express/dao/ComplaintDao.java | 55 +++++++ .../tomey/api/express/dao/MessagesDao.java | 3 + .../api/express/dto/ComplaintSelect.java | 73 +++++++++ .../tomey/api/express/entity/Account.java | 8 + .../tomey/api/express/entity/Complaint.java | 104 ++++++++++++ .../tomey/api/express/entity/MailConfig.java | 12 +- .../tomey/api/express/entity/Messages.java | 5 + .../live/tomey/api/express/entity/Order.java | 8 + .../api/express/service/ComplaintService.java | 45 ++++++ .../express/service/MailConfigService.java | 3 + .../api/express/service/MessageService.java | 20 ++- .../service/impl/ComplaintServiceImpl.java | 100 ++++++++++++ .../service/impl/MailConfigServiceImpl.java | 44 +++++ .../service/impl/MessageServiceImpl.java | 52 +++--- .../service/impl/OrderServiceImpl.java | 5 +- src/main/resources/application.properties | 6 +- src/main/resources/mapper/AccountDao.xml | 2 +- src/main/resources/mapper/ComplaintDao.xml | 51 ++++++ src/main/resources/mapper/MailConfigDao.xml | 3 +- src/main/resources/mapper/MessagesDao.xml | 3 + 23 files changed, 812 insertions(+), 91 deletions(-) create mode 100644 src/main/java/live/tomey/api/express/controller/ComplaintController.java create mode 100644 src/main/java/live/tomey/api/express/dao/ComplaintDao.java create mode 100644 src/main/java/live/tomey/api/express/dto/ComplaintSelect.java create mode 100644 src/main/java/live/tomey/api/express/entity/Complaint.java create mode 100644 src/main/java/live/tomey/api/express/service/ComplaintService.java create mode 100644 src/main/java/live/tomey/api/express/service/impl/ComplaintServiceImpl.java create mode 100644 src/main/resources/mapper/ComplaintDao.xml diff --git a/src/main/java/live/tomey/api/express/controller/ComplaintController.java b/src/main/java/live/tomey/api/express/controller/ComplaintController.java new file mode 100644 index 0000000..8a82443 --- /dev/null +++ b/src/main/java/live/tomey/api/express/controller/ComplaintController.java @@ -0,0 +1,150 @@ +package live.tomey.api.express.controller; + +import live.tomey.api.express.aop.PassToken; +import live.tomey.api.express.aop.Root; +import live.tomey.api.express.dto.ComplaintSelect; +import live.tomey.api.express.dto.Result; +import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Complaint; +import live.tomey.api.express.service.ComplaintService; +import live.tomey.api.express.unit.HttpServletRequestUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * @author clay + * @version 1.0 + * @mail 20932067@zju.edu.cn + * @date 2020/12/16 19:38 + */ +@RestController +public class ComplaintController { + private Logger logger = LoggerFactory.getLogger(ComplaintController.class); + @Autowired + private ComplaintService complaintService; + + + @Root + @RequestMapping(value = "getcomplaintcount", method = RequestMethod.POST) + private Result getComplaintCount(HttpServletRequest request) { + try { + ServerResult serverResult = complaintService.getComplaintCount(); + if (serverResult.isStart()){ + return new Result(true,serverResult.getData()); + }else { + return new Result(false,-1,serverResult.getMsg()); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, 0, "系统错误!"); + } + } + + + @PassToken + @RequestMapping(value = "addcomplaint", method = RequestMethod.POST) + private Result addComplaint(HttpServletRequest request) { + try { + String name = HttpServletRequestUtil.getString(request, "name"); + String phone = HttpServletRequestUtil.getString(request, "phone"); + String content = HttpServletRequestUtil.getString(request, "content"); + Complaint complaint = new Complaint(name, phone, content); + if (name == null) { + return new Result(false, 0, "姓名不能为空!"); + } + if (phone == null) { + return new Result(false, 0, "电话不能为空!"); + } + if (content == null) { + return new Result(false, 0, "内容不能为空!"); + } + ServerResult serverResult = complaintService.addComplaint(complaint); + if (serverResult.isStart()) { + return new Result(true, 1, serverResult.getMsg()); + } else { + return new Result(false, 0, serverResult.getMsg()); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, 0, "系统错误!"); + } + } + + @Root + @RequestMapping(value = "getcomplaint", method = RequestMethod.POST) + private Result getComplaint(HttpServletRequest request) { + try { + Integer size = HttpServletRequestUtil.getInteger(request, "size"); + Integer page = HttpServletRequestUtil.getInteger(request, "page"); + String name = HttpServletRequestUtil.getString(request, "name"); + String phone = HttpServletRequestUtil.getString(request, "phone"); + String content = HttpServletRequestUtil.getString(request, "content"); + Integer isReader = HttpServletRequestUtil.getInteger(request, "isReader"); + if (size == -1 || page == -1) { + return new Result(false, 0, "数量和页数不能为空"); + } + page = page - 1; + ComplaintSelect complaintSelect = new ComplaintSelect(page, size, name, phone, content, isReader); + ServerResult serverResult = complaintService.getComplaint(complaintSelect); + if (serverResult.isStart()) { + Map modelMap = new HashMap(); + modelMap.put("list", serverResult.getData()); + modelMap.put("count", serverResult.getCount()); + return new Result(true, modelMap); + } else { + return new Result(false, -1, serverResult.getMsg()); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, 0, "系统错误!"); + } + } + + @Root + @RequestMapping(value = "readercomplaint", method = RequestMethod.POST) + private Result readerComplaint(HttpServletRequest request) { + try { + Integer id = HttpServletRequestUtil.getInteger(request, "id"); + if (id < 0) { + return new Result(false, 0, "id不能为空!"); + } + ServerResult serverResult = complaintService.readerComplaint(id); + if (serverResult.isStart()) { + return new Result(true, 0, serverResult.getMsg()); + } else { + return new Result(false, -1, serverResult.getMsg()); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, 0, "系统错误!"); + } + } + + @Root + @RequestMapping(value = "removecomplaint", method = RequestMethod.POST) + private Result removeComplaint(HttpServletRequest request) { + try { + Integer id = HttpServletRequestUtil.getInteger(request, "id"); + if (id < 0) { + return new Result(false, 0, "id不能为空!"); + } + ServerResult serverResult = complaintService.removeComplaint(id); + if (serverResult.isStart()) { + return new Result(true, 0, serverResult.getMsg()); + } else { + return new Result(false, -1, serverResult.getMsg()); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, 0, "系统错误!"); + } + } +} diff --git a/src/main/java/live/tomey/api/express/controller/MailConfigController.java b/src/main/java/live/tomey/api/express/controller/MailConfigController.java index 7c1a8ca..927927e 100644 --- a/src/main/java/live/tomey/api/express/controller/MailConfigController.java +++ b/src/main/java/live/tomey/api/express/controller/MailConfigController.java @@ -3,6 +3,7 @@ package live.tomey.api.express.controller; import live.tomey.api.express.aop.Root; import live.tomey.api.express.dto.Result; import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Account; import live.tomey.api.express.entity.MailConfig; import live.tomey.api.express.service.MailConfigService; import live.tomey.api.express.unit.HttpServletRequestUtil; @@ -28,41 +29,54 @@ public class MailConfigController { @Autowired private MailConfigService mailConfigService; - @Root - @RequestMapping(value = "editmailconfig",method = RequestMethod.POST) - private Result editMailConfig(HttpServletRequest request){ + @RequestMapping(value = "testsendmail", method = RequestMethod.POST) + private Result testSendMail(HttpServletRequest request) { try { - String sender = HttpServletRequestUtil.getString(request,"sender"); - String personal = HttpServletRequestUtil.getString(request,"personal"); - String emailSmtpHost = HttpServletRequestUtil.getString(request,"emailSmtpHost"); - String emailSmtpPort = HttpServletRequestUtil.getString(request,"emailSmtpPort"); - String username = HttpServletRequestUtil.getString(request,"username"); - String password = HttpServletRequestUtil.getString(request,"password"); - String encryption = HttpServletRequestUtil.getString(request,"encryption"); - Integer state = HttpServletRequestUtil.getInteger(request,"state"); - MailConfig mailConfig = new MailConfig(sender,personal,emailSmtpHost,emailSmtpPort,username,password,encryption,state); - ServerResult serverResult = mailConfigService.editMailConfig(mailConfig); - return new Result(serverResult.isStart(),0,serverResult.getMsg()); - }catch (RuntimeException e){ + Account account = (Account) request.getSession().getAttribute("account"); + ServerResult serverResult = mailConfigService.testSendMessage(account); + return new Result(true,0 ,serverResult.getMsg()); + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new Result<>(false,-1,"系统错误!"); + return new Result(false, -1, "系统错误!"); } } @Root - @RequestMapping(value = "getmailconfig" ,method = RequestMethod.POST) + @RequestMapping(value = "editmailconfig", method = RequestMethod.POST) + private Result editMailConfig(HttpServletRequest request) { + try { + String sender = HttpServletRequestUtil.getString(request, "sender"); + String personal = HttpServletRequestUtil.getString(request, "personal"); + String emailSmtpHost = HttpServletRequestUtil.getString(request, "emailSmtpHost"); + String emailSmtpPort = HttpServletRequestUtil.getString(request, "emailSmtpPort"); + String username = HttpServletRequestUtil.getString(request, "username"); + String password = HttpServletRequestUtil.getString(request, "password"); + String encryption = HttpServletRequestUtil.getString(request, "encryption"); + Integer state = HttpServletRequestUtil.getInteger(request, "state"); + String testMail = HttpServletRequestUtil.getString(request, "testMail"); + MailConfig mailConfig = new MailConfig(sender, personal, emailSmtpHost, emailSmtpPort, username, password, encryption, state, testMail); + ServerResult serverResult = mailConfigService.editMailConfig(mailConfig); + return new Result(serverResult.isStart(), 0, serverResult.getMsg()); + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result<>(false, -1, "系统错误!"); + } + } + + @Root + @RequestMapping(value = "getmailconfig", method = RequestMethod.POST) private Result getMailConfig(HttpServletRequest request) { try { ServerResult serverResult = mailConfigService.getMailConfig(); - if (serverResult.isStart()){ - return new Result(true,serverResult.getData()); - }else { - return new Result(false,-1,serverResult.getMsg()); + if (serverResult.isStart()) { + return new Result(true, serverResult.getData()); + } else { + return new Result(false, -1, serverResult.getMsg()); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new Result<>(false,-1,"系统错误!"); + return new Result<>(false, -1, "系统错误!"); } } diff --git a/src/main/java/live/tomey/api/express/controller/MessageController.java b/src/main/java/live/tomey/api/express/controller/MessageController.java index 1a92005..8c2f69f 100644 --- a/src/main/java/live/tomey/api/express/controller/MessageController.java +++ b/src/main/java/live/tomey/api/express/controller/MessageController.java @@ -32,57 +32,78 @@ public class MessageController { @Autowired private MessageService messageService; + @Public - @RequestMapping(value = "removemessage",method = RequestMethod.POST) - private Result removeMessage(HttpServletRequest request){ + @RequestMapping(value = "getmessagecount", method = RequestMethod.POST) + private Result getMessade(HttpServletRequest request) { Account account = (Account) request.getSession().getAttribute("account"); if (account == null) { return new Result(false, OrderEnum.OFFLINE.getState(), OrderEnum.OFFLINE.getStateInfo()); } try { - Integer id = HttpServletRequestUtil.getInteger(request,"id"); - if (id<0){ - return new Result(false,-1,"id不能为空!"); - } - ServerResult serverResult = messageService.removeMessage(id,account.getId()); + ServerResult serverResult = messageService.getMessageReaderCount(account.getId()); if (serverResult.isStart()){ - return new Result(serverResult.isStart(),0,serverResult.getMsg()); + return new Result(true,serverResult.getData()); }else { - return new Result(serverResult.isStart(),-1,serverResult.getMsg()); + return new Result(false,0,serverResult.getMsg()); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new Result(false,0,"系统错误"); + return new Result(false, 0, "系统错误"); } } @Public - @RequestMapping(value = "readmessage",method = RequestMethod.POST) - private Result readMessage(HttpServletRequest request){ + @RequestMapping(value = "removemessage", method = RequestMethod.POST) + private Result removeMessage(HttpServletRequest request) { Account account = (Account) request.getSession().getAttribute("account"); if (account == null) { return new Result(false, OrderEnum.OFFLINE.getState(), OrderEnum.OFFLINE.getStateInfo()); } try { - Integer id = HttpServletRequestUtil.getInteger(request,"id"); - if (id<0){ - return new Result(false,-1,"id不能为空!"); + Integer id = HttpServletRequestUtil.getInteger(request, "id"); + if (id < 0) { + return new Result(false, -1, "id不能为空!"); } - ServerResult serverResult = messageService.readMessage(id,account.getId()); - if (serverResult.isStart()){ - return new Result(serverResult.isStart(),0,serverResult.getMsg()); - }else { - return new Result(serverResult.isStart(),-1,serverResult.getMsg()); + ServerResult serverResult = messageService.removeMessage(id, account.getId()); + if (serverResult.isStart()) { + return new Result(serverResult.isStart(), 0, serverResult.getMsg()); + } else { + return new Result(serverResult.isStart(), -1, serverResult.getMsg()); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new Result(false,0,"系统错误"); + return new Result(false, 0, "系统错误"); } } @Public - @RequestMapping(value = "getmessage",method = RequestMethod.POST) - private Result getMessage(HttpServletRequest request){ + @RequestMapping(value = "readmessage", method = RequestMethod.POST) + private Result readMessage(HttpServletRequest request) { + Account account = (Account) request.getSession().getAttribute("account"); + if (account == null) { + return new Result(false, OrderEnum.OFFLINE.getState(), OrderEnum.OFFLINE.getStateInfo()); + } + try { + Integer id = HttpServletRequestUtil.getInteger(request, "id"); + if (id < 0) { + return new Result(false, -1, "id不能为空!"); + } + ServerResult serverResult = messageService.readMessage(id, account.getId()); + if (serverResult.isStart()) { + return new Result(serverResult.isStart(), 0, serverResult.getMsg()); + } else { + return new Result(serverResult.isStart(), -1, serverResult.getMsg()); + } + } catch (RuntimeException e) { + logger.error(e.getMessage()); + return new Result(false, 0, "系统错误"); + } + } + + @Public + @RequestMapping(value = "getmessage", method = RequestMethod.POST) + private Result getMessage(HttpServletRequest request) { Account account = (Account) request.getSession().getAttribute("account"); if (account == null) { return new Result(false, OrderEnum.OFFLINE.getState(), OrderEnum.OFFLINE.getStateInfo()); @@ -94,19 +115,19 @@ public class MessageController { if (size == -1 || page == -1) { return new Result(false, 0, "数量和页数不能为空"); } - MessageSelect messageSelect = new MessageSelect(page,size,account.getId(),title); - ServerResult serverResult = messageService.getmessage(messageSelect); - if (serverResult.isStart()){ + MessageSelect messageSelect = new MessageSelect(page, size, account.getId(), title); + ServerResult serverResult = messageService.getMessage(messageSelect); + if (serverResult.isStart()) { Map modelMap = new HashMap(); - modelMap.put("list",serverResult.getData()); - modelMap.put("count",serverResult.getCount()); - return new Result(true,modelMap); - }else { - return new Result(false,0,serverResult.getMsg()); + modelMap.put("list", serverResult.getData()); + modelMap.put("count", serverResult.getCount()); + return new Result(true, modelMap); + } else { + return new Result(false, 0, serverResult.getMsg()); } - }catch (RuntimeException e){ + } catch (RuntimeException e) { logger.error(e.getMessage()); - return new Result(false,0,"系统错误"); + return new Result(false, 0, "系统错误"); } } diff --git a/src/main/java/live/tomey/api/express/dao/ComplaintDao.java b/src/main/java/live/tomey/api/express/dao/ComplaintDao.java new file mode 100644 index 0000000..79bdd11 --- /dev/null +++ b/src/main/java/live/tomey/api/express/dao/ComplaintDao.java @@ -0,0 +1,55 @@ +package live.tomey.api.express.dao; + +import live.tomey.api.express.dto.ComplaintSelect; +import live.tomey.api.express.entity.Complaint; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author clay + * @version 1.0 + * @mail 20932067@zju.edu.cn + * @date 2020/12/16 18:59 + */ +public interface ComplaintDao { + /** + * 新增投诉建议 + * @param complaint + * @return + */ + Integer insertComplaint(@Param("complaint") Complaint complaint); + + /** + * 获取投诉建议 + * @return + */ + List queryComplaint(@Param("complaintSelect") ComplaintSelect complaintSelect); + + /** + * 获取列表总数 + * @param complaintSelect + * @return + */ + Integer queryComplaintCount(@Param("complaintSelect") ComplaintSelect complaintSelect); + + /** + * 阅读投诉建议 + * @param id + * @return + */ + Integer readerComplaint(@Param("id") Integer id); + + /** + * 删除投诉与建议 + * @param id + * @return + */ + Integer deleteComplaint(@Param("id") Integer id); + + /** + * 获取投诉和建议未读消息数量 + * @return + */ + Integer getComplaintCount(); +} diff --git a/src/main/java/live/tomey/api/express/dao/MessagesDao.java b/src/main/java/live/tomey/api/express/dao/MessagesDao.java index 94b0e2d..fb051fa 100644 --- a/src/main/java/live/tomey/api/express/dao/MessagesDao.java +++ b/src/main/java/live/tomey/api/express/dao/MessagesDao.java @@ -46,5 +46,8 @@ public interface MessagesDao { Integer selectMessageCount(@Param("messageSelect") MessageSelect messageSelect); + Integer getMessageReaderCount(@Param("accountId") Integer accountId); + + } diff --git a/src/main/java/live/tomey/api/express/dto/ComplaintSelect.java b/src/main/java/live/tomey/api/express/dto/ComplaintSelect.java new file mode 100644 index 0000000..43b1eeb --- /dev/null +++ b/src/main/java/live/tomey/api/express/dto/ComplaintSelect.java @@ -0,0 +1,73 @@ +package live.tomey.api.express.dto; + +/** + * @author clay + * @version 1.0 + * @mail 20932067@zju.edu.cn + * @date 2020/12/16 19:18 + */ +public class ComplaintSelect { + private Integer page; + private Integer size; + private String name; + private String phone; + private String content; + private Integer isReader; + + public ComplaintSelect(Integer page, Integer size, String name, String phone, String content, Integer isReader) { + this.page = page; + this.size = size; + this.name = name; + this.phone = phone; + this.content = content; + this.isReader = isReader; + } + + public Integer getIsReader() { + return isReader; + } + + public void setIsReader(Integer isReader) { + this.isReader = isReader; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Integer getPage() { + return page; + } + + public void setPage(Integer page) { + this.page = page; + } + + public Integer getSize() { + return size; + } + + public void setSize(Integer size) { + this.size = size; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/src/main/java/live/tomey/api/express/entity/Account.java b/src/main/java/live/tomey/api/express/entity/Account.java index 0c3375e..77c2d97 100644 --- a/src/main/java/live/tomey/api/express/entity/Account.java +++ b/src/main/java/live/tomey/api/express/entity/Account.java @@ -1,5 +1,7 @@ package live.tomey.api.express.entity; +import org.springframework.format.annotation.DateTimeFormat; + import java.util.Date; /** @@ -15,8 +17,14 @@ public class Account { private String password; private String email; private Integer sex; + @DateTimeFormat( + pattern = "yyyy-MM-dd hh:mm" + ) private Date birthday; private Integer identityId; + @DateTimeFormat( + pattern = "yyyy-MM-dd hh:mm" + ) private Date registrationTime; private String ncryptedProble; private String ncryptedAnswers; diff --git a/src/main/java/live/tomey/api/express/entity/Complaint.java b/src/main/java/live/tomey/api/express/entity/Complaint.java new file mode 100644 index 0000000..44399f8 --- /dev/null +++ b/src/main/java/live/tomey/api/express/entity/Complaint.java @@ -0,0 +1,104 @@ +package live.tomey.api.express.entity; + + +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +public class Complaint { + + private Integer cId; + private String cName; + private String cPhone; + private String cContent; + @DateTimeFormat( + pattern = "yyyy-MM-dd hh:mm" + ) + private Date cCreateTime; + private Integer cIsreader; + + public Complaint() { + } + + public Complaint(String cName, String cPhone, String cContent) { + this.cName = cName; + this.cPhone = cPhone; + this.cContent = cContent; + this.cCreateTime = new Date(); + this.cIsreader = 1; + } + + public Integer getcId() { + return cId; + } + + public void setcId(Integer cId) { + this.cId = cId; + } + + public String getcName() { + return cName; + } + + public void setcName(String cName) { + this.cName = cName; + } + + public String getcPhone() { + return cPhone; + } + + public void setcPhone(String cPhone) { + this.cPhone = cPhone; + } + + public String getcContent() { + return cContent; + } + + public void setcContent(String cContent) { + this.cContent = cContent; + } + + public Date getcCreateTime() { + return cCreateTime; + } + + public void setcCreateTime(Date cCreateTime) { + this.cCreateTime = cCreateTime; + } + + public String getCName() { + return cName; + } + + public void setCName(String cName) { + this.cName = cName; + } + + + public String getCPhone() { + return cPhone; + } + + public void setCPhone(String cPhone) { + this.cPhone = cPhone; + } + + + public String getCContent() { + return cContent; + } + + public void setCContent(String cContent) { + this.cContent = cContent; + } + + public Integer getcIsreader() { + return cIsreader; + } + + public void setcIsreader(Integer cIsreader) { + this.cIsreader = cIsreader; + } +} diff --git a/src/main/java/live/tomey/api/express/entity/MailConfig.java b/src/main/java/live/tomey/api/express/entity/MailConfig.java index 0ac2b60..6efe8fd 100644 --- a/src/main/java/live/tomey/api/express/entity/MailConfig.java +++ b/src/main/java/live/tomey/api/express/entity/MailConfig.java @@ -10,11 +10,13 @@ public class MailConfig { private String password; private String encryption; private Integer state; + private String testMail; + public MailConfig() { } - public MailConfig(String sender, String personal, String emailSmtpHost, String emailSmtpPort, String username, String password, String encryption, Integer state) { + public MailConfig(String sender, String personal, String emailSmtpHost, String emailSmtpPort, String username, String password, String encryption, Integer state, String testMail) { this.sender = sender; this.personal = personal; this.emailSmtpHost = emailSmtpHost; @@ -23,6 +25,7 @@ public class MailConfig { this.password = password; this.encryption = encryption; this.state = state; + this.testMail = testMail; } public String getSender() { @@ -96,4 +99,11 @@ public class MailConfig { this.state = state; } + public String getTestMail() { + return testMail; + } + + public void setTestMail(String testMail) { + this.testMail = testMail; + } } diff --git a/src/main/java/live/tomey/api/express/entity/Messages.java b/src/main/java/live/tomey/api/express/entity/Messages.java index 6bc836b..33df84c 100644 --- a/src/main/java/live/tomey/api/express/entity/Messages.java +++ b/src/main/java/live/tomey/api/express/entity/Messages.java @@ -1,5 +1,7 @@ package live.tomey.api.express.entity; +import org.springframework.format.annotation.DateTimeFormat; + import java.util.Date; public class Messages { @@ -9,6 +11,9 @@ public class Messages { private String title; private String content; private Integer isRead; + @DateTimeFormat( + pattern = "yyyy-MM-dd hh:mm" + ) private Date sendTime; public Messages() { diff --git a/src/main/java/live/tomey/api/express/entity/Order.java b/src/main/java/live/tomey/api/express/entity/Order.java index 62f507b..e5a028c 100644 --- a/src/main/java/live/tomey/api/express/entity/Order.java +++ b/src/main/java/live/tomey/api/express/entity/Order.java @@ -1,6 +1,8 @@ package live.tomey.api.express.entity; +import org.springframework.format.annotation.DateTimeFormat; + import java.util.Date; public class Order { @@ -11,7 +13,13 @@ public class Order { private String name; private String phone; private String hostel; + @DateTimeFormat( + pattern = "yyyy-MM-dd hh:mm" + ) private Date createTime; + @DateTimeFormat( + pattern = "yyyy-MM-dd hh:mm" + ) private Date lastTime; private Integer status; private Integer paymentStatus; diff --git a/src/main/java/live/tomey/api/express/service/ComplaintService.java b/src/main/java/live/tomey/api/express/service/ComplaintService.java new file mode 100644 index 0000000..b5b2ecc --- /dev/null +++ b/src/main/java/live/tomey/api/express/service/ComplaintService.java @@ -0,0 +1,45 @@ +package live.tomey.api.express.service; + +import live.tomey.api.express.dto.ComplaintSelect; +import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Category; +import live.tomey.api.express.entity.Complaint; + +/** + * @author clay + * @version 1.0 + * @mail 20932067@zju.edu.cn + * @date 2020/12/16 19:26 + */ +public interface ComplaintService { + /** + * 新增投诉与建议 + * @param complaint + * @return + */ + ServerResult addComplaint(Complaint complaint); + + /** + * 获取投诉与建议 + * @param complaintSelect + * @return + */ + ServerResult getComplaint(ComplaintSelect complaintSelect); + + /** + * 阅读投诉与建议 + * @param id + * @return + */ + ServerResult readerComplaint(Integer id); + + /** + * 删除投诉与建议 + * @param id + * @return + */ + ServerResult removeComplaint(Integer id); + + ServerResult getComplaintCount(); + +} diff --git a/src/main/java/live/tomey/api/express/service/MailConfigService.java b/src/main/java/live/tomey/api/express/service/MailConfigService.java index 1592c66..46dcee2 100644 --- a/src/main/java/live/tomey/api/express/service/MailConfigService.java +++ b/src/main/java/live/tomey/api/express/service/MailConfigService.java @@ -1,6 +1,7 @@ package live.tomey.api.express.service; import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Account; import live.tomey.api.express.entity.MailConfig; /** @@ -16,4 +17,6 @@ public interface MailConfigService { ServerResult editMailConfig(MailConfig mailConfig); + ServerResult testSendMessage(Account account); + } diff --git a/src/main/java/live/tomey/api/express/service/MessageService.java b/src/main/java/live/tomey/api/express/service/MessageService.java index f8c8b32..d9a55d3 100644 --- a/src/main/java/live/tomey/api/express/service/MessageService.java +++ b/src/main/java/live/tomey/api/express/service/MessageService.java @@ -2,6 +2,7 @@ package live.tomey.api.express.service; import live.tomey.api.express.dto.MessageSelect; import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Account; /** * @author clay @@ -13,27 +14,36 @@ public interface MessageService { /** * 获取信息 + * * @param messageSelect * @return */ - ServerResult getmessage(MessageSelect messageSelect); + ServerResult getMessage(MessageSelect messageSelect); + + /** + * 获取未读信息数量 + * + * @param accountId + * @return + */ + ServerResult getMessageReaderCount(Integer accountId); /** * 阅读信息 + * * @param id * @param accountId * @return */ - ServerResult readMessage(Integer id,Integer accountId); + ServerResult readMessage(Integer id, Integer accountId); /** * 删除通知 + * * @param id * @param accountId * @return */ - ServerResult removeMessage(Integer id,Integer accountId); - - + ServerResult removeMessage(Integer id, Integer accountId); } diff --git a/src/main/java/live/tomey/api/express/service/impl/ComplaintServiceImpl.java b/src/main/java/live/tomey/api/express/service/impl/ComplaintServiceImpl.java new file mode 100644 index 0000000..7fb8ad8 --- /dev/null +++ b/src/main/java/live/tomey/api/express/service/impl/ComplaintServiceImpl.java @@ -0,0 +1,100 @@ +package live.tomey.api.express.service.impl; + +import live.tomey.api.express.dao.ComplaintDao; +import live.tomey.api.express.dto.ComplaintSelect; +import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Complaint; +import live.tomey.api.express.service.ComplaintService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author clay + * @version 1.0 + * @mail 20932067@zju.edu.cn + * @date 2020/12/16 19:29 + */ +@Service +public class ComplaintServiceImpl implements ComplaintService { + private Logger logger = LoggerFactory.getLogger(ComplaintServiceImpl.class); + + @Autowired + private ComplaintDao complaintDao; + + @Override + public ServerResult addComplaint(Complaint complaint) { + try { + Integer type = complaintDao.insertComplaint(complaint); + if (type>0){ + return new ServerResult(true,"操作成功!"); + }else { + return new ServerResult(false,"操作失败!"); + } + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult(false,"系统错误!"); + } + } + + @Override + @Transactional + public ServerResult getComplaint(ComplaintSelect complaintSelect) { + try { + List complaintList = complaintDao.queryComplaint(complaintSelect); + Integer count = complaintDao.queryComplaintCount(complaintSelect); + if (complaintList.size()>0&&count>0){ + return new ServerResult(true,complaintList,count); + }else { + return new ServerResult(false,"查询结果为空!"); + } + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult(false,"系统错误!"); + } + } + + @Override + public ServerResult readerComplaint(Integer id) { + try { + Integer type = complaintDao.readerComplaint(id); + if (type>0){ + return new ServerResult(true,"操作成功!"); + }else { + return new ServerResult(false,"操作失败!"); + } + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult(false,"系统错误!"); + } + } + + @Override + public ServerResult removeComplaint(Integer id) { + try { + Integer type = complaintDao.deleteComplaint(id); + if (type>0){ + return new ServerResult(true,"操作成功!"); + }else { + return new ServerResult(false,"操作失败!"); + } + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult(false,"系统错误!"); + } + } + + @Override + public ServerResult getComplaintCount() { + try { + return new ServerResult(true,complaintDao.getComplaintCount()); + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult(false,"系统错误!"); + } + } +} diff --git a/src/main/java/live/tomey/api/express/service/impl/MailConfigServiceImpl.java b/src/main/java/live/tomey/api/express/service/impl/MailConfigServiceImpl.java index b95f7cf..bbcd1cc 100644 --- a/src/main/java/live/tomey/api/express/service/impl/MailConfigServiceImpl.java +++ b/src/main/java/live/tomey/api/express/service/impl/MailConfigServiceImpl.java @@ -2,14 +2,18 @@ package live.tomey.api.express.service.impl; import live.tomey.api.express.dao.MailConfigDao; import live.tomey.api.express.dto.ServerResult; +import live.tomey.api.express.entity.Account; import live.tomey.api.express.entity.MailConfig; import live.tomey.api.express.service.MailConfigService; +import live.tomey.api.express.unit.MailUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; + /** * @author clay * @version 1.0 @@ -55,4 +59,44 @@ public class MailConfigServiceImpl implements MailConfigService { return new ServerResult(false,"系统错误"); } } + + @Override + public ServerResult testSendMessage(Account account) { + try { + MailConfig mailConfig = mailConfigDao.getMailConfig(); + if (mailConfig.getSender()==null){ + return new ServerResult(false,"发件人地址为空"); + } + if (mailConfig.getPersonal()==null){ + return new ServerResult(false,"发件人昵称为空"); + } + if (mailConfig.getEmailSmtpHost()==null){ + return new ServerResult(false,"服务器地址为空"); + } + if (mailConfig.getEmailSmtpPort()==null){ + return new ServerResult(false,"服务器端口号为空"); + } + if (mailConfig.getUsername()==null){ + return new ServerResult(false,"用户名为空"); + } + if (mailConfig.getPassword()==null){ + return new ServerResult(false,"密码为空"); + } + String title = "测试邮件"; + String content = "你好"+mailConfig.getTestMail()+"这是一封测试邮件"; + account.setEmail(mailConfig.getTestMail()); + boolean type = MailUnit.sendTheMail(account,mailConfig,title,content); + if (type){ + logger.info(account.getEmail()+"与"+new Date() + "发送邮件成功"); + return new ServerResult(true,"发送成功"); + }else { + logger.info(account.getEmail()+"与"+new Date() + "发送邮件失败"); + return new ServerResult(false,"发送失败"); + } + }catch (RuntimeException e){ + logger.error(e.getMessage()); + return new ServerResult(false,"系统错误"); + } + } + } diff --git a/src/main/java/live/tomey/api/express/service/impl/MessageServiceImpl.java b/src/main/java/live/tomey/api/express/service/impl/MessageServiceImpl.java index 2c6bd35..74b31ac 100644 --- a/src/main/java/live/tomey/api/express/service/impl/MessageServiceImpl.java +++ b/src/main/java/live/tomey/api/express/service/impl/MessageServiceImpl.java @@ -29,46 +29,56 @@ public class MessageServiceImpl implements MessageService { @Override @Transactional - public ServerResult getmessage(MessageSelect messageSelect) { + public ServerResult getMessage(MessageSelect messageSelect) { try { messageSelect.setPage(PageCalculator.calculateRowIndex(messageSelect.getPage(), messageSelect.getSize())); List messagesList = messagesDao.selectMessage(messageSelect); Integer count = messagesDao.selectMessageCount(messageSelect); - if (messagesList.size()>0&&count>0){ - return new ServerResult(true,messagesList,count); - }else { - return new ServerResult(false,"查询结果为空!"); + if (messagesList.size() > 0 && count > 0) { + return new ServerResult(true, messagesList, count); + } else { + return new ServerResult(false, "查询结果为空!"); } - }catch (RuntimeException e){ - return new ServerResult(false,"系统错误!"); + } catch (RuntimeException e) { + return new ServerResult(false, "系统错误!"); } } + @Override + public ServerResult getMessageReaderCount(Integer accountId) { + try { + return new ServerResult(true, messagesDao.getMessageReaderCount(accountId)); + } catch (RuntimeException e) { + return new ServerResult(false, "系统错误!"); + } + } + + @Override public ServerResult readMessage(Integer id, Integer accountId) { try { - Integer type = messagesDao.readMessage(id,accountId); - if (type == 1){ - return new ServerResult(true,"操作成功!"); - }else { - return new ServerResult(false,"操作失败!"); + Integer type = messagesDao.readMessage(id, accountId); + if (type == 1) { + return new ServerResult(true, "操作成功!"); + } else { + return new ServerResult(false, "操作失败!"); } - }catch (RuntimeException e){ - return new ServerResult(false,"系统错误!"); + } catch (RuntimeException e) { + return new ServerResult(false, "系统错误!"); } } @Override public ServerResult removeMessage(Integer id, Integer accountId) { try { - Integer type = messagesDao.deleteMessage(id,accountId); - if (type == 1){ - return new ServerResult(true,"操作成功!"); - }else { - return new ServerResult(false,"操作失败!"); + Integer type = messagesDao.deleteMessage(id, accountId); + if (type == 1) { + return new ServerResult(true, "操作成功!"); + } else { + return new ServerResult(false, "操作失败!"); } - }catch (RuntimeException e){ - return new ServerResult(false,"系统错误!"); + } catch (RuntimeException e) { + return new ServerResult(false, "系统错误!"); } } } diff --git a/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java b/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java index 3965484..21f83bd 100644 --- a/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java +++ b/src/main/java/live/tomey/api/express/service/impl/OrderServiceImpl.java @@ -293,7 +293,10 @@ public class OrderServiceImpl implements OrderService { public void sendMail(Account account,String title,String content){ // todo 后期加入邮件发送表 MailConfig mailConfig = mailConfigDao.getMailConfig(); - boolean type = MailUnit.sendTheMail(account,mailConfig,title,content); + boolean type =false; + if (mailConfig.getState()==1){ + type = MailUnit.sendTheMail(account,mailConfig,title,content); + } if (type){ logger.info(account.getEmail()+"与"+new Date() + "发送邮件成功"); }else { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b091062..d528d6e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -10,7 +10,7 @@ alibaba.cloud.secret-key=**** # 应用服务 WEB 访问端口 server.port=8083 server.servlet.context-path=/api -logging.level.root=debug +logging.level.root=error # Actuator Web 访问端口 management.server.port=8081 @@ -24,9 +24,9 @@ spring.servlet.multipart.maxRequestSize=200MB # 数据库dataSource jdbc.driver=8zQIdS8RzOBmd4qRctgYdYM/fdvrjnIJHyQH1bD/jNs= #服务器本地127.0.0.1 -jdbc.urla=xW6OiZLo8/kYFd+0f9nXNXXZg17CJWnfoV5JrAnJaOAhvoLVW/PHqSV0jFnpOIVAxA0arcvd8KTK5pmV8Pi3bPJxQoH6zwkUve3efptPE0f+GUBKpacl+rFIuiDIGGARWhD3wSn+1Q8t+jGw15GlDz/ASsSv8SiOXSlZnsWSVKIbTqDgaMM1VA== +jdbc.url=xW6OiZLo8/kYFd+0f9nXNXXZg17CJWnfoV5JrAnJaOAhvoLVW/PHqSV0jFnpOIVAxA0arcvd8KTK5pmV8Pi3bPJxQoH6zwkUve3efptPE0f+GUBKpacl+rFIuiDIGGARWhD3wSn+1Q8t+jGw15GlDz/ASsSv8SiOXSlZnsWSVKIbTqDgaMM1VA== #azure -jdbc.url=xW6OiZLo8/kiW6baGG4kKlxB11i7ytYuDXFcirNE/QxgG6+R9g0kSMNfA3gR9TiRFSQZJ52gM2PVPnmwI8p1dBl0yiCdG7wJXEojUovXnEeESCOUiTu5t9AAB0WAn4P/HJUrZHOeJHdRwMGTTMrHyS4RDb+iakxCQOVpH5Ht8qe3dXTHHXY65A== +jdbc.urla=xW6OiZLo8/kiW6baGG4kKlxB11i7ytYuDXFcirNE/QxgG6+R9g0kSMNfA3gR9TiRFSQZJ52gM2PVPnmwI8p1dBl0yiCdG7wJXEojUovXnEeESCOUiTu5t9AAB0WAn4P/HJUrZHOeJHdRwMGTTMrHyS4RDb+iakxCQOVpH5Ht8qe3dXTHHXY65A== #服务器ip jdbc.urls=xW6OiZLo8/ly0RW0vIm4nFrLZaXQTX62SFF7HwCqLmpgG6+R9g0kSMNfA3gR9TiRFSQZJ52gM2PVPnmwI8p1dBl0yiCdG7wJXEojUovXnEeESCOUiTu5t9AAB0WAn4P/HJUrZHOeJHdRwMGTTMrHyS4RDb+iakxCQOVpH5Ht8qe3dXTHHXY65A== jdbc.username=j00C+YEiqH4= diff --git a/src/main/resources/mapper/AccountDao.xml b/src/main/resources/mapper/AccountDao.xml index 83d6ac6..90a3569 100644 --- a/src/main/resources/mapper/AccountDao.xml +++ b/src/main/resources/mapper/AccountDao.xml @@ -64,7 +64,7 @@ INSERT INTO - t_account( + w_account( phone, username, password, diff --git a/src/main/resources/mapper/ComplaintDao.xml b/src/main/resources/mapper/ComplaintDao.xml new file mode 100644 index 0000000..dfbaf60 --- /dev/null +++ b/src/main/resources/mapper/ComplaintDao.xml @@ -0,0 +1,51 @@ + + + + + INSERT INTO w_complaint ( + c_name, + c_phone, + c_content, + c_create_time, + c_isreader + ) VALUES ( + #{complaint.cName}, + #{complaint.cPhone}, + #{complaint.cContent}, + #{complaint.cCreateTime}, + #{complaint.cIsreader} + ) + + + + + UPDATE w_complaint SET c_isreader = 2 WHERE c_id = #{id} + + + DELETE FROM w_complaint WHERE c_id = #{id} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/MailConfigDao.xml b/src/main/resources/mapper/MailConfigDao.xml index e3789c8..ad9d88d 100644 --- a/src/main/resources/mapper/MailConfigDao.xml +++ b/src/main/resources/mapper/MailConfigDao.xml @@ -15,7 +15,8 @@ w_mailconfig.username = #{mailConfig.username}, w_mailconfig.password = #{mailConfig.password}, w_mailconfig.encryption = #{mailConfig.encryption}, - w_mailconfig.state = #{mailConfig.state} + w_mailconfig.state = #{mailConfig.state}, + w_mailconfig.test_mail = #{mailConfig.testMail} WHERE w_mailconfig.id = 1 \ No newline at end of file diff --git a/src/main/resources/mapper/MessagesDao.xml b/src/main/resources/mapper/MessagesDao.xml index 7f41f2d..997270e 100644 --- a/src/main/resources/mapper/MessagesDao.xml +++ b/src/main/resources/mapper/MessagesDao.xml @@ -43,4 +43,7 @@ AND w_message.account_id = #{messageSelect.accountId} + \ No newline at end of file