提交 3df4ac68 编写于 作者: iovt1's avatar iovt1

Merge branch 'revert-e16140e5' into 'master'

Revert "Merge branch '021900840dev' into 'master'"

See merge request !8
......@@ -17,40 +17,6 @@
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 解决MybatisPlus时间转换异常java.sql.SQLFeatureNotSupportedException -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.jsqlparser/jsqlparser -->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
......@@ -148,14 +114,6 @@
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
</plugins>
</build>
......
package com.one.controller;
import com.one.domain.Item;
import com.one.domain.ResponseBody;
import com.one.service.impl.ItemServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.RestController;
@CrossOrigin(origins = "*")
@RestController
@RequestMapping("/api/item")
@RequestMapping("/item")
public class ItemController {
@Autowired
ItemServiceImpl itemService;
@GetMapping("/findItemsByName")
public ResponseBody<List<Item>> findItemsByName(@RequestParam("user_id")int user_id,
@RequestParam("item_name")String item_name,
@RequestParam("page")int page){
return itemService.findItemsByName(user_id,item_name,page);
}
@GetMapping("/findItemsByLabel")
public ResponseBody<List<Item>> findItemsByLabel(@RequestParam("user_id")int user_id,
@RequestParam("item_label")String item_label,
@RequestParam("page")int page){
return itemService.findItemsByName(user_id,item_label,page);
}
@GetMapping("/findItemsByState")
public ResponseBody<List<Item>> findItemsByState(@RequestParam("user_id")int user_id,
@RequestParam("item_state")int item_state,
@RequestParam("page")int page){
return itemService.findItemsByState(user_id,item_state,page);
}
@PostMapping("addItem")
public ResponseBody<Map<String,Integer>> addItem(@RequestParam Map<String,Object> requestParam){
ResponseBody<Map<String, Integer>> responseBody = itemService.addItem(requestParam);
return responseBody;
}
@PostMapping("changeItem")
public ResponseBody<Map<String,Integer>> changeItem(@RequestParam Map<String,Object> requestParam){
ResponseBody<Map<String, Integer>> responseBody = itemService.changeItem(requestParam);
return responseBody;
}
@PostMapping("deleteItem")
public ResponseBody<Map<String,Integer>> deleteItem(@RequestParam("id")int id){
ResponseBody<Map<String, Integer>> responseBody = itemService.deleteItem(id);
return responseBody;
}
}
package com.one.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.one.dao.sqlProvider.ItemSqlProvider;
import com.one.domain.Item;
import org.apache.ibatis.annotations.*;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ItemDao extends BaseMapper<Item> {
//TODO item_name模糊搜索
@Select("select * from item where item_name LIKE concat('%',#{item_name},'%') and item_possessor_id=#{user_id} limit #{page_current},7")
List<Item> selectItemsByName(@Param("item_name")String item_name,@Param("user_id") int user_id,@Param("page_current") int page_current);
@Select("select * from item")
List<Item> selectAll();
@Select("select * from item where item_label=#{item_label} and item_possessor_id=#{user_id} limit #{page_current},7")
List<Item> selectItemsByLabel(@Param("item_label") String item_label,@Param("user_id") int user_id,@Param("page_current") int page_current);
@Select("select * from item where item_state=#{item_state} and item_possessor_id=#{user_id} limit #{page_current},7")
List<Item> selectItemsByState(@Param("item_state")int item_state,@Param("user_id") int user_id,@Param("page_current")int page_current);
@Insert("insert into item values " +
"(#{id},#{item_name},#{item_state},#{item_label},#{item_authority},#{item_possessor_id}," +
"#{item_start_date},#{item_end_date},#{item_remind_date},#{item_coming_date},#{item_pic_path})")
@Options(useGeneratedKeys = true,keyColumn = "id",keyProperty = "id")
int insertItem(Item item);
@UpdateProvider(type = ItemSqlProvider.class,method = "update")
@Options(useGeneratedKeys = true,keyColumn = "id",keyProperty = "id")
int update(Item item);
@Delete("delete from item where id=#{id}")
int delete(int id);
}
package com.one.dao.sqlProvider;
import com.one.domain.Item;
import org.apache.ibatis.jdbc.SQL;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Locale;
public class ItemSqlProvider {
public String update(Item item) {
return new SQL() {
{
UPDATE("item");
Field[] fields = item.getClass().getDeclaredFields();
//选择非空字段添加到sql语句中
for (Field field : fields) {
String varName = field.getName();
varName = varName.toLowerCase(Locale.ROOT);
try {
//跳过static或final字段
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
//打开字段访问权限
field.setAccessible(true);
//获取字段属性值
Object o = field.get(item);
if (o != null) {
SET(varName + "=#{" + varName + "}");
}
//关闭字段访问权限
field.setAccessible(false);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
WHERE("id=#{id}");
}
}.toString();
}
}
......@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.sql.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
......@@ -32,13 +31,13 @@ public class Item implements Serializable {
private Integer item_possessor_id;
private Date item_start_date;
private LocalDate item_start_date;
private Date item_end_date;
private LocalDate item_end_date;
private Date item_remind_date;
private LocalDate item_remind_date;
private Date item_coming_date;
private LocalDate item_coming_date;
/**
* url
......
package com.one.domain;
public class ResponseBody <T>{
private String code;
private String message;
T data;
public ResponseBody() {
}
public ResponseBody(String code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
}
@Override
public String toString() {
return "{" +
"code='" + code + '\'' +
", message='" + message + '\'' +
", data=" + data +
'}';
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
package com.one.service;
import com.one.dao.ItemDao;
import com.one.domain.Item;
import com.baomidou.mybatisplus.extension.service.IService;
import com.one.domain.ResponseBody;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.Map;
public interface IItemService extends IService<Item> {
ResponseBody<List<Item>> findItemsByName(int user_id, String item_name, int page_current);
ResponseBody<List<Item>> findItemsByLabel(int user_id,String item_label,int page_current);
ResponseBody<Map<String,Integer>> addItem(Map<String,Object> itemMap);
ResponseBody<Map<String,Integer>> changeItem(Map<String,Object> itemMap);
}
......@@ -2,76 +2,11 @@ package com.one.service.impl;
import com.one.domain.Item;
import com.one.dao.ItemDao;
import com.one.domain.ResponseBody;
import com.one.service.IItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.one.service.utils.ConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class ItemServiceImpl extends ServiceImpl<ItemDao, Item> implements IItemService {
@Autowired
ItemDao itemdao;
public final String CODE_SUCCESS = "211";
public final String MESSAGE_SUCCESS_NAME = "succeed in getting item list by name";
public final String MESSAGE_SUCCESS_LABEL = "succeed in getting item list by label";
public final String MESSAGE_SUCCESS_STATE = "succeed in getting item list by state";
public final String MESSAGE_SUCCESS_ADD = "succeed in adding item";
public final String MESSAGE_SUCCESS_CHANGE = "succeed in changing item";
public final String MESSAGE_SUCCESS_DELETE = "succeed in deleting item";
public ResponseBody<List<Item>> findItemsByName(int user_id, String item_name, int page_current){
List<Item> items = itemdao.selectItemsByName(item_name, user_id, page_current);
ResponseBody<List<Item>> responseBody = new ResponseBody<>(CODE_SUCCESS, MESSAGE_SUCCESS_NAME, items);
return responseBody;
}
public ResponseBody<List<Item>> findItemsByLabel(int user_id,String item_label,int page_current){
List<Item> items = itemdao.selectItemsByLabel(item_label, user_id, page_current);
ResponseBody<List<Item>> responseBody = new ResponseBody<>(CODE_SUCCESS, MESSAGE_SUCCESS_LABEL, items);
return responseBody;
}
public ResponseBody<List<Item>> findItemsByState(int user_id,int item_state,int page_current){
List<Item> items = itemdao.selectItemsByState(item_state, user_id, page_current);
ResponseBody<List<Item>> responseBody = new ResponseBody<>(CODE_SUCCESS, MESSAGE_SUCCESS_STATE, items);
return responseBody;
}
public ResponseBody<Map<String,Integer>> addItem(Map<String, Object> itemMap){
Item item = new Item();
item = (Item) ConvertUtil.mapToObj(itemMap,item);
int rows = itemdao.insertItem(item);
Map<String, Integer> dataMap = new HashMap<>();
dataMap.put("item_id",item.getId());
ResponseBody<Map<String, Integer>> responseBody = new ResponseBody<>(CODE_SUCCESS, MESSAGE_SUCCESS_ADD, dataMap);
return responseBody;
}
public ResponseBody<Map<String,Integer>> changeItem(Map<String, Object> itemMap){
Item item = new Item();
item = (Item) ConvertUtil.mapToObj(itemMap,item);
System.out.println(item);
int rows = itemdao.update(item);
System.out.println("影响行数: "+rows);
Map<String, Integer> dataMap = new HashMap<>();
dataMap.put("item_id",item.getId());
ResponseBody<Map<String, Integer>> responseBody = new ResponseBody<>(CODE_SUCCESS, MESSAGE_SUCCESS_CHANGE, dataMap);
return responseBody;
}
public ResponseBody<Map<String,Integer>> deleteItem(int id){
int rows = itemdao.delete(id);
System.out.println("影响行数: "+rows);
Map<String, Integer> dataMap = new HashMap<>();
dataMap.put("item_id",id);
ResponseBody<Map<String, Integer>> responseBody = new ResponseBody<>(CODE_SUCCESS, MESSAGE_SUCCESS_DELETE, dataMap);
return responseBody;
}
}
package com.one.service.utils;
import ch.qos.logback.classic.pattern.DateConverter;
import com.one.domain.Item;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.beanutils.converters.DateTimeConverter;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Modifier;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.logging.SimpleFormatter;
/**
* 这个工具类帮助转换类格式转换
*/
public class ConvertUtil {
public static void objsToMap(List<Item> items){
}
public static Map<String,Object> objToMap(Object obj){
//利用反射
Map<String,Object> map = new HashMap<String,Object>();
// 获取f对象对应类中的所有属性域
Field[] fields = obj.getClass().getDeclaredFields();
for(int i = 0 ; i < fields.length; i++){
String varName = fields[i].getName();
varName = varName.toLowerCase(Locale.ROOT);
try{
//获取访问控制权限
// boolean accessFlag = fields[i].canAccess(fields[i]); //这个方法因为serialVersionUID非空会报异常暂时不用
boolean accessFlag = fields[i].isAccessible();
fields[i].setAccessible(true);
Object o = fields[i].get(obj);
if(o!=null){
map.put(varName,o.toString());
}
fields[i].setAccessible(accessFlag);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}
public static Object mapToObj(Map<String,Object> map,Object obj){
try {
ConvertUtils.register(new Converter() {
@Override
public Object convert(Class aClass, Object o) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
Date parse = null;
try{
parse = (Date) format.parse(o.toString());
} catch (ParseException e) {
e.printStackTrace();
}
return parse;
}
}, Date.class);
BeanUtils.populate(obj, map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return obj;
}
}
......@@ -4,8 +4,4 @@ spring:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://47.106.185.140:3306/imminent?serverTimezone=UTC
username: root
password: 12345678
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
password: 12345678
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册