hu 4 周之前
父节点
当前提交
546e938853

+ 6 - 0
pom.xml

@@ -291,6 +291,12 @@
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-frontend-jaxws</artifactId>
             <version>2.7.7</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>geronimo-javamail_1.4_spec</artifactId>
+                    <groupId>org.apache.geronimo.specs</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.cxf</groupId>

+ 5 - 0
src/custom/restcontroller/R.java

@@ -5723,6 +5723,11 @@ public class R {
     }
 
 
+    public static class ID20260414100001 {
+        public static class v1 {
+        }
+    }
+
     public static class ID20240328130902 {
         public static class v1 {
         }

+ 0 - 4
src/custom/restcontroller/saletool/notice/notice.java

@@ -1,18 +1,14 @@
 package restcontroller.saletool.notice;
 
 import beans.attachment.Attachment;
-import beans.department.Department;
 import beans.parameter.Parameter;
 import beans.remind.Remind;
-import beans.salearea.SaleArea;
 import com.alibaba.fastjson.JSONObject;
 import common.Controller;
 import common.YosException;
 import common.annotation.API;
-import common.annotation.CACHEING;
 import common.data.*;
 import restcontroller.R;
-import utility.email.Email;
 import utility.email.EmailContent;
 
 import java.util.ArrayList;

+ 0 - 5
src/custom/restcontroller/webmanage/saletool/courseware/courseware.java

@@ -1,7 +1,6 @@
 package restcontroller.webmanage.saletool.courseware;
 
 import beans.datacontrllog.DataContrlLog;
-import beans.datatag.DataTag;
 import beans.remind.Remind;
 import beans.time.Time;
 import beans.user.User;
@@ -10,16 +9,12 @@ import com.alibaba.fastjson.JSONObject;
 import common.Controller;
 import common.YosException;
 import common.annotation.API;
-import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
 import common.annotation.cm;
 import common.data.*;
 import restcontroller.R;
-import utility.email.EmailContent;
 
 import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
 
 @API(title = "商学院-课件管理")
 public class courseware extends Controller {

+ 18 - 3
src/custom/restcontroller/webmanage/saletool/courseware/coursewaretesthead.java

@@ -40,6 +40,7 @@ public class coursewaretesthead extends Controller {
         Long sat_courseware_testheadid = content.getLongValue("sat_courseware_testheadid");
         int testaddmode = content.getIntValue("testaddmode", 1);
         int num = content.getIntValue("num", 0);
+        boolean isrepeat = content.getBooleanValue("isrepeat");
         JSONArray sat_courseware_classids = new JSONArray();
         if (content.containsKey("sat_courseware_classids")) {
             sat_courseware_classids = content.getJSONArray("sat_courseware_classids");
@@ -88,6 +89,7 @@ public class coursewaretesthead extends Controller {
             insertSQL.setValue("passingscore", content.getBigDecimalValue("passingscore", 60));
             insertSQL.setValue("num", content.getIntValue("num", 0));
             insertSQL.setValue("sat_courseware_classids", sat_courseware_classids);
+            insertSQL.setValue("isrepeat", isrepeat);
             insertSQL.insert();
 
             content.put("sat_courseware_testheadid", sat_courseware_testheadid);
@@ -103,6 +105,7 @@ public class coursewaretesthead extends Controller {
             updateSQL.setValue("passingscore", content.getBigDecimalValue("passingscore", 60));
             updateSQL.setValue("num", content.getIntValue("num", 0));
             updateSQL.setValue("sat_courseware_classids", sat_courseware_classids);
+            updateSQL.setValue("isrepeat", isrepeat);
             if (testaddmode == 1) {//系统随机
                 updateSQL.setValue("testquestions", new JSONArray());
             }
@@ -395,7 +398,7 @@ public class coursewaretesthead extends Controller {
         if (testheadRows.isEmpty()) {
             return getErrReturnObject().setErrMsg("考试不存在").toString();
         }
-        Rows testRows = dbConnect.runSqlQuery("SELECT sat_courseware_testid from sat_courseware_test WHERE sat_courseware_testheadid=" + sat_courseware_testheadid + " and userid=" + userid + " and siteid='" + siteid + "'");
+        Rows testRows = dbConnect.runSqlQuery("SELECT sat_courseware_testid from sat_courseware_test WHERE status!='已作废' and sat_courseware_testheadid=" + sat_courseware_testheadid + " and userid=" + userid + " and siteid='" + siteid + "'");
         if (testRows.isNotEmpty()) {
             Long sat_courseware_testid = testRows.get(0).getLong("sat_courseware_testid");
             content.put("sat_courseware_testid", sat_courseware_testid);
@@ -480,6 +483,7 @@ public class coursewaretesthead extends Controller {
         querySQL.addQueryFields("status", "IFNULL(t3.`status`,'未开始')");
         querySQL.addQueryFields("rightcount", "IFNULL(t3.`rightcount`,0)");
         querySQL.setWhere(where.toString());
+        querySQL.setWhere("t3.status!='已作废'");
         querySQL.setSiteid(siteid);
         querySQL.setWhere("t2.sat_courseware_testheadid", sat_courseware_testheadid);
         if (pageSorting.equals("''")) {
@@ -508,8 +512,7 @@ public class coursewaretesthead extends Controller {
             updateSQL.update();
         }
 
-
-        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_courseware_test").setTableAlias("t1");
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sat_courseware_test","isrepeat").setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sat_courseware_testhead", "t2", "t2.sat_courseware_testheadid=t1.sat_courseware_testheadid and t2.siteid=t1.siteid"
                 , "num", "passingscore", "title");
         querySQL.setWhere("sat_courseware_testid", sat_courseware_testid);
@@ -620,6 +623,18 @@ public class coursewaretesthead extends Controller {
         return getSucReturnObject().setData(rows).toString();
     }
 
+    @API(title = "重考", apiversion = R.ID20260414100001.v1.class)
+    public String retest() throws YosException {
+        Long sat_courseware_testid = content.getLong("sat_courseware_testid");
+        long sat_courseware_testheadid = content.getLong("sat_courseware_testheadid");
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_courseware_test");
+        updateSQL.setUniqueid(sat_courseware_testid);
+        updateSQL.setSiteid(siteid);
+        updateSQL.setValue("status", "已作废");
+        updateSQL.update();
+        return addTest();
+    }
+
     @API(title = "考试提交", apiversion = R.ID20240326145902.v1.class)
     public String submit() throws YosException {
 

+ 0 - 1
src/custom/restcontroller/webmanage/saletool/orderclue/publicclue/PublicClue.java

@@ -20,7 +20,6 @@ import restcontroller.R;
 import restcontroller.saletool.orderclue.web.orderclue;
 import restcontroller.webmanage.executorService.Executor;
 import restcontroller.webmanage.saletool.orderclue.privateclue.PrivateClue;
-import utility.email.EmailContent;
 
 import java.util.ArrayList;
 

+ 33 - 2
src/custom/restcontroller/webmanage/saletool/sharematerial/EquipmentResourceLibrary.java

@@ -11,6 +11,7 @@ import common.YosException;
 import common.annotation.API;
 import common.data.*;
 import restcontroller.R;
+import utility.email.Email;
 import utility.email.EmailContent;
 
 import java.util.ArrayList;
@@ -516,12 +517,31 @@ public class EquipmentResourceLibrary extends Controller {
             return getErrReturnObject().setErrMsg("数据不存在").toString();
         }
 
-        Rows rowsAtt = Attachment.get(this, "sat_sharematerial", sat_sharematerialid, "sat_sharematerial");
+        Rows rowsAtt = Attachment.get(this, "sat_sharematerial", sat_sharematerialid);
 
         EmailContent emailContent = new EmailContent();
         emailContent.addText(rows.get(0).getString("content"));
         for (Row rowAtt : rowsAtt) {
-            emailContent.addText("下载链接:"+rowAtt.getString("url"));
+            emailContent.addLink(rowAtt.getString("document"),rowAtt.getString("url"));
+            emailContent.addBr();
+        }
+        emailContent.addBr();
+        for (Row rowAtt : rowsAtt) {
+            //emailContent.addText("下载链接:"+rowAtt.getString("url"));
+            String postfix = rowAtt.getString("postfix");
+            if (postfix.equalsIgnoreCase("jpg")||postfix.equals("png")) {
+                emailContent.addImage(rowAtt.getString("url"));
+            }else if(postfix.equalsIgnoreCase("mp4")||postfix.equals("mov")){
+                RowsMap subrowsMap = rowAtt.getRows("subfiles").toRowsMap("type");
+                if(subrowsMap.containsKey("cover")){
+                    Row cover = subrowsMap.get("cover").get(0);
+                    emailContent.addImage(cover.getString("url"),rowAtt.getString("url"));
+                }else{
+                    emailContent.addLink(rowAtt.getString("document"),rowAtt.getString("url"));
+                }
+            }else{
+                emailContent.addLink(rowAtt.getString("document"),rowAtt.getString("url"));
+            }
             emailContent.addBr();
         }
         Remind remind = new Remind(siteid);
@@ -534,4 +554,15 @@ public class EquipmentResourceLibrary extends Controller {
 
         return getSucReturnObject().toString();
     }
+
+    public static void main(String[] args)throws YosException {
+        try {
+            Email email = new Email("MD", "ceshi", "544589199@qq.com");
+            EmailContent emailContent = new EmailContent();
+            emailContent.addText("hellow");
+            email.send("MD",emailContent);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 0 - 4
src/custom/service/CampaignAutoEndService.java

@@ -4,11 +4,7 @@ import common.ServiceController;
 import common.YosException;
 import common.data.Row;
 import common.data.Rows;
-import common.data.RowsMap;
-import utility.email.EmailContent;
 
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 
 

+ 0 - 4
src/custom/service/OrderClueRemindService.java

@@ -1,15 +1,11 @@
 package service;
 
 import beans.remind.Remind;
-import beans.user.User;
-import com.alibaba.fastjson.JSONObject;
-import common.Controller;
 import common.ServiceController;
 import common.YosException;
 import common.data.Row;
 import common.data.Rows;
 import common.data.RowsMap;
-import utility.email.EmailContent;
 
 import java.util.ArrayList;
 

+ 81 - 0
src/custom/utility/email/Email.java

@@ -0,0 +1,81 @@
+package utility.email;
+
+import beans.parameter.Parameter;
+import common.BaseClass;
+
+import javax.mail.Address;
+import javax.mail.Message;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import java.util.ArrayList;
+import java.util.Properties;
+
+public class Email extends BaseClass {
+    Session session = null;
+    Transport transport = null;
+    MimeMessage message = null;
+
+//
+//    public static void main(String[] args) throws Exception {
+//        Email email = new Email("订单发货通知", "13732579910@139.com");
+//        EmailContent emailContent = new EmailContent();
+//        emailContent.addText("尊敬的****:");
+//        emailContent.addBr(3);
+//        emailContent.addText(8, "您的订单已于2022-01-01 12:12:21 发货,请跟踪查收!发货详情见附件。");
+//        //emailContent.addImage("https://www.baidu.com/img/flexible/logo/pc/result@2.png");
+//        emailContent.addBr();
+//        emailContent.addFile("http://maven.jeecg.org/nexus/content/repositories/jeecg/pinyin4j/pinyin4j-util/2.5.0/pinyin4j-util-2.5.0.jar");
+//        email.send(emailContent);
+//    }
+
+    public Email(String siteid, String subject, String[] tos) throws Exception {
+        init(siteid, subject, tos);
+    }
+
+    public Email(String siteid, String subject, String to) throws Exception {
+        init(siteid, subject, new String[]{to});
+    }
+
+    public Email(String siteid, String subject, ArrayList<String> tolist) throws Exception {
+        init(siteid, subject, tolist.toArray(new String[]{}));
+    }
+
+    private void init(String siteid, String subject, String[] tos) throws Exception {
+        //使用JavaMail发送邮件的5个步骤
+        Properties prop = new Properties();
+        prop.setProperty("mail.smpt.host", Parameter.get(siteid, "mail_host"));
+        prop.setProperty("mail.smtp.ssl.enable", "true");
+        prop.setProperty("mail.transport.protocol","smtp");
+        prop.setProperty("mail.smtp.auth", Parameter.get(siteid, "mail_smtp_auth").equals("1") ? "true" : "false");
+        //1、创建session
+        session = Session.getInstance(prop);
+        //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
+        //session.setDebug(properties.isdebug());
+        message = new MimeMessage(session);
+        //指明邮件的发件人
+        logger.info(siteid);
+        logger.info(Parameter.get(siteid, "mail_sendfrom"));
+        message.setFrom(Parameter.get(siteid, "mail_sendfrom"));
+        //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
+        ArrayList<InternetAddress> address = new ArrayList<>();
+        for (String to : tos) {
+            address.add(new InternetAddress(to));
+        }
+        message.setRecipients(Message.RecipientType.TO, address.toArray(new Address[]{}));
+        //邮件的标题
+        message.setSubject(subject);
+    }
+
+    public void send(String siteid, EmailContent emailContent) throws Exception {
+        message.setContent(emailContent);
+        transport = session.getTransport();
+        //3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
+        transport.connect(Parameter.get(siteid, "mail_host"), Parameter.get(siteid, "mail_user"),
+                Parameter.get(siteid, "mail_password"));
+        //返回创建好的邮件对象
+        transport.sendMessage(message, message.getAllRecipients());
+        transport.close();
+    }
+}

+ 109 - 0
src/custom/utility/email/EmailContent.java

@@ -0,0 +1,109 @@
+package utility.email;
+
+import javax.activation.DataHandler;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMultipart;
+import java.net.URL;
+
+public class EmailContent extends MimeMultipart {
+    public EmailContent() throws Exception {
+        this.setSubType("mixed");
+    }
+
+    /**
+     * 添加文字内容
+     *
+     * @param text
+     * @throws Exception
+     */
+    public void addText(String text) throws Exception {
+        MimeBodyPart mimeBodyPart = new MimeBodyPart();
+        mimeBodyPart.setContent(text, "text/html;charset=UTF-8");
+        this.addBodyPart(mimeBodyPart);
+    }
+
+    /**
+     * 添加文字内容
+     *
+     * @param blankspacecount 空格数
+     * @param text            文字
+     * @throws Exception
+     */
+    public void addText(int blankspacecount, String text) throws Exception {
+        StringBuffer stringBuffer = new StringBuffer();
+        for (int i = 0; i < blankspacecount; i++) {
+            stringBuffer.append("&nbsp;");
+        }
+        addText(stringBuffer.toString() + text);
+    }
+
+    /**
+     * 添加一个文字超链接
+     *
+     * @param title 超链接标题
+     * @param url   超链接地址
+     * @throws Exception
+     */
+    public void addLink(String title, String url) throws Exception {
+        MimeBodyPart mimeBodyPart = new MimeBodyPart();
+        mimeBodyPart.setContent("<a href='" + url + "'>" + title + "</a>", "text/html;charset=UTF-8");
+        this.addBodyPart(mimeBodyPart);
+    }
+
+    /**
+     * 添加图片连接
+     *
+     * @param url
+     * @throws Exception
+     */
+    public void addImage(String url) throws Exception {
+        MimeBodyPart mimeBodyPart = new MimeBodyPart();
+        mimeBodyPart.setContent("<img src='" + url + "'>", "text/html;charset=UTF-8");
+        this.addBodyPart(mimeBodyPart);
+    }
+
+    public void addImage(String imgurl,String linkurl) throws Exception {
+        MimeBodyPart mimeBodyPart = new MimeBodyPart();
+        mimeBodyPart.setContent("<a href="+linkurl+"><img src="+imgurl+" alt=\"点击播放视频\"></a>", "text/html;charset=UTF-8");
+        this.addBodyPart(mimeBodyPart);
+    }
+
+
+
+    /**
+     * 添加空行
+     *
+     * @throws Exception
+     */
+    public void addBr() throws Exception {
+        MimeBodyPart mimeBodyPart = new MimeBodyPart();
+        mimeBodyPart.setContent("<br/>", "text/html;charset=UTF-8");
+        this.addBodyPart(mimeBodyPart);
+    }
+
+    /**
+     * 添加空行
+     *
+     * @throws Exception
+     */
+    public void addBr(int count) throws Exception {
+        for (int i = 0; i < count; i++) {
+            addBr();
+        }
+    }
+
+    /**
+     * 添加附件
+     *
+     * @param url
+     * @throws Exception
+     */
+    public void addFile(String url) throws Exception {
+        MimeBodyPart mimeBodyPart = new MimeBodyPart();
+        DataHandler dataHandler = new DataHandler(new URL(url));
+        mimeBodyPart.setDataHandler(dataHandler);
+        mimeBodyPart.setFileName(dataHandler.getName());
+        this.addBodyPart(mimeBodyPart);
+    }
+
+}