From abe9e12eee579a992a512160e6b85e4087295356 Mon Sep 17 00:00:00 2001
From: xuliangtong <1124839262@qq.com>
Date: Thu, 22 Dec 2022 20:10:49 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../TeacherOpenCourseKnowledgePoint.java      | 19 ++++++++++++---
 ...eacherOpenCourseKnowledgePointService.java | 23 ++++++++++++++++++-
 2 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseKnowledgePoint.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseKnowledgePoint.java
index cd4fa9ab..3e15e7a6 100644
--- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseKnowledgePoint.java
+++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseKnowledgePoint.java
@@ -26,11 +26,11 @@ public class TeacherOpenCourseKnowledgePoint extends BaseEntity{
     private Long teacherOpenCourseKnowledgePointId ;
 	
     //课程开课ID
-    @Dict(type = "course_info.course_info_name.course_info_status=1,course_info_type=1")
+    @Dict(type = "teacher_open_course.teacher_open_course_title.teacher_open_course_status=1")
     private Long teacherOpenCourseId ;
 	
     //章节ID
-    @Dict(type="course_info.course_info_name.course_info_status=1")
+    @Dict(type="teacher_open_course_merge_course_info.course_info_name.course_info_status=1")
     private Long chapterId ;
 	
     //知识点标题
@@ -52,7 +52,14 @@ public class TeacherOpenCourseKnowledgePoint extends BaseEntity{
     //用户ID
 
     private Long userId ;
-	
+
+    /**
+     * 归属实操项目
+     */
+    @Dict(type="teacher_open_course_hands_on.hands_on_name.1=1")
+    private Long handsOnId;
+
+
     //是否删除 1删除,0未删除
 	/*逻辑删除标志*/
 	@InsertIgnore
@@ -180,5 +187,11 @@ public class TeacherOpenCourseKnowledgePoint extends BaseEntity{
         this.delFlag = delFlag;
     }
 
+    public Long getHandsOnId() {
+        return handsOnId;
+    }
 
+    public void setHandsOnId(Long handsOnId) {
+        this.handsOnId = handsOnId;
+    }
 }
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseKnowledgePointService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseKnowledgePointService.java
index 735d1907..27d75d22 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseKnowledgePointService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseKnowledgePointService.java
@@ -1,5 +1,6 @@
 package com.ibeetl.jlw.service;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.jlw.util.ToolUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -9,7 +10,9 @@ import com.ibeetl.admin.core.web.JsonResult;
 import com.ibeetl.admin.core.web.JsonReturnCode;
 import com.ibeetl.jlw.dao.TeacherOpenCourseKnowledgePointDao;
 import com.ibeetl.jlw.entity.TeacherOpenCourseKnowledgePoint;
+import com.ibeetl.jlw.entity.TeacherOpenCourseKnowledgePointRelation;
 import com.ibeetl.jlw.web.query.TeacherOpenCourseKnowledgePointQuery;
+import com.ibeetl.jlw.web.query.TeacherOpenCourseKnowledgePointRelationQuery;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.beetl.sql.core.SqlId;
@@ -22,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 知识点 Service
@@ -35,6 +39,7 @@ import java.util.List;
 public class TeacherOpenCourseKnowledgePointService extends CoreBaseService<TeacherOpenCourseKnowledgePoint> implements DeleteResourcesBy{
 
     @Autowired private TeacherOpenCourseKnowledgePointDao teacherOpenCourseKnowledgePointDao;
+    @Autowired private TeacherOpenCourseKnowledgePointRelationService relationService;
 
     public PageQuery<TeacherOpenCourseKnowledgePoint>queryByCondition(PageQuery query){
         PageQuery ret =  teacherOpenCourseKnowledgePointDao.queryByCondition(query);
@@ -44,7 +49,23 @@ public class TeacherOpenCourseKnowledgePointService extends CoreBaseService<Teac
 
     public PageQuery<TeacherOpenCourseKnowledgePoint>queryByConditionQuery(PageQuery query){
         PageQuery ret =  teacherOpenCourseKnowledgePointDao.queryByConditionQuery(query);
-        queryListAfter(ret.getList());
+        List<TeacherOpenCourseKnowledgePoint> list = ret.getList();
+        if (CollectionUtil.isNotEmpty(list)) {
+            List<Long> collect = list.stream().map(TeacherOpenCourseKnowledgePoint::getTeacherOpenCourseKnowledgePointId).collect(Collectors.toList());
+            TeacherOpenCourseKnowledgePointRelationQuery relationQuery = new TeacherOpenCourseKnowledgePointRelationQuery();
+            relationQuery.setTeacherOpenCourseKnowledgePointIdPlural(CollectionUtil.join(collect, ","));
+            List<TeacherOpenCourseKnowledgePointRelation> openCourseKnowledgePointRelations = relationService.getValuesByQueryNotWithPermission(relationQuery);
+            for (TeacherOpenCourseKnowledgePoint teacherOpenCourseKnowledgePoint : list) {
+                TeacherOpenCourseKnowledgePointRelation relation = openCourseKnowledgePointRelations.stream().filter(v ->
+                        v.getTeacherOpenCourseKnowledgePointId().equals(teacherOpenCourseKnowledgePoint.getTeacherOpenCourseKnowledgePointId())).findFirst().orElse(null);
+                if (relation != null) {
+                    teacherOpenCourseKnowledgePoint.setHandsOnId(relation.getBussinessId());
+                }
+            }
+
+        }
+
+        queryListAfter(list);
         return ret;
     }
 

From 62bbd93f2d75debd84f013b91c7b21f6a7b6a6d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=9A=E4=B8=B9ab?= <1421553879@qq.com>
Date: Fri, 23 Dec 2022 01:50:22 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=AD=E5=BF=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../resources/templates/other/userCenter.html | 148 ++++++++++++------
 1 file changed, 104 insertions(+), 44 deletions(-)

diff --git a/web/src/main/resources/templates/other/userCenter.html b/web/src/main/resources/templates/other/userCenter.html
index 5deae744..96076c35 100644
--- a/web/src/main/resources/templates/other/userCenter.html
+++ b/web/src/main/resources/templates/other/userCenter.html
@@ -72,7 +72,7 @@
                         <div class="layui-input-inline">
                             <div class="layui-form-mid" data-value="${userCenterData.coreUser.password!''}">********</div>
                             <div class="layui-form-mid">
-                                <a style="cursor: pointer;" class="edit" title="登录密码" name="password">
+                                <a style="cursor: pointer;" class="edit_pwd" title="登录密码" name="password">
                                     <i class="iconfont" style="font-size: 20px;">&#xebd8;</i>
                                 </a>
                             </div>
@@ -116,7 +116,7 @@
                             <div class="layui-inline">
                                 <label class="layui-form-label">院校名称:</label>
                                 <div class="layui-form-mid">${userCenterData.universitiesColleges.universitiesCollegesName!''}</div>
-                                <div class="layui-form-mid">
+                                <div class="layui-form-mid" style="display:none;">
                                     <a class="edit" title="院校名称" name="universitiesCollegesName" style="cursor: pointer;">
                                         <i class="iconfont" style="font-size: 20px;">&#xebd8;</i>
                                     </a>
@@ -130,7 +130,9 @@
                             <div class="layui-input-inline">
                                 <div class="layui-form-mid">${userCenterData.universitiesColleges.universitiesCollegesContacts!''}</div>
                                 <div class="layui-form-mid">
-                                    <a class="edit" title="联系人" name="universitiesCollegesContacts" style="cursor: pointer;">
+                                    <a class="edit" title="联系人"  name="universitiesCollegesContacts"
+                                       data-value="${userCenterData.universitiesColleges.universitiesCollegesContacts!''}"
+                                       style="cursor: pointer;">
                                         <i class="iconfont" style="font-size: 20px;">&#xebd8;</i>
                                     </a>
                                 </div>
@@ -143,7 +145,7 @@
                             <div class="layui-input-inline">
                                 <div class="layui-form-mid">${userCenterData.universitiesColleges.universitiesCollegesContactsMobile!''}</div>
                                 <div class="layui-form-mid">
-                                    <a class="edit" title="联系电话" name="universitiesCollegesContactsMobile" style="cursor: pointer;">
+                                    <a class="edit" title="联系电话" name="universitiesCollegesContactsMobile" data-value="${userCenterData.universitiesColleges.universitiesCollegesContactsMobile!''}" style="cursor: pointer;">
                                         <i class="iconfont" style="font-size: 20px;">&#xebd8;</i>
                                     </a>
                                 </div>
@@ -156,9 +158,7 @@
                             <div class="layui-input-inline">
                                 <div class="layui-form-mid">${userCenterData.universitiesColleges.universitiesCollegesProvince!''} ${userCenterData.universitiesColleges.universitiesCollegesCity!''}</div>
                                 <div class="layui-form-mid">
-                                    <a id="edit_local" title="所在地"
-                                       province="${userCenterData.universitiesColleges.universitiesCollegesProvince!''}"
-                                       city="${userCenterData.universitiesColleges.universitiesCollegesCity!''}" style="cursor: pointer;">
+                                    <a id="edit_local" title="所在地" style="cursor: pointer;">
                                         <i class="iconfont" style="font-size: 20px;">&#xebd8;</i>
                                     </a>
                                 </div>
@@ -219,29 +219,45 @@
         </div>
     </div>
     <!--所在地 编辑-->
-    <div style="display: none"  id="receivingAddress_demo">
-        <div id="receivingAddress">
-            <div class="layui-inline layui-form-item">
-                <label class="layui-form-label">所属省份:</label>
+    <div style="display: none;padding-top: 20px" class="layui-form" id="receivingAddress_demo">
+        <div class="layui-inline layui-form-item">
+            <label class="layui-form-label">所属地区:</label>
+            <div class="layui-input-inline">
+                <select name="universitiesCollegesProvince" class="province" lay-verify="required" lay-search
+                        lay-filter="province">
+                    <option value="">省份</option>
+                </select>
+            </div>
+            <div class="layui-input-inline">
+                <select name="universitiesCollegesCity" class="city" lay-verify="required" lay-search
+                        lay-filter="city">
+                    <option value="">地级市</option>
+                </select>
+            </div>
+        </div>
+    </div>
+    <div id="changePassword_dialog" style="padding-top: 20px;display: none;">
+        <div class="layui-form" action="" style="width: 90%;margin: 0 auto;">
+            <div class="layui-form-item">
+                <label class="layui-form-label">密码</label>
                 <div class="layui-input-inline">
-                    <select name="universitiesCollegesProvince" class="province" lay-verify="required" lay-search
-                            lay-filter="province">
-                        <option value="">省份</option>
-                    </select>
+                    <input type="password" name="password" lay-verify="required" placeholder="请输入密码!" autocomplete="off"
+                           class="layui-input">
                 </div>
+                <div class="layui-form-mid layui-word-aux">密码需要大于等于6!</div>
             </div>
-            <div class="layui-inline layui-form-item">
-                <label class="layui-form-label">所属城市:</label>
+            <div class="layui-form-item">
+                <label class="layui-form-label">确认密码</label>
                 <div class="layui-input-inline">
-                    <select name="universitiesCollegesCity" class="city" lay-verify="required" lay-search lay-filter="city">
-                        <option value="">地级市</option>
-                    </select>
+                    <input type="password" name="password2" lay-verify="required" placeholder="请再次输入密码!"
+                           autocomplete="off" class="layui-input">
                 </div>
+                <div class="layui-form-mid layui-word-aux">两次密码需相等!</div>
             </div>
         </div>
     </div>
+    <input type="hidden" name="userId" value="${userCenterData.universitiesColleges.universitiesCollegesId}">
 </form>
-
 <!--#} -->
 
 <script>
@@ -250,12 +266,11 @@
             ,element = layui.element
             ,layer = layui.layer
             ,form = layui.form;
-
         form.render();
         //常规使用 - 普通图片上传
         var uploadInst = upload.render({
             elem: '#test1'
-            ,url: 'https://httpbin.org/post' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
+            ,url:Common.ctxPath +  '/jlw/universitiesColleges/edit.json' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
             ,before: function(obj){
                 //预读本地文件示例,不支持ie8
                 obj.preview(function(index, file, result){
@@ -290,32 +305,78 @@
                 }
             }
         });
+        $(".edit_pwd").click(function () {
+            layer.open({
+                title: '密码修改'
+                , type:1
+                , content: $("#changePassword_dialog")
+                , btn: ['确定', '关闭']
+                ,area: ['491px', '280px']
+                , shadeClose: true
+                , yes: function (index, layero) {
+                    var password = $("#changePassword_dialog input[name='password']").val();
+                    if($.isEmpty(password)){
+                        Common.error("请输入密码!");
+                        return;
+                    }
+                    if(password.length < 6){
+                        Common.error("密码需<span style='color: red;'>大于等于6!</span>");
+                        return;
+                    }
+                    var password2 = $("#changePassword_dialog input[name='password2']").val();
+                    if($.isEmpty(password2)){
+                        Common.error("请再次输入密码!");
+                        return;
+                    }
+                    if(password != password2){
+                        Common.error("两次密码不相同!");
+                        return;
+                    }
+                    let param = {
+                        "password":password2,
+                        "id": '${userCenterData.coreUser.id}'};
+
+                    layer.load();
+                    setTimeout(function () {
+                        var url = "/admin/user/editPassword.json";
+                        var ret = Common.postAjax(url, param);
+                        layer.msg(ret.code == 0 ? "操作成功!" : ret.msg, {
+                            offset: ['50%'],
+                            icon: ret.code == 0 ? 1 : 2,
+                            time: 1500 //2秒关闭(如果不配置,默认是3秒)
+                        }, function () {
+                            if (ret.code == 0) {
+                                parent.Lib.tableRefresh();
+                            }
+                        });
+                    }, 10);
+                    layer.close(index);
+                },
+                btn2: function (index, layero) {
+                    layer.close(index);
+                }
+            });
+        });
         $(".edit").click(function () {
             var name = $(this).attr("name");
             var title = $(this).attr("title");
-
+            var value= $(this).data('value')
             layer.open({
                 title: '编辑'
                 , content: '<div class="layui-inline" id="addRoom">\n' +
                     '                <label class="layui-form-label">' + title + '</label>\n' +
                     '                <div class="layui-input-inline">\n' +
-                    '                    <input type="text" id=' + name + ' name=' + name + ' class="layui-input" >\n' +
+                    '                    <input type="text" id=' + name + ' name=' + name + ' value='+value+' class="layui-input" >\n' +
                     '                </div>\n' +
                     '            </div>'
                 , btn: ['确定', '关闭']
                 , shadeClose: true
                 , yes: function (index, layero) {
-                    return;
-                    let param = {
-                        "teacherOpenCourseScheduleSessionClassName": $("#addRoom input[name='teacherOpenCourseScheduleSessionClassName']").val(),
-                        "teacherOpenCourseScheduleSessionClassParentId": data.teacherOpenCourseScheduleSessionClassId,
-                    };
+                    let param = {"universitiesCollegesId": '${userCenterData.universitiesColleges.universitiesCollegesId}'};
+                    param[name]=$("#addRoom input[name=" + name + "]").val();
                     layer.load();
                     setTimeout(function () {
-                        var url = "/jlw/xx/add.json";
-                        if (!$.isEmpty(id)) {
-                            url = "/jlw/xx/edit.json"
-                        }
+                        var url = "/jlw/universitiesColleges/edit.json";
                         var ret = Common.postAjax(url, param);
                         layer.msg(ret.code == 0 ? "操作成功!" : ret.msg, {
                             offset: ['50%'],
@@ -324,7 +385,6 @@
                         }, function () {
                             if (ret.code == 0) {
                                 parent.Lib.tableRefresh();
-                                teacherOpenCourseScheduleSessionClassTable();
                             }
                         });
                     }, 10);
@@ -336,8 +396,6 @@
             });
         });
         $("#edit_local").click(function () {
-            var provinceText = $(this).attr("province"), cityText=$(this).attr("city");
-            $.Reappearance($("#receivingAddress"),provinceText,cityText);//返显区域
             layer.open({
                 title: '所在地'
                 ,type:1
@@ -346,20 +404,19 @@
                 , area: ['730px', '400px']
                 , shadeClose: true
                 , success:function () {
+                    $.Reappearance("#receivingAddress_demo", "${userCenterData.universitiesColleges.universitiesCollegesProvince}", "${userCenterData.universitiesColleges.universitiesCollegesCity}");//返显区域
+                    form.render('select');
 
                 }
                 , yes: function (index, layero) {
-                    return
                     let param = {
-                        "teacherOpenCourseScheduleSessionClassName": $("#addRoom input[name='teacherOpenCourseScheduleSessionClassName']").val(),
-                        "teacherOpenCourseScheduleSessionClassParentId": data.teacherOpenCourseScheduleSessionClassId,
+                        "universitiesCollegesProvince": $("#receivingAddress_demo select[name='universitiesCollegesProvince']").val(),
+                        "universitiesCollegesCity": $("#receivingAddress_demo select[name='universitiesCollegesCity']").val(),
+                        "universitiesCollegesId": '${userCenterData.universitiesColleges.universitiesCollegesId}',
                     };
                     layer.load();
                     setTimeout(function () {
-                        var url = "/jlw/xx/add.json";
-                        if (!$.isEmpty(id)) {
-                            url = "/jlw/xx/edit.json"
-                        }
+                        var url = "/jlw/universitiesColleges/edit.json";
                         var ret = Common.postAjax(url, param);
                         layer.msg(ret.code == 0 ? "操作成功!" : ret.msg, {
                             offset: ['50%'],
@@ -379,6 +436,9 @@
                 }
             });
         });
+
+
+        form.render();
     });
 
 </script>