You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.dsideal.base.Res.Model;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.SqlPara;
import com.jfinal.plugin.activerecord.Record;
import java.util.ArrayList;
import java.util.List;
public class ResourceModel {
//云南省
public final String YUNNAN = "530000";
/**
* 功能获取行政区划code
*
* @param area_id
* @return
*/
public String getAreaCode(String area_id) {
String sql = "select * from t_dm_area where id=?";
return Db.findFirst(sql, area_id).getStr("area_code");
}
/**
* 功能:获取当前用户的行政区划
*
* @param identity_id
* @param person_id
* @return
*/
public String getAreaCode(int identity_id, String person_id) {
String area_code = "";
//省管理员直接返回云南省的code
if (identity_id == 1) area_code = YUNNAN;
//如果是市州用户,直接返回市州用户的行政区划
String sql = "select * from t_sys_loginperson where person_id=?";
Record record = Db.findFirst(sql, person_id);
if (identity_id == 2) {
String city_id = record.getStr("city_id");
area_code = getAreaCode(city_id);
}
if (identity_id == 3) {
String area_id = record.getStr("area_id");
area_code = getAreaCode(area_id);
}
return area_code;
}
/**
* 功能:获取知识库分页数据
*
* @param page
* @param limit
*/
public Page<Record> getZskPage(String person_id, int type_id, String keyword, String area_code, int page, int limit) {
List<String> idList = new ArrayList<>();
//1、如果是云南省:查看所有自己发布的文档,不管是省,市,县,都能看到全省的文档
idList.add(YUNNAN);
//如果是省管理员
if (area_code.equals(YUNNAN)) {
//什么也不做
}
//2、如果是市州,查看省发布的+自己本市州发布的文档,市州的判断条件是6位的area_code最后两位是00
else if (area_code.substring(area_code.length() - 2, area_code.length()).equals("00")) {
idList.add(area_code);//只添加市
} else {
//县区管理员
idList.add(area_code.substring(0, 4) + "00");//市
idList.add(area_code);//县区
}
Kv kv = new Kv();
kv.set("type_id", type_id);
kv.set("idList", idList);
if (!StrKit.isBlank(keyword)) {
kv.set("keyword", keyword);
}
SqlPara sqlPara = Db.getSqlPara("Resource.getZskPage", kv);
Page<Record> records = Db.paginate(page, limit, sqlPara);
for (Record record : records.getList()) {
String database_person_id = record.getStr("person_id");
record.set("can_del", database_person_id.equals(person_id));
}
return records;
}
/**
* 功能:删除知识库文档
*
* @param id
*/
public void delZskDocument(int id) {
String sql = "delete from t_zsk_files where id=?";
Db.update(sql, id);
}
/**
* 功能:上传知识库文档
*
* @param name
* @param file_name
* @param type_id
* @param identity_id
* @param area_code
*/
public void uploadZskDocument(String name, String file_name, int type_id, int identity_id, String area_code, String person_id) {
Record record = new Record();
record.set("name", name);
record.set("file_name", file_name);
record.set("type_id", type_id);
record.set("identity_id", identity_id);
record.set("area_code", area_code);
record.set("person_id", person_id);
Db.save("t_zsk_files", "id", record);
}
/**
* 功能:获取知识库文档
* @param id
* @return
*/
public Record getZskDocument(int id){
String sql = "select * from t_zsk_files where id=?";
return Db.findFirst(sql, id);
}
}