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

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

91
 			<artifactId>dom4j</artifactId>
91
 			<artifactId>dom4j</artifactId>
92
 			<version>2.1.1</version>
92
 			<version>2.1.1</version>
93
 		</dependency>
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
 	</dependencies>
130
 	</dependencies>
95
 
131
 
96
 	<profiles>
132
 	<profiles>

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

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
     public final static String MINIAPP_INDEX = "/index/index";
54
     public final static String MINIAPP_INDEX = "/index/index";
55
 
55
 
56
     public final static String MINIAPP_DEFAULT_AVATAR = "https://estateagents.oss-cn-shanghai.aliyuncs.com/miniapp/upload/images/default_avatar.jpg";
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 Целия файл

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 Целия файл

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
      */
44
      */
45
     @RequestMapping(value="/taNews",method= RequestMethod.GET)
45
     @RequestMapping(value="/taNews",method= RequestMethod.GET)
46
     public ResponseBean taNewsList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
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
         return responseBean;
66
         return responseBean;
63
     }
67
     }
64
 
68
 
69
      */
73
      */
70
     @RequestMapping(value="/taNews",method= RequestMethod.POST)
74
     @RequestMapping(value="/taNews",method= RequestMethod.POST)
71
     public ResponseBean taNewsAdd(@RequestBody TaNews taNews){
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
         return responseBean;
77
         return responseBean;
85
     }
78
     }
86
 
79
 
91
     @ResponseBody
84
     @ResponseBody
92
     @RequestMapping(value="/taNews/{id}", method= RequestMethod.DELETE)
85
     @RequestMapping(value="/taNews/{id}", method= RequestMethod.DELETE)
93
     public ResponseBean taNewsDelete(@PathVariable Integer id){
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
         return responseBean;
88
         return responseBean;
107
     }
89
     }
108
 
90
 
115
     @RequestMapping(value="/taNews/{id}",method= RequestMethod.PUT)
97
     @RequestMapping(value="/taNews/{id}",method= RequestMethod.PUT)
116
     public ResponseBean taNewsUpdate(@PathVariable Integer id,
98
     public ResponseBean taNewsUpdate(@PathVariable Integer id,
117
                                         @RequestBody TaNews taNews){
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
         return responseBean;
102
         return responseBean;
131
     }
103
     }
132
 
104
 
136
      */
108
      */
137
     @RequestMapping(value="/taNews/{id}",method= RequestMethod.GET)
109
     @RequestMapping(value="/taNews/{id}",method= RequestMethod.GET)
138
     public ResponseBean taNewsGet(@PathVariable Integer id){
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
         return responseBean;
122
         return responseBean;
148
     }
123
     }
149
 }
124
 }

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

44
      */
44
      */
45
     @RequestMapping(value="/taNewsType",method= RequestMethod.GET)
45
     @RequestMapping(value="/taNewsType",method= RequestMethod.GET)
46
     public ResponseBean taNewsTypeList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
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
         return responseBean;
51
         return responseBean;
63
     }
52
     }
64
 
53
 
69
      */
58
      */
70
     @RequestMapping(value="/taNewsType",method= RequestMethod.POST)
59
     @RequestMapping(value="/taNewsType",method= RequestMethod.POST)
71
     public ResponseBean taNewsTypeAdd(@RequestBody TaNewsType taNewsType){
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
         return responseBean;
62
         return responseBean;
85
     }
63
     }
86
 
64
 
91
     @ResponseBody
69
     @ResponseBody
92
     @RequestMapping(value="/taNewsType/{id}", method= RequestMethod.DELETE)
70
     @RequestMapping(value="/taNewsType/{id}", method= RequestMethod.DELETE)
93
     public ResponseBean taNewsTypeDelete(@PathVariable Integer id){
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
         return responseBean;
73
         return responseBean;
107
     }
74
     }
108
 
75
 
115
     @RequestMapping(value="/taNewsType/{id}",method= RequestMethod.PUT)
82
     @RequestMapping(value="/taNewsType/{id}",method= RequestMethod.PUT)
116
     public ResponseBean taNewsTypeUpdate(@PathVariable Integer id,
83
     public ResponseBean taNewsTypeUpdate(@PathVariable Integer id,
117
                                         @RequestBody TaNewsType taNewsType){
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
         return responseBean;
87
         return responseBean;
131
     }
88
     }
