package com.tale.service.impl;
import com.blade.ioc.annotation.Inject;
import com.blade.ioc.annotation.Service;
import com.blade.jdbc.ActiveRecord;
import com.blade.jdbc.core.Take;
import com.blade.kit.StringKit;
import com.tale.model.Options;
import com.tale.service.OptionsService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class OptionsServiceImpl implements OptionsService {
@Inject
private ActiveRecord activeRecord;
@Override
public void saveOptions(Map<String, String> options) {
if (null != options && !options.isEmpty()) {
options.forEach((k, v) -> saveOption(k, v));
}
}
@Override
public void saveOption(String key, String value) {
if (StringKit.isNotBlank(key) && StringKit.isNotBlank(value)) {
Options options = new Options();
options.setName(key);
int count = activeRecord.count(options);
if (count == 0) {
options.setValue(value);
activeRecord.insert(options);
} else {
options.setValue(value);
activeRecord.update(options);
}
}
}
@Override
public Map<String, String> getOptions() {
return getOptions(null);
}
@Override
public Map<String, String> getOptions(String key) {
Map<String, String> options = new HashMap<>();
Take take = new Take(Options.class);
if(StringKit.isNotBlank(key)){
take.like("name", key + "%");
}
List<Options> optionsList = activeRecord.list(take);
if(null != optionsList){
optionsList.forEach(option -> options.put(option.getName(), option.getValue()));
}
return options;
}
@Override
public void deleteOption(String key) {
if(StringKit.isNotBlank(key)){
activeRecord.delete(new Take(Options.class).like("name", key + "%"));
}
}
}