魏熙美 преди 5 години
родител
ревизия
2411fa1ee5

+ 36
- 0
pom.xml Целия файл

@@ -91,6 +91,42 @@
91 91
 			<artifactId>dom4j</artifactId>
92 92
 			<version>2.1.1</version>
93 93
 		</dependency>
94
+		<dependency>
95
+			<groupId>org.jodd</groupId>
96
+			<artifactId>jodd-bean</artifactId>
97
+			<version>3.7.1</version>
98
+		</dependency>
99
+		<dependency>
100
+			<groupId>commons-collections</groupId>
101
+			<artifactId>commons-collections</artifactId>
102
+			<version>3.2.1</version>
103
+		</dependency>
104
+		<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
105
+		<dependency>
106
+			<groupId>commons-io</groupId>
107
+			<artifactId>commons-io</artifactId>
108
+			<version>1.4</version>
109
+		</dependency>
110
+		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
111
+		<dependency>
112
+			<groupId>org.apache.commons</groupId>
113
+			<artifactId>commons-lang3</artifactId>
114
+			<version>3.8.1</version>
115
+		</dependency>
116
+
117
+		<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
118
+		<dependency>
119
+			<groupId>commons-lang</groupId>
120
+			<artifactId>commons-lang</artifactId>
121
+			<version>2.6</version>
122
+		</dependency>
123
+
124
+		<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
125
+		<dependency>
126
+			<groupId>com.google.guava</groupId>
127
+			<artifactId>guava</artifactId>
128
+			<version>26.0-jre</version>
129
+		</dependency>
94 130
 	</dependencies>
95 131
 
96 132
 	<profiles>

+ 137
- 0
src/main/java/com/huiju/estateagents/common/BeanTools.java Целия файл

@@ -0,0 +1,137 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import jodd.bean.BeanCopy;
4
+import jodd.typeconverter.TypeConverterManager;
5
+import org.apache.commons.collections.BeanMap;
6
+import org.springframework.beans.BeanUtils;
7
+import org.springframework.beans.BeanWrapper;
8
+import org.springframework.beans.BeanWrapperImpl;
9
+
10
+import java.beans.PropertyDescriptor;
11
+import java.lang.reflect.Method;
12
+import java.util.*;
13
+
14
+@SuppressWarnings("deprecation")
15
+public final class BeanTools {
16
+
17
+    private static Map<String, Object> toBeanMethodMap = new HashMap<String, Object>();
18
+
19
+    /**
20
+     * <pre>
21
+     * 功能:实现BEAN的属性对拷
22
+     * 创建人:JokenWang
23
+     * </pre>
24
+     *
25
+     * @param fromBean        待转换的源bean
26
+     * @param toBeanClassName 转换成目标bean的名称 形如:ItemSeries.class.getName()
27
+     * @return 目标BEAN类
28
+     */
29
+    public static <T> T convertBean(Object fromBean, Class<T> toBeanClassName) {
30
+        T toBean = null;
31
+        try {
32
+            toBean = getBeanInstance(toBeanClassName.getName());
33
+            return convertBean(fromBean, toBean);
34
+        } catch (Exception e) {
35
+            e.printStackTrace();
36
+        }
37
+        return toBean;
38
+    }
39
+
40
+    private static <T> T convertBean(Object fromBean, T toBean) {
41
+        TypeConverterManager.register(String.class, new StringConverter());
42
+        BeanCopy.beans(fromBean, toBean).copy();
43
+        return toBean;
44
+    }
45
+
46
+    public static Method getDeclaredMethod(Object object, String methodName, Class<?>... parameterTypes) {
47
+        Method method;
48
+        for (Class<?> clazz = object.getClass(); clazz != Object.class; clazz = clazz.getSuperclass()) {
49
+            try {
50
+                method = clazz.getDeclaredMethod(methodName, parameterTypes);
51
+                return method;
52
+            } catch (Exception ignored) {
53
+
54
+            }
55
+        }
56
+        return null;
57
+    }
58
+
59
+    @SuppressWarnings("unchecked")
60
+    public static <T> T getBeanInstance(String clazzName)
61
+            throws InstantiationException, IllegalAccessException, ClassNotFoundException {
62
+
63
+        return (T) Class.forName(clazzName).newInstance();
64
+    }
65
+
66
+    public static Map<String, Object> toBeanMethodMap(String toBean)
67
+            throws InstantiationException, IllegalAccessException, ClassNotFoundException {
68
+
69
+        Class<?> toBeanClazz = getBeanInstance(toBean).getClass();
70
+        Method[] toBeanMethods = toBeanClazz.getDeclaredMethods();
71
+        if (!toBeanClazz.isInstance(Object.class))// 非超类Object
72
+        {
73
+            for (Method method : toBeanMethods) {
74
+                String methodName = method.getName();
75
+                toBeanMethodMap.put(methodName, method);
76
+            }
77
+
78
+            Class<?> toBeanSuperclazz = toBeanClazz.getSuperclass();// 获取父类
79
+            toBeanMethodMap(toBeanSuperclazz.getName());
80
+        }
81
+
82
+        return toBeanMethodMap;
83
+    }
84
+
85
+    public static Map<String, Object> toMap(Object object) {
86
+        Map<String, Object> map = new HashMap<String, Object>();
87
+
88
+        if (object == null) {
89
+            return map;
90
+        }
91
+
92
+        BeanMap beanMap;
93
+        beanMap = new BeanMap(object);
94
+        @SuppressWarnings("unchecked")
95
+        Iterator<String> it = beanMap.keyIterator();
96
+        while (it.hasNext()) {
97
+            String name = it.next();
98
+            Object value = beanMap.get(name);
99
+            // 转换时会将类名也转换成属性,此处去掉
100
+            if (value != null && !name.equals("class")) {
101
+                map.put(name, value);
102
+            }
103
+        }
104
+
105
+        return map;
106
+    }
107
+
108
+    public static Map<String, Object> toMap(Object... objs) {
109
+        Map<String, Object> map = new HashMap<>();
110
+        for (Object object : objs) {
111
+            if (object != null) {
112
+                map.putAll(toMap(object));
113
+            }
114
+        }
115
+        return map;
116
+    }
117
+
118
+    public static String[] getNullPropertyNames (Object source) {
119
+        final BeanWrapper src = new BeanWrapperImpl(source);
120
+        PropertyDescriptor[] pds = src.getPropertyDescriptors();
121
+
122
+        Set<String> emptyNames = new HashSet<String>();
123
+        for(PropertyDescriptor pd : pds) {
124
+            Object srcValue = src.getPropertyValue(pd.getName());
125
+            if (srcValue == null) {
126
+                emptyNames.add(pd.getName());
127
+            }
128
+        }
129
+        String[] result = new String[emptyNames.size()];
130
+        return emptyNames.toArray(result);
131
+    }
132
+
133
+    public static void copyProperties(Object src, Object target) {
134
+        BeanUtils.copyProperties(src, target, getNullPropertyNames(src));
135
+    }
136
+
137
+}

