diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/Demo2Application.java b/Code/Backend/demo2/src/main/java/com/example/demo/Demo2Application.java new file mode 100644 index 0000000..13172bc --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/Demo2Application.java @@ -0,0 +1,20 @@ +package com.example.demo; + +import cn.dev33.satoken.SaManager; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.stereotype.Controller; + +@Controller +@MapperScan("com.example.demo.mapper") +@SpringBootApplication +public class Demo2Application { + + public static void main(String[] args) { + System.out.println("hello world"); + System.out.println("启动成功:Sa-Token配置如下:" + SaManager.getConfig()); + SpringApplication.run(Demo2Application.class, args); + } + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/common/SaToken/SaTokenConfigure.java b/Code/Backend/demo2/src/main/java/com/example/demo/common/SaToken/SaTokenConfigure.java new file mode 100644 index 0000000..2734595 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/common/SaToken/SaTokenConfigure.java @@ -0,0 +1,20 @@ +package com.example.demo.common.SaToken; + +import cn.dev33.satoken.interceptor.SaAnnotationInterceptor; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * Sa-Token 配置类 + */ +@Configuration +public class SaTokenConfigure implements WebMvcConfigurer { +// @Override +// public void addInterceptors(InterceptorRegistry registry) { +// registry.addInterceptor(new SaAnnotationInterceptor()) +// .addPathPatterns() +// .excludePathPatterns("/**"); +// } +} + diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/common/SaToken/StpInterfaceImpl.java b/Code/Backend/demo2/src/main/java/com/example/demo/common/SaToken/StpInterfaceImpl.java new file mode 100644 index 0000000..764dcd3 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/common/SaToken/StpInterfaceImpl.java @@ -0,0 +1,25 @@ +package com.example.demo.common.SaToken; + +import cn.dev33.satoken.stp.StpInterface; +import org.springframework.stereotype.Component; +import java.util.Arrays; +import java.util.List; +/** + * 自定义权限验证接口扩展 + */ +@Component +public class StpInterfaceImpl implements StpInterface { + + // 返回一个账号所拥有的权限码集合 + @Override + public List getPermissionList(Object loginId, String loginType) { + return Arrays.asList("101", "user-add", "user-delete", "user-update", "user-get", "article-get"); + } + + // 返回一个账号所拥有的角色标识集合 + @Override + public List getRoleList(Object loginId, String loginType) { + return Arrays.asList("admin", "super-admin"); + } + +} \ No newline at end of file diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/common/ServerConst.java b/Code/Backend/demo2/src/main/java/com/example/demo/common/ServerConst.java new file mode 100644 index 0000000..660f96a --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/common/ServerConst.java @@ -0,0 +1,18 @@ +package com.example.demo.common; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@NoArgsConstructor +@AllArgsConstructor +@ToString +@Data +public class ServerConst { + private String address = "http://localhost:8081/"; + public String getAddress() + { + return address; + } +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/config/MailConfig.java b/Code/Backend/demo2/src/main/java/com/example/demo/config/MailConfig.java new file mode 100644 index 0000000..de6b182 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/config/MailConfig.java @@ -0,0 +1,4 @@ +package com.example.demo.config; + +public class MailConfig { +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/config/WebConfig.java b/Code/Backend/demo2/src/main/java/com/example/demo/config/WebConfig.java new file mode 100644 index 0000000..77e6f6c --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/config/WebConfig.java @@ -0,0 +1,34 @@ +package com.example.demo.config; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; +@Configuration +public class WebConfig extends WebMvcConfigurationSupport { + + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("file:/home/jjw/Desktop/server/"); +// registry.addResourceHandler("/**").addResourceLocations("file:F:\\ALL\\demo2\\src\\main\\resources\\static\\"); +// registry.addResourceHandler("/images/**").addResourceLocations("file:F:\\ALL\\demo2\\src\\main\\resources\\static\\images\\allgoods\\"); + } + +// @Override + /** + * 争对跨域问题: + * 1. 跨域路径 + * 2. 请求来源 + * 3. 跨域方法 + * 4. 最大响应时间 + * 5. 允许携带数据 + */ + +// public void addCorsMappings(CorsRegistry registry) { +// registry.addMapping("/**") +// .allowedOrigins("http://localhost:8081", "null") +// .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE") +// .maxAge(3600) +// .allowCredentials(true); +// } +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/GoodController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/GoodController.java new file mode 100644 index 0000000..2f1ff10 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/GoodController.java @@ -0,0 +1,553 @@ +package com.example.demo.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.example.demo.common.ServerConst; +import com.example.demo.entity.Good; +import com.example.demo.entity.User; +import com.example.demo.mapper.GoodMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.lang.reflect.Method; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + +@RestController +@RequestMapping("/Good") +public class GoodController { + @Value("${prop.backendIp}") + private String backendIp; +// private int step = 100; + @Autowired + private GoodMapper goodMapper; + //------------------轮播图--------------------- OK + @GetMapping("Banner") + public List getBanner() + { + System.out.println("HERE IS BANNER"); + int num = 4; + List list =new ArrayList<>(); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/banner/"; + String pic_name = serverconst + Integer.toString(i)+".png"; + dict.put("img",pic_name); +// System.out.println(pic_name); + list.add(dict); + } + return list; + } + //------------------轮播图--------------------- + + @RequestMapping("updateGoodStatus") + public String updateGoodStatus(@RequestParam Map params) { + System.out.println("updateGoodStatus"); + int id = Integer.parseInt(params.get("id")); + int uid = Integer.parseInt(params.get("uid")); + int status = Integer.parseInt(params.get("status")); + Good good = new Good(); + good.setId(id); + good.setUid(uid); + good.setStatus(status); + goodMapper.updateById(good); + return "OK"; + } + + + @RequestMapping("insert") + public String insert(@RequestParam Map params){ + System.out.println("--------insert-------"); + Good good = new Good(); + int uid = Integer.parseInt(params.get("uid")); + String goodname=params.get("name"); + int category= Integer.parseInt(params.get("category")); + String comment=params.get("comment"); + String email=params.get("email"); + String price=params.get("price"); + String picurl1=params.get("picurl1"); + String picurl2=params.get("picurl2"); + String picurl3=params.get("picurl3"); + String time = params.get("time"); + good.setName(goodname); + good.setEmail(email); + good.setUid(uid); + good.setTime(time); + good.setComment(comment); + good.setPrice(price); + good.setCategory(Integer.valueOf(category)); + good.setPicurl1(picurl1); + good.setPicurl2(picurl2); + good.setPicurl3(picurl3); + System.out.println(good); + goodMapper.insert(good); + return "OK"; + } + + @RequestMapping("getAllItem") + public List getAllItem(){ + List goods = goodMapper.selectList(null); + System.out.println(goods); + return goods; + + } + //根据分类查找商品category + @RequestMapping("getByCategory") + public List getByCategory(@RequestParam("category") int cate){ + System.out.println(cate); + QueryWrapper goodQueryWrapper = new QueryWrapper<>(); + goodQueryWrapper.eq("category",cate); + List goodList = goodMapper.selectList(goodQueryWrapper); + System.out.println(goodList); + return goodList; + } + @RequestMapping("getByName") + public List getByName(@RequestParam("productname") String name){ + System.out.println(name); + QueryWrapper goodQueryWrapper = new QueryWrapper<>(); + goodQueryWrapper.eq("name",name); + List goodList = goodMapper.selectList(goodQueryWrapper); + System.out.println(goodList); + return goodList; + } + //根据用户id查找商品用户发布的商品 + @RequestMapping("getByUid") + public List getByUid(@RequestParam Map params) throws ParseException { + int uid = Integer.parseInt(params.get("id")); + System.out.println(uid); + QueryWrapper goodQueryWrapper = new QueryWrapper<>(); + goodQueryWrapper.eq("uid",uid); + List goodList = goodMapper.selectList(goodQueryWrapper); + System.out.println(goodList); + return goodList; + } + + + + +// @RequestMapping("detailslist") +//// @RequestParam(name = "productId", required = false) +// public List getDetailslist(@RequestParam(name = "productId", required = false)String category) { +// System.out.println(category); +// System.out.println("detailslist"); +// QueryWrapper goodQueryWrapper = new QueryWrapper<>(); +// goodQueryWrapper.eq("category", category); +// List goodList = goodMapper.selectList(goodQueryWrapper); +// System.out.println(goodList); +// return goodList; +// } + @RequestMapping("detailslist") +// @RequestParam(name = "productId", required = false) + public List getDetailslist(@RequestParam(name = "productname", required = false)String name) { + System.out.println(name); + System.out.println("detailslist"); + QueryWrapper goodQueryWrapper = new QueryWrapper<>(); + goodQueryWrapper.eq("name", name); + List goodList = goodMapper.selectList(goodQueryWrapper); + System.out.println(goodList); + return goodList; + } + + + @RequestMapping("GoodsItem") + public List getGoodsItem(@RequestParam Map params) + { + System.out.println("---GoodsItem------"); + System.out.println("-------"); + String subject = params.get("interest"); + System.out.println("-------"); + System.out.println(subject); + int num = 8; + int j = 0; + List list =new ArrayList<>(); + if(Objects.equals(subject, "数学")){ + System.out.println("---GoodsItem---Math----"); + List firstNameList =new ArrayList(Arrays.asList("微积分","军事教程","弹性力学","概率论与数理统计","高等代数","高级英语口语辩论基础与实训","工程地质学","计算机操作系统")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/goodsitem/math/"; + String pic_name = serverconst + Integer.toString(i)+".jpg"; + dict.put("images",pic_name); + dict.put("name",firstNameList.get(j)); + dict.put("price","100"); + list.add(dict); + j++; + } + return list; + } + else if(Objects.equals(subject, "计算机")){ + System.out.println("---GoodsItem----computer--"); + List firstNameList =new ArrayList(Arrays.asList("微积分","军事教程","弹性力学","概率论与数理统计","高等代数","高级英语口语辩论基础与实训","工程地质学","计算机操作系统")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/goodsitem/computer/"; + String pic_name = serverconst + Integer.toString(i)+".jpg"; + dict.put("images",pic_name); + dict.put("name",firstNameList.get(j)); + dict.put("price","100"); + list.add(dict); + j++; + } + return list; + } + else { + System.out.println("---GoodsItem---NO---"); + List firstNameList =new ArrayList(Arrays.asList("微积分","军事教程","弹性力学","概率论与数理统计","高等代数","高级英语口语辩论基础与实训","工程地质学","计算机操作系统")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/goodsitem/"; + String pic_name = serverconst + Integer.toString(i)+".jpg"; + dict.put("images",pic_name); + dict.put("name",firstNameList.get(j)); + dict.put("price","100"); + list.add(dict); + j++; + } + return list; + + } + } + + + @GetMapping("GoodsItemLeft") + public List getGoodsItemLeft() + { + System.out.println("GoodsItemLeft"); + int num = 1; + int j = 0; + List list =new ArrayList<>(); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/goodsitemleft/"; + String pic_name = serverconst + Integer.toString(1)+".jpg"; + dict.put("images",pic_name); + list.add(dict); + j++; + } + return list; + } + + + + @GetMapping("TongXiuList_shuxue") + public List getTongXiu() + { + int goodsurl = 100; + System.out.println("TongXiuList_shuxue"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("微积分","大学数学","高等代数","概率论与数理统计")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/TongXiu/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl", String.valueOf(goodsurl)); + list.add(dict); + j++; + goodsurl++; + } + return list; + } + @GetMapping("TongXiuList_yingyu") + public List getyingyu() + { + int goodsurl = 100; + System.out.println("TongXiuList_yingyu"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("高级英语口语辩论基础与实训","大学英语","英语学术论文阅读与写作","汉英翻译学基础理论与实践")); + for (int i = num+1; i <= num*2; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/TongXiu/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + @GetMapping("TongXiuList_zhengzhi") + public List getzhengzhi() + { + System.out.println("TongXiuList_zhengzhi"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("大学军事理论教程","近代史","毛泽东思想和中国特色社会主义理论体系概论","思想道德与法治")); + for (int i = 2*num+1; i <= num*3; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/TongXiu/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + @GetMapping("KeWaiList_xiaoshuo") + public List getKeWaiList_xiaoshuo() + { + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("边城","变形记","宠物猫的反击战","三体")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/kewai/"; + System.out.println(serverconst); + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + @GetMapping("KeWaiList_manhua") + public List getKeWaiList_manhua() + { + System.out.println("KeWaiList_manhua"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("巴黎城记","漫画龙纹身的女孩","漫画名侦探柯南漆黑的追踪者","漫画千与千寻")); + for (int i = num+1; i <= num*2; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/kewai/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + + + + @GetMapping("ZhuanYeList_dike") + public List getdike() + { + System.out.println("ZhuanYeList_dike"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("工程地质学","普通地质学","岩石力学","弹性力学")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/ZhuanYe/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + + + @GetMapping("ZhuanYeList_jike") + public List getjike() + { + System.out.println("ZhuanYeList_jike"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("入门到精通","程序设计基础","操作系统","计算机基础")); + for (int i = num+1; i <= num*2; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/ZhuanYe/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + + + @GetMapping("MianFeiList_kewai") + public List getMianFeiList_kewai() + { + System.out.println("MianFeiList_kewai"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("漫画千与千寻","十角馆事件","异世界舅舅","蜘蛛侠漫画史")); + for (int i = num+1; i <= num*2; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/mianfei/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + + @GetMapping("MianFeiList_jiaoke") + public List getMianFeiList_jiaoke() + { + System.out.println("MianFeiList_jiaoke"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("量子力学","普通生物学","普通物理学","有机固体物理")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/mianfei/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + list.add(dict); + j++; + } + return list; + } + @GetMapping("KaoYanList_shuxue") + public List getKaoYanList_shuxue() + { + System.out.println("KaoYanList_shuxue"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("考研数学二十讲","考研数学辅导","考研数学复习指南","考研数学题典")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/kaoyan/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + + list.add(dict); + j++; + } + return list; + } + @GetMapping("KaoYanList_zhengzhi") + public List getKaoYanList_zhengzhi() + { + System.out.println("KaoYanList_zhengzhi"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("考研政治核心考点","考研政治狂背清单","考研政治力解考点","考研政治强化冲刺800题")); + for (int i = 1+num; i <= num*2; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/kaoyan/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + System.out.println(picUrl); + + dict.put("picUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("goodsUrl","100"); + + list.add(dict); + j++; + } + return list; + } + + + @GetMapping("hotlist1") + public List gethotlist1() + { + System.out.println("hotlist1"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList = new ArrayList<>(Arrays.asList("微积分", "毛概", "大学英语", "近代史")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/hotlist1/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; + //---------------------- + dict.put("listPicUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("retailPrice","100"); + dict.put("goodsUrl","100"); + //---------------------- + list.add(dict); +// System.out.println(picUrl); + j++; + } + + return list; + } + + @GetMapping("hotlist2") + public List gethotlist2() + { + System.out.println("hotlist2"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("入门到精通","操作系统","计算机基础","普通地质学")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/hotlist2/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; +// System.out.println(picUrl); + + dict.put("listPicUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("retailPrice","100"); + dict.put("goodsUrl","100"); + + list.add(dict); + j++; + } + + return list; + } + @GetMapping("hotlist3") + public List gethotlist3() + { + System.out.println("hotlist3"); + int num = 4; + int j = 0; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("千与千寻","边城","变形记","三体")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = backendIp+"/images/hotlist3/"; + String picUrl = serverconst + Integer.toString(i)+".jpg"; +// System.out.println(picUrl); + + dict.put("listPicUrl",picUrl); + dict.put("name",firstNameList.get(j)); + dict.put("retailPrice","100"); + dict.put("goodsUrl","100"); + + list.add(dict); + j++; + } + + return list; + } + + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/LoginController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/LoginController.java new file mode 100644 index 0000000..3339a95 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/LoginController.java @@ -0,0 +1,107 @@ +package com.example.demo.controller; +import cn.dev33.satoken.annotation.SaCheckBasic; +import cn.dev33.satoken.annotation.SaCheckLogin; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import cn.dev33.satoken.stp.StpUtil; +import cn.dev33.satoken.util.SaResult; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.example.demo.entity.User; +import com.example.demo.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; +@RestController +@RequestMapping("/auth") +public class LoginController { + @Autowired + private UserMapper userMapper; + @SaCheckLogin + @RequestMapping("checkLogin") + public SaResult checkLogin() { + return SaResult.ok(); + } + + + //---------------------------------------------------------------------- + // 用户登入,输入用户名密码,返回用户个人信息字典 OK +// @RequestMapping ("login")@RequestParam(name="username",required = false) +// @RequestParam(name="password",required = false) + @RequestMapping("login") + public Map doLogin( String username, String password){ + System.out.println(username); + System.out.println(password); + Map res = new HashMap<>(); + Map map = new HashMap<>(); + map.put("name",username); + map.put("password",password); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.allEq(map); + User user = userMapper.selectOne(wrapper); + System.out.println("用户尝试登入"); + if(user == null){ + res.put("state","failure"); + res.put("result",null); + System.out.println("用户登入失败,暂未注册"); + return res; +// System.out.println("in"); +// StpUtil.login(100); +// str = "---------ok----------"; +// System.out.println(str); +// System.out.println("用户登入成功"); +// return StpUtil.getTokenValue(); + } + System.out.println("用户登入成功"); + res.put("state","success"); + res.put("result",user); + return res; + } +//---------------------------------------------------------------------- + + @PostMapping ("test") + public String test() { + return "123"; + + } + + @PostMapping ("isLogin") + public String isLogin(){ + System.out.println("here--------"); + return "当前会话是否登录:"+StpUtil.isLogin(); + } + + @RequestMapping("getLoginId") + public String getLoginId(){ + System.out.println("--------here--------"); + return "当前会话账号ID:"+StpUtil.getLoginIdDefaultNull(); + } + + + //token 的信息 + @RequestMapping("tokenInfo") + public SaResult tokenInfo() { + System.out.println("here--------"); + return SaResult.data("当前token信息:"+StpUtil.getTokenInfo()); + + } + + // 测试注销 ---- http://localhost:8081/user/logout + @RequestMapping("logout") + public SaResult logout() { + StpUtil.logout(); + return SaResult.ok("注销成功"); + } + + @RequestMapping("disable") + public String disable(){ + StpUtil.disable(10001, 30); + return "已被封禁30S"; + } +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/MailController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/MailController.java new file mode 100644 index 0000000..84348ba --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/MailController.java @@ -0,0 +1,77 @@ +package com.example.demo.controller; + +import com.example.demo.mapper.GoodMapper; +import com.example.demo.service.MailService; +//import com.example.demo.service.MimeMailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +@RestController +@RequestMapping("/Mail") +public class MailController { + + @Autowired + private MailService mailService; + @RequestMapping("/Send") + public String Send(HttpServletRequest request) + { + String price=request.getParameter("price"); + String name=request.getParameter("name"); + String to=request.getParameter("sell_email"); + String from=request.getParameter("buy_email"); + String statement=request.getParameter("statement"); + String time = request.getParameter("time"); + String subject = "N-Market 预约通知"; + String sell_content = "尊敬的客户您好:\n\t您的商品" + name + "已被预约,买家承诺购买,预约时间段为"+time+"\n\t买家联系方式为"+from + ",请双方在预约时间前尽快联系,以免影响双方信用。" ; + String buy_content = "尊敬的客户您好,,您选择的商品" + name + "成功预约,您承诺在原则上购买此商品,预约时间段为"+time+"卖家联系方式为"+to + ",请双方在预约时间前尽快联系,以免影响双方信用。"; + try{ + mailService.sendSimpleMail(to,subject,sell_content); + mailService.sendSimpleMail(from,subject,buy_content); + return "YES"; + }catch (Exception e){ + return "NO"; + } + } + @RequestMapping("/SendHtml") + public String SendHtml(HttpServletRequest request) + { + System.out.println("-------EMAIL--------"); + String buy=request.getParameter("buyemail"); + String sell=request.getParameter("sellemail"); + String name=request.getParameter("name"); + String time=request.getParameter("time"); + String price=request.getParameter("price"); + System.out.println("here"); + try{ + mailService.sendMimeMail(name,time,buy,sell,price,true); + mailService.sendMimeMail(name,time,buy,sell,price,false); + return "YES"; + }catch (Exception e){ + return "NO"; + } + } + @RequestMapping("/Test") + public String Test(@RequestParam("to") String to,@RequestParam("subject") String subject,@RequestParam("content") String content) + { + try{ + mailService.sendSimpleMail(to,subject,content); + return "YES"; + }catch (Exception e){ + return "NO"; + } + } + + + +} + + diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/MemberController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/MemberController.java new file mode 100644 index 0000000..8035eb6 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/MemberController.java @@ -0,0 +1,41 @@ +package com.example.demo.controller; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.example.demo.entity.User; +import com.example.demo.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; + +@RestController +@RequestMapping("/member") +public class MemberController { + @Autowired + private UserMapper userMapper; + + @RequestMapping("/info") + public List getinfo(){ + int num = 8; + List list =new ArrayList<>(); + List firstNameList =new ArrayList(Arrays.asList("大学化学","大学化学","大学化学","大学化学","大学化学","大学化学","大学化学")); + for (int i = 1; i <= num; i++) { + HashMap dict = new HashMap<>(); + String serverconst = "http://172.28.187.198:8081/goodsitem"; + System.out.println(serverconst); + String pic_name = serverconst + firstNameList.get(i) + Integer.toString(i)+".png"; + dict.put("images",pic_name); + dict.put("name",firstNameList.get(i)); + dict.put("price","100"); + list.add(dict); + } + return list; + + } + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/OrderController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/OrderController.java new file mode 100644 index 0000000..0d62fdf --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/OrderController.java @@ -0,0 +1,70 @@ +package com.example.demo.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.example.demo.entity.Good; +import com.example.demo.entity.OrderList; +import com.example.demo.mapper.OrderMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("/Order") +public class OrderController { + @Autowired + private OrderMapper orderMapper; + + @RequestMapping("/del") + public void getOrderList(@RequestParam Map params) { + System.out.println("------del------"); + System.out.println(params.get("oid")); + int uid = Integer.parseInt(params.get("oid")); + orderMapper.deleteById(uid); + } + @RequestMapping("/getAll") + public List get() { + List orders = orderMapper.selectList(null); + System.out.println(orders); + return orders; + } + + @RequestMapping("/getByuid") + public List getByuid(@RequestParam Map params){ + System.out.println("----getAll-----"); + int uid = Integer.parseInt(params.get("uid")); + System.out.println(uid); + QueryWrapper orderQueryWrapper = new QueryWrapper<>(); + orderQueryWrapper.eq("uid",uid); + List orderList = orderMapper.selectList(orderQueryWrapper); + System.out.println(orderList); + return orderList; + } + + @RequestMapping("/insert") + public OrderList insert(@RequestParam Map params) { + System.out.println("------INSERT------"); + OrderList order = new OrderList(); + System.out.println(params); + + int uid = Integer.parseInt(params.get("uid")); + int gid = Integer.parseInt(params.get("gid")); + int status = Integer.parseInt(params.get("status")); + String goodname=params.get("name"); + String price=params.get("price"); + String time = params.get("time"); + System.out.println(uid); + + order.setName(goodname); + order.setUid(uid); + order.setTime(time); + order.setPrice(price); + order.setGid(gid); + order.setStatus(status); + + System.out.println(order); + orderMapper.insert(order); + return order; + } +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/UploadController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/UploadController.java new file mode 100644 index 0000000..2f3591c --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/UploadController.java @@ -0,0 +1,76 @@ +package com.example.demo.controller; + +import com.example.demo.entity.Good; +import com.example.demo.entity.User; +import com.example.demo.mapper.GoodMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +@RestController +@RequestMapping("/Upload") +public class UploadController { + + + @Value("${prop.upload-folder}") + private String UPLOAD_FOLDER; + @Value("${prop.backend}") + private String backend; + @Autowired + private GoodMapper goodMapper; + + @RequestMapping("") + public HashMap upload(@RequestParam(name = "file", required = false) MultipartFile[] files, @RequestParam(name = "user_id", required = false) String id, + @RequestParam(name = "name", required = false) String name, HttpServletRequest request) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + System.out.println("----------------上传照片----------------"); + System.out.println("IN FUNC" + id + name); + HashMap map = new HashMap(); + List list = new ArrayList<>(); + if (files == null || files.length == 0) { + System.out.println(files.length); + System.out.println("----No Files----"); + map.put("status","failure"); + return map; + } + else { + System.out.println("Files: " + files.length); + File savePathFile = new File(UPLOAD_FOLDER); + if (!savePathFile.exists()) { + savePathFile.mkdir(); + } + int i = 0; + Long time = System.currentTimeMillis(); + for(MultipartFile file:files) + { + String suffix = "jpg"; + String filename = id + "_" + name + "_" + String.valueOf(i) + "_"+ String.valueOf(time) + "." + suffix; + try { + file.transferTo(new File(UPLOAD_FOLDER + filename)); + System.out.println(UPLOAD_FOLDER + filename); + System.out.println("success"); + }catch (Exception e) { + System.out.println("--上传失败--"); + map.put("status","failure"); + return map; + } + i++; + list.add(backend + filename); + } + map.put("status","success"); + map.put("data",list); + return map; + } + } +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/controller/UserController.java b/Code/Backend/demo2/src/main/java/com/example/demo/controller/UserController.java new file mode 100644 index 0000000..3d819cb --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/controller/UserController.java @@ -0,0 +1,126 @@ +package com.example.demo.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.example.demo.entity.Good; +import com.example.demo.entity.User; +import com.example.demo.mapper.GoodMapper; +import com.example.demo.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@RestController +@RequestMapping("/user") +public class UserController { + @Autowired + private UserMapper userMapper; + @Autowired + private GoodMapper goodMapper; + @RequestMapping("getUserById") + public User getUserById(@RequestParam Map map){ + System.out.println("----getUserById-----"); + System.out.println(map.get("id")); + int id = Integer.parseInt(map.get("id")); + return userMapper.selectById(id); + } + + @RequestMapping("/insert") + public String insert(@RequestParam("username") String name,@RequestParam("password") String passwd) { + User user = new User(); + user.setName(name); + user.setPassword(passwd); + userMapper.insert(user); + System.out.println(user); + return "OK"; + } + @RequestMapping("/updatepasswd") + public String updatepasswd(@RequestParam("username") String name,@RequestParam("password") String passwd) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("name",name).set("password", passwd); + userMapper.update(null, updateWrapper); + return "OK"; + } + @RequestMapping("/updatemail") + public String updatemail(@RequestParam("username") String name,@RequestParam("mail") String mail) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("name",name).set("email", mail); + userMapper.update(null, updateWrapper); + return "OK"; + } + + + @RequestMapping("/delete") + public Integer delete(@RequestParam("username") String name,@RequestParam("password") String passwd) { + HashMap map = new HashMap<>(); + map.put("name",name); + map.put("password",passwd); + return userMapper.deleteByMap(map); + } + @RequestMapping("/findall") + public List findall(){ + List users = userMapper.selectList(null); + System.out.println(users); + return users; + } + + @RequestMapping("/select") + public void selectById(){ + User user = userMapper.selectById(7); + System.out.println(user); + + } + + + @RequestMapping("/getOrderList") + public List getOrderList (@RequestParam("uid") int uid) + { + System.out.println(uid); + QueryWrapper goodQueryWrapper = new QueryWrapper<>(); + goodQueryWrapper.eq("uid",uid); + List goodList = goodMapper.selectList(goodQueryWrapper); + System.out.println(goodList); + return goodList; + + }; + + @RequestMapping("/insertOrder") + public void insertOrder(@RequestBody Good order) + { + Good tmp = order; + goodMapper.insert(tmp); + System.out.println(tmp); + System.out.println(order); + }; + @RequestMapping("/infoUpdate") + public String infoUpdate(@RequestParam Map params) + { + System.out.println("----infoUpdate----"); + try{ + User user = new User(); + user.setId(Integer.parseInt(params.get("id"))); + user.setName(params.get("name")); + user.setPassword(params.get("password")); + user.setAge(Integer.valueOf(params.get("age"))); + user.setEmail(params.get("email")); + user.setGender(params.get("gender")); + user.setPersonal(params.get("personal")); + user.setPhone(params.get("phone")); + user.setSchool(params.get("school")); + userMapper.updateById(user); + return "success"; + } + catch (Exception e) + { + return "failure"; + } + }; + + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/entity/Good.java b/Code/Backend/demo2/src/main/java/com/example/demo/entity/Good.java new file mode 100644 index 0000000..8bed4bf --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/entity/Good.java @@ -0,0 +1,36 @@ +package com.example.demo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.time.LocalDateTime; +@NoArgsConstructor +@AllArgsConstructor +@ToString +@Data +@TableName("good") +public class Good { + @TableId(type = IdType.AUTO) + private int id; + private int uid; + private int status; + private String name; +// private String picurl; + private String picurl1; + private String picurl2; + private String picurl3; + private String comment; + private String price; + private String time; + private String email; +// private String price; + + private int category; + + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/entity/Mail.java b/Code/Backend/demo2/src/main/java/com/example/demo/entity/Mail.java new file mode 100644 index 0000000..25cde86 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/entity/Mail.java @@ -0,0 +1,29 @@ +package com.example.demo.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Date; + +@NoArgsConstructor +@AllArgsConstructor +@ToString +@Data +public class Mail { + private String id; + private String from; + private String to; + private String subject; + private String text; + private Date sentDate; + private String cc; + private String bcc; + private String status; + private String error; + @JsonIgnore + private MultipartFile[] multipartFiles; +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/entity/OrderList.java b/Code/Backend/demo2/src/main/java/com/example/demo/entity/OrderList.java new file mode 100644 index 0000000..b77c411 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/entity/OrderList.java @@ -0,0 +1,31 @@ +package com.example.demo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@NoArgsConstructor +@AllArgsConstructor +@ToString +@Data +@TableName("orderlist") +public class OrderList { + @TableId(type = IdType.AUTO) + private int oid; + private int status; + private String name; + + private String price; + private String time; + + + private int uid; + + private int gid; + + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/entity/User.java b/Code/Backend/demo2/src/main/java/com/example/demo/entity/User.java new file mode 100644 index 0000000..6ea6cbb --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/entity/User.java @@ -0,0 +1,29 @@ +package com.example.demo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + + +@NoArgsConstructor +@AllArgsConstructor +@ToString +@Data +@TableName("user") +public class User { + @TableId(type = IdType.AUTO) + private int id; + private String email; + private Integer age; + private String name; + private String school; + private String gender; + private String personal; + private String phone; + private String password; + +} diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/mapper/GoodMapper.java b/Code/Backend/demo2/src/main/java/com/example/demo/mapper/GoodMapper.java new file mode 100644 index 0000000..fdd6308 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/mapper/GoodMapper.java @@ -0,0 +1,9 @@ +package com.example.demo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.example.demo.entity.Good; +import org.springframework.stereotype.Repository; +@Repository +public interface GoodMapper extends BaseMapper{ + +} \ No newline at end of file diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/mapper/OrderMapper.java b/Code/Backend/demo2/src/main/java/com/example/demo/mapper/OrderMapper.java new file mode 100644 index 0000000..50b00fc --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/mapper/OrderMapper.java @@ -0,0 +1,9 @@ +package com.example.demo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.example.demo.entity.OrderList; +import org.springframework.stereotype.Repository; +@Repository +public interface OrderMapper extends BaseMapper{ + +} \ No newline at end of file diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/mapper/UserMapper.java b/Code/Backend/demo2/src/main/java/com/example/demo/mapper/UserMapper.java new file mode 100644 index 0000000..8fed7fb --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/mapper/UserMapper.java @@ -0,0 +1,10 @@ +package com.example.demo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.example.demo.entity.User; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +@Repository +public interface UserMapper extends BaseMapper{ + +} \ No newline at end of file diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/service/Impl/MailServiceImpl.java b/Code/Backend/demo2/src/main/java/com/example/demo/service/Impl/MailServiceImpl.java new file mode 100644 index 0000000..8b95b3d --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/service/Impl/MailServiceImpl.java @@ -0,0 +1,122 @@ +package com.example.demo.service.Impl; + +import freemarker.template.Configuration; +import com.example.demo.service.MailService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.stereotype.Component; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.text.MessageFormat; + +@Component +public class MailServiceImpl implements MailService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired + private JavaMailSender mailSender; + + @Autowired + private Configuration configuration; + @Value("${mail.fromMail.addr}") + private String from; + + @Override + public void sendSimpleMail(String to, String subject, String content) { + SimpleMailMessage message = new SimpleMailMessage(); + message.setFrom(from); + message.setTo(to); + message.setSubject(subject); + message.setText(content); + try { + mailSender.send(message); + logger.info("简单邮件已经发送。"); + } catch (Exception e) { + logger.error("发送简单邮件时发生异常!", e); + } + } + public String buildContent(String good, String time, String mail, String price, boolean status) { + //加载邮件html模 + InputStream inputStream = null; + Resource resource = null; + BufferedReader fileReader = null; + StringBuffer buffer = new StringBuffer(); + String line = ""; + if (status) { + resource = new ClassPathResource("mail4seller.ftl"); + } else { + resource = new ClassPathResource("mail4buyer.ftl"); + } + try { + inputStream = resource.getInputStream(); + fileReader = new BufferedReader(new InputStreamReader(inputStream)); + while ((line = fileReader.readLine()) != null) { + buffer.append(line); + } + } catch (Exception e) { + logger.info("发送邮件读取模板失败{1}", e); + } finally { + if (fileReader != null) { + try { + fileReader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + //替换html模板中的参数 + return MessageFormat.format(buffer.toString(), good, time, mail, price); + } + public void sendMimeMail(String good, String time, String buymail,String sellmail,String price,boolean status) { + MimeMessage message = mailSender.createMimeMessage(); + if (status) + { + try { + //邮箱发送内容组成 + MimeMessageHelper helper = new MimeMessageHelper(message, true); + helper.setSubject("N-Market预约提醒"); + helper.setText(buildContent(good,time,buymail,price,status), true); + helper.setTo(sellmail); + helper.setFrom(from); + mailSender.send(message); + } catch (MessagingException e) { + logger.info("error"); + } + } + else { + try { + + //邮箱发送内容组成 + MimeMessageHelper helper = new MimeMessageHelper(message, true); + helper.setSubject("N-Market预约提醒"); + helper.setText(buildContent(good,time,sellmail,price,status), true); + helper.setTo(buymail); + helper.setFrom(from); + mailSender.send(message); + } catch (MessagingException e) { + logger.info("error"); + } + } + + } + + +} \ No newline at end of file diff --git a/Code/Backend/demo2/src/main/java/com/example/demo/service/MailService.java b/Code/Backend/demo2/src/main/java/com/example/demo/service/MailService.java new file mode 100644 index 0000000..4d12e19 --- /dev/null +++ b/Code/Backend/demo2/src/main/java/com/example/demo/service/MailService.java @@ -0,0 +1,6 @@ +package com.example.demo.service; + +public interface MailService { + public void sendSimpleMail(String to, String subject, String content); + public void sendMimeMail(String good, String time, String buymail,String sellmail,String price,boolean status); +} \ No newline at end of file