瀏覽代碼

feat:语言列表

zhangwei 1 周之前
父節點
當前提交
ae70055849
共有 16 個文件被更改,包括 194 次插入42 次删除
  1. 10 0
      edu-travel-adapter/edu-travel-adapter-country/src/main/java/edu/travel/adapter/service/country/LanguageAdapter.java
  2. 35 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/LanguageController.java
  3. 22 0
      edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopWebUploadController.java
  4. 5 0
      edu-travel-common/edu-travel-common-cache/src/main/java/edu/travel/cache/util/RedisKey.java
  5. 5 0
      edu-travel-common/edu-travel-common-cache/src/main/java/edu/travel/cache/util/RedisUtil.java
  6. 6 0
      edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/remote/ShopLanguageRemoteController.java
  7. 26 0
      edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/vo/LanguageSortVo.java
  8. 0 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductService.java
  9. 1 1
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductParametersServiceImpl.java
  10. 3 4
      edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductController.java
  11. 7 0
      edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/service/ShopLanguageService.java
  12. 52 1
      edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/service/impl/ShopLanguageServiceImpl.java
  13. 17 0
      edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/web/ShopLanguageController.java
  14. 1 1
      edu-travel-service/edu-travel-service-order/src/main/java/edu/travel/order/controller/OrderStatusDictiController.java
  15. 3 33
      edu-travel-service/edu-travel-service-order/src/main/java/edu/travel/order/entity/OrderStatusDicti.java
  16. 1 1
      edu-travel-service/edu-travel-service-ws/src/main/java/edu/travel/ws/factoryandstragy/MessageFactory.java

+ 10 - 0
edu-travel-adapter/edu-travel-adapter-country/src/main/java/edu/travel/adapter/service/country/LanguageAdapter.java

@@ -3,10 +3,15 @@ package edu.travel.adapter.service.country;
 import edu.travel.adapter.annotation.AdapterAnnotation;
 import edu.travel.remote.ShopLanguageRemoteController;
 import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.vo.LanguageSortVo;
 import edu.travel.vo.ShopLanguageVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+import java.util.Map;