+ 5
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Целия файл

@@ -54,4 +54,9 @@ public class CommConstant {
54 54
     public final static String MINIAPP_INDEX = "/index/index";
55 55
 
56 56
     public final static String MINIAPP_DEFAULT_AVATAR = "https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/default_avatar.jpg";
57
+
58
+    /**
59
+     * 点赞资讯
60
+     */
61
+    public final static String FAVOR_NEWS = "news";
57 62
 }

+ 72
- 0
src/main/java/com/huiju/estateagents/common/StringConverter.java Целия файл

@@ -0,0 +1,72 @@
1
+package com.huiju.estateagents.common;
2
+
3
+import jodd.typeconverter.TypeConversionException;
4
+import jodd.typeconverter.TypeConverter;
5
+import jodd.util.ArraysUtil;
6
+
7
+import java.sql.Clob;
8
+import java.sql.SQLException;
9
+import java.util.Date;
10
+
11
+public class StringConverter implements TypeConverter<String> {
12
+
13
+    public String convert(Object value) {
14
+        if (value == null) {
15
+            return null;
16
+        }
17
+
18
+        if (value instanceof CharSequence) { // for speed
19
+            return value.toString();
20
+        }
21
+        Class<?> type = value.getClass();
22
+        if (type == Class.class) {
23
+            return ((Class<?>) value).getName();
24
+        }
25
+        if (type.isArray()) {
26
+            if (type == char[].class) {
27
+                char[] charArray = (char[]) value;
28
+                return new String(charArray);
29
+            }
30
+            if (type == int[].class) {
31
+                return ArraysUtil.toString((int[]) value);
32
+            }
33
+            if (type == long[].class) {
34
+                return ArraysUtil.toString((long[]) value);
35
+            }
36
+            if (type == byte[].class) {
37
+                return ArraysUtil.toString((byte[]) value);
38
+            }
39
+            if (type == float[].class) {
40
+                return ArraysUtil.toString((float[]) value);
41
+            }
42
+            if (type == double[].class) {
43
+                return ArraysUtil.toString((double[]) value);
44
+            }
45
+            if (type == short[].class) {
46
+                return ArraysUtil.toString((short[]) value);
47
+            }
48
+            if (type == boolean[].class) {
49
+                return ArraysUtil.toString((boolean[]) value);
50
+            }
51
+            return ArraysUtil.toString((Object[]) value);
52
+        }
53
+        if (value instanceof Clob) {
54
+            Clob clob = (Clob) value;
55
+            try {
56
+                long length = clob.length();
57
+                if (length > Integer.MAX_VALUE) {
58
+                    throw new TypeConversionException("Clob is too big.");
59
+                }
60
+                return clob.getSubString(1, (int) length);
61
+            } catch (SQLException sex) {
62
+                throw new TypeConversionException(value, sex);
63
+            }
64
+        }
65
+        if (value instanceof Date) {
66
+            java.text.DateFormat format1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
67
+            return format1.format(value);
68
+        }
69
+
70
+        return value.toString();
71
+    }
72
+}

+ 19
- 0
src/main/java/com/huiju/estateagents/controller/IndexController.java Целия файл

