diff --git a/pom.xml b/pom.xml index 3dfc857..9a96122 100644 --- a/pom.xml +++ b/pom.xml @@ -45,11 +45,58 @@ + + + + com.fazecast + jSerialComm + 2.9.2 + + + + org.jfree + jfreechart + 1.5.3 + + + + + + + com.github.wxpay + wxpay-sdk + 0.0.3 + + + com.github.binarywang + weixin-java-miniapp + 4.4.2.B + + + com.github.binarywang + weixin-java-pay + 4.2.0 + + + com.github.binarywang + weixin-java-mp + 4.4.0 + + + + + com.alipay.sdk + alipay-easysdk + 2.2.0 + + + + com.alipay.sdk alipay-sdk-java - 4.9.28.ALL + 4.34.0.ALL diff --git a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 1a0b167..c24918a 100644 --- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -325,7 +325,7 @@ public class ExcelUtil * * @param list 导出数据集合 * @param sheetName 工作表的名称 - * @return 结果 + * @return 结果 (导出位置在yml文件) */ public AjaxResult exportExcel(List list, String sheetName) { diff --git a/src/main/java/com/ruoyi/project/hit/controller/PupuLogController.java b/src/main/java/com/ruoyi/project/hit/controller/PupuLogController.java index aec2422..906aa12 100644 --- a/src/main/java/com/ruoyi/project/hit/controller/PupuLogController.java +++ b/src/main/java/com/ruoyi/project/hit/controller/PupuLogController.java @@ -1,12 +1,20 @@ package com.ruoyi.project.hit.controller; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; +import com.ruoyi.project.hit.domain.PupuLog; import com.ruoyi.project.hit.domain.vo.SelectLogVO; import com.ruoyi.project.hit.service.PupuLogService; +import com.ruoyi.project.system.domain.SysUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.List; @@ -23,7 +31,60 @@ public class PupuLogController extends BaseController { */ @PostMapping("/select") public TableDataInfo select(@RequestBody SelectLogVO selectLogVO){ + startPage(); List select = pupuLogService.select(selectLogVO); return getDataTable(select); } + + + /** + * 日志表导出 + * @param selectLogVO + * @return + */ + @GetMapping("/export") + public AjaxResult export(@RequestBody SelectLogVO selectLogVO) + { + List list = pupuLogService.selectLogs(selectLogVO); + ExcelUtil util = new ExcelUtil(PupuLog.class); + return util.exportExcel(list, "日志数据"); + } + + /** + * 日志表导入 + * @param file + * @param updateSupport + * @return + * @throws Exception + */ + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(PupuLog.class); + List list = util.importExcel(file.getInputStream()); + System.out.println(list); + if(list.size()==0){ + return AjaxResult.error("空数据"); + } + //执行导入操作。。。 + boolean b = pupuLogService.saveBatch(list); + if(!b){ + return AjaxResult.error("数据导入失败"); + } + return AjaxResult.success(); + } + + + /** + * 获取导入模版 + * @return + */ + @GetMapping("/importTemplate") + public AjaxResult importTemplate() + { + ExcelUtil util = new ExcelUtil(PupuLog.class); + return util.importTemplateExcel("日志数据"); + } + + } diff --git a/src/main/java/com/ruoyi/project/hit/domain/PupuLog.java b/src/main/java/com/ruoyi/project/hit/domain/PupuLog.java index 7b890c6..12eba71 100644 --- a/src/main/java/com/ruoyi/project/hit/domain/PupuLog.java +++ b/src/main/java/com/ruoyi/project/hit/domain/PupuLog.java @@ -4,24 +4,35 @@ import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; import java.util.Date; + +import com.ruoyi.framework.aspectj.lang.annotation.Excel; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @TableName pupu_log */ @TableName(value ="pupu_log") @Data +@AllArgsConstructor +@NoArgsConstructor public class PupuLog implements Serializable { @TableId(type = IdType.AUTO) + @Excel(name = "日志序号", cellType = Excel.ColumnType.NUMERIC, prompt = "日志编号") private Integer logId; + @Excel(name = "事件") private String logEvent; + @Excel(name = "事件种类", readConverterExp = "1=增,2=删,3=改") private Integer logSort; @TableField(fill = FieldFill.INSERT) + @Excel(name = "时间", width = 30 ,dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT) private Date time; + @Excel(name = "用户id") private Integer userId; private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/hit/service/PupuLogService.java b/src/main/java/com/ruoyi/project/hit/service/PupuLogService.java index 48b2e44..8302793 100644 --- a/src/main/java/com/ruoyi/project/hit/service/PupuLogService.java +++ b/src/main/java/com/ruoyi/project/hit/service/PupuLogService.java @@ -17,4 +17,6 @@ public interface PupuLogService extends IService { int add(PupuLog pupuLog); List select(SelectLogVO selectLogVO); + + List selectLogs(SelectLogVO selectLogVO); } diff --git a/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java b/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java index 2542513..2834f73 100644 --- a/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java +++ b/src/main/java/com/ruoyi/project/hit/service/impl/PupuEquipmentServiceImpl.java @@ -41,8 +41,8 @@ public class PupuEquipmentServiceImpl extends ServiceImpl0){ pupuLogService.add(new PupuLog("设备"+pupuEquipment.getEquipmentId()+"新增",1,new Date(),userId)); } @@ -54,8 +54,11 @@ public class PupuEquipmentServiceImpl extends ServiceImpl0){ + pupuLogService.add(new PupuLog("设备"+equipmentId+"删除",2,new Date(),userId)); + } + return i; } @Override diff --git a/src/main/java/com/ruoyi/project/hit/service/impl/PupuLogServiceImpl.java b/src/main/java/com/ruoyi/project/hit/service/impl/PupuLogServiceImpl.java index 3ca8efc..079a2f2 100644 --- a/src/main/java/com/ruoyi/project/hit/service/impl/PupuLogServiceImpl.java +++ b/src/main/java/com/ruoyi/project/hit/service/impl/PupuLogServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.project.hit.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.exception.CustomException; import com.ruoyi.project.hit.domain.PupuLog; @@ -35,6 +36,13 @@ public class PupuLogServiceImpl extends ServiceImpl public List select(SelectLogVO selectLogVO) { return pupuLogMapper.select(selectLogVO); } + + @Override + public List selectLogs(SelectLogVO selectLogVO) { + LambdaQueryWrapper wrapper=new LambdaQueryWrapper<>(); + wrapper.eq(PupuLog::getLogSort,selectLogVO.getSortId()); + return pupuLogMapper.selectList(wrapper); + } } diff --git a/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java b/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java index e182e39..2af76eb 100644 --- a/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java +++ b/src/main/java/com/ruoyi/project/hit/service/impl/PupuStoreServiceImpl.java @@ -33,12 +33,11 @@ public class PupuStoreServiceImpl extends ServiceImpl0){ pupuLogService.add(new PupuLog("门店"+pupuStore.getStoreId()+"新增",1,new Date(),userId)); } - return i; } @@ -58,9 +57,6 @@ public class PupuStoreServiceImpl extends ServiceImpl params = new HashMap<>(); - Map requestParams = request.getParameterMap(); - for (String name : requestParams.keySet()) { - params.put(name, request.getParameter(name)); - // System.out.println(name + " = " + request.getParameter(name)); - } - - String tradeNo = params.get("out_trade_no"); - String gmtPayment = params.get("gmt_payment"); - String alipayTradeNo = params.get("trade_no"); - // 支付宝验签 -// if (Factory.Payment.Common().verifyNotify(params)) { -// // 验签通过 -// System.out.println("交易名称: " + params.get("subject")); -// System.out.println("交易状态: " + params.get("trade_status")); -// System.out.println("支付宝交易凭证号: " + params.get("trade_no")); -// System.out.println("商户订单号: " + params.get("out_trade_no")); -// System.out.println("交易金额: " + params.get("total_amount")); -// System.out.println("买家在支付宝唯一id: " + params.get("buyer_id")); -// System.out.println("买家付款时间: " + params.get("gmt_payment")); -// System.out.println("买家付款金额: " + params.get("buyer_pay_amount")); -// // 更新订单状态 -// } - } - return "success"; - } -} - - diff --git a/src/main/java/com/ruoyi/project/hit/test/ai/AIRequest.java b/src/main/java/com/ruoyi/project/hit/test/ai/AIRequest.java new file mode 100644 index 0000000..d34e555 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/test/ai/AIRequest.java @@ -0,0 +1,30 @@ +package com.ruoyi.project.hit.test.ai; + + +public class AIRequest { + private String url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s"; + + private String message; + + public AIRequest(){} + public AIRequest(String message) { + this.message = message; + } + + public String getUrl() { + return String.format(url, message);//返回完整的url + } + + public void setUrl(String url) { + this.url = url; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} + diff --git a/src/main/java/com/ruoyi/project/hit/test/ai/AiService.java b/src/main/java/com/ruoyi/project/hit/test/ai/AiService.java new file mode 100644 index 0000000..4c62456 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/test/ai/AiService.java @@ -0,0 +1,52 @@ +package com.ruoyi.project.hit.test.ai; + + + +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Map; + +public class AiService { + + public static String getdetail(String message){ + AIRequest request=new AIRequest(message); + try { + URL url = new URL(request.getUrl()); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + int code = connection.getResponseCode(); + if (code >= 200 && code < 300) { + BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); + StringBuffer sb = new StringBuffer(); + String str; + while ((str = reader.readLine()) != null) { + sb.append(str); + } +// System.out.println(sb); + return String.valueOf(sb);//返回json格式 + } + } catch (IOException e) { + e.printStackTrace(); + } + return "ai应答失败"; + } + + + public static void main(String[] args){ + String json=getdetail("现在几点"); + System.out.println(json); + ObjectMapper mapper = new ObjectMapper(); + try { + // 将JSON字符串转换为Map + Map map = mapper.readValue(json, Map.class); + // 打印转换后的Map + System.out.println(map.get("content")); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/ruoyi/project/hit/test/alipay/AliPayController.java b/src/main/java/com/ruoyi/project/hit/test/alipay/AliPayController.java new file mode 100644 index 0000000..df92416 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/test/alipay/AliPayController.java @@ -0,0 +1,123 @@ +package com.ruoyi.project.hit.test.alipay; + + + + + + +import com.alipay.api.AlipayApiException; +import com.alipay.api.internal.util.AlipaySignature; +import org.springframework.web.bind.annotation.*; + +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.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Random; + +/** + * 支付宝接口 + */ +@RestController +@RequestMapping("/hit/alipay") +public class AliPayController { + + @Resource + AlipayTemplate alipayTemplate; + + @GetMapping(value = "/pay/{orderId}", produces = "text/html") + @ResponseBody + public String pay(@PathVariable(value = "orderId") Integer orderId) throws AlipayApiException { + Order order = new Order(); + Random random = new Random(); + + // 生成一个随机的long型数据 + long randomLong = random.nextLong(); + order.setId(randomLong); + order.setUserId(129904058947L); + order.setInterfaceInfoId(294389472934L); + order.setMoney(10.0); + order.setPaymentMethod("支付宝"); + return alipayTemplate.pay(order); + } + + @PostMapping("/notify") // 注意这里必须是POST接口 + public String payNotify(HttpServletRequest request) throws Exception { + if (request.getParameter("trade_status").equals("TRADE_SUCCESS")) { + System.out.println("=========支付宝异步回调========"); + + /*Map params = new HashMap<>(); + Map requestParams = request.getParameterMap(); + for (String name : requestParams.keySet()) { + params.put(name, request.getParameter(name)); + System.out.println(name + " = " + request.getParameter(name)); + } + + String tradeNo = params.get("out_trade_no"); + String gmtPayment = params.get("gmt_payment"); + String alipayTradeNo = params.get("trade_no"); + + String sign = params.get("sign"); + String content = AlipaySignature.getSignCheckContentV1(params); + + // 支付宝验签 +// System.out.println(alipayTemplate.alipayPublicKey); +// System.out.println(alipayTemplate.getCharset()); + boolean rsa2 = AlipaySignature.rsaCheck(content,sign, alipayTemplate.alipayPublicKey, "UTF-8", "RSA2"); +// boolean checkSignature = AlipaySignature.rsa256CheckContent(content, sign, alipayTemplate.getAlipayPublicKey(), "UTF-8"); // 验证签名 + System.out.println(rsa2); + if (Factory.Payment.Common().verifyNotify(params)) { + // 验签通过 + System.out.println("交易名称: " + params.get("subject")); + System.out.println("交易状态: " + params.get("trade_status")); + System.out.println("支付宝交易凭证号: " + params.get("trade_no")); + System.out.println("商户订单号: " + params.get("out_trade_no")); + System.out.println("交易金额: " + params.get("total_amount")); + System.out.println("买家在支付宝唯一id: " + params.get("buyer_id")); + System.out.println("买家付款时间: " + params.get("gmt_payment")); + System.out.println("买家付款金额: " + params.get("buyer_pay_amount")); + // 更新订单状态 + }else { + System.out.println("验签失败"); + }*/ + + + Map params = new HashMap<>(); +// 假设你已经有了一个方法来解析HTTP POST请求的参数 + Map requestParams = request.getParameterMap(); + for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) { + String name = iter.next(); + String[] values = requestParams.get(name); + String valueStr = ""; + for (int i = 0; i < values.length; i++) { + valueStr = (i == values.length - 1) ? valueStr + values[i] + : valueStr + values[i] + ","; + } + // 乱码解决,这段代码在出现乱码时使用 +// valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); + params.put(name, valueStr); + } + +// 验签 + System.out.println(params); + boolean isCheck = AlipaySignature.rsaCheckV1(params, alipayTemplate.getAlipayPublicKey(), "UTF-8","RSA2"); + if (isCheck) { + System.out.println("验签成功"); + // 验签成功,处理业务逻辑 + } else { + // 验签失败,记录日志或返回错误信息 + System.out.println("验签失败"); + } + + } + return "success"; + } +} + + diff --git a/src/main/java/com/ruoyi/project/hit/test/AlipayTemplate.java b/src/main/java/com/ruoyi/project/hit/test/alipay/AlipayTemplate.java similarity index 93% rename from src/main/java/com/ruoyi/project/hit/test/AlipayTemplate.java rename to src/main/java/com/ruoyi/project/hit/test/alipay/AlipayTemplate.java index 95fd609..bd3abf4 100644 --- a/src/main/java/com/ruoyi/project/hit/test/AlipayTemplate.java +++ b/src/main/java/com/ruoyi/project/hit/test/alipay/AlipayTemplate.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.hit.test; +package com.ruoyi.project.hit.test.alipay; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; @@ -11,13 +11,13 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; -@ConfigurationProperties(prefix = "alipay") + @Component @Data +@ConfigurationProperties(prefix = "alipay") public class AlipayTemplate { // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号 @Value("{alipay.appId}") - public String appId; // 应用私钥,就是工具生成的应用私钥 @@ -31,8 +31,8 @@ public class AlipayTemplate { @Value("{alipay.notifyUrl}") public String notifyUrl; //同步通知,支付成功,一般跳转到成功页 - @Value("{alipay.returnUrl}") - public String returnUrl; +// @Value("{alipay.returnUrl}") +// public String returnUrl; // 签名方式 @Value("{alipay.signType}") @@ -58,15 +58,18 @@ public class AlipayTemplate { //2、创建一个支付请求,并设置请求参数 AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); - alipayRequest.setReturnUrl(returnUrl); +// alipayRequest.setReturnUrl(returnUrl); alipayRequest.setNotifyUrl(notifyUrl); + System.out.println(notifyUrl); + Long id = order.getId(); Long interfaceInfoId = order.getInterfaceInfoId(); Double money = order.getMoney(); String paymentMethod = order.getPaymentMethod(); + alipayRequest.setBizContent(" {\"out_trade_no\":\"" + id + "\"," + "\"total_amount\":\"" + money + "\"," + "\"subject\":\"" + interfaceInfoId diff --git a/src/main/java/com/ruoyi/project/hit/test/Order.java b/src/main/java/com/ruoyi/project/hit/test/alipay/Order.java similarity index 96% rename from src/main/java/com/ruoyi/project/hit/test/Order.java rename to src/main/java/com/ruoyi/project/hit/test/alipay/Order.java index b026717..cab9b5b 100644 --- a/src/main/java/com/ruoyi/project/hit/test/Order.java +++ b/src/main/java/com/ruoyi/project/hit/test/alipay/Order.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.hit.test; +package com.ruoyi.project.hit.test.alipay; diff --git a/src/main/java/com/ruoyi/project/hit/test/thickness/ChartUpdater.java b/src/main/java/com/ruoyi/project/hit/test/thickness/ChartUpdater.java new file mode 100644 index 0000000..786cbc9 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/test/thickness/ChartUpdater.java @@ -0,0 +1,48 @@ +package com.ruoyi.project.hit.test.thickness; + +import org.jfree.chart.ChartFactory; +import org.jfree.chart.ChartPanel; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.data.general.DatasetChangeEvent; +import org.jfree.data.xy.XYSeries; +import org.jfree.data.xy.XYSeriesCollection; + +import javax.swing.*; +import java.awt.*; + +public class ChartUpdater { + + private static XYSeries series = new XYSeries("Serial Data"); + private static XYSeriesCollection dataset = new XYSeriesCollection(series); + private static JFreeChart chart; + private static JFrame frame; + + public static void main(String[] args) { + chart = ChartFactory.createXYLineChart( + "Serial Data Chart", + "Time", + "Value", + dataset, + PlotOrientation.VERTICAL, + true, true, false); + + frame = new JFrame(); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(800, 600); + frame.add(new ChartPanel(chart)); + frame.setVisible(true); + } + + public static synchronized void updateChart(String data) { + try { + double value = Double.parseDouble(data.trim()); + series.add(series.getItemCount() + 1, value); // Assuming the x-axis is just the count of data points + + // Update the dataset and chart +// dataset.notifyListeners(new DatasetChangeEvent(this, dataset)); + } catch (NumberFormatException e) { + System.out.println("Invalid data received: " + data); + } + } +} diff --git a/src/main/java/com/ruoyi/project/hit/test/thickness/SerialPortReader.java b/src/main/java/com/ruoyi/project/hit/test/thickness/SerialPortReader.java new file mode 100644 index 0000000..a65ae77 --- /dev/null +++ b/src/main/java/com/ruoyi/project/hit/test/thickness/SerialPortReader.java @@ -0,0 +1,62 @@ +package com.ruoyi.project.hit.test.thickness; + +import com.fazecast.jSerialComm.SerialPort; +import org.springframework.security.core.parameters.P; + +import java.util.Arrays; + +public class SerialPortReader { + public static void main(String[] args) { + // List all available serial ports + SerialPort[] ports = SerialPort.getCommPorts(); + for (SerialPort port : ports) { + System.out.println(port.getSystemPortName()); + } + + + + SerialPort port = SerialPort.getCommPort("COM6"); // 修改为你的串口号 + port.setBaudRate(57600); + port.setNumDataBits(8); + port.setNumStopBits(SerialPort.ONE_STOP_BIT); + port.setParity(SerialPort.NO_PARITY); + + if (port.openPort()) { + System.out.println("Port opened successfully."); + try { + // 指令数据 + byte[] command = {0x5a, 0x00, 0x0a, 0x00, 0x00, 0x04, 0x00, (byte) 0x7d, 0x00, 0x29}; + + // 发送指令 + port.writeBytes(command, command.length); + System.out.println("Command sent."+ Arrays.toString(command)); + // 现在你可以开始读取串口数据了 + + // 示例:读取串口数据 + byte[] readBuffer = new byte[1024]; + int numRead = port.readBytes(readBuffer, readBuffer.length); + if (numRead > 0) { + String readData = new String(readBuffer, 0, numRead); + System.out.println("Read " + numRead + " bytes: " + readData); + } + + } catch (Exception e) { + e.printStackTrace(); + } finally { + port.closePort(); // 关闭串口 + } + } else { + System.out.println("Failed to open port."); + return; + } + + + } + + // Placeholder for the method that updates the chart + private static void updateChart(String data) { + // Parse the data and update the chart + // This will be implemented in the next section + ChartUpdater.updateChart(data); + } +} diff --git a/src/main/java/com/ruoyi/project/monitor/service/impl/SysJobServiceImpl.java b/src/main/java/com/ruoyi/project/monitor/service/impl/SysJobServiceImpl.java index c53cd3c..1d3b305 100644 --- a/src/main/java/com/ruoyi/project/monitor/service/impl/SysJobServiceImpl.java +++ b/src/main/java/com/ruoyi/project/monitor/service/impl/SysJobServiceImpl.java @@ -2,6 +2,8 @@ package com.ruoyi.project.monitor.service.impl; import java.util.List; import javax.annotation.PostConstruct; +import javax.annotation.Resource; + import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.Scheduler; @@ -28,7 +30,7 @@ public class SysJobServiceImpl implements ISysJobService @Autowired private Scheduler scheduler; - @Autowired + @Resource private SysJobMapper jobMapper; /** diff --git a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java index 3617372..8881579 100644 --- a/src/main/java/com/ruoyi/project/system/controller/SysUserController.java +++ b/src/main/java/com/ruoyi/project/system/controller/SysUserController.java @@ -65,6 +65,11 @@ public class SysUserController extends BaseController return getDataTable(list); } + /** + * excel表导出 + * @param user + * @return + */ @Log(title = "用户管理", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('system:user:export')") @GetMapping("/export") @@ -75,6 +80,13 @@ public class SysUserController extends BaseController return util.exportExcel(list, "用户数据"); } + /** + * excel表导入 + * @param file + * @param updateSupport(是否更新支持) + * @return + * @throws Exception + */ @Log(title = "用户管理", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") @@ -88,6 +100,10 @@ public class SysUserController extends BaseController return AjaxResult.success(message); } + /** + * 获取导入模版 + * @return + */ @GetMapping("/importTemplate") public AjaxResult importTemplate() { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0c55a29..c0c852a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -151,11 +151,25 @@ minio: alipay: appId: 9021000140665155 +# 应用私钥(工具生成) merchantPrivateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCeszWzeW3hcNTgJCPisg3AEDTfgSulgg6g5ui/s9eKgeC53zYm8XNyOwEJZoHRz1dk1ekxSHOUYmQbdOVyfqRvdOd5V5xMY3ihvtOIsY1EjrIgU1VzJOpuiWJ1egxsUyc4nDUA00+5YXfeXyTI60Ro5+mQukq4MS6Q3FConQwa8LxLJhWOVuIT/laQpKu6hskldUcgYcWS1pYMo2Z+mnnt1qLkKMRmiFnpo+p4tx3XuN8Uy5o/ZhTxD0WZC+SPqgJ0osfcp/KDFMtUklOefuHlCGc1dBvo2TTnsLl54bGXHQ8HvgN4W4HXRWvPfLbyXsg3ULWaYMmuOkTgQgbZK3NjAgMBAAECggEAfnPVilhrUYMSXDbv0SaHBk7jkmPeX1auSU80jevDBz5Nzk0pXQZvMsoJHXBsaL2JqXM5CGfukIGFusr+OKjoZVcFSg6hH8zyxg7DhtvS8JmzHUbJg6IamlEl/u1tELOBQP5WzX2SvOgJF0tAiEfOjribxxJpjzLBI/Qo4PGiP6PhFiT/A6Dm3U6Qz8G4s168hRsIqXwrpmtYG4vc2acLeUg1Dc3jD4wHZFN0WQbYhKcY7e1xoKiIsYG/MJVKNemMRMPQxmPVLJ4Q3scMRNCYcrEDfj78QryTCUOVKY0Vo7Wx2T6H1CEgjeXHzBjE4zsdqFPE4gSVZ6t43AXQIpTHwQKBgQD9CTYUHaTfnk4zIfLKV5nTEIREV4q0g6b6JDO6uyxrLhnT5Dz2mMFvNtA+Oso65vzc6mxi8uhXCD5SmmmJzPtJ6VBsT4V3A6gg5dpZHassKXlEEWZZ58zE4aCWBbaL8w5GqWcR8X83/ijuSjSpnzQaAWS0D4Kd4F/I4gA1XBtVawKBgQCgjxwU7cilbBKMHYT0Aoxnxw4pS3Qw1Vfk0ij/Np2f1kAo/ylaeWcIRIep5/E7cJbXS2HnmJqjroZ4MISc8ihs5k8EOFdF3S4z4850nH3VmfEJOI2PKxE7smqVoik6sohfYqHYjRJtMFyGsEgvOrvEBNox3ugEkIfeGemsbMhf6QKBgG+b34GR7cZAwkdlgvzjFNN3JpAqeODUbRNKYpLLunTwGa5PruAqUq/mYoYAUnEWr5QVxocCk57H4Q14VHLWukRIqBOOI9VyBHe2StAh+P16saVnc1jWmIiC6N0jWfhy1eovEGpmtfGRpqYsjvv+X/HUiYGukbNnY3hszyC6JshPAoGATQR49v0dC2Ts/LNITHhQe5N7kol0QdyE3emF6u566+otOr0zTAgCSW/+F52AFQAsCzhIzXxhaXTVYh/77QEoLRzI+IBCNOwlNpTnOv66SdUfT0oGdY+2I4mxIPf5iQOM8RxyAFujZCcXqzAyYB1vZlbhh5yidVYTJpINij1gXMkCgYEA7kP3hmFOXqbPcMwWL5FEBc1u+NK/v4dj1FURNj19IkRw15d53pY8/orPHfIFt05NYCyl4jXJhozuEihGw5YwJLi8t2kPAwHX3u2yxrSeI5MrqVhyWD1Nf2HD4VBt1iuGgGj6xoiISc83cKw5ZiJT4I2plq5UIPHRiEM9wcuOeYE= - alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnrM1s3lt4XDU4CQj4rINwBA034ErpYIOoObov7PXioHgud82JvFzcjsBCWaB0c9XZNXpMUhzlGJkG3Tlcn6kb3TneVecTGN4ob7TiLGNRI6yIFNVcyTqbolidXoMbFMnOJw1ANNPuWF33l8kyOtEaOfpkLpKuDEukNxQqJ0MGvC8SyYVjlbiE/5WkKSruobJJXVHIGHFktaWDKNmfpp57dai5CjEZohZ6aPqeLcd17jfFMuaP2YU8Q9FmQvkj6oCdKLH3KfygxTLVJJTnn7h5QhnNXQb6Nk057C5eeGxlx0PB74DeFuB10Vrz3y28l7IN1C1mmDJrjpE4EIG2StzYwIDAQAB - notifyUrl: http://内网穿透地址/api/alipay/notify - returnUrl: http://member.zyz.com/memberOrder.html +# 应用公钥(工具生成) +# merchantPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnrM1s3lt4XDU4CQj4rINwBA034ErpYIOoObov7PXioHgud82JvFzcjsBCWaB0c9XZNXpMUhzlGJkG3Tlcn6kb3TneVecTGN4ob7TiLGNRI6yIFNVcyTqbolidXoMbFMnOJw1ANNPuWF33l8kyOtEaOfpkLpKuDEukNxQqJ0MGvC8SyYVjlbiE/5WkKSruobJJXVHIGHFktaWDKNmfpp57dai5CjEZohZ6aPqeLcd17jfFMuaP2YU8Q9FmQvkj6oCdKLH3KfygxTLVJJTnn7h5QhnNXQb6Nk057C5eeGxlx0PB74DeFuB10Vrz3y28l7IN1C1mmDJrjpE4EIG2StzYwIDAQAB +# 支付宝公钥(支付宝查看) + alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs7d1mpaVxyN7J32FcFyYYO9G1Hpbkxb8ksG61TsP0enCLvmT2xM0U8Ykh90eYFkqLkRMVup18CsPabnC8XIFjpWTtHYm+auGydCTQirUwfhl5XK/r++kO9nXbFmR8c1MLwJ78hjeGXXukhhd0R5s0sST/sqU84k1E4aGZKWZ/snxr4EO4UFXUrUrmyXPMD6bngYZUt/pWg/65prNl7kPwwSxfVY06rYIT6dD6qbDenGw/h0WdgfhXS4tHg6TsoD6L9tybNyxJcVz+cFq1vkp7EwkfaY0O38Jcvd9TLdes63gqSbsA1/M0q0LHNS9iCjCX/arekrvTS8LhH0jNImtlQIDAQAB + # natapp端口号配置要与服务器端口一致 + notifyUrl: http://jqi5wy.natappfree.cc/hit/alipay/notify +# returnUrl: http://member.zyz.com/memberOrder.html signType: RSA2 - charset: utf-8 + charset: UTF-8 # 我的支付宝网关地址 gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do + +wx: + pay: + appId: #微信公众号或者小程序等的appid + secret: + mchId: #微信支付商户号 + mchKey: #微信支付商户密钥 + notifyUrl: http://8.130.135.74:8053/api/order/student/pay/wxCallback #支付回调地址 +