+
+
 @Component
 public class LanguageAdapter {
     @Autowired
@@ -16,4 +21,9 @@ public class LanguageAdapter {
     public RPCBaseResponse<ShopLanguageVo> getFormId(String id) {
         return shopLanguageRemoteController.getFormId(id);
     }
+
+    @AdapterAnnotation
+    public RPCBaseResponse<Map<String, List<LanguageSortVo>>> getLanguageSort(){
+        return shopLanguageRemoteController.getLanguageSort();
+    }
 }

+ 35 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/LanguageController.java

@@ -0,0 +1,35 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.country.LanguageAdapter;
+import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.vo.LanguageSortVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 语言表(shop_language)表控制层
+ *
+ * @author xxxxx
+ */
+@RestController
+@RequestMapping("/shopLanguage")
+public class LanguageController {
+    @Autowired
+    private LanguageAdapter languageAdapter;
+
+
+    /**
+     *  语言列表
+     * @return {@link RPCBaseResponse }<{@link Map }<{@link String }, {@link List }<{@link LanguageSortVo }>>>
+     */
+    @GetMapping("/getLanguageSort")
+    public RPCBaseResponse<Map<String, List<LanguageSortVo>>> getLanguageSort() {
+        return languageAdapter.getLanguageSort();
+    }
+
+}

+ 22 - 0
edu-travel-api/edu-travel-api-web/src/main/java/edu/travel/controller/ShopWebUploadController.java

@@ -0,0 +1,22 @@
+package edu.travel.controller;
+
+import edu.travel.adapter.service.upload.UploadAdapter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 文件上传
+ *
+ * @author 大春
+ * @date 2025/03/20
+ */
+
+@RestController
+@RequestMapping("/webUpload")
+public class ShopWebUploadController {
+    @Autowired
+    private UploadAdapter uploadAdapter;
+
+
+}

+ 5 - 0
edu-travel-common/edu-travel-common-cache/src/main/java/edu/travel/cache/util/RedisKey.java

@@ -35,4 +35,9 @@ public interface RedisKey {
      */
     String COUNTRY_SORT= BASH + "country:sort";
 
+    /**
+     * 语言
+     */
+    String LANGUAGE_SORT= BASH + "language:sort";
+
 }

+ 5 - 0
edu-travel-common/edu-travel-common-cache/src/main/java/edu/travel/cache/util/RedisUtil.java

@@ -37,6 +37,11 @@ public class RedisUtil {
     }
 
 
+
+    public void delete(String key) {
+        stringRedisTemplate.delete(key);
+    }
+
     // 延迟删除(异步)
     @Async("taskExecutor")
     public void deleteDelay(String key, long delay, TimeUnit unit) {

+ 6 - 0
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/remote/ShopLanguageRemoteController.java

@@ -4,11 +4,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import edu.travel.dto.ShopLanguageDto;
 import edu.travel.remote.base.RemoteBaseController;
 import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.vo.LanguageSortVo;
 import edu.travel.vo.ShopLanguageVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.List;
+import java.util.Map;
+
 @FeignClient(path = "/shopLanguage", name = "country-dev")
 public interface ShopLanguageRemoteController extends RemoteBaseController<ShopLanguageVo, ShopLanguageDto> {
 
@@ -19,4 +23,6 @@ public interface ShopLanguageRemoteController extends RemoteBaseController<ShopL
     @GetMapping("/getFormId")
     public RPCBaseResponse<ShopLanguageVo> getFormId(@RequestParam("id") String id);
 
+    @GetMapping("/getLanguageSort")
+    public RPCBaseResponse<Map<String, List<LanguageSortVo>>> getLanguageSort();
 }

+ 26 - 0
edu-travel-remote/edu-travel-remote-country/src/main/java/edu/travel/vo/LanguageSortVo.java

@@ -0,0 +1,26 @@
+package edu.travel.vo;
+
+import lombok.Data;
+
+@Data
+public class LanguageSortVo {
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 中文语言名
+     */
+    private String languageNameZh;
+
+    /**
+     * 英文语言名
+     */
+    private String languageNameEn;
+
+    /**
+     * 当地语言名
+     */
+    private String languageNameLocal;
+}

+ 0 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/ShopProductService.java

@@ -6,7 +6,6 @@ import edu.travel.commodity.entity.ShopProduct;
 import edu.travel.remote.dto.GetProductByTypeDto;
 import edu.travel.remote.dto.InsertProductDto;
 import edu.travel.remote.dto.SearchProductDto;
-import edu.travel.remote.dto.UpdateProductDto;
 import edu.travel.remote.vo.ShopProductVo;
 
 import java.io.IOException;

+ 1 - 1
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/service/impl/ShopProductParametersServiceImpl.java

@@ -31,7 +31,7 @@ public class ShopProductParametersServiceImpl extends ServiceImpl<ShopProductPar
         return this.saveBatch(list);
     }
 
-    @Override
+//    @Override
     public boolean deleteByProductId(Long productId) {
         LambdaUpdateWrapper<ShopProductParameters> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(ShopProductParameters::getProductId, productId)

+ 3 - 4
edu-travel-service/edu-travel-service-commodity/src/main/java/edu/travel/commodity/web/ShopProductController.java

@@ -16,7 +16,6 @@ import edu.travel.remote.commodity.ShopProductRemoteController;
 import edu.travel.remote.dto.GetProductByTypeDto;
 import edu.travel.remote.dto.InsertProductDto;
 import edu.travel.remote.dto.SearchProductDto;
-import edu.travel.remote.dto.UpdateProductDto;
 import edu.travel.remote.upload.dto.EduFileDTO;
 import edu.travel.remote.upload.vo.FileVo;
 import edu.travel.remote.vo.FileWebVo;
@@ -166,7 +165,7 @@ public class ShopProductController extends BaseController<ShopProduct> implement
      * @return
      */
     @Override
-    @PostMapping("/updateById")
+    @PostMapping("/updateFormId")
     public RPCBaseResponse<ShopProductVo> updateTargetFormId(@RequestBody ShopProductVo entity) {
         ShopProduct shopProduct = new ShopProduct();
         BeanUtils.copyProperties(entity, shopProduct);
@@ -198,7 +197,7 @@ public class ShopProductController extends BaseController<ShopProduct> implement
      * @return
      */
     @Override
-    @PostMapping("/deleteById")
+    @PostMapping("/deleteFormId")
     public RPCBaseResponse<ShopProductVo> deleteTargetFormId(List<String> ids) {
         RPCBaseResponse<ShopProduct> shopCurrencyRPCBaseResponse = super.deleteTargetById(ids);
         RPCBaseResponse<ShopProductVo> shopCurrencyVoRPCBaseResponse = new RPCBaseResponse<>();
@@ -211,7 +210,7 @@ public class ShopProductController extends BaseController<ShopProduct> implement
      * @return
      */
     @Override
-    @GetMapping("/getAllForm")
+    @GetMapping("/listForm")
     public RPCBaseResponse<List<ShopProductVo>> getAllForm() {
         RPCBaseResponse<List<ShopProduct>> shopCurrencyRPCBaseResponse = super.listAll();
         RPCBaseResponse<List<ShopProductVo>> shopCurrencyVoRPCBaseResponse = new RPCBaseResponse<>();

+ 7 - 0
edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/service/ShopLanguageService.java

@@ -5,10 +5,17 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import edu.travel.country.entity.ShopLanguage;
 import edu.travel.dto.ShopLanguageDto;
 import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.vo.LanguageSortVo;
 import edu.travel.vo.ShopLanguageVo;
 
+import java.util.List;
+import java.util.Map;
+
 public interface ShopLanguageService extends IService<ShopLanguage> {
 
     //分页查询
     RPCBaseResponse<IPage<ShopLanguageVo>> getLanguagePage(ShopLanguageDto shopLanguageDto);
+
+    Map<String, List<LanguageSortVo>> getLanguageSort();
+
 }

+ 52 - 1
edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/service/impl/ShopLanguageServiceImpl.java

@@ -1,22 +1,40 @@
 package edu.travel.country.service.impl;
 
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 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.cache.util.RedisKey;
+import edu.travel.country.entity.BaseCountryServe;
 import edu.travel.country.entity.ShopLanguage;
 import edu.travel.country.mapper.ShopLanguageMapper;
 import edu.travel.country.service.ShopLanguageService;
 import edu.travel.dto.ShopLanguageDto;
 import edu.travel.rpc.RPCBaseResponse;
 import edu.travel.service.SysServiceImpl;
+import edu.travel.vo.LanguageSortVo;
+import edu.travel.vo.ServiceCountryVo;
 import edu.travel.vo.ShopLanguageVo;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.stream.Collectors;
+
 @Service
 public class ShopLanguageServiceImpl extends SysServiceImpl<ShopLanguageMapper, ShopLanguage> implements ShopLanguageService {
-
+    @Autowired
+    private StringRedisTemplate stringRedisTemplate;
 
     public RPCBaseResponse<IPage<ShopLanguageVo>> getLanguagePage(ShopLanguageDto shopLanguageDto) {
         // 创建分页对象
@@ -44,4 +62,37 @@ public class ShopLanguageServiceImpl extends SysServiceImpl<ShopLanguageMapper,
         // 封装返回结果
         return new RPCBaseResponse<>(200, "SUCCESS", pageVoLink);
     }
+
+    @Override
+    public Map<String, List<LanguageSortVo>> getLanguageSort() {
+        //缓存获取
+        String s = stringRedisTemplate.opsForValue().get(RedisKey.LANGUAGE_SORT);
+        if(!ObjectUtil.isEmpty(s)){
+            JSONObject objects = JSONUtil.parseObj(s);
+            Map<String, List<LanguageSortVo>> result = new HashMap<>();
+
+            objects.forEach((key, value) -> {
+                JSONArray jsonArray = (JSONArray) value;
+                List<LanguageSortVo> countries = jsonArray.toList(LanguageSortVo.class);
+                result.put(key, countries);
+            });
+            return result;
+        }
+        List<ShopLanguage> list = list();
+        List<LanguageSortVo> serviceCountryVos = BeanUtil.copyToList(list, LanguageSortVo.class);
+        TreeMap<String, List<LanguageSortVo>> collect = serviceCountryVos.stream()
+                .filter(country -> country != null && !ObjectUtil.isEmpty(country))
+                .collect(Collectors.groupingBy(
+                        country -> {
+                            String firstChar = country.getLanguageNameEn().substring(0, 1);
+                            return firstChar.toUpperCase();
+                        },
+                        TreeMap::new,
+                        Collectors.toList()
+                ));
+        //放入缓存
+        String jsonStr = JSONUtil.toJsonStr(collect);
+        stringRedisTemplate.opsForValue().set(RedisKey.LANGUAGE_SORT,jsonStr);
+        return collect;
+    }
 }

+ 17 - 0
edu-travel-service/edu-travel-service-country/src/main/java/edu/travel/country/web/ShopLanguageController.java

@@ -2,12 +2,15 @@ package edu.travel.country.web;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import edu.travel.cache.util.RedisKey;
+import edu.travel.cache.util.RedisUtil;
 import edu.travel.country.entity.ShopLanguage;
 import edu.travel.country.service.ShopLanguageService;
 import edu.travel.dto.ShopLanguageDto;
 import edu.travel.dto.ShopLanguageWebAppupdateDto;
 import edu.travel.remote.ShopLanguageRemoteController;
 import edu.travel.rpc.RPCBaseResponse;
+import edu.travel.vo.LanguageSortVo;
 import edu.travel.vo.ShopLanguageVo;
 import edu.travel.vo.ShopLanguageWebAppupdateVo;
 import edu.travel.web.BaseController;
@@ -16,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 语言表(shop_language)表控制层
@@ -30,6 +35,8 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
      */
     @Autowired
     private ShopLanguageService shopLanguageService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     /**
      * 语言分页
@@ -63,11 +70,13 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
     @Override
     @PostMapping("/updateTargetFormId")
     public RPCBaseResponse<ShopLanguageVo> updateTargetFormId(@RequestBody ShopLanguageDto entity) {
+        redisUtil.delete(RedisKey.LANGUAGE_SORT);
         ShopLanguage shopLanguage = new ShopLanguage();
         BeanUtils.copyProperties(entity, shopLanguage);
         RPCBaseResponse<ShopLanguage> languageRPCBaseResponse = super.updateTargetById(shopLanguage);
         RPCBaseResponse<ShopLanguageVo> shopLanguageVoRPCBaseResponse = new RPCBaseResponse<>();
         BeanUtils.copyProperties(languageRPCBaseResponse, shopLanguageVoRPCBaseResponse);
+        redisUtil.deleteDelay(RedisKey.LANGUAGE_SORT,500, TimeUnit.MILLISECONDS);
         return shopLanguageVoRPCBaseResponse;
     }
 
@@ -129,4 +138,12 @@ public class ShopLanguageController extends BaseController<ShopLanguage> impleme
         BeanUtils.copyProperties(languageRPCBaseResponse, shopLanguageVoRPCBaseResponse);
         return shopLanguageVoRPCBaseResponse;
     }
+
+
+
+    @GetMapping("/getLanguageSort")
+    public RPCBaseResponse<Map<String,List<LanguageSortVo>>> getLanguageSort() {
+        return RPCBaseResponse.success(shopLanguageService.getLanguageSort());
+    }
+
 }

+ 1 - 1
edu-travel-service/edu-travel-service-order/src/main/java/edu/travel/order/controller/OrderStatusDictiController.java

@@ -59,7 +59,7 @@ public class OrderStatusDictiController implements OrderStatusDictiRemoteControl
             one.setDictValue(dto.getDictValue());
         }
         if(ObjectUtil.isNotEmpty(dto.getDictLabel())){
-            one.setDictValue(dto.getDictLabel());
+            one.setDictLabel(dto.getDictLabel());
         }
         orderStatusDictiService.updateById(one);
         return RPCBaseResponse.success();

+ 3 - 33
edu-travel-service/edu-travel-service-order/src/main/java/edu/travel/order/entity/OrderStatusDicti.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.util.Date;
+
+import edu.travel.entity.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -16,7 +18,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @NoArgsConstructor
 @TableName(value = "order_status_dicti")
-public class OrderStatusDicti {
+public class OrderStatusDicti extends BaseEntity {
     /**
      * id
      */
@@ -36,41 +38,9 @@ public class OrderStatusDicti {
     private String dictValue;
 
     /**
-     * 系统标识
-     */
-    @TableField(value = "project")
-    private String project;
-
-    /**
      * 启用禁用 0 启用 1禁用
      */
     @TableField(value = "`status`")
     private Integer status;
 
-    /**
-     * 创建时间
-     */
-    @TableField(value = "create_time")
-    private Date createTime;
-
-    /**
-     * 创建人
-     */
-    @TableField(value = "create_user_id")
-    private String createUserId;
-
-    @TableField(value = "update_time")
-    private Date updateTime;
-
-    /**
-     * 更新人id
-     */
-    @TableField(value = "update_user_id")
-    private String updateUserId;
-
-    /**
-     * 删除标记 0正常 1删除
-     */
-    @TableField(value = "delete_flag")
-    private Integer deleteFlag;
 }

+ 1 - 1
edu-travel-service/edu-travel-service-ws/src/main/java/edu/travel/ws/factoryandstragy/MessageFactory.java

@@ -14,7 +14,7 @@ import java.util.concurrent.ConcurrentHashMap;
 public class MessageFactory implements InitializingBean {
 
     /**
-     * 所有的具体支付策略的对象逻辑会被注入到这里
+     * 所有的具体策略的对象逻辑会被注入到这里
      */
     @Resource
     private List<MessageService> list;