@@ -0,0 +1,19 @@
1
+package com.huiju.estateagents.controller;
2
+
3
+import org.springframework.web.bind.annotation.RequestMapping;
4
+import org.springframework.web.bind.annotation.RestController;
5
+
6
+/**
7
+ * 微信首页
8
+ */
9
+@RestController
10
+@RequestMapping("/api")
11
+public class IndexController {
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+}

+ 33
- 58
src/main/java/com/huiju/estateagents/controller/TaNewsController.java Целия файл

@@ -44,21 +44,25 @@ public class TaNewsController extends BaseController {
44 44
      */
45 45
     @RequestMapping(value="/taNews",method= RequestMethod.GET)
46 46
     public ResponseBean taNewsList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
-                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
-        ResponseBean responseBean = new ResponseBean();
49
-        try {
50
-            //使用分页插件
51
-		    IPage<TaNews> pg = new Page<>(pageNum, pageSize);
52
-            QueryWrapper<TaNews> queryWrapper = new QueryWrapper<>();
53
-            queryWrapper.orderByDesc("create_date");
47
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
48
+                                   @RequestParam(value = "buildingId") Integer buildingId,
49
+                                   @RequestParam(value = "orgId") Integer orgId,
50
+                                   @RequestParam(value = "newsTypeId") Integer newsTypeId,
51
+                                   @RequestParam(value = "newsStatus") Integer newsStatus){
52
+        ResponseBean responseBean = iTaNewsService.getList(pageNum, pageSize, buildingId, orgId, newsTypeId, newsStatus);
53
+        return responseBean;
54
+    }
54 55
 
55
-            IPage<TaNews> result = iTaNewsService.page(pg, queryWrapper);
56
-            responseBean.addSuccess(result);
57
-        }catch (Exception e){
58
-            e.printStackTrace();
59
-            logger.error("taNewsList -=- {}",e.toString());
60
-            responseBean.addError(e.getMessage());
61
-        }
56
+    /**
57
+     * 微信 分页查询列表
58
+     * @param pageNum
59
+     * @param pageSize
60
+     * @return
61
+     */
62
+    @RequestMapping(value="/wx/taNews",method= RequestMethod.GET)
63
+    public ResponseBean wxTaNewsList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
64
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
65
+        ResponseBean responseBean = iTaNewsService.getList(pageNum, pageSize, null, null, null, null);
62 66
         return responseBean;
63 67
     }
64 68
 
