package com.hxzk.controller; import com.github.pagehelper.PageInfo; import com.hxzk.pojo.*; import com.hxzk.service.*; import com.hxzk.util.MyThreadTask; import com.hxzk.util.result; import com.hxzk.util.resultutil; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.HttpProfile; import com.tencentcloudapi.sms.v20210111.SmsClient; import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest; import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.print.DocFlavor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; @RestController @RequestMapping("/") public class UserController { public static String username = ""; @Autowired UserService userService; @Autowired ComapanyService comapanyService; @Autowired ScreenService screenService; @Autowired WarningService warningService; @Autowired TbSmsReminderService smsReminderService; @Autowired SmsLogService smsLogService; @Autowired SystemLogService systemLogService; private String SecretId ="AKIDrjZOI4e6KLZu9FAsSRN8eOwSt52lbMBz"; private String SecretKey = "xnRtHUL3YqdMyOLVSBjKkz1pQoxujS4d"; // 创建一个固定大小的线程池 ExecutorService threadPool = Executors.newFixedThreadPool(3); @PostMapping("login") public TbUser login(TbUser user, HttpServletRequest request) { TbUser user1 = new TbUser(); if (user.getPhone() == null || user.getPhone().equals("")) { user1 = userService.login(user); if (user1 != null) { username = user1.getUsername(); } //用户名密码登录 } else { //手机号验证码登录 user1 = userService.loginPhone(user); if (user1 != null) { username = user1.getUsername(); } } // 将要执行的任务封装为一个Runnable对象 Runnable task = new Runnable() { @Override public void run() { MyThreadTask myThreadTask = new MyThreadTask(warningService, smsReminderService, smsLogService); myThreadTask.run(); } }; // 提交任务给线程池执行 threadPool.submit(task); return user1; } @GetMapping("findUserRole") public TbUser UserRole(TbUser user){ return userService.UserRole(user); } //获取验证码 @GetMapping("sms") public int sms(String phone,int randomNumber) throws TencentCloudSDKException { try { System.out.println("生成的随机整数是:" + randomNumber); // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 // 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 Credential cred = new Credential(SecretId, SecretKey); // 实例化一个http选项,可选的,没有特殊需求可以跳过 HttpProfile httpProfile = new HttpProfile(); httpProfile.setEndpoint("sms.tencentcloudapi.com"); // 实例化一个client选项,可选的,没有特殊需求可以跳过 ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); // 实例化要请求产品的client对象,clientProfile是可选的 SmsClient client = new SmsClient(cred, "ap-beijing", clientProfile); // 实例化一个请求对象,每个接口都会对应一个request对象 SendSmsRequest req = new SendSmsRequest(); String[] phoneNumberSet1 = {phone}; req.setPhoneNumberSet(phoneNumberSet1); req.setSmsSdkAppId("1400838975"); req.setSignName("北京华星北斗智控"); req.setTemplateId("1878379"); String[] templateParamSet1 = {String.valueOf(randomNumber)}; req.setTemplateParamSet(templateParamSet1); // 返回的resp是一个SendSmsResponse的实例,与请求对象对应 SendSmsResponse resp = client.SendSms(req); // 输出json格式的字符串回包 System.out.println(SendSmsResponse.toJsonString(resp)); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); } return randomNumber; } @GetMapping("findUser") result> findUser(Integer page, Integer limit,HttpServletRequest request) throws UnsupportedEncodingException { PageInfo cz= userService.findAll(page, limit); return resultutil.returnSuccess(cz.getTotal(), cz.getList()); } @PostMapping("addUser") public void addUser(TbUser user,HttpServletResponse response) throws IOException { user.setTime(gettime()); if (user.getUadd() == null || user.getUadd() == ""){ user.setUadd("No"); }else{ user.setUadd("Yes"); } if (user.getUdelete() == null || user.getUdelete() == ""){ user.setUdelete("No"); }else { user.setUdelete("Yes"); } if (user.getUupdate() == null || user.getUupdate() == ""){ user.setUupdate("No"); }else{ user.setUupdate("Yes"); } if(user.getUjoin() == null || user.getUjoin() == ""){ user.setUjoin("No"); }else{ user.setUjoin("Yes"); } userService.addUser(user); TbScreenSettings screenSettings = new TbScreenSettings(); TbSystemOperationLog systemOperationLog = new TbSystemOperationLog(); systemOperationLog.setName(UserController.username); systemOperationLog.setTime(gettime()); systemOperationLog.setContent("添加了一个用户,该用户为:"+user.getUsername()); systemLogService.insertSystem(systemOperationLog); response.sendRedirect("/hxzkuwb/HouTai/User/User.jsp"); } @PostMapping("updateUser") public void updateUser(TbUser user,HttpServletResponse response) throws IOException { if (user.getUadd() == null || user.getUadd() == ""){ user.setUadd("No"); }else{ user.setUadd("Yes"); } if (user.getUdelete() == null || user.getUdelete() == ""){ user.setUdelete("No"); }else { user.setUdelete("Yes"); } if (user.getUupdate() == null || user.getUupdate() == ""){ user.setUupdate("No"); }else{ user.setUupdate("Yes"); } if(user.getUjoin() == null || user.getUjoin() == ""){ user.setUjoin("No"); }else{ user.setUjoin("Yes"); } user.setTime(gettime()); userService.updateUser(user); TbSystemOperationLog systemOperationLog = new TbSystemOperationLog(); systemOperationLog.setName(UserController.username); systemOperationLog.setTime(gettime()); systemOperationLog.setContent("修改了一个用户,该用户为:"+user.getUsername()); systemLogService.insertSystem(systemOperationLog); response.sendRedirect("/hxzkuwb/HouTai/User/User.jsp"); } @PostMapping("deleteUser") public void deleteUser(TbUser user,HttpServletResponse response) throws IOException { userService.deleteUser(user); screenService.deScreen(user.getUsername()); TbSystemOperationLog systemOperationLog = new TbSystemOperationLog(); systemOperationLog.setName(UserController.username); systemOperationLog.setTime(gettime()); systemOperationLog.setContent("删除了一个用户,该用户为:"+user.getUsername()); systemLogService.insertSystem(systemOperationLog); response.sendRedirect("/hxzkuwb/HouTai/User/User.jsp"); } //用户表格搜索 @PostMapping("findUserSearch") result> findUserSearch(Integer page, Integer limit,TbUser user){ PageInfo cz= userService.findSearch(page, limit,user); return resultutil.returnSuccess(cz.getTotal(), cz.getList()); } //获取所有公司表格 @GetMapping("findCompany") result> findCompany(Integer page, Integer limit){ PageInfo cz= comapanyService.findAll(page, limit); return resultutil.returnSuccess(cz.getTotal(), cz.getList()); } //获取所有公司下拉框 @GetMapping("listCompany") public List listcompany(){ return comapanyService.listcompany(); } //添加公司 @PostMapping("addCompany") public void addCompany(TbCompany company, HttpServletResponse response) throws IOException { Calendar calendar = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdf.format(calendar.getTime()); company.setAddtime(dateStr); comapanyService.addCompany(company); TbScreenSettings screenSettings = new TbScreenSettings(); screenSettings.setCompanyname(company.getCompanyname()); screenService.AddScreen(screenSettings); TbSystemOperationLog systemOperationLog = new TbSystemOperationLog(); systemOperationLog.setName(UserController.username); systemOperationLog.setTime(gettime()); systemOperationLog.setContent("增加了一个公司,该公司名称为:"+company.getCompanyname()); systemLogService.insertSystem(systemOperationLog); response.sendRedirect("/hxzkuwb/HouTai/User/Company.jsp"); } @PostMapping("updateCompany") public void updateCompany(TbCompany company,HttpServletResponse response) throws IOException { comapanyService.updateCompany(company); TbSystemOperationLog systemOperationLog = new TbSystemOperationLog(); systemOperationLog.setName(UserController.username); systemOperationLog.setTime(gettime()); systemOperationLog.setContent("修改了一个公司,该公司名称为:"+company.getCompanyname()); systemLogService.insertSystem(systemOperationLog); response.sendRedirect("/hxzkuwb/HouTai/User/Company.jsp"); } @PostMapping("deleteCompany") public int deleteCompany(TbCompany company){ screenService.deScreen(company.getCompanyname()); TbSystemOperationLog systemOperationLog = new TbSystemOperationLog(); systemOperationLog.setName(UserController.username); systemOperationLog.setTime(gettime()); systemOperationLog.setContent("删除了一个公司,该公司名称为:"+company.getCompanyname()); systemLogService.insertSystem(systemOperationLog); return comapanyService.deleteCompany(company); } @PostMapping("findcompanySearch") result> findanchorSearch(Integer page, Integer limit, TbCompany company){ PageInfo cz= comapanyService.findSearch(page, limit,company); return resultutil.returnSuccess(cz.getTotal(), cz.getList()); } //根据用户名称查询公司设置的系统名称 @GetMapping("findCompanySystemName") public TbCompany findComapanySystemName(String username){ TbUser user = userService.findCompanyName(username); return comapanyService.findCompany(user.getCompany()); } @GetMapping("findIdUser") public TbUser findIdUser(Integer id){ return userService.findIdUser(id); } @GetMapping("findPhoneUser") public TbUser findPhoneUser(String phone){ return userService.findPhoneUser(phone); } public String gettime(){ Date now = new Date(); // 创建日期格式化对象,设置格式为 "yyyy-MM-dd HH:mm" SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // 格式化日期对象,输出字符串结果 String formattedDate = sdf.format(now); return formattedDate; } }