132
 
89
 
136
      */
93
      */
137
     @RequestMapping(value="/taNewsType/{id}",method= RequestMethod.GET)
94
     @RequestMapping(value="/taNewsType/{id}",method= RequestMethod.GET)
138
     public ResponseBean taNewsTypeGet(@PathVariable Integer id){
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
         return responseBean;
97
         return responseBean;
148
     }
98
     }
99
+
149
 }
100
 }

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

1
 package com.huiju.estateagents.entity;
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
 import lombok.Data;
6
 import lombok.Data;
4
 import lombok.EqualsAndHashCode;
7
 import lombok.EqualsAndHashCode;
5
 import lombok.experimental.Accessors;
8
 import lombok.experimental.Accessors;
25
     /**
28
     /**
26
      * 咨询ID
29
      * 咨询ID
27
      */
30
      */
31
+    @TableId(value = "news_id", type = IdType.AUTO)
28
     private Integer newsId;
32
     private Integer newsId;
29
 
33
 
30
     /**
34
     /**
77
      */
81
      */
78
     private LocalDateTime createDate;
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 Целия файл

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 Целия файл

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
 package com.huiju.estateagents.service;
1
 package com.huiju.estateagents.service;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.baomidou.mybatisplus.extension.service.IService;
5
+import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.entity.TaNews;
6
 import com.huiju.estateagents.entity.TaNews;
5
 
7
 
6
 /**
8
 /**
13
  */
15
  */
14
 public interface ITaNewsService extends IService<TaNews> {
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
 package com.huiju.estateagents.service;
1
 package com.huiju.estateagents.service;
2
 
2
 
3
 import com.baomidou.mybatisplus.extension.service.IService;
3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.entity.TaNewsType;
5
 import com.huiju.estateagents.entity.TaNewsType;
5
 
6
 
6
 /**
7
 /**
13
  */
14
  */
14
 public interface ITaNewsTypeService extends IService<TaNewsType> {
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
 package com.huiju.estateagents.service.impl;
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
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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
 import com.huiju.estateagents.entity.TaNews;
10
 import com.huiju.estateagents.entity.TaNews;
11
+import com.huiju.estateagents.entity.TaNewsType;
12
+import com.huiju.estateagents.exception.EstaException;
5
 import com.huiju.estateagents.mapper.TaNewsMapper;
13
 import com.huiju.estateagents.mapper.TaNewsMapper;
14
+import com.huiju.estateagents.service.ITaBuildingService;
15
+import com.huiju.estateagents.service.ITaFavorService;
6
 import com.huiju.estateagents.service.ITaNewsService;
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
 import org.springframework.stereotype.Service;
20
 import org.springframework.stereotype.Service;
8
 
21
 
22
+import java.time.LocalDateTime;
23
+import java.util.List;
24
+
9
 /**
25
 /**
10
  * <p>
26
  * <p>
11
  * 资讯表  服务实现类
27
  * 资讯表  服务实现类
17
 @Service
33
 @Service
18
 public class TaNewsServiceImpl extends ServiceImpl<TaNewsMapper, TaNews> implements ITaNewsService {
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
 package com.huiju.estateagents.service.impl;
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
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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
 import com.huiju.estateagents.entity.TaNewsType;
10
 import com.huiju.estateagents.entity.TaNewsType;
11
+import com.huiju.estateagents.exception.EstaException;
5
 import com.huiju.estateagents.mapper.TaNewsTypeMapper;
12
 import com.huiju.estateagents.mapper.TaNewsTypeMapper;
13
+import com.huiju.estateagents.service.ITaBuildingService;
6
 import com.huiju.estateagents.service.ITaNewsTypeService;
14
 import com.huiju.estateagents.service.ITaNewsTypeService;
15
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
16
 import org.springframework.stereotype.Service;
8
 
17
 
18
+import java.time.LocalDateTime;
19
+
9
 /**
20
 /**
10
  * <p>
21
  * <p>
11
  * 资讯类型表  服务实现类
22
  * 资讯类型表  服务实现类
17
 @Service
28
 @Service
18
 public class TaNewsTypeServiceImpl extends ServiceImpl<TaNewsTypeMapper, TaNewsType> implements ITaNewsTypeService {
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
 }