Prechádzať zdrojové kódy

feat:修改开心中文BUG

zhangwei 4 dní pred
rodič
commit
4a6a08957a

+ 0 - 6
edu-travel-service/edu-travel-service-education/pom.xml

@@ -133,12 +133,6 @@
             <artifactId>edu-travel-common-cache</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>edu.travel</groupId>
-            <artifactId>edu-travel-service-country</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>compile</scope>
-        </dependency>
 
     </dependencies>
     <profiles>

+ 8 - 4
edu-travel-service/edu-travel-service-education/src/main/java/edu/travel/education/entity/HappyEntry.java

@@ -1,6 +1,5 @@
 package edu.travel.education.entity;
 
-import java.util.Date;
 import java.util.Map;
 
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -8,13 +7,12 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import edu.travel.annotation.LinkConst;
 import edu.travel.annotation.LinkOne;
-import edu.travel.country.mapper.BaseCountryMapper;
+//import edu.travel.country.mapper.BaseCountryMapper;
 import edu.travel.education.entity.dict.CourseTypeDict;
 import edu.travel.entity.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-import lombok.NonNull;
 
 import javax.validation.constraints.NotNull;
 
@@ -40,6 +38,12 @@ public class HappyEntry extends BaseEntity {
     private String surname;
 
     /**
+     * 国家
+     */
+    @NotNull
+    @TableField(value = "country_id")
+    private Long countryId;
+    /**
     * 名
     */
     @NotNull
@@ -99,6 +103,6 @@ public class HappyEntry extends BaseEntity {
      * 所属国家
      */
     @TableField(exist = false)
-    @LinkOne(linkField="countryId",linkMapper= BaseCountryMapper.class,linkPrimaryField="id")
+//    @LinkOne(linkField="countryId",linkMapper= BaseCountryMapper.class,linkPrimaryField="id")
     private Map CodeCountryNameDict;
 }

+ 2 - 2
edu-travel-service/edu-travel-service-education/src/main/java/edu/travel/education/vo/HappyEntryVo.java

@@ -3,7 +3,7 @@ package edu.travel.education.vo;
 import com.baomidou.mybatisplus.annotation.TableField;
 import edu.travel.annotation.LinkConst;
 import edu.travel.annotation.LinkOne;
-import edu.travel.country.mapper.BaseCountryMapper;
+//import edu.travel.country.mapper.BaseCountryMapper;
 import edu.travel.education.entity.dict.CourseTypeDict;
 import edu.travel.po.PagePO;
 import lombok.AllArgsConstructor;
@@ -80,7 +80,7 @@ public class HappyEntryVo extends PagePO {
      * 所属国家
      */
     @TableField(exist = false)
-    @LinkOne(linkField="countryId",linkMapper= BaseCountryMapper.class,linkPrimaryField="id")
+//    @LinkOne(linkField="countryId",linkMapper= BaseCountryMapper.class,linkPrimaryField="id")
     private Map CodeCountryNameDict;
 
 }

+ 5 - 1
edu-travel-service/edu-travel-service-tenement/pom.xml

@@ -145,7 +145,11 @@
             <version>1.0-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
-
+        <dependency>
+            <groupId>edu.travel</groupId>
+            <artifactId>edu-travel-adapter-upload</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
     <profiles>
         <profile>

+ 10 - 5
edu-travel-service/edu-travel-service-tenement/src/main/java/edu/travel/tenant/constant/BaseConstant.java

@@ -27,17 +27,22 @@ public class BaseConstant {
     /**
      * 商品文件上传图片类型
      */
-    private static final Set<String> PRODUCT_IMAGE_TYPES = new HashSet<>(
+    private static final Set<String> USER_HEAD_TYPE = new HashSet<>(
             Arrays.asList("jpg", "jpeg", "png")
     );
-
-    public static Set<String> getProductImageTypes() {
-        return PRODUCT_IMAGE_TYPES;
+    /**
+     * 商品文件上传图片类型
+     */
+    private static final Set<String> BANNER_TYPES_TYPE = new HashSet<>(
+            Arrays.asList("jpg", "jpeg", "png","mp4")
+    );
+    public static Set<String> getUserHeadType() {
+        return USER_HEAD_TYPE;
     }
     /**
      * 获取banner 图片类型
      */
     public static Set<String> getBannerImageTypes() {
-        return PRODUCT_IMAGE_TYPES;
+        return BANNER_TYPES_TYPE;
     }
 }

+ 47 - 1
edu-travel-service/edu-travel-service-tenement/src/main/java/edu/travel/tenant/web/TenantController.java

@@ -1,11 +1,15 @@
 package edu.travel.tenant.web;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileTypeUtil;
 import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import edu.travel.adapter.service.upload.UploadAdapter;
 import edu.travel.remote.feign.mode.dto.tenant.AddOrUpdateTenantDto;
 import edu.travel.remote.feign.mode.dto.tenant.AssignRolesOrMenusDto;
 import edu.travel.remote.feign.mode.dto.tenant.EduTenantPageDto;
@@ -13,25 +17,29 @@ import edu.travel.remote.feign.mode.vo.tenant.AdminInfoRoleMenuVo;
 import edu.travel.remote.feign.mode.vo.tenant.EduTenantVo;
 import edu.travel.remote.feign.mode.vo.tenant.MenuTreeVo;
 import edu.travel.remote.feign.mode.vo.tenant.SysRoleVo;
+import edu.travel.remote.upload.dto.EduFileDTO;
 import edu.travel.resp.BaseResponse;
 import edu.travel.resp.PageResponse;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.tenant.TenantRemoteController;
+import edu.travel.tenant.constant.BaseConstant;
 import edu.travel.tenant.entity.EduTenant;
 import edu.travel.tenant.entity.SysRole;
 import edu.travel.tenant.entity.SysUserRole;
 import edu.travel.tenant.service.ISysUserRoleService;
 import edu.travel.tenant.service.ITenantService;
+import edu.travel.tenant.utils.FIleUtil;
 import edu.travel.web.BaseController;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static edu.travel.rpc.RPCBaseResponse.error;
 import static edu.travel.rpc.RPCBaseResponse.success;
 
 @RestController
@@ -41,6 +49,8 @@ public class TenantController  extends BaseController<EduTenant> implements Tena
     private ITenantService tenantService;
     @Autowired
     private ISysUserRoleService sysUserRoleService;
+    @Autowired
+    private UploadAdapter uploadAdapter;
 
     @GetMapping("/getTenantByPhoneNumber")
 //    @PreAuthorize("hasRole('超级管理员')")
@@ -370,5 +380,41 @@ public class TenantController  extends BaseController<EduTenant> implements Tena
         BeanUtils.copyProperties(countryRPCBaseResponse, baseCountryVoRPCBaseResponse);
         return baseCountryVoRPCBaseResponse;
     }
+    /**
+     * 头像上传
+     */
+    @PostMapping("/uploadHeadImage")
+    public RPCBaseResponse<String> uploadHeadImage(MultipartFile file) {
+        if (file == null || file.isEmpty()) {
+            return error();
+        }
+        try {
+            // 通过文件的字节流获取真实类型(Hutool自动解析魔数)
+            String fileType = FileTypeUtil.getType(file.getInputStream());
+            // 判断类型是否在支持的图片类型集合中
+            if (fileType != null && BaseConstant.getUserHeadType().contains(fileType.toLowerCase())) {
+                String filename = file.getOriginalFilename();
+                if(ObjectUtil.isEmpty(filename)){
+                    return error();
+                }
+                RPCBaseResponse<String> stringRPCBaseResponse = uploadAdapter.initializeUpload();
+
+                EduFileDTO eduFileDTO = new EduFileDTO();
+                eduFileDTO.setUploadId(stringRPCBaseResponse.getData());
+                eduFileDTO.setFileType(fileType);
+                eduFileDTO.setFileName(filename);
+                eduFileDTO.setFileSysName(IdUtil.fastSimpleUUID()+ DateUtil.format(new Date(),"yyyyMMddHHmmss") +"."+fileType);
+                eduFileDTO.setFileMd5(FIleUtil.calculateFileMd5(file.getBytes()));
+                RPCBaseResponse rpcBaseResponse = uploadAdapter.uploadFile(eduFileDTO, file);
+                return success(rpcBaseResponse.getData().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 处理流读取异常或类型解析失败
+            return error("文件上传失败");
+        }
+        return error();
+    }
+
 }