Browse Source

Merge remote-tracking branch 'origin/master'

hgw 2 years ago
parent
commit
62c25822d2
21 changed files with 130 additions and 681 deletions
  1. 0 3
      cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  2. 0 7
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImBaseMessage.java
  3. 0 45
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImGroupMember.java
  4. 0 57
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImGroupMessage.java
  5. 0 163
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImGroupModel.java
  6. 0 81
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImMessageModel.java
  7. 0 38
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImNoticeMessage.java
  8. 0 38
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImPlayMidiMessage.java
  9. 0 113
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImPrivateMessage.java
  10. 0 57
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImSystemMessage.java
  11. 0 38
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImTxtMessage.java
  12. 1 4
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendSubjectController.java
  13. 4 0
      cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java
  14. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java
  15. 4 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomVideoServiceImpl.java
  16. 70 34
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  17. 1 1
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml
  18. 12 0
      toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/StoragePlugin.java
  19. 18 0
      toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/StoragePluginContext.java
  20. 5 0
      toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/AliyunOssStoragePlugin.java
  21. 14 0
      toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/KS3StoragePlugin.java

+ 0 - 3
cooleshow-auth/auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -147,9 +147,6 @@
             <if test="realName != null and realName != ''">
                 real_name_ = #{realName},
             </if>
-            <if test="isSuperAdmin != null">
-                is_super_admin_ = #{isSuperAdmin},
-            </if>
             <if test="certificateType != null">
                 certificate_type_ = #{certificateType},
             </if>

+ 0 - 7
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImBaseMessage.java

@@ -1,7 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-public abstract class ImBaseMessage {
-    public abstract String getType();
-
-    public abstract String toString();
-}

+ 0 - 45
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImGroupMember.java

@@ -1,45 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-public class ImGroupMember {
-    public String id;
-    public String groupId;
-    public Integer munite;
-
-    public ImGroupMember() {
-    }
-
-    public ImGroupMember(String id) {
-        this.id = id;
-    }
-
-    public ImGroupMember(String id, String groupId, Integer munite) {
-        this.id = id;
-        this.groupId = groupId;
-        this.munite = munite;
-    }
-
-    public ImGroupMember setId(String id) {
-        this.id = id;
-        return this;
-    }
-
-    public String getId() {
-        return this.id;
-    }
-
-    public String getGroupId() {
-        return this.groupId;
-    }
-
-    public void setGroupId(String groupId) {
-        this.groupId = groupId;
-    }
-
-    public Integer getMunite() {
-        return this.munite;
-    }
-
-    public void setMunite(Integer munite) {
-        this.munite = munite;
-    }
-}

+ 0 - 57
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImGroupMessage.java

