Browse Source

自定义字段后台接口

guq 7 years ago
parent
commit
4e6ccbbbaf

+ 36 - 0
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/controller/CustomizeController.java

@@ -0,0 +1,36 @@
+package com.usoftchina.saas.ui.controller;
+
+import com.usoftchina.saas.base.Result;
+import com.usoftchina.saas.ui.po.Config;
+import com.usoftchina.saas.ui.service.CustomizeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**自定义字段的处理
+ * @author: guq
+ * @create: 2018-12-26 14:46
+ **/
+@RestController
+@RequestMapping("/customize")
+public class CustomizeController {
+
+    @Autowired
+    private CustomizeService customizeService;
+
+    @GetMapping("/getConfig")
+    public Result getConfig(String name) {
+        return Result.success(customizeService.getConfig(name));
+    }
+
+    @PostMapping("/saveConfig")
+    public Result saveConfig(@RequestBody Config config) {
+        customizeService.save(config);
+        return Result.success();
+    }
+
+    @PostMapping("/deleteConfig")
+    public Result deleteConfig(@RequestParam("name") String name) {
+        customizeService.delete(name);
+        return Result.success();
+    }
+}

+ 77 - 0
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/po/Config.java

@@ -0,0 +1,77 @@
+package com.usoftchina.saas.ui.po;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author: guq
+ * @create: 2018-12-26 15:13
+ **/
+@Document(collection = "customize_config")
+public class Config implements Serializable{
+    @Id
+    private String _id;
+    @Indexed(name = "customize_config_index")
+    private String name;
+    private String content;
+    private String position;
+    private Date createTime;
+    @Indexed(name = "customize_config_conpany_index")
+    private Long companyId;
+
+    public String get_id() {
+        return _id;
+    }
+
+
+    public void set_id(String _id) {
+
+        this._id = _id;
+    }
+
+    public Long getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Long companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+
+}

+ 38 - 0
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/repository/CustomizeRepository.java

@@ -0,0 +1,38 @@
+package com.usoftchina.saas.ui.repository;
+
+import com.usoftchina.saas.ui.po.Config;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface CustomizeRepository extends MongoRepository<Config, String> {
+
+    /**
+    * @Description 添加配置
+    * @Param: [name, companyId]
+    * @return: java.util.List<com.usoftchina.saas.ui.po.Config>
+    * @Author: guq
+    * @Date: 2018/12/26
+    */
+    List<Config> findByNameAndCompanyId(String name, Long companyId);
+
+    /**
+    * @Description 删除配置
+    * @Param: [name, companyId]
+    * @return: void
+    * @Author: guq
+    * @Date: 2018/12/26
+    */
+    void deleteConfigByNameAndCompanyId(String name, Long companyId);
+
+    /**
+    * @Description 删除重复配置
+    * @Param: [name, position, companyId]
+    * @return: void
+    * @Author: guq
+    * @Date: 2018/12/27
+    */
+    void deleteConfigByNameAndPositionAndCompanyId(String name, String position, Long companyId);
+}

+ 51 - 0
base-servers/ui-server/src/main/java/com/usoftchina/saas/ui/service/CustomizeService.java

@@ -0,0 +1,51 @@
+package com.usoftchina.saas.ui.service;
+
+import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.ui.po.Config;
+import com.usoftchina.saas.ui.repository.CustomizeRepository;
+import com.usoftchina.saas.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2018-12-26 16:07
+ **/
+@Service
+public class CustomizeService {
+
+    @Autowired
+    private CustomizeRepository customizeRepository;
+
+    @Cacheable(value = "customizeConfig", key = "#name")
+    public List<Config> getConfig(String name) {
+        if (StringUtils.isEmpty(name)) {
+            return null;
+        }
+        Long companyId = BaseContextHolder.getCompanyId();
+        return customizeRepository.findByNameAndCompanyId(name, companyId);
+    }
+
+    @CacheEvict(value = "customizeConfig", key = "#config.name")
+    public void save(Config config) {
+        if (!StringUtils.isEmpty(config)) {
+            customizeRepository.deleteConfigByNameAndPositionAndCompanyId(config.getName(), config.getPosition(),
+                    BaseContextHolder.getCompanyId());
+            config.setCompanyId(BaseContextHolder.getCompanyId());
+            config.setCreateTime(new Date());
+            customizeRepository.save(config);
+        }
+    }
+
+    @CacheEvict(value = "customizeConfig", key = "#name")
+    public void delete(String name) {
+        if (!StringUtils.isEmpty(name)) {
+            customizeRepository.deleteConfigByNameAndCompanyId(name, BaseContextHolder.getCompanyId());
+        }
+    }
+}