package com.project.demo.service.base;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.project.demo.constant.FindConfig;
import com.project.demo.dao.base.BaseMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.ParameterizedType;
import java.net.URLDecoder;
import java.security.MessageDigest;
import java.util.*;
/**
*/
@Slf4j
public class BaseService<E>{
@Autowired
private BaseMapper<E> baseMapper;
Class<E> eClass = (Class<E>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
private final String table = humpToLine(eClass.getSimpleName());
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
public List<Map<String,Object>> selectMapBaseList(String select) {
return baseMapper.selectBaseList(select);
}
public int selectBaseCount(String sql) {
return baseMapper.selectBaseCount(sql);
}
public int deleteBaseSql(String sql) {
return baseMapper.deleteBaseSql(sql);
}
public int updateBaseSql(String sql) {
return baseMapper.updateBaseSql(sql);
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
@Transactional
public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query,"0".equals(config.get(FindConfig.LIKE)),wrapper);
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.update(entity,wrapper);
log.info("[{}] - 更新操作:{}",entity);
}
public Map<String,Object> selectToPage(Map<String,String> query,Map<String,String> config){
Map<String,Object> map = new HashMap<>();
List list = baseMapper.selectBaseList(select(query, config));
map.put("list",list);
map.put("count",baseMapper.selectBaseCount(count(query,config)));
return map;
}
public Map<String,Object> selectToList(Map<String,String> query,Map<String,String> config){
Map<String,Object> map = new HashMap<>();
List<Map<String,Object>> resultList = baseMapper.selectBaseList(selectGroupCount(query, config));
for (Map<String,Object> sub:resultList) {
sub.put("0",sub.get("count"));
sub.put("1",sub.get(config.get(FindConfig.GROUP_BY)));
}
map.put("list",resultList);
return map;
}
public Integer selectSqlToInteger(String sql){
Integer value = baseMapper.selectBaseCount(sql);
return value;
}
public Map<String,Object> selectBarGroup(Map<String,String> query,Map<String,String> config){
Map<String,Object> map = new HashMap<>();
List<Map<String,Object>> resultList = baseMapper.selectBaseList(barGroup(query, config));
List list = new ArrayList();
for (Map<String,Object> resultMap:resultList) {
List subList = new ArrayList();
for(String key:resultMap.keySet()){//keySet获取map集合key的集合 然后在遍历key即可
subList.add(resultMap.get(key));
}
list.add(subList);
}
map.put("list",list);
return map;
}
// public void barGroup(Map<String,String> query,Map<String,String> config,QueryWrapper wrapper){
// if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
// wrapper.select(config.get(FindConfig.GROUP_BY));
// if (config.get(FindConfig.FIELD) != null && !"".equals(config.get(FindConfig.FIELD))){
// String[] fieldList = config.get(FindConfig.FIELD).split(",");
// for (int i=0;i<fieldList.length;i++)
// wrapper.select("SUM("+fieldList[i]+")");
// }
// toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),wrapper);
// wrapper.groupBy(config.get(FindConfig.GROUP_BY));
// }else {
// wrapper.select("SUM("+config.get(FindConfig.GROUP_BY)+")");
// toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),wrapper);
// }
// log.info("[{}] - 查询操作,sql: {}",wrapper.getSqlSelect());
// }
public String barGroup(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer(" SELECT ");
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append(config.get(FindConfig.GROUP_BY));
if (config.get(FindConfig.FIELD) != null && !"".equals(config.get(FindConfig.FIELD))){
String[] fieldList = config.get(FindConfig.FIELD).split(",");
for (int i=0;i<fieldList.length;i++)
sql.append(" ,SUM(").append(fieldList[i]).append(")");
}
sql.append(" FROM ").append("`").append(table).append("`");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
}else {
sql.append(" SUM(").append(config.get(FindConfig.GROUP_BY)).append(") FROM ").append("`").append(table).append("`");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
// public void selectGroupCount(Map<String,String> query,Map<String,String> config,QueryWrapper wrapper){
// wrapper.select("count(*) AS count_value",config.get(FindConfig.GROUP_BY));
// toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),wrapper);
// if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
// wrapper.groupBy(config.get(FindConfig.GROUP_BY));
// }
// log.info("[{}] - 查询操作,sql: {}",wrapper.getSqlSelect());
// }
public String selectGroupCount(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select COUNT(*) AS count, ");
sql.append(config.get(FindConfig.GROUP_BY)).append(" ");
sql.append("from ").append("`").append(table).append("` ");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
// public void select(Map<String,String> query,Map<String,String> config,QueryWrapper wrapper){
// wrapper.select(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD));
// toWhereSql(query, "0".equals(c
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约管理系统springboot 高校图书馆座位预约
资源推荐
资源详情
资源评论
收起资源包目录
springboot 高校图书馆座位预约管理系统 (997个子文件)
运行.bat 31B
运行.bat 13B
运行.bat 11B
.browserslistrc 33B
mvn.cmd 6KB
mvnDebug.cmd 2KB
m2.conf 228B
chunk-vendors.dcac64ba.css 401KB
chunk-vendors.a1e5b6ee.css 241KB
diy.css 162KB
diy.css 162KB
app.975dc300.css 128KB
base.css 89KB
base.css 89KB
app.35a9ede1.css 87KB
theme.css 14KB
theme.css 14KB
diy.css 10KB
diy.css 10KB
chunk-50b952c7.f02e05e0.css 6KB
chunk-f375e1a6.64037fd5.css 6KB
chunk-3f5e7e71.e1d42795.css 5KB
chunk-38843300.b4844e00.css 3KB
jigsaw.css 2KB
jigsaw.css 2KB
chunk-38e4d61c.fe1a606c.css 2KB
chunk-eca344f8.2240c869.css 2KB
chunk-69662fbc.4d6716f5.css 2KB
chunk-980dca9a.a4b7b6e9.css 2KB
chunk-628b06be.732c64e8.css 2KB
chunk-05b5e17d.9d3ac54f.css 2KB
chunk-5b708c52.2fb168a9.css 2KB
chunk-60a65aa2.832f04b6.css 2KB
chunk-dfa97336.8fa89557.css 2KB
chunk-890315a8.edd1fbb5.css 2KB
chunk-4dbccf58.8b9f5b16.css 1KB
chunk-76bda8e8.3d8ddc92.css 1KB
chunk-70d09266.3d8ddc92.css 1KB
chunk-15c2aabc.3d8ddc92.css 1KB
chunk-63bd7dc0.3d8ddc92.css 1KB
chunk-0e651fc0.3d8ddc92.css 1KB
chunk-93b2e0e4.3d8ddc92.css 1KB
chunk-13f58f14.3d8ddc92.css 1KB
chunk-853b424a.3d8ddc92.css 1KB
chunk-46d33a07.802b2f03.css 990B
chunk-21f1ef34.5604e0bc.css 790B
chunk-2a7278c0.932bffb8.css 782B
chunk-52f0bcc6.bf619077.css 753B
chunk-00882464.d2dbc0f5.css 753B
chunk-1fe0c1e5.6f8c96db.css 753B
chunk-fd56c062.2d6c05c6.css 753B
chunk-1d197bf2.2a836599.css 753B
chunk-817e9afa.b16f5b07.css 753B
chunk-6b435b26.f34e34b4.css 753B
chunk-5269527c.788ee987.css 753B
chunk-06e381bd.65ac6bee.css 690B
chunk-b1a084de.4eb70801.css 597B
chunk-52ac726d.a3f206fd.css 594B
chunk-321f74d2.aef216e5.css 593B
chunk-1bfb9c6a.271daa6e.css 473B
chunk-4cc8da99.02e0bea0.css 456B
chunk-ec171288.f0622aa6.css 418B
chunk-d689df6a.bbb95422.css 418B
chunk-2376082f.bd1bedbb.css 372B
chunk-a5ac736a.aa114649.css 361B
chunk-1528fca7.e5656f78.css 355B
chunk-b003d128.e1f3e82f.css 335B
chunk-0e20c5e4.e1f3e82f.css 335B
chunk-53b718ad.e1f3e82f.css 335B
chunk-ebf0b434.62aeb62e.css 335B
chunk-d4fb39aa.62aeb62e.css 335B
chunk-5c32cd23.62aeb62e.css 335B
chunk-a0c345ae.62aeb62e.css 335B
chunk-63029be2.62aeb62e.css 335B
chunk-6207097e.62aeb62e.css 335B
chunk-2170787a.62aeb62e.css 335B
chunk-de572f60.e1f3e82f.css 335B
chunk-23193825.b9719a54.css 263B
chunk-49e2afaa.1ae76676.css 242B
chunk-17a37762.7a849b1c.css 224B
chunk-3ae6bf22.5ee3c0b1.css 134B
chunk-b339cbb0.988a3e00.css 121B
chunk-2554c2cc.ee88beea.css 119B
base.css 3B
base.css 3B
theme.css 0B
theme.css 0B
jansi.dll 26KB
jansi.dll 21KB
.gitignore 254B
.gitignore 254B
.gitignore 176B
.gitignore 176B
index.html 6KB
index.html 6KB
index.html 628B
index.html 628B
favicon.ico 4KB
favicon.ico 4KB
favicon.ico 4KB
共 997 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
青铜状态
- 粉丝: 2
- 资源: 57
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 精选微信小程序源码:查拼音小程序(含源码+源码导入视频教程&文档教程,亲测可用)
- 精选微信小程序源码:排班表日历小程序(含源码+源码导入视频教程&文档教程,亲测可用)
- 精选微信小程序源码:二维码生成器小程序(含源码+源码导入视频教程&文档教程,亲测可用)
- HengCe-18900-2024-2030中国DPC陶瓷基板市场现状研究分析与发展前景预测报告-样本.docx
- HengCe-18900-2024-2030全球与中国抗菌肽市场现状及未来发展趋势-样本.docx
- HengCe-18900-2024-2030全球与中国阀门市场现状及未来发展趋势-样本.docx
- HengCe-2024-2030中国碳化硅电源市场现状研究分析与发展前景预测报告 样本.docx
- 基于Java开发的化妆品到期管理设计源码
- GamerStrugglesOST(WAV).zip
- 基于Python的简易HTML+CSS+JavaScript论坛系统设计源码
- FreeRTOS动态静态创建任务-二值信号量-队列-内存管理
- 基于Java的城乡低收入人口经济状况多维指标综合评价系统设计源码
- 基于Python的OpenSSL对称算法、哈希校验、非对称算法、证书管理及SSL安全设计源码
- 基于Java和Kotlin的SplitEditText:灵活分割编辑框设计源码
- 基于Python3的爬虫实战与JS逆向处理设计源码
- 基于Java的无人自助桌球管理系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功