@@ -69,18 +73,7 @@ public class TaNewsController extends BaseController {
69 73
      */
70 74
     @RequestMapping(value="/taNews",method= RequestMethod.POST)
71 75
     public ResponseBean taNewsAdd(@RequestBody TaNews taNews){
72
-        ResponseBean responseBean = new ResponseBean();
73
-        try {
74
-            if (iTaNewsService.save(taNews)){
75
-                responseBean.addSuccess(taNews);
76
-            }else {
77
-                responseBean.addError("fail");
78
-            }
79
-        }catch (Exception e){
80
-            e.printStackTrace();
81
-            logger.error("taNewsAdd -=- {}",e.toString());
82
-            responseBean.addError(e.getMessage());
83
-        }
76
+        ResponseBean responseBean = iTaNewsService.addTaNews(taNews);
84 77
         return responseBean;
85 78
     }
86 79
 
@@ -91,18 +84,7 @@ public class TaNewsController extends BaseController {
91 84
     @ResponseBody
92 85
     @RequestMapping(value="/taNews/{id}", method= RequestMethod.DELETE)
93 86
     public ResponseBean taNewsDelete(@PathVariable Integer id){
94
-        ResponseBean responseBean = new ResponseBean();
95
-        try {
96
-            if(iTaNewsService.removeById(id)){
97
-                responseBean.addSuccess("success");
98
-            }else {
99
-                responseBean.addError("fail");
100
-            }
101
-        }catch (Exception e){
102
-            e.printStackTrace();
103
-            logger.error("taNewsDelete -=- {}",e.toString());
104
-            responseBean.addError(e.getMessage());
105
-        }
87
+        ResponseBean responseBean = iTaNewsService.deleteTaNews(id);
106 88
         return responseBean;
107 89
     }
108 90
 
@@ -115,18 +97,8 @@ public class TaNewsController extends BaseController {
115 97
     @RequestMapping(value="/taNews/{id}",method= RequestMethod.PUT)
116 98
     public ResponseBean taNewsUpdate(@PathVariable Integer id,
117 99
                                         @RequestBody TaNews taNews){
118
-        ResponseBean responseBean = new ResponseBean();
119
-        try {
120
-            if (iTaNewsService.updateById(taNews)){
121
-                responseBean.addSuccess(taNews);
122
-            }else {
123
-                responseBean.addError("fail");
124
-            }
125
-        }catch (Exception e){
126
-            e.printStackTrace();
127
-            logger.error("taNewsUpdate -=- {}",e.toString());
128
-            responseBean.addError(e.getMessage());
129
-        }
100
+        taNews.setNewsId(id);
101
+        ResponseBean responseBean = iTaNewsService.updateTaNews(taNews);
130 102
         return responseBean;
131 103
     }
132 104
 
@@ -136,14 +108,17 @@ public class TaNewsController extends BaseController {
136 108
      */
137 109
     @RequestMapping(value="/taNews/{id}",method= RequestMethod.GET)
138 110
     public ResponseBean taNewsGet(@PathVariable Integer id){
139
-        ResponseBean responseBean = new ResponseBean();
140
-        try {
141
-            responseBean.addSuccess(iTaNewsService.getById(id));
142
-        }catch (Exception e){
143
-            e.printStackTrace();
144
-            logger.error("taNewsDelete -=- {}",e.toString());
145
-            responseBean.addError(e.getMessage());
146
-        }
111
+        ResponseBean responseBean = iTaNewsService.getTaNewsById(id);
112
+        return responseBean;
113
+    }
114
+
115
+    /**
116
+     * 微信 根据id查询对象
117
+     * @param id  实体ID
118
+     */
119
+    @RequestMapping(value="/wx/taNews/{id}",method= RequestMethod.GET)
120
+    public ResponseBean wxTaNewsGet(@PathVariable Integer id){
121
+        ResponseBean responseBean = iTaNewsService.getWxTaNewsById(id);
147 122
         return responseBean;
148 123
     }
149 124
 }

+ 10
- 59
src/main/java/com/huiju/estateagents/controller/TaNewsTypeController.java Целия файл

@@ -44,21 +44,10 @@ public class TaNewsTypeController extends BaseController {
44 44
      */
45 45
     @RequestMapping(value="/taNewsType",method= RequestMethod.GET)
46 46
     public ResponseBean taNewsTypeList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
-                                       @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
-        ResponseBean responseBean = new ResponseBean();
49
-        try {
50
-            //使用分页插件
51
-		    IPage<TaNewsType> pg = new Page<>(pageNum, pageSize);
52
-            QueryWrapper<TaNewsType> queryWrapper = new QueryWrapper<>();
53
-            queryWrapper.orderByDesc("create_date");
54
-
55
-            IPage<TaNewsType> result = iTaNewsTypeService.page(pg, queryWrapper);
56
-            responseBean.addSuccess(result);
57
-        }catch (Exception e){
58
-            e.printStackTrace();
59
-            logger.error("taNewsTypeList -=- {}",e.toString());
60
-            responseBean.addError(e.getMessage());
61
-        }
47
+                                       @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
48
+                                       @RequestParam(value = "buildingId", required = false) Integer buildingId,
49
+                                       @RequestParam(value = "orgId", required = false) Integer orgId){
50
+        ResponseBean responseBean = iTaNewsTypeService.getList(pageNum, pageSize, buildingId, orgId);
62 51
         return responseBean;
63 52
     }
64 53
 
@@ -69,18 +58,7 @@ public class TaNewsTypeController extends BaseController {
69 58
      */
70 59
     @RequestMapping(value="/taNewsType",method= RequestMethod.POST)
71 60
     public ResponseBean taNewsTypeAdd(@RequestBody TaNewsType taNewsType){
72
-        ResponseBean responseBean = new ResponseBean();
73
-        try {
74
-            if (iTaNewsTypeService.save(taNewsType)){
75
-                responseBean.addSuccess(taNewsType);
76
-            }else {
77
-                responseBean.addError("fail");
78
-            }
79
-        }catch (Exception e){
80
-            e.printStackTrace();
81
-            logger.error("taNewsTypeAdd -=- {}",e.toString());
82
-            responseBean.addError(e.getMessage());
83
-        }
61
+        ResponseBean responseBean = iTaNewsTypeService.addTaNewsType(taNewsType);
84 62
         return responseBean;
85 63
     }
86 64
 
@@ -91,18 +69,7 @@ public class TaNewsTypeController extends BaseController {
91 69
     @ResponseBody
92 70
     @RequestMapping(value="/taNewsType/{id}", method= RequestMethod.DELETE)
93 71
     public ResponseBean taNewsTypeDelete(@PathVariable Integer id){
94
-        ResponseBean responseBean = new ResponseBean();
95
-        try {
96
-            if(iTaNewsTypeService.removeById(id)){
97
-                responseBean.addSuccess("success");
98
-            }else {
99
-                responseBean.addError("fail");
100
-            }
101
-        }catch (Exception e){
102
-            e.printStackTrace();
103
-            logger.error("taNewsTypeDelete -=- {}",e.toString());
104
-            responseBean.addError(e.getMessage());
105
-        }
72
+        ResponseBean responseBean = iTaNewsTypeService.deleteTaNewsType(id);
106 73
         return responseBean;
107 74
     }
108 75
 
@@ -115,18 +82,8 @@ public class TaNewsTypeController extends BaseController {
115 82
     @RequestMapping(value="/taNewsType/{id}",method= RequestMethod.PUT)
116 83
     public ResponseBean taNewsTypeUpdate(@PathVariable Integer id,
117 84
                                         @RequestBody TaNewsType taNewsType){
118
-        ResponseBean responseBean = new ResponseBean();
119
-        try {
120
-            if (iTaNewsTypeService.updateById(taNewsType)){
121
-                responseBean.addSuccess(taNewsType);
122
-            }else {
123
-                responseBean.addError("fail");
124
-            }
125
-        }catch (Exception e){
126
-            e.printStackTrace();
127
-            logger.error("taNewsTypeUpdate -=- {}",e.toString());
128
-            responseBean.addError(e.getMessage());
129
-        }
85
+        taNewsType.setNewsTypeId(id);
86
+        ResponseBean responseBean = iTaNewsTypeService.updateTaNewsType(taNewsType);
130 87
         return responseBean;
131 88
     }
132 89
 
@@ -136,14 +93,8 @@ public class TaNewsTypeController extends BaseController {
136 93
      */
137 94
     @RequestMapping(value="/taNewsType/{id}",method= RequestMethod.GET)
138 95
     public ResponseBean taNewsTypeGet(@PathVariable Integer id){
139
-        ResponseBean responseBean = new ResponseBean();
140
-        try {
141
-            responseBean.addSuccess(iTaNewsTypeService.getById(id));
142
-        }catch (Exception e){
143
-            e.printStackTrace();
144
-            logger.error("taNewsTypeDelete -=- {}",e.toString());
145
-            responseBean.addError(e.getMessage());
146
-        }
96
+        ResponseBean responseBean = iTaNewsTypeService.getTaNewsTypeById(id);
147 97
         return responseBean;
148 98
     }
99
+
149 100
 }

+ 9
- 1
src/main/java/com/huiju/estateagents/entity/TaNews.java Целия файл

@@ -1,5 +1,8 @@
1 1
 package com.huiju.estateagents.entity;
2 2
 
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
3 6
 import lombok.Data;
4 7
 import lombok.EqualsAndHashCode;
5 8
 import lombok.experimental.Accessors;
@@ -25,6 +28,7 @@ public class TaNews implements Serializable {
25 28
     /**
26 29
      * 咨询ID
27 30
      */
31
+    @TableId(value = "news_id", type = IdType.AUTO)
28 32
     private Integer newsId;
29 33
 
30 34
     /**
@@ -77,5 +81,9 @@ public class TaNews implements Serializable {
77 81
      */
78 82
     private LocalDateTime createDate;
79 83
 
80
-
84
+    /**
85
+     * 类型
86
+     */
87
+    @TableField(exist = false)
88
+    private TaNewsType newsType;
81 89
 }

+ 17
- 0
src/main/java/com/huiju/estateagents/exception/EstaException.java Целия файл

@@ -0,0 +1,17 @@
1
+package com.huiju.estateagents.exception;
2
+
3
+
4
+/**
5
+ * @author weiximei
6
+ */
7
+public class EstaException extends RuntimeException {
8
+
9
+
10
+    public EstaException(String msg, Throwable t) {
11
+        super(msg, t);
12
+    }
13
+
14
+    public EstaException(String msg) {
15
+        super(msg);
16
+    }
17
+}

+ 65
- 0
src/main/java/com/huiju/estateagents/exception/ExceptionHandleAdice.java Целия файл

@@ -0,0 +1,65 @@
1
+package com.huiju.estateagents.exception;
2
+
3
+import com.huiju.estateagents.base.ResponseBean;
4
+import lombok.extern.slf4j.Slf4j;
5
+import org.springframework.validation.ObjectError;
6
+import org.springframework.web.bind.MethodArgumentNotValidException;
7
+import org.springframework.web.bind.annotation.ControllerAdvice;
8
+import org.springframework.web.bind.annotation.ExceptionHandler;
9
+import org.springframework.web.bind.annotation.ResponseBody;
10
+
11
+import java.util.List;
12
+
13
+/**
14
+ * 统一异常出口
15
+ * @author weiximei
16
+ */
17
+@ControllerAdvice
18
+@ResponseBody
19
+@Slf4j
20
+public class ExceptionHandleAdice {
21
+
22
+
23
+    @ExceptionHandler(Exception.class)
24
+    public ResponseBean handleException(Exception e){
25
+        log.error(e.getMessage(),e);
26
+        ResponseBean response = new ResponseBean();
27
+        response.addError("系统异常,请稍后重试!");
28
+        return response;
29
+    }
30
+
31
+    @ExceptionHandler(RuntimeException.class)
32
+    public ResponseBean handleException(RuntimeException e){
33
+        log.error(e.getMessage(),e);
34
+        ResponseBean response = new ResponseBean();
35
+        response.addError(e.getMessage());
36
+        return response;
37
+    }
38
+
39
+
40
+    @ExceptionHandler(EstaException.class)
41
+    public ResponseBean handleException(EstaException e) {
42
+        log.error(e.getMessage(),e);
43
+        ResponseBean response = new ResponseBean();
44
+        response.addError(e.getMessage());
45
+        return response;
46
+    }
47
+
48
+
49
+    @ExceptionHandler(MethodArgumentNotValidException.class)
50
+    public ResponseBean handlelllewgalParamException(MethodArgumentNotValidException e){
51
+        ResponseBean response = new ResponseBean();
52
+
53
+        List<ObjectError> errors  =e.getBindingResult().getAllErrors();
54
+        String message = "参数不合法";
55
+        if (errors.size() >0) {
56
+            message = errors.get(0).getDefaultMessage();
57
+        }
58
+
59
+        response.addError(message);
60
+
61
+        return response;
62
+    }
63
+
64
+
65
+}

+ 47
- 0
src/main/java/com/huiju/estateagents/service/ITaNewsService.java Целия файл

@@ -1,6 +1,8 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3 4
 import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.huiju.estateagents.base.ResponseBean;
4 6
 import com.huiju.estateagents.entity.TaNews;
5 7
 
6 8
 /**
@@ -13,4 +15,49 @@ import com.huiju.estateagents.entity.TaNews;
13 15
  */
14 16
 public interface ITaNewsService extends IService<TaNews> {
15 17
 
18
+    /**
19
+     * 查询资讯列表
20
+     * @param pageNum
21
+     * @param pageSize
22
+     * @param buildingId
23
+     * @param orgId
24
+     * @param newsTypeId
25
+     * @return
26
+     */
27
+    ResponseBean getList(Integer pageNum, Integer pageSize, Integer buildingId, Integer orgId, Integer newsTypeId, Integer newsStatus);
28
+
29
+    /**
30
+     * 根据Id查询资讯数据
31
+     * @param newsId
32
+     * @return
33
+     */
34
+    ResponseBean getTaNewsById(Integer newsId);
35
+
36
+    /**
37
+     * 修改资讯数据
38
+     * @param taNews
39
+     * @return
40
+     */
41
+    ResponseBean updateTaNews(TaNews taNews);
42
+
43
+    /**
44
+     * add资讯数据
45
+     * @param taNews
46
+     * @return
47
+     */
48
+    ResponseBean addTaNews(TaNews taNews);
49
+
50
+    /**
51
+     * 删除资讯
52
+     * @param newsId
53
+     * @return
54
+     */
55
+    ResponseBean deleteTaNews(Integer newsId);
56
+
57
+    /**
58
+     * 微信 根据Id查询资讯数据
59
+     * @param newsId
60
+     * @return
61
+     */
62
+    ResponseBean getWxTaNewsById(Integer newsId);
16 63
 }

+ 39
- 0
src/main/java/com/huiju/estateagents/service/ITaNewsTypeService.java Целия файл

@@ -1,6 +1,7 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
4 5
 import com.huiju.estateagents.entity.TaNewsType;
5 6
 
6 7
 /**
@@ -13,4 +14,42 @@ import com.huiju.estateagents.entity.TaNewsType;
13 14
  */
14 15
 public interface ITaNewsTypeService extends IService<TaNewsType> {
15 16
 
17
+    /**
18
+     * 查询资讯类型列表
19
+     * @param pageNum
20
+     * @param pageSize
21
+     * @param buildingId
22
+     * @param orgId
23
+     * @return
24
+     */
25
+    ResponseBean getList(Integer pageNum, Integer pageSize, Integer buildingId, Integer orgId);
26
+
27
+    /**
28
+     * 根据Id查询资讯类型数据
29
+     * @param newsTypeId
30
+     * @return
31
+     */
32
+    ResponseBean getTaNewsTypeById(Integer newsTypeId);
33
+
34
+    /**
35
+     * 修改资讯类型数据
36
+     * @param taNewsType
37
+     * @return
38
+     */
39
+    ResponseBean updateTaNewsType(TaNewsType taNewsType);
40
+
41
+    /**
42
+     * add资讯类型数据
43
+     * @param taNewsType
44
+     * @return
45
+     */
46
+    ResponseBean addTaNewsType(TaNewsType taNewsType);
47
+
48
+    /**
49
+     * 删除资讯类型
50
+     * @param newsTypeId
51
+     * @return
52
+     */
53
+    ResponseBean deleteTaNewsType(Integer newsTypeId);
54
+
16 55
 }

+ 144
- 0
src/main/java/com/huiju/estateagents/service/impl/TaNewsServiceImpl.java Целия файл

@@ -1,11 +1,27 @@
1 1
 package com.huiju.estateagents.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.BeanTools;
9
+import com.huiju.estateagents.entity.TaBuilding;
4 10
 import com.huiju.estateagents.entity.TaNews;
11
+import com.huiju.estateagents.entity.TaNewsType;
12
+import com.huiju.estateagents.exception.EstaException;
5 13
 import com.huiju.estateagents.mapper.TaNewsMapper;
14
+import com.huiju.estateagents.service.ITaBuildingService;
15
+import com.huiju.estateagents.service.ITaFavorService;
6 16
 import com.huiju.estateagents.service.ITaNewsService;
17
+import com.huiju.estateagents.service.ITaNewsTypeService;
18
+import org.springframework.beans.BeanUtils;
19
+import org.springframework.beans.factory.annotation.Autowired;
7 20
 import org.springframework.stereotype.Service;
8 21
 
22
+import java.time.LocalDateTime;
23
+import java.util.List;
24
+
9 25
 /**
10 26
  * <p>
11 27
  * 资讯表  服务实现类
@@ -17,4 +33,132 @@ import org.springframework.stereotype.Service;
17 33
 @Service
18 34
 public class TaNewsServiceImpl extends ServiceImpl<TaNewsMapper, TaNews> implements ITaNewsService {
19 35
 
36
+    @Autowired
37
+    private ITaNewsTypeService iTaNewsTypeService;
38
+
39
+    @Autowired
40
+    private ITaBuildingService iTaBuildingService;
41
+
42
+    @Autowired
43
+    private ITaFavorService iTaFavorService;
44
+
45
+
46
+
47
+    @Override
48
+    public ResponseBean getList(Integer pageNum, Integer pageSize, Integer buildingId, Integer orgId, Integer newsTypeId, Integer newsStatus) {
49
+        ResponseBean responseBean = new ResponseBean();
50
+
51
+        IPage<TaNews> page = new Page<>();
52
+        page.setCurrent(pageNum);
53
+        page.setSize(pageSize);
54
+
55
+        QueryWrapper<TaNews> taNewsQueryWrapper = new QueryWrapper<>();
56
+        taNewsQueryWrapper.eq(buildingId != null,"building_id", buildingId);
57
+        taNewsQueryWrapper.eq(orgId != null,"org_id", orgId);
58
+        taNewsQueryWrapper.eq(newsTypeId != null,"news_type_id", newsTypeId);
59
+        taNewsQueryWrapper.eq(newsStatus != null, "news_status", newsStatus);
60
+        taNewsQueryWrapper.eq("status", 1);
61
+        taNewsQueryWrapper.orderByDesc("create_date");
62
+        IPage<TaNews> taNewsIPage = this.page(page, taNewsQueryWrapper);
63
+
64
+        List<TaNews> records = taNewsIPage.getRecords();
65
+        records.forEach(e -> {
66
+            TaNewsType newsType = iTaNewsTypeService.getById(e.getNewsTypeId());
67
+            e.setNewsType(newsType);
68
+        });
69
+
70
+        responseBean.addSuccess(taNewsIPage);
71
+        return responseBean;
72
+    }
73
+
74
+    @Override
75
+    public ResponseBean getTaNewsById(Integer newsId) {
76
+        ResponseBean responseBean = new ResponseBean();
77
+        if (null == newsId) {
78
+            responseBean.addError("编号不能为空!");
79
+        }
80
+        responseBean.addSuccess(this.getById(newsId));
81
+        return  responseBean;
82
+    }
83
+
84
+    @Override
85
+    public ResponseBean updateTaNews(TaNews taNews) {
86
+        ResponseBean responseBean = new ResponseBean();
87
+        TaNews oldNews = this.getById(taNews.getNewsId());
88
+        if (null == oldNews) {
89
+            responseBean.addError("资讯不存在!");
90
+            return responseBean;
91
+        }
92
+
93
+        //-- 校验 公司,楼盘,资讯类型
94
+        check(taNews);
95
+
96
+        BeanTools.copyProperties(taNews, oldNews);
97
+        responseBean.addSuccess(this.updateById(oldNews));
98
+        return responseBean;
99
+    }
100
+
101
+    @Override
102
+    public ResponseBean addTaNews(TaNews taNews) {
103
+        ResponseBean responseBean = new ResponseBean();
104
+        check(taNews);
105
+
106
+        taNews.setCreateDate(LocalDateTime.now());
107
+        taNews.setStatus(1);
108
+        this.save(taNews);
109
+        responseBean.addSuccess(taNews);
110
+        return responseBean;
111
+    }
112
+
113
+    private void check(TaNews taNews) {
114
+        //-- 校验 公司,楼盘,资讯类型
115
+        // TODO 公司校验没有写 taNews.getOrgId()
116
+
117
+        TaBuilding taBuilding = iTaBuildingService.getById(taNews.getBuildingId());
118
+        if (null == taBuilding) {
119
+            throw new EstaException("楼盘不存在!");
120
+        }
121
+        TaNewsType taNewsType = iTaNewsTypeService.getById(taNews.getNewsTypeId());
122
+        if (null == taNewsType) {
123
+            throw new EstaException("资讯类型不存在!");
124
+        }
125
+    }
126
+
127
+    @Override
128
+    public ResponseBean deleteTaNews(Integer newsId) {
129
+        ResponseBean responseBean = getTaNewsById(newsId);
130
+        if (1 == responseBean.getCode()) {
131
+            return responseBean;
132
+        }
133
+        TaNews taNews = (TaNews) responseBean.getData();
134
+        if (null == taNews) {
135
+            responseBean.addError("数据不存!");
136
+        }
137
+
138
+        // 修改状态
139
+        taNews.setStatus(0);
140
+        this.updateById(taNews);
141
+
142
+        responseBean.addSuccess(taNews);
143
+        return responseBean;
144
+    }
145
+
146
+    @Override
147
+    public ResponseBean getWxTaNewsById(Integer newsId) {
148
+        ResponseBean responseBean = getTaNewsById(newsId);
149
+        if (1 == responseBean.getCode()) {
150
+            return responseBean;
151
+        }
152
+        TaNews taNews = (TaNews) responseBean.getData();
153
+        if (null == taNews) {
154
+            responseBean.addError("数据不存!");
155
+        }
156
+
157
+        //-- 查询 点赞数,收藏数,阅读数
158
+
159
+
160
+
161
+
162
+        return responseBean;
163
+    }
20 164
 }

+ 100
- 0
src/main/java/com/huiju/estateagents/service/impl/TaNewsTypeServiceImpl.java Целия файл

@@ -1,11 +1,22 @@
1 1
 package com.huiju.estateagents.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.BeanTools;
9
+import com.huiju.estateagents.entity.TaBuilding;
4 10
 import com.huiju.estateagents.entity.TaNewsType;
11
+import com.huiju.estateagents.exception.EstaException;
5 12
 import com.huiju.estateagents.mapper.TaNewsTypeMapper;
13
+import com.huiju.estateagents.service.ITaBuildingService;
6 14
 import com.huiju.estateagents.service.ITaNewsTypeService;
15
+import org.springframework.beans.factory.annotation.Autowired;
7 16
 import org.springframework.stereotype.Service;
8 17
 
18
+import java.time.LocalDateTime;
19
+
9 20
 /**
10 21
  * <p>
11 22
  * 资讯类型表  服务实现类
@@ -17,4 +28,93 @@ import org.springframework.stereotype.Service;
17 28
 @Service
18 29
 public class TaNewsTypeServiceImpl extends ServiceImpl<TaNewsTypeMapper, TaNewsType> implements ITaNewsTypeService {
19 30
 
31
+    @Autowired
32
+    private ITaBuildingService iTaBuildingService;
33
+
34
+
35
+    @Override
36
+    public ResponseBean getList(Integer pageNum, Integer pageSize, Integer buildingId, Integer orgId) {
37
+        ResponseBean responseBean = new ResponseBean();
38
+        IPage<TaNewsType> page = new Page<>();
39
+        page.setCurrent(pageNum);
40
+        page.setSize(pageSize);
41
+
42
+        QueryWrapper<TaNewsType> taNewsQueryWrapper = new QueryWrapper<>();
43
+        taNewsQueryWrapper.eq(buildingId != null,"building_id", buildingId);
44
+        taNewsQueryWrapper.eq(orgId != null,"org_id", orgId);
45
+        taNewsQueryWrapper.eq("status", 1);
46
+        taNewsQueryWrapper.orderByDesc("create_date");
47
+        IPage<TaNewsType> typeIPage = this.page(page, taNewsQueryWrapper);
48
+
49
+        responseBean.addSuccess(typeIPage);
50
+        return responseBean;
51
+    }
52
+
53
+    @Override
54
+    public ResponseBean getTaNewsTypeById(Integer newsTypeId) {
55
+        ResponseBean responseBean = new ResponseBean();
56
+        if (null == newsTypeId) {
57
+            responseBean.addError("资讯类型编号不存在!");
58
+        }
59
+        responseBean.addSuccess(this.getById(newsTypeId));
60
+        return responseBean;
61
+    }
62
+
63
+    @Override
64
+    public ResponseBean updateTaNewsType(TaNewsType taNewsType) {
65
+        ResponseBean responseBean =  new ResponseBean();
66
+        TaNewsType oldTaNewsType = this.getById(taNewsType.getNewsTypeId());
67
+        if (null == oldTaNewsType) {
68
+            responseBean.addError("资讯类型不存在!");
69
+            return responseBean;
70
+        }
71
+
72
+        //-- 校验 公司,楼盘
73
+        // TODO 没有校验公司  taNewsType.getOrgId();
74
+        check(taNewsType);
75
+
76
+        BeanTools.copyProperties(taNewsType, oldTaNewsType);
77
+        this.updateById(oldTaNewsType);
78
+        return responseBean;
79
+    }
80
+
81
+    @Override
82
+    public ResponseBean addTaNewsType(TaNewsType taNewsType) {
83
+        ResponseBean responseBean = new ResponseBean();
84
+
85
+        //-- 校验 公司,楼盘
86
+        check(taNewsType);
87
+
88
+        taNewsType.setCreateDate(LocalDateTime.now());
89
+        this.save(taNewsType);
90
+        responseBean.addSuccess(taNewsType);
91
+        return responseBean;
92
+    }
93
+
94
+    private void check(TaNewsType taNewsType) {
95
+        TaBuilding taBuilding = iTaBuildingService.getById(taNewsType.getBuildingId());
96
+        if (null == taBuilding) {
97
+            throw new EstaException("楼盘不存在!");
98
+        }
99
+    }
100
+
101
+    @Override
102
+    public ResponseBean deleteTaNewsType(Integer newsTypeId) {
103
+        ResponseBean responseBean = getTaNewsTypeById(newsTypeId);
104
+        if (1 == responseBean.getCode()) {
105
+            return responseBean;
106
+        }
107
+        TaNewsType taNewsType = (TaNewsType) responseBean.getData();
108
+        if (null == taNewsType) {
109
+            responseBean.addError("数据不存!");
110
+        }
111
+
112
+        // 修改状态
113
+        taNewsType.setStatus(0);
114
+        this.updateById(taNewsType);
115
+
116
+        responseBean.addSuccess(taNewsType);
117
+        return responseBean;
118
+    }
119
+
20 120
 }