From 9668ce3911266c1c3810c047408cc58e03086139 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 29 Dec 2017 16:56:23 +0800
Subject: [PATCH] Merge branch 'master' of ssh://blit.7drlb.com:29418/screen_api_v2

---
 src/main/java/com/moral/service/DeviceVersionService.java          |    3 +
 src/main/java/com/moral/common/util/ExampleUtil.java               |   28 ++++++++++++--
 src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java |   28 ++++++++++++++
 src/main/java/com/moral/controller/DeviceVersionController.java    |   13 ++++++
 src/main/java/com/moral/common/bean/PageBean.java                  |    3 +
 src/main/java/com/moral/common/util/MyBatisBaseMapUtil.java        |    2 
 6 files changed, 70 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/moral/common/bean/PageBean.java b/src/main/java/com/moral/common/bean/PageBean.java
index 60900df..b0cb5db 100644
--- a/src/main/java/com/moral/common/bean/PageBean.java
+++ b/src/main/java/com/moral/common/bean/PageBean.java
@@ -24,7 +24,8 @@
     private Integer pageIndex;    // ���������
     private Integer pageSize;    // ���������������
     private Integer pages;        // ���������
-    private String queryParams;
+    private String queryParams; //������������
+    private String orderByClause;//������������
     private Integer size;        // ������������������ <= pageSize������������������ArrayList���size������
     
     /**
diff --git a/src/main/java/com/moral/common/util/ExampleUtil.java b/src/main/java/com/moral/common/util/ExampleUtil.java
index 3fe825c..3277d11 100644
--- a/src/main/java/com/moral/common/util/ExampleUtil.java
+++ b/src/main/java/com/moral/common/util/ExampleUtil.java
@@ -1,5 +1,6 @@
 package com.moral.common.util;
 
+import com.moral.common.bean.PageBean;
 import lombok.extern.log4j.Log4j;
 import tk.mybatis.mapper.entity.Example;
 import java.beans.PropertyDescriptor;
@@ -18,16 +19,35 @@
     private final static String CRITERIA_SPLIT = "\\|\\|\\|";
     private final static String CONDITION_SPLIT = "\\|\\|";
     private static Map<String, Method> criteriaMethodMap = null;
-
-    public static Example generateExample(Class clzz, String params) {
-        Example example = new Example(clzz);
+    private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException {
+           orderByClause = URLDecoder.decode(orderByClause,"UTF-8");
+           String[] orderBys = orderByClause.split(CRITERIA_SPLIT);
+           for(String orderBy : orderBys){
+               String[] items = orderBy.split(CONDITION_SPLIT);
+               String property = items[0];
+               String sort = items[1];
+               if("asc".equals(sort)){
+                   example.orderBy(property).asc();
+               }else{
+                   example.orderBy(property).desc();
+               }
+           }
+    }
+    public static Example generateExample(Class clzz, PageBean page) {
+        Example example = null;
         try {
+            String params = page.getQueryParams();
+            String orderByClause = page.getOrderByClause();
+            example = new Example(clzz);
+            if(!StringUtils.isNullOrEmpty(orderByClause)){
+                setOrderByClause(example,orderByClause);
+            }
             if(StringUtils.isNullOrEmpty(params)){ return example;}
             params = URLDecoder.decode(params, "UTF-8");
             if (!StringUtils.isNullOrEmpty(params) && params.startsWith("or|")) {
                 String[] criteria = params.trim().split(OR_SPLIT);
-                Example.Criteria criteriaOfExample = example.or();
                 for (String criterion : criteria) {
+                    Example.Criteria criteriaOfExample = example.or();
                     if (!StringUtils.isNullOrEmpty(criterion)) {
                         String[] conditions = criterion.trim().split(CRITERIA_SPLIT);
                         for (String condition : conditions) {
diff --git a/src/main/java/com/moral/common/util/MyBatisBaseMapUtil.java b/src/main/java/com/moral/common/util/MyBatisBaseMapUtil.java
index c306d46..570e5c0 100644
--- a/src/main/java/com/moral/common/util/MyBatisBaseMapUtil.java
+++ b/src/main/java/com/moral/common/util/MyBatisBaseMapUtil.java
@@ -18,7 +18,7 @@
      public static PageBean queryPage(BaseMapper baseMapper, PageBean pageBean,Class clazz){
           List page = null;
           try {
-               Example example = ExampleUtil.generateExample(clazz,pageBean.getQueryParams());
+               Example example = ExampleUtil.generateExample(clazz,pageBean);
                PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize());
                page = baseMapper.selectByExample(example);
 
diff --git a/src/main/java/com/moral/controller/DeviceVersionController.java b/src/main/java/com/moral/controller/DeviceVersionController.java
index e9c750b..a6b9fbe 100644
--- a/src/main/java/com/moral/controller/DeviceVersionController.java
+++ b/src/main/java/com/moral/controller/DeviceVersionController.java
@@ -3,6 +3,7 @@
 
 import com.moral.common.bean.PageBean;
 import com.moral.common.bean.PageResult;
+import com.moral.common.bean.ResultBean;
 import com.moral.entity.DeviceVersion;
 import com.moral.service.DeviceVersionService;
 import org.springframework.web.bind.annotation.*;
@@ -21,4 +22,16 @@
     public PageBean<DeviceVersion> pageList(PageBean pageBean) throws NoSuchMethodException, UnsupportedEncodingException {
         return deviceVersionService.queryByPageBean(pageBean);
     }
+    @PostMapping("delete-by-ids")
+    public ResultBean deleteByIds(@RequestBody Integer [] ids){
+        deviceVersionService.deleteByIds(ids);
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS);
+        return resultBean;
+    }
+    @PostMapping("add-or-modify")
+    public ResultBean addOrModify(@RequestBody DeviceVersion deviceVersion){
+        deviceVersionService.addOrModify(deviceVersion);
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS);
+        return resultBean;
+    }
 }
diff --git a/src/main/java/com/moral/service/DeviceVersionService.java b/src/main/java/com/moral/service/DeviceVersionService.java
index 7193821..5220a19 100644
--- a/src/main/java/com/moral/service/DeviceVersionService.java
+++ b/src/main/java/com/moral/service/DeviceVersionService.java
@@ -8,5 +8,6 @@
 public interface DeviceVersionService {
 
     public PageBean queryByPageBean(PageBean pageBean);
-
+    public void addOrModify(DeviceVersion deviceVersion);
+    public void deleteByIds(Integer... ids);
 }
diff --git a/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
index e5aaa1e..8ea3288 100644
--- a/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceVersionServiceImpl.java
@@ -11,6 +11,8 @@
 
 import javax.annotation.Resource;
 import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Arrays;
 
 @Service
 public class DeviceVersionServiceImpl implements DeviceVersionService {
@@ -20,4 +22,30 @@
       public PageBean queryByPageBean(PageBean pageBean){
            return MyBatisBaseMapUtil.queryPage(deviceVersionMapper,pageBean,ENTITY_CLASS);
       }
+      public void addOrModify(DeviceVersion deviceVersion){
+            try{
+                  if(deviceVersion.getId()==null){
+                        deviceVersionMapper.insertSelective(deviceVersion);
+                  }else{
+                        deviceVersionMapper.updateByPrimaryKeySelective(deviceVersion);
+                  }
+            }
+            catch (Exception ex){
+                  throw  ex;
+            }
+      }
+
+      @Override
+      public void deleteByIds(Integer... ids) {
+            if(ids!=null&&ids.length>0){
+                  if(ids.length==1){
+                        deviceVersionMapper.deleteByPrimaryKey(ids[0]);
+                  }else{
+                        Example example = new Example(DeviceVersion.class);
+                        example.or().andIn("id", Arrays.asList(ids));
+                        deviceVersionMapper.deleteByExample(example);
+                  }
+
+            }
+      }
 }

--
Gitblit v1.8.0