@@ -1,57 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-public class ImGroupMessage extends ImMessageModel {
-    public Integer isIncludeSender;
-    public Integer isPersisted;
-    public Integer contentAvailable;
-    public String[] toUserId;
-    private String type;
-
-    public ImGroupMessage setContent(ImTxtMessage content) {
-        super.setContent(content);
-        return this;
-    }
-
-    public ImGroupMessage() {
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public Integer getIsIncludeSender() {
-        return isIncludeSender;
-    }
-
-    public void setIsIncludeSender(Integer isIncludeSender) {
-        this.isIncludeSender = isIncludeSender;
-    }
-
-    public Integer getIsPersisted() {
-        return isPersisted;
-    }
-
-    public void setIsPersisted(Integer isPersisted) {
-        this.isPersisted = isPersisted;
-    }
-
-    public Integer getContentAvailable() {
-        return contentAvailable;
-    }
-
-    public void setContentAvailable(Integer contentAvailable) {
-        this.contentAvailable = contentAvailable;
-    }
-
-    public String[] getToUserId() {
-        return toUserId;
-    }
-
-    public void setToUserId(String[] toUserId) {
-        this.toUserId = toUserId;
-    }
-}

+ 0 - 163
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImGroupModel.java

@@ -1,163 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-
-public class ImGroupModel{
-    //群组编号
-    private String id;
-    //用户列表
-    private ImGroupMember[] members;
-    //用户列表
-    private List<ImGroupMember> memberList;
-    //群名称
-    private String name;
-    private String teacherIds;
-    private String img;
-    private String groupName;
-    private Integer minute;
-    private Integer count;
-    private Integer status;
-    private String userRole;
-
-    public ImGroupModel() {
-    }
-
-    public ImGroupModel(String id) {
-        this.id = id;
-    }
-
-    public ImGroupModel(String id, String name) {
-        this.id = id;
-        this.name = name;
-    }
-
-    public ImGroupModel(String id, ImGroupMember[] members, String name) {
-        this.id = id;
-        this.members = members;
-        this.name = name;
-    }
-
-    public String getUserRole() {
-        return userRole;
-    }
-
-    public void setUserRole(String userRole) {
-        this.userRole = userRole;
-    }
-
-    public List<ImGroupMember> getMemberList() {
-        return memberList;
-    }
-
-    public void setMemberList(List<ImGroupMember> memberList) {
-        this.memberList = memberList;
-    }
-
-    public String getGroupName() {
-        return groupName;
-    }
-
-    public void setGroupName(String groupName) {
-        this.groupName = groupName;
-    }
-
-    public String getTeacherIds() {
-        return teacherIds;
-    }
-
-    public void setTeacherIds(String teacherIds) {
-        this.teacherIds = teacherIds;
-    }
-
-    public Integer getCount() {
-        return count;
-    }
-
-    public void setCount(Integer count) {
-        this.count = count;
-    }
-
-    public ImGroupModel(String id, ImGroupMember[] members, String name, Integer minute) {
-        this.id = id;
-        this.members = members;
-        this.name = name;
-        this.minute = minute;
-    }
-
-    public ImGroupModel(String id, Integer status) {
-        this.id = id;
-        this.status = status;
-    }
-
-    public String getImg() {
-        return img;
-    }
-
-    public void setImg(String img) {
-        this.img = img;
-    }
-
-    public String getId() {
-        return this.id;
-    }
-
-    public ImGroupModel setId(String id) {
-        this.id = id;
-        return this;
-    }
-
-    public ImGroupMember[] getMembers() {
-        return this.members;
-    }
-
-    public ImGroupModel setMembers(ImGroupMember[] members) {
-        if(members != null && members.length > 0){
-            this.members = members;
-        }
-        return this;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public ImGroupModel setName(String name) {
-        this.name = name;
-        return this;
-    }
-
-    public Integer getMinute() {
-        return this.minute;
-    }
-
-    public ImGroupModel setMinute(Integer minute) {
-        this.minute = minute;
-        return this;
-    }
-
-    public Integer getStatus() {
-        return this.status;
-    }
-
-    public ImGroupModel setStatus(Integer status) {
-        this.status = status;
-        return this;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        ImGroupModel that = (ImGroupModel) o;
-        return id.equals(that.id) && Arrays.equals(members, that.members) && memberList.equals(that.memberList);
-    }
-
-    @Override
-    public int hashCode() {
-        int result = Objects.hash(id, memberList);
-        result = 31 * result + Arrays.hashCode(members);
-        return result;
-    }
-}

+ 0 - 81
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImMessageModel.java

@@ -1,81 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-public class ImMessageModel {
-    //	发送人 Id  必填
-    private String senderId;
-    //接收人 Id  必填
-    private String[] targetId;
-    //消息类型, 分为两类: 内置消息类型 、自定义消息类型  RC:TxtMsg,RC:ImgMsg,RC:VcMsg,RC:ImgTextMsg,RC:FileMsg,RC:LBSMsg  必填
-    private String objectName;
-    //消息内容  必填
-    private ImBaseMessage content;
-    //push 内容, 分为两类 内置消息 Push 、自定义消息 Push  RC:TxtMsg,RC:ImgMsg,RC:VcMsg,RC:ImgTextMsg,RC:FileMsg,RC:LBSMsg
-    private String pushContent;
-    private String pushData;
-
-    public ImMessageModel() {
-    }
-
-    public ImMessageModel(String senderId, String[] targetId, String objectName, ImBaseMessage content, String pushContent, String pushData) {
-        this.senderId = senderId;
-        this.targetId = targetId;
-        this.objectName = objectName;
-        this.content = content;
-        this.pushContent = pushContent;
-        this.pushData = pushData;
-    }
-
-    public String[] getTargetId() {
-        return this.targetId;
-    }
-
-    public ImMessageModel setTargetId(String[] targetId) {
-        this.targetId = targetId;
-        return this;
-    }
-
-    public String getObjectName() {
-        return this.objectName;
-    }
-
-    public ImMessageModel setObjectName(String objectName) {
-        this.objectName = objectName;
-        return this;
-    }
-
-    public ImBaseMessage getContent() {
-        return this.content;
-    }
-
-    public ImMessageModel setContent(ImBaseMessage content) {
-        this.content = content;
-        return this;
-    }
-
-    public String getPushContent() {
-        return this.pushContent;
-    }
-
-    public ImMessageModel setPushContent(String pushContent) {
-        this.pushContent = pushContent;
-        return this;
-    }
-
-    public String getPushData() {
-        return this.pushData;
-    }
-
-    public ImMessageModel setPushData(String pushData) {
-        this.pushData = pushData;
-        return this;
-    }
-
-    public String getSenderId() {
-        return this.senderId;
-    }
-
-    public ImMessageModel setSenderId(String senderId) {
-        this.senderId = senderId;
-        return this;
-    }
-}

+ 0 - 38
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImNoticeMessage.java

@@ -1,38 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-import com.alibaba.fastjson.JSONObject;
-
-public class ImNoticeMessage extends ImBaseMessage {
-    private String content = "";
-    private String extra = "";
-    private static final transient String TYPE = "DY:NoticeMsg";
-
-    public ImNoticeMessage(String content, String extra) {
-        this.content = content;
-        this.extra = extra;
-    }
-
-    public String getType() {
-        return TYPE;
-    }
-
-    public String getContent() {
-        return this.content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
-
-    public String getExtra() {
-        return this.extra;
-    }
-
-    public void setExtra(String extra) {
-        this.extra = extra;
-    }
-
-    public String toString() {
-        return JSONObject.toJSONString(this);
-    }
-}

+ 0 - 38
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImPlayMidiMessage.java

@@ -1,38 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-import com.alibaba.fastjson.JSONObject;
-
-public class ImPlayMidiMessage extends ImBaseMessage {
-    private String content = "";
-    private String extra = "";
-    private static final transient String TYPE = "DY:PlayMidiMessage";
-
-    public ImPlayMidiMessage(String content, String extra) {
-        this.content = content;
-        this.extra = extra;
-    }
-
-    public String getType() {
-        return TYPE;
-    }
-
-    public String getContent() {
-        return this.content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
-
-    public String getExtra() {
-        return this.extra;
-    }
-
-    public void setExtra(String extra) {
-        this.extra = extra;
-    }
-
-    public String toString() {
-        return JSONObject.toJSONString(this);
-    }
-}

+ 0 - 113
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImPrivateMessage.java

@@ -1,113 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-public class ImPrivateMessage extends ImMessageModel {
-    public String count;
-    public String type;
-    //是否在融云服务器存储, 0: 不存储, 1: 存储, 默认: 1
-    public Integer isPersisted;
-    public Integer isCounted;
-    //是否过滤接收用户黑名单列表, 0: 不过滤 、1: 过滤,默认: 0
-    public Integer verifyBlacklist;
-    //发送者自己是否接收此条消息, 0: 不接收, 1: 接收, 默认: 0
-    public Integer isIncludeSender;
-    public Integer contentAvailable;
-
-    public ImPrivateMessage() {
-    }
-
-    public ImPrivateMessage setSenderId(String senderId) {
-        super.setSenderId(senderId);
-        return this;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public String[] getTargetId() {
-        return super.getTargetId();
-    }
-
-    public ImPrivateMessage setTargetId(String[] targetId) {
-        super.setTargetId(targetId);
-        return this;
-    }
-
-    public ImPrivateMessage setContent(ImTxtMessage content) {
-        super.setContent(content);
-        return this;
-    }
-
-    public ImPrivateMessage setPushContent(String pushContent) {
-        super.setPushContent(pushContent);
-        return this;
-    }
-
-    public ImPrivateMessage setPushData(String pushData) {
-        super.setPushData(pushData);
-        return this;
-    }
-
-    public String getCount() {
-        return this.count;
-    }
-
-    public ImPrivateMessage setCount(String count) {
-        this.count = count;
-        return this;
-    }
-
-    public Integer getVerifyBlacklist() {
-        return this.verifyBlacklist;
-    }
-
-    public ImPrivateMessage setVerifyBlacklist(Integer verifyBlacklist) {
-        this.verifyBlacklist = verifyBlacklist;
-        return this;
-    }
-
-    public Integer getIsPersisted() {
-        return this.isPersisted;
-    }
-
-    public ImPrivateMessage setIsPersisted(Integer isPersisted) {
-        this.isPersisted = isPersisted;
-        return this;
-    }
-
-    public Integer getIsCounted() {
-        return this.isCounted;
-    }
-
-    public ImPrivateMessage setIsCounted(Integer isCounted) {
-        this.isCounted = isCounted;
-        return this;
-    }
-
-    public Integer getIsIncludeSender() {
-        return this.isIncludeSender;
-    }
-
-    public ImPrivateMessage setIsIncludeSender(Integer isIncludeSender) {
-        this.isIncludeSender = isIncludeSender;
-        return this;
-    }
-
-    public ImPrivateMessage setObjectName(String objectName) {
-        super.setObjectName(objectName);
-        return this;
-    }
-
-    public Integer getContentAvailable() {
-        return this.contentAvailable;
-    }
-
-    public ImPrivateMessage setContentAvailable(Integer contentAvailable) {
-        this.contentAvailable = contentAvailable;
-        return this;
-    }
-}

+ 0 - 57
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImSystemMessage.java

@@ -1,57 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-public class ImSystemMessage extends ImMessageModel {
-    public Integer isIncludeSender;
-    public Integer isPersisted;
-    public Integer contentAvailable;
-    public String[] toUserId;
-    private String type;
-
-    public ImSystemMessage setContent(ImTxtMessage content) {
-        super.setContent(content);
-        return this;
-    }
-
-    public ImSystemMessage() {
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public Integer getIsIncludeSender() {
-        return isIncludeSender;
-    }
-
-    public void setIsIncludeSender(Integer isIncludeSender) {
-        this.isIncludeSender = isIncludeSender;
-    }
-
-    public Integer getIsPersisted() {
-        return isPersisted;
-    }
-
-    public void setIsPersisted(Integer isPersisted) {
-        this.isPersisted = isPersisted;
-    }
-
-    public Integer getContentAvailable() {
-        return contentAvailable;
-    }
-
-    public void setContentAvailable(Integer contentAvailable) {
-        this.contentAvailable = contentAvailable;
-    }
-
-    public String[] getToUserId() {
-        return toUserId;
-    }
-
-    public void setToUserId(String[] toUserId) {
-        this.toUserId = toUserId;
-    }
-}

+ 0 - 38
cooleshow-common/src/main/java/com/yonge/cooleshow/common/entity/ImTxtMessage.java

@@ -1,38 +0,0 @@
-package com.yonge.cooleshow.common.entity;
-
-import com.alibaba.fastjson.JSONObject;
-
-public class ImTxtMessage extends ImBaseMessage {
-    private String content = "";
-    private String extra = "";
-    private static final transient String TYPE = "RC:TxtMsg";
-
-    public ImTxtMessage(String content, String extra) {
-        this.content = content;
-        this.extra = extra;
-    }
-
-    public String getType() {
-        return TYPE;
-    }
-
-    public String getContent() {
-        return this.content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
-
-    public String getExtra() {
-        return this.extra;
-    }
-
-    public void setExtra(String extra) {
-        this.extra = extra;
-    }
-
-    public String toString() {
-        return JSONObject.toJSONString(this);
-    }
-}

+ 1 - 4
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendSubjectController.java

@@ -61,10 +61,7 @@ public class SmsHomeRecommendSubjectController {
     @ResponseBody
     public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
         int count = recommendSubjectService.updateRecommendStatus(ids, recommendStatus);
-        if (count > 0) {
-            return CommonResult.success(count);
-        }
-        return CommonResult.failed();
+        return CommonResult.success(count);
     }
 
     @ApiOperation("分页查询推荐")

+ 4 - 0
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -73,6 +73,10 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
     public int delete(List<Long> ids) {
         OmsOrderReturnApplyExample example = new OmsOrderReturnApplyExample();
         example.createCriteria().andIdIn(ids).andStatusEqualTo(3);
+        List<OmsOrderReturnApply> omsOrderReturnApplies = returnApplyMapper.selectByExample(example);
+        if (omsOrderReturnApplies.size() != ids.size()) {
+            throw new BizException("只能删除已拒绝的退货订单");
+        }
         return returnApplyMapper.deleteByExample(example);
     }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java

@@ -245,7 +245,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         Long roomId = customMessage.getRoomId();
         log.info("sendImPlayMidiMessage: roomId={}, userId={}", roomId, userId);
         ImNetworkMetronomeMessage displayMessage = new ImNetworkMetronomeMessage(customMessage);
-        imHelper.publishMessage(userId.toString(), roomId.toString(), displayMessage, 0);
+        imHelper.publishMessage(userId.toString(), roomId.toString(), displayMessage, 1);
         //记录节拍器信息
         courseScheduleStudentPaymentService.getDao().adjustPlayMidi(roomId,customMessage.getUserId(),customMessage.toString());
     }

+ 4 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/LiveRoomVideoServiceImpl.java

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.entity.LiveRoomVideo;
 import com.yonge.cooleshow.biz.dal.entity.RecordNotify;
 import com.yonge.cooleshow.biz.dal.service.LiveRoomService;
 import com.yonge.cooleshow.biz.dal.service.LiveRoomVideoService;
+import com.yonge.toolset.thirdparty.storage.StoragePluginContext;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,6 +33,8 @@ public class LiveRoomVideoServiceImpl extends ServiceImpl<LiveRoomVideoDao, Live
 
     @Autowired
     private LiveRoomService liveRoomService;
+    @Autowired
+    private StoragePluginContext storagePluginContext;
 
     @Override
     public LiveRoomVideoDao getDao() {
@@ -59,7 +62,7 @@ public class LiveRoomVideoServiceImpl extends ServiceImpl<LiveRoomVideoDao, Live
         if (recordNotify.getCode().equals(200)) {
             if (Objects.nonNull(recordNotify.getType())) {
                 //云端录制文件地址
-                String fileUrl = recordNotify.getOutput().getFileUrl();
+                String fileUrl = storagePluginContext.getPublicUrl(recordNotify.getOutput().getFileUrl());
                 //房间uid
                 String roomUId = recordNotify.getRoomId();
                 //融云唯一id标识

+ 70 - 34
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -26,6 +26,7 @@ import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 import com.yonge.toolset.utils.string.ValueUtil;
 import org.apache.commons.beanutils.BeanUtils;
+import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -37,6 +38,8 @@ import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
+import static com.yonge.cooleshow.biz.dal.constant.LiveRoomConstant.TEACHER_TEMP_LIVE_ROOM;
+
 @Service
 public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> implements TeacherService {
     @Autowired
@@ -147,7 +150,16 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         teacherHomeVo.setUnExpTime(null == total.getUnExpTime() ? 0 : total.getUnExpTime());
         teacherHomeVo.setMusicAlbumNum(null == total.getMusicAlbumNum() ? 0 : total.getMusicAlbumNum());
         teacherHomeVo.setMusicSheetNum(null == total.getMusicSheetNum() ? 0 : total.getMusicSheetNum());
-        teacherHomeVo.setLiveing(total.getLiveFlag() ? YesOrNoEnum.YES : YesOrNoEnum.NO);
+
+        //取直播缓存
+        RMap<Long, String> liveMap = redissonClient.getMap(TEACHER_TEMP_LIVE_ROOM);
+        String roomUid = liveMap.get(userId);
+        if (!StringUtil.isEmpty(roomUid)) {
+            teacherHomeVo.setLiveing(YesOrNoEnum.YES);
+            teacherHomeVo.setRoomUid(roomUid);
+        } else {
+            teacherHomeVo.setLiveing(YesOrNoEnum.NO);
+        }
         return HttpResponseResult.succeed(teacherHomeVo);
     }
 
@@ -182,13 +194,32 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         return subjects;
     }
 
+
     private HttpResponseResult<Boolean> doCreate(TeacherSubmitReq teacherSubmitReq) throws BizException {
-        //判断手机号
+        //更新sys_user
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
-        if (null != sysUser) {
-            return HttpResponseResult.failed("该手机号已经被注册");
+        if (null == sysUser) {
+            sysUser = insertSysUser(teacherSubmitReq);
+            teacherSubmitReq.setUserId(sysUser.getId());
+        } else {
+            teacherSubmitReq.setUserId(sysUser.getId());
+            updateSysUser(teacherSubmitReq);
         }
-        sysUser = new SysUser();
+        //新增修改老师表
+        insertOrUpdateTeacher(teacherSubmitReq);
+        return HttpResponseResult.succeed(true);
+    }
+
+    private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
+        //更新sys_user
+        updateSysUser(teacherSubmitReq);
+        //新增修改老师表
+        insertOrUpdateTeacher(teacherSubmitReq);
+        return HttpResponseResult.succeed(true);
+    }
+
+    private SysUser insertSysUser(TeacherSubmitReq teacherSubmitReq) {
+        SysUser sysUser = new SysUser();
         sysUser = getUserDetil(sysUser, teacherSubmitReq);
         sysUser.setUserType(SysUserType.TEACHER.getCode());
         //初始密码,手机号后6位
@@ -202,49 +233,54 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         //设置昵称
         sysUser.setUsername("游客" + sysUser.getId());
         employeeDao.updateSysUser(sysUser);
-        //插入老师表
-
-        Teacher teacher = new Teacher();
-        teacher.setUserId(sysUser.getId());
-        teacher = getTeacherDetil(teacher, teacherSubmitReq);
-        baseMapper.insert(teacher);
-        //插入老师账户表
-        UserAccount oldAcc = userAccountService.getById(sysUser.getId());
-        if (null == oldAcc) {
-            UserAccount userAccount = new UserAccount();
-            userAccount.setUserId(sysUser.getId());
-            userAccountService.save(userAccount);
-        }
-        return HttpResponseResult.succeed(true);
+        return sysUser;
     }
 
-    private HttpResponseResult<Boolean> doUpdate(TeacherSubmitReq teacherSubmitReq) {
+    private SysUser updateSysUser(TeacherSubmitReq teacherSubmitReq) {
         //判断手机号
         SysUser sysUser = employeeDao.querySysUserByPhone(teacherSubmitReq.getPhone());
         if (null != sysUser && !teacherSubmitReq.getUserId().equals(sysUser.getId())) {
-            return HttpResponseResult.failed("该手机号已经被注册");
+            throw new BizException("该手机号已经被注册");
         }
         sysUser = employeeDao.querySysUserById(teacherSubmitReq.getUserId());
         if (null == sysUser) {
-            return HttpResponseResult.failed("未找到用户");
+            throw new BizException("未找到用户");
         }
         sysUser = getUserDetil(sysUser, teacherSubmitReq);
+        sysUser.setUpdateTime(new Date());
+        employeeDao.updateSysUser(sysUser);
+        return sysUser;
+    }
 
+    private Teacher insertOrUpdateTeacher(TeacherSubmitReq teacherSubmitReq) {
         Teacher teacher = baseMapper.selectById(teacherSubmitReq.getUserId());
-        teacher = getTeacherDetil(teacher, teacherSubmitReq);
-        teacher.setUpdateTime(new Date());
-        baseMapper.updateById(teacher);
-        if (null == teacher.getEntryAuthDate() || null == teacher.getMusicianDate()) {
-            baseMapper.update(teacher, Wrappers.<Teacher>lambdaUpdate()
-                    .set(Teacher::getEntryAuthDate, teacher.getEntryAuthDate())
-                    .set(Teacher::getMusicianDate, teacher.getMusicianDate())
-                    .eq(Teacher::getUserId, teacher.getUserId())
-            );
+        if (null == teacher) {
+            teacher = new Teacher();
+            teacher.setUserId(teacherSubmitReq.getUserId());
+            teacher = getTeacherDetil(teacher, teacherSubmitReq);
+            baseMapper.insert(teacher);
+
+            //插入老师账户表
+            UserAccount oldAcc = userAccountService.getById(teacherSubmitReq.getUserId());
+            if (null == oldAcc) {
+                UserAccount userAccount = new UserAccount();
+                userAccount.setUserId(teacherSubmitReq.getUserId());
+                userAccountService.save(userAccount);
+            }
+        } else {
+            teacher.setUpdateTime(new Date());
+            baseMapper.updateById(teacher);
+
+            if (null == teacher.getEntryAuthDate() || null == teacher.getMusicianDate()) {
+                baseMapper.update(teacher, Wrappers.<Teacher>lambdaUpdate()
+                        .set(Teacher::getEntryAuthDate, teacher.getEntryAuthDate())
+                        .set(Teacher::getMusicianDate, teacher.getMusicianDate())
+                        .eq(Teacher::getUserId, teacher.getUserId())
+                );
+            }
         }
 
-        sysUser.setUpdateTime(new Date());
-        employeeDao.updateSysUser(sysUser);
-        return HttpResponseResult.succeed(true);
+        return teacher;
     }
 
     /***

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -104,8 +104,8 @@
         else 'REVIEWED' end ) as homeworkStatus
         from course_schedule cs
         left join course_homework ch on ch.course_schedule_id_ = cs.id_
-        left join student_course_homework sch on ch.id_ = sch.course_homework_id_
         left join course_schedule_student_payment cssp on cssp.course_id_ = cs.id_
+        left join student_course_homework sch  on sch.course_schedule_id_ = cssp.course_id_ and sch.student_id_ = cssp.user_id_
         left join (select cssp.course_id_,
                 count(cssp.id_) as studentNum,
                 sum(if(sch.attachments_ is null or sch.attachments_ = '',0,1)) as commitNum,

+ 12 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/StoragePlugin.java

@@ -46,4 +46,16 @@ public interface StoragePlugin {
      * @return
      */
     PostObjectFormFields getUploadSign(UploadSign uploadSign);
+
+    /**
+     * @describe 设置文件访问为私有或公开
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zx
+     * @date 2022/7/13
+     * @time 11:35
+     * @param fileName:
+     * @param isPublic:
+     * @return void
+     */
+    void setFileAcl(String fileName,Boolean isPublic);
 }

+ 18 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/StoragePluginContext.java

@@ -7,6 +7,7 @@ import java.util.Map;
 
 import com.ksyun.ks3.dto.PostObjectFormFields;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
+import com.yonge.toolset.thirdparty.storage.provider.KS3StoragePlugin;
 import org.springframework.stereotype.Component;
 
 import com.yonge.toolset.base.exception.ThirdpartyException;
@@ -38,6 +39,23 @@ public class StoragePluginContext {
         return StoragePlugin.getUploadSign(uploadSign);
     }
 
+    public void setFileAcl(String storagePluginName,String fileName,Boolean isPublic){
+        StoragePlugin storagePlugin = getStoragePlugin(storagePluginName);
+        storagePlugin.setFileAcl(fileName,isPublic);
+    }
+
+    public String getPublicUrl(String fileName){
+        try {
+            String substring = fileName.substring(0, fileName.lastIndexOf("?"));
+            String substring1 = substring.substring(substring.lastIndexOf("/") + 1);
+            this.setFileAcl(KS3StoragePlugin.PLUGIN_NAME,substring1,true);
+            return substring;
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return fileName;
+    }
+
     private StoragePlugin getStoragePlugin(String storagePluginName) {
         StoragePlugin storagePlugin = mapper.get(storagePluginName);
 

+ 5 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/AliyunOssStoragePlugin.java

@@ -169,6 +169,11 @@ public class AliyunOssStoragePlugin implements StoragePlugin, InitializingBean,
     }
 
     @Override
+    public void setFileAcl(String fileName, Boolean isPublic) {
+        return;
+    }
+
+    @Override
     public void destroy() throws Exception {
         if (ossClient != null) {
             ossClient.shutdown();

+ 14 - 0
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/storage/provider/KS3StoragePlugin.java

@@ -7,6 +7,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.ksyun.ks3.dto.PostObjectFormFields;
+import com.ksyun.ks3.service.request.PutObjectACLRequest;
 import com.yonge.toolset.thirdparty.entity.UploadSign;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -192,6 +193,19 @@ public class KS3StoragePlugin implements StoragePlugin, InitializingBean, Dispos
     }
 
     @Override
+    public void setFileAcl(String fileName, Boolean isPublic) {
+        PutObjectACLRequest request = new PutObjectACLRequest(bucketName,fileName);
+        if (isPublic){
+            //设为公开读
+            request.setCannedAcl(CannedAccessControlList.PublicRead);
+        }else {
+            //设为私有
+            request.setCannedAcl(CannedAccessControlList.Private);
+        }
+        client.putObjectACL(request);
+    }
+
+    @Override
     public void destroy() throws Exception {
     }