| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package com.mokamrp.privates.controller;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.IService;
- import com.mokamrp.privates.constant.Constants;
- import com.mokamrp.privates.constant.HttpStatus;
- import com.mokamrp.privates.entity.AddHandle;
- import com.mokamrp.privates.entity.DelHandle;
- import com.mokamrp.privates.entity.EditHandle;
- import com.mokamrp.privates.entity.IndexHandle;
- import com.mokamrp.privates.help.AjaxResult;
- import com.mokamrp.privates.mapper.pojo.*;
- import com.mokamrp.privates.utils.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.validation.BindingResult;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- import java.util.*;
- /**
- * 一个粗糙的鸡肋
- *
- * @author gy @since 2021-04-17
- * @reviser leon @since 2021-04-20
- */
- public class BaseController<T> {
- @Autowired
- public IService<T> service;
- @PostMapping("/del")
- public Object delete(@Valid @RequestBody DelHandle<T> delHandle, BindingResult bindingResult) {
- if (bindingResult.hasErrors()) {
- return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
- }
- QueryWrapper<T> QueryWrapper = new QueryWrapper<>();
- QueryWrapper.in("id", delHandle.getIds());
- boolean res = service.remove(QueryWrapper);
- if (!res) {
- return AjaxResult.error("删除失败");
- }
- return AjaxResult.success(Constants.SUCCESS, res);
- }
- @PostMapping("/add")
- public Object add(@Valid @RequestBody AddHandle<T> addHandle, BindingResult bindingResult) {
- if (bindingResult.hasErrors()) {
- return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
- }
- Date date = new Date();
- Boolean res = service.save(addHandle.getRaw());
- if (res) {
- return AjaxResult.success(Constants.SUCCESS, res);
- } else {
- return AjaxResult.error("新增失败", res);
- }
- }
- @PostMapping("/edit")
- public Object edit(@Valid @RequestBody EditHandle<T> editHandle, BindingResult bindingResult) {
- if (bindingResult.hasErrors()) {
- return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
- }
- service.update(editHandle.getRaw(), new QueryWrapper<T>().in("id", editHandle.getIds()));
- return AjaxResult.success(Constants.SUCCESS, true);
- }
- @GetMapping("/edit")
- public Object info(@RequestParam(name = "ids") String ids) {
- if (ids == null || ids.isEmpty()){
- return AjaxResult.error("ids null");
- }
- T res = service.getOne(new QueryWrapper<T>().eq("id",ids));
- return AjaxResult.success(Constants.SUCCESS, res);
- }
- @PostMapping("/index")
- public Object index(@Valid @RequestBody IndexHandle indexHandle, BindingResult bindingResult) {
- if (bindingResult.hasErrors()) {
- return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
- }
- Iterator<Map.Entry<String, String>> filterIt = indexHandle.getFilter().entrySet().iterator();
- QueryWrapper<T> wrapper = new QueryWrapper<T>();
- //.@leon where like,=,<>
- while (filterIt.hasNext()) {
- Map.Entry<String, String> entry = filterIt.next();
- String key = entry.getKey();
- String value = entry.getValue();
- Map<String, String> op = indexHandle.getOp();
- // 操作符为空,pass
- if (op.get(key) == null || op.get(key).isEmpty()) {
- continue;
- }
- // 这里sql字段需要驼峰转下划线
- String columnName = StringUtils.humpToLine2(key);
- switch (op.get(key)) {
- case "=":
- wrapper = wrapper.eq(columnName, value);
- break;
- case "RANGE":
- String[] strArr = value.split(" - ");
- if(strArr.length <=1){
- break;
- }
- wrapper = wrapper.le(columnName, strArr[1]);
- wrapper = wrapper.ge(columnName, strArr[0]);
- break;
- case "LIKE":
- wrapper = wrapper.like(columnName, "%" + value + "%");
- break;
- case "<>":
- wrapper = wrapper.ne(columnName, value);
- break;
- case "IN(...)":
- wrapper = wrapper.in(columnName, value);
- break;
- }
- }
- //.统计数量
- Integer total = service.count(wrapper);
- //.@leon order
- if (indexHandle.getOrder() != null && indexHandle.getSort() != null) {
- String order = indexHandle.getOrder();
- String sort = indexHandle.getSort();
- if (!order.isEmpty() && !sort.isEmpty()) {
- if (order.equals("asc")) {
- wrapper = wrapper.orderByAsc(sort);
- } else if (order.equals("desc")) {
- wrapper = wrapper.orderByDesc(sort);
- }
- }
- }
- //.@leon offset limit
- Page<T> page = service.page(
- new Page<T>(indexHandle.getOffset(), indexHandle.getLimit()), wrapper
- );
- Map<String, Object> resMap = new HashMap<String, Object>();
- resMap.put("list", page.getRecords());
- resMap.put("total", total);
- return AjaxResult.success(resMap);
- }
- }
|