Commit 67f42bbf by 陶光胜

配置表

parent d8bb0670
package com.gic.enterprise.service;
import com.gic.api.base.commons.ServiceResponse;
public interface CustomSettingApiService {
ServiceResponse<String> save(String tableName, String params);
}
......@@ -216,6 +216,11 @@
<artifactId>gic-member-tag-api</artifactId>
<version>${gic-member-tag-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-ds-mongo-api</artifactId>
<version>${gic-ds-mongo-api}</version>
</dependency>
</dependencies>
<build>
......
package com.gic.enterprise.entity;
import com.gic.dsmongo.api.anno.Document;
import com.gic.dsmongo.api.anno.MongDataBase;
import com.gic.dsmongo.api.dto.MongoBaseEntity;
import java.io.Serializable;
@MongDataBase(name = "custom-table")
@Document(collection = "")
public class CustomSettingData extends MongoBaseEntity implements Serializable {
private String dataBaseName;
private String collectionName;
public String getDataBaseName() {
return dataBaseName;
}
public void setDataBaseName(String dataBaseName) {
this.dataBaseName = dataBaseName;
}
public String getCollectionName() {
return collectionName;
}
public void setCollectionName(String collectionName) {
this.collectionName = collectionName;
}
}
......@@ -12,4 +12,6 @@ public interface TableSettingService {
void delTabSetting(Integer tableId);
TabTableSetting getTableSetting(String tableName);
}
......@@ -52,4 +52,9 @@ public class TableSettingServiceImpl implements TableSettingService {
tabTableSetting.setDeleteFlag(1);
tabTableSettingMapper.updateByPrimaryKeySelective(tabTableSetting);
}
@Override
public TabTableSetting getTableSetting(String tableName) {
return tabTableSettingMapper.getTableSettingByTableName(tableName);
}
}
package com.gic.enterprise.service.outer.impl;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.dsmongo.api.constant.enums.MongoOperTypeEnum;
import com.gic.dsmongo.api.dto.Criteria;
import com.gic.dsmongo.api.dto.MongoQueryDTO;
import com.gic.dsmongo.api.dto.MongoSaveDTO;
import com.gic.dsmongo.api.dto.MongoUpdateDTO;
import com.gic.dsmongo.api.service.MongoOperApiService;
import com.gic.enterprise.entity.CustomSettingData;
import com.gic.enterprise.entity.TabTableSetting;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.service.CustomSettingApiService;
import com.gic.enterprise.service.TableSettingFieldService;
import com.gic.enterprise.service.TableSettingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service("customSettingApiService")
public class CustomSettingApiServiceImpl implements CustomSettingApiService {
private static final Logger log = LogManager.getLogger(CustomSettingApiServiceImpl.class);
private static final String DATABASENAME = "custom_table";
private static final String PRIMARYKEY = "_id";
@Autowired
private MongoOperApiService mongoOperApiService;
@Autowired
TableSettingService tableSettingService;
@Autowired
TableSettingFieldService tableSettingFieldService;
@Override
public ServiceResponse<String> save(String tableName, String params) {
TabTableSetting tableSetting = tableSettingService.getTableSetting(tableName);
if(tableSetting == null){
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), tableName + "不存在");
}
Map<String, Object> map = JSON.parseObject(params, Map.class);
String repeateSetting = tableSetting.getRepeateSetting();
if(StringUtils.isNotBlank(repeateSetting)){
String[] split = repeateSetting.split(",");
List<Criteria> criteriaList = new ArrayList<>();
for(String field : split){
Criteria criteria = new Criteria(field, MongoOperTypeEnum.EQ, map.get(field));
criteriaList.add(criteria);
}
if(map.get("_id") != null){
Criteria criteria = new Criteria(PRIMARYKEY, MongoOperTypeEnum.NIN, map.get(PRIMARYKEY));
criteriaList.add(criteria);
}
MongoQueryDTO queryDTO = new MongoQueryDTO();
queryDTO.setCriteria(criteriaList);
queryDTO.setDataBaseName(DATABASENAME);
queryDTO.setConllectionName(tableName);
ServiceResponse<List<Map>> query = mongoOperApiService.query(queryDTO);
if(CollectionUtils.isNotEmpty(query.getResult())){
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "存在重复记录");
}
}
if(map.get(PRIMARYKEY) != null){
//更新
MongoUpdateDTO mongoUpdateDTO = new MongoUpdateDTO();
mongoUpdateDTO.setDataBaseAndCollectionName(DATABASENAME, tableName);
mongoUpdateDTO.setData(map);
ServiceResponse<Integer> update = mongoOperApiService.update(mongoUpdateDTO);
log.info("update:{}", JSON.toJSONString(update));
} else {
MongoSaveDTO mongoSaveDTO = new MongoSaveDTO();
mongoSaveDTO.setDataBaseAndCollectionName(DATABASENAME, tableName);
mongoSaveDTO.setData(map);
ServiceResponse<String> save = mongoOperApiService.save(mongoSaveDTO);
log.info("save:{}", JSON.toJSONString(save));
}
return ServiceResponse.success();
}
}
......@@ -136,6 +136,7 @@
<dubbo:service interface="com.gic.enterprise.service.TableSettingApiService" ref="tableSettingApiService" timeout="6000" />
<dubbo:service interface="com.gic.enterprise.service.ProductMarketApiService" ref="productMarketApiService" timeout="6000" />
<dubbo:service interface="com.gic.enterprise.service.BlackListApiService" ref="blackListApiService" timeout="6000" />
<dubbo:service interface="com.gic.enterprise.service.CustomSettingApiService" ref="customSettingApiService" timeout="6000" />
<dubbo:reference interface="com.gic.mall.share.api.service.ShopApiService" id="shopApiService" timeout="6000" />
......
package com.gic.operation.web.controller;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.CustomSettingApiService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class CustomSettingController {
@Autowired
CustomSettingApiService customSettingApiService;
@RequestMapping("save")
@ResponseBody
public RestResponse save(String tableName, String param){
ServiceResponse<String> save = customSettingApiService.save(tableName, param);
if(save.isSuccess()){
return RestResponse.success();
}
return EnterpriseRestResponse.failure(save);
}
}
......@@ -97,4 +97,5 @@
<dubbo:reference interface="com.gic.enterprise.service.ProductMarketApiService" id="productMarketApiService" timeout="6000" />
<dubbo:reference interface="com.gic.enterprise.service.BlackListApiService" id="blackListApiService" timeout="6000" />
<dubbo:reference interface="com.gic.enterprise.service.TableSettingApiService" id="tableSettingApiService" timeout="6000" />
<dubbo:reference interface="com.gic.enterprise.service.CustomSettingApiService" id="customSettingApiService" timeout="6000" />
</beans>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment