张延森 3 anni fa
parent
commit
57eb3ef174

+ 1
- 1
deploy/bootstrap Vedi File

@@ -2,6 +2,6 @@
2 2
 #
3 3
 #
4 4
 
5
-appVer="2.0.0"
5
+appVer="3.0.2"
6 6
 
7 7
 java -jar ./shigongli-${appVer}.jar

+ 1
- 1
deploy/template.yml Vedi File

@@ -11,7 +11,7 @@ Resources:
11 11
       Properties:
12 12
         Handler: com.yunzhi.shigongli.SpringApplication::main
13 13
         Runtime: custom
14
-        CodeUri: 'oss://yz-serverless/shigongli/shigongli-2.0.0.zip'
14
+        CodeUri: 'oss://yz-serverless/shigongli/shigongli-3.0.2.zip'
15 15
         MemorySize: 1024
16 16
         Timeout: 30
17 17
         InitializationTimeout: 30

+ 1
- 1
pom.xml Vedi File

@@ -10,7 +10,7 @@
10 10
 	</parent>
11 11
 	<groupId>com.yunzhi</groupId>
12 12
 	<artifactId>shigongli</artifactId>
13
-	<version>3.0.1</version>
13
+	<version>3.0.2</version>
14 14
 	<name>shigongli</name>
15 15
 	<description>Shi Gong Li</description>
16 16
 

+ 3
- 1
src/main/java/com/yunzhi/shigongli/common/WxPayUtils.java Vedi File

@@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
15 15
 import org.springframework.stereotype.Component;
16 16
 
17 17
 import java.time.LocalDateTime;
18
+import java.time.ZoneOffset;
18 19
 
19 20
 @Component
20 21
 public class WxPayUtils {
@@ -32,7 +33,8 @@ public class WxPayUtils {
32 33
      * @throws Exception
33 34
      */
34 35
     public WxPayMpOrderResult createOrder(TaPerson person, TaOrderPay orderPay) throws Exception {
35
-        LocalDateTime now = LocalDateTime.now();
36
+        // 北京时间
37
+        LocalDateTime now = LocalDateTime.now(ZoneOffset.ofHours(8));
36 38
         WxPayService payService = wxUtils.getPayService();
37 39
 
38 40
         WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();

+ 25
- 0
src/main/java/com/yunzhi/shigongli/config/CorsConfig.java Vedi File

@@ -0,0 +1,25 @@
1
+package com.yunzhi.shigongli.config;
2
+
3
+import org.springframework.boot.SpringBootConfiguration;
4
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
5
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
6
+
7
+@SpringBootConfiguration
8
+public class CorsConfig implements WebMvcConfigurer {
9
+    @Override
10
+    public void addCorsMappings(CorsRegistry registry) {
11
+        //添加映射路径
12
+        registry.addMapping("/**")
13
+                //是否发送Cookie
14
+                .allowCredentials(true)
15
+                //设置放行哪些原始域
16
+                .allowedOrigins("*")
17
+                //放行哪些请求方式
18
+                .allowedMethods("GET", "POST", "PUT", "DELETE")
19
+                //.allowedMethods("*") //或者放行全部
20
+                //放行哪些原始请求头部信息
21
+                .allowedHeaders("*")
22
+                //暴露哪些原始请求头部信息
23
+                .exposedHeaders("X-Authorization-JWT");
24
+    }
25
+}

+ 54
- 11
src/main/java/com/yunzhi/shigongli/controller/TaTravelController.java Vedi File

@@ -5,9 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 5
 import com.yunzhi.shigongli.common.*;
6 6
 import com.yunzhi.shigongli.entity.TaPerson;
7 7
 import com.yunzhi.shigongli.entity.TaTravel;
8
-import com.yunzhi.shigongli.entity.TaTravelItem;
9 8
 import com.yunzhi.shigongli.entity.TaTravelPerson;
10
-import com.yunzhi.shigongli.service.ITaPvService;
11 9
 import com.yunzhi.shigongli.service.ITaTravelItemService;
12 10
 import com.yunzhi.shigongli.service.ITaTravelPersonService;
13 11
 import com.yunzhi.shigongli.service.ITaTravelService;
@@ -17,7 +15,6 @@ import com.yunzhi.shigongli.vo.TravelListVO;
17 15
 import io.swagger.annotations.Api;
18 16
 import io.swagger.annotations.ApiOperation;
19 17
 import io.swagger.annotations.ApiParam;
20
-import org.apache.ibatis.annotations.Delete;
21 18
 import org.slf4j.Logger;
22 19
 import org.slf4j.LoggerFactory;
23 20
 import org.springframework.beans.BeanUtils;
@@ -25,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
25 22
 import org.springframework.web.bind.annotation.*;
26 23
 
27 24
 import java.time.LocalDateTime;
28
-import java.util.ArrayList;
29 25
 import java.util.List;
30 26
 
31 27
 /**
@@ -102,6 +98,52 @@ public class TaTravelController extends BaseController {
102 98
     }
103 99
 
104 100
 
101
+    /**
102
+     * 删除行程
103
+     * @return
104
+     * @throws Exception
105
+     */
106
+    @DeleteMapping("/admin/travel/{id}")
107
+    @ApiOperation(value="删除行程", notes = "行程详情", httpMethod = "DELETE", response = TravelDataVO.class)
108
+    public ResponseBean deleteTravel(@ApiParam("行程ID") @PathVariable String id) throws Exception {
109
+        TaTravel taTravel = iTaTravelService.getById(id);
110
+        if (null == taTravel || taTravel.getStatus() == Constants.STATUS_DELETED) {
111
+            return ResponseBean.error("没有找到行程信息", ResponseBean.ERROR_ILLEGAL_PARAMS);
112
+        }
113
+
114
+        iTaTravelService.removeLogicById(id);
115
+
116
+        return ResponseBean.success(null);
117
+    }
118
+
119
+
120
+    /**
121
+     * 行程发布/取消发布
122
+     * @return
123
+     * @throws Exception
124
+     */
125
+    @PutMapping("/admin/travel/{id}/publish/{status}")
126
+    @ApiOperation(value="行程发布/取消发布", notes = "行程发布/取消发布", httpMethod = "PUT", response = TravelDataVO.class)
127
+    public ResponseBean publishTravel(@ApiParam("行程ID") @PathVariable String id,
128
+                                      @ApiParam(value = "发布状态", allowableValues = "on,off") @PathVariable String status) throws Exception {
129
+        TaTravel taTravel = iTaTravelService.getById(id);
130
+        if (null == taTravel || taTravel.getStatus() == Constants.STATUS_DELETED) {
131
+            return ResponseBean.error("没有找到行程信息", ResponseBean.ERROR_ILLEGAL_PARAMS);
132
+        }
133
+
134
+        if ("on".equals(status.toLowerCase())) {
135
+            taTravel.setStatus(Constants.STATUS_NORMAL);
136
+        } else {
137
+            taTravel.setStatus(Constants.STATUS_READY);
138
+        }
139
+
140
+        if (iTaTravelService.updateById(taTravel)) {
141
+            return ResponseBean.success(null);
142
+        } else {
143
+            return ResponseBean.error("操作失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
144
+        }
145
+    }
146
+
105 147
     /**
106 148
      * 行程详情
107 149
      * @return
@@ -118,7 +160,7 @@ public class TaTravelController extends BaseController {
118 160
         TravelDataVO travelDataVO = new TravelDataVO();
119 161
         BeanUtils.copyProperties(taTravel, travelDataVO);
120 162
 
121
-        List<TravelItemDataVO> travelItemDetails = iTaTravelItemService.getTravelItemDetails(id);
163
+        List<TravelItemDataVO> travelItemDetails = iTaTravelItemService.getTravelItemDetails(id, null);
122 164
         travelDataVO.setTravelItemList(travelItemDetails);
123 165
 
124 166
         return ResponseBean.success(travelDataVO);
@@ -139,7 +181,7 @@ public class TaTravelController extends BaseController {
139 181
             return ResponseBean.success(null);
140 182
         }
141 183
 
142
-        List<TravelItemDataVO> itemDataVOList = iTaTravelItemService.getTravelItemDetails(travelData.getTravelId());
184
+        List<TravelItemDataVO> itemDataVOList = iTaTravelItemService.getTravelItemDetails(travelData.getTravelId(), taPerson.getPersonId());
143 185
 
144 186
         travelData.setTravelItemList(itemDataVOList);
145 187
 
@@ -160,7 +202,7 @@ public class TaTravelController extends BaseController {
160 202
         TravelDataVO travelDataVO = new TravelDataVO();
161 203
         BeanUtils.copyProperties(travel, travelDataVO);
162 204
 
163
-        List<TravelItemDataVO> itemDataVOList = iTaTravelItemService.getTravelItemDetails(travel.getTravelId());
205
+        List<TravelItemDataVO> itemDataVOList = iTaTravelItemService.getTravelItemDetails(travel.getTravelId(), taPerson.getPersonId());
164 206
 
165 207
         travelDataVO.setTravelItemList(itemDataVOList);
166 208
 
@@ -331,7 +373,7 @@ public class TaTravelController extends BaseController {
331 373
      */
332 374
     @PutMapping("/wx/travel/{id}")
333 375
     @ApiOperation(value="更新我的行程", notes = "更新我的行程", httpMethod = "PUT", response = TaTravel.class)
334
-    public ResponseBean updateTravel(@ApiParam("行程ID") @PathVariable String id,
376
+    public ResponseBean updateMyTravel(@ApiParam("行程ID") @PathVariable String id,
335 377
                                      @ApiParam("保存内容") @RequestBody TaTravel taTravel) throws Exception {
336 378
         TaTravelPerson taTravelPerson = iTaTravelPersonService.getByPerson(getCurrentPerson().getPersonId(), id);
337 379
         if (null == taTravelPerson) {
@@ -359,7 +401,7 @@ public class TaTravelController extends BaseController {
359 401
      */
360 402
     @DeleteMapping("/wx/travel/{id}")
361 403
     @ApiOperation(value="删除我的行程", notes = "删除我的行程", httpMethod = "DELETE", response = TaTravel.class)
362
-    public ResponseBean deleteTravel(@ApiParam("行程ID") @PathVariable String id) throws Exception {
404
+    public ResponseBean deleteMyTravel(@ApiParam("行程ID") @PathVariable String id) throws Exception {
363 405
         TaTravelPerson taTravelPerson = iTaTravelPersonService.getByPerson(getCurrentPerson().getPersonId(), id);
364 406
         if (null == taTravelPerson) {
365 407
             return ResponseBean.error("未找到删除内容", ResponseBean.ERROR_UNAVAILABLE);
@@ -386,7 +428,8 @@ public class TaTravelController extends BaseController {
386 428
     @GetMapping("/wx/travel/{id}")
387 429
     @ApiOperation(value="我的行程详情", notes = "我的行程详情", httpMethod = "GET", response = TaTravel.class)
388 430
     public ResponseBean getMineTravel(@ApiParam("行程ID") @PathVariable String id) throws Exception {
389
-        TaTravelPerson taTravelPerson = iTaTravelPersonService.getByPerson(getCurrentPerson().getPersonId(), id);
431
+        String personId = getCurrentPerson().getPersonId();
432
+        TaTravelPerson taTravelPerson = iTaTravelPersonService.getByPerson(personId, id);
390 433
         if (null == taTravelPerson) {
391 434
             return ResponseBean.error("未找到行程内容", ResponseBean.ERROR_UNAVAILABLE);
392 435
         }
@@ -399,7 +442,7 @@ public class TaTravelController extends BaseController {
399 442
         TravelDataVO travelDataVO = new TravelDataVO();
400 443
         BeanUtils.copyProperties(origin, travelDataVO);
401 444
 
402
-        List<TravelItemDataVO> travelItemDetails = iTaTravelItemService.getTravelItemDetails(id);
445
+        List<TravelItemDataVO> travelItemDetails = iTaTravelItemService.getTravelItemDetails(id, personId);
403 446
         travelDataVO.setTravelItemList(travelItemDetails);
404 447
 
405 448
         return ResponseBean.success(travelDataVO);

+ 1
- 1
src/main/java/com/yunzhi/shigongli/mapper/TaTravelItemMapper.java Vedi File

@@ -21,7 +21,7 @@ public interface TaTravelItemMapper extends BaseMapper<TaTravelItem> {
21 21
 
22 22
     int copyTravelItems(@Param("srcId") String srcId, @Param("targId") String targId);
23 23
 
24
-    List<TravelItemDataVO> getTravelItemDetails(@Param("travelId") String travelId);
24
+    List<TravelItemDataVO> getTravelItemDetails(@Param("travelId") String travelId, @Param("personId") String personId);
25 25
 
26 26
     Integer getMaxNoOf(@Param("travelId") String travelId, @Param("dayOrder") Integer dayOrder);
27 27
 }

+ 1
- 1
src/main/java/com/yunzhi/shigongli/service/ITaTravelItemService.java Vedi File

@@ -18,7 +18,7 @@ public interface ITaTravelItemService extends IBaseService<TaTravelItem> {
18 18
 
19 19
     Integer getMaxNoOf(String travelId, Integer dayOrder);
20 20
 
21
-    List<TravelItemDataVO> getTravelItemDetails(String travelId);
21
+    List<TravelItemDataVO> getTravelItemDetails(String travelId, String personId);
22 22
 
23 23
     List<TravelItemDataVO> updateTravelItems(String travelId, List<TravelItemDataVO> travelItemList) throws Exception;
24 24
 }

+ 3
- 4
src/main/java/com/yunzhi/shigongli/service/impl/TaTravelItemServiceImpl.java Vedi File

@@ -1,7 +1,6 @@
1 1
 package com.yunzhi.shigongli.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
-import com.yunzhi.shigongli.entity.TaTravel;
5 4
 import com.yunzhi.shigongli.entity.TaTravelItem;
6 5
 import com.yunzhi.shigongli.mapper.TaTravelItemMapper;
7 6
 import com.yunzhi.shigongli.mapper.TaTravelMapper;
@@ -33,8 +32,8 @@ public class TaTravelItemServiceImpl extends BaseServiceImpl<TaTravelItemMapper,
33 32
     }
34 33
 
35 34
     @Override
36
-    public List<TravelItemDataVO> getTravelItemDetails(String travelId) {
37
-        return baseMapper.getTravelItemDetails(travelId);
35
+    public List<TravelItemDataVO> getTravelItemDetails(String travelId, String personId) {
36
+        return baseMapper.getTravelItemDetails(travelId, personId);
38 37
     }
39 38
 
40 39
     /**
@@ -69,6 +68,6 @@ public class TaTravelItemServiceImpl extends BaseServiceImpl<TaTravelItemMapper,
69 68
         // 保存明细
70 69
         saveBatch(travelItems);
71 70
 
72
-        return getTravelItemDetails(travelId);
71
+        return getTravelItemDetails(travelId, null);
73 72
     }
74 73
 }

+ 2
- 2
src/main/java/com/yunzhi/shigongli/service/impl/TaTravelServiceImpl.java Vedi File

@@ -37,7 +37,7 @@ public class TaTravelServiceImpl extends BaseServiceImpl<TaTravelMapper, TaTrave
37 37
         }
38 38
 
39 39
         TravelDataVO travelDataVO = travelDataVOList.get(0);
40
-        List<TravelItemDataVO> itemDataVOList = taTravelItemMapper.getTravelItemDetails(travelId);
40
+        List<TravelItemDataVO> itemDataVOList = taTravelItemMapper.getTravelItemDetails(travelId, personId);
41 41
         travelDataVO.setTravelItemList(itemDataVOList);
42 42
 
43 43
         return travelDataVO;
@@ -49,7 +49,7 @@ public class TaTravelServiceImpl extends BaseServiceImpl<TaTravelMapper, TaTrave
49 49
         if (simple || null == travelDataVOPage || null == travelDataVOPage.getRecords()) return travelDataVOPage;
50 50
 
51 51
         for (TravelDataVO travelDataVO : travelDataVOPage.getRecords()) {
52
-            List<TravelItemDataVO> itemDataVOList = taTravelItemMapper.getTravelItemDetails(travelDataVO.getTravelId());
52
+            List<TravelItemDataVO> itemDataVOList = taTravelItemMapper.getTravelItemDetails(travelDataVO.getTravelId(), personId);
53 53
             travelDataVO.setTravelItemList(itemDataVOList);
54 54
         }
55 55
 

+ 3
- 0
src/main/java/com/yunzhi/shigongli/vo/TravelItemDataVO.java Vedi File

@@ -66,4 +66,7 @@ public class TravelItemDataVO {
66 66
 
67 67
     @ApiModelProperty(value = "区位父级名称")
68 68
     private String areaPName;
69
+
70
+    @ApiModelProperty(value = "是否收藏")
71
+    private Integer isSaved;
69 72
 }

+ 1
- 1
src/main/resources/application-prod.yml Vedi File

@@ -25,6 +25,6 @@ weixin:
25 25
     mchKey: fUbYPldU5bUCYRl97vMv69JQujsJ8dj5
26 26
     subAppId:
27 27
     subMchId:
28
-    keyPath: /opt/yunzhi/sgl-v2/cert/apiclient_cert.p12
28
+    keyPath: classpath:/cert/apiclient_cert.p12
29 29
     notifyUrl: https://sgl-v2.njyunzhi.com/api/wxpay/notify/order
30 30
     refundNotifyUrl: https://sgl-v2.njyunzhi.com/api/wxpay/notify/refund

+ 1
- 1
src/main/resources/application.yml Vedi File

@@ -66,7 +66,7 @@ weixin:
66 66
     mchKey: fUbYPldU5bUCYRl97vMv69JQujsJ8dj5
67 67
     subAppId:
68 68
     subMchId:
69
-    keyPath: E:/work/shigongli/v2/service/cert/apiclient_cert.p12
69
+    keyPath: classpath:/cert/apiclient_cert.p12
70 70
     notifyUrl: https://sgl-v2-test.njyunzhi.com/api/wxpay/notify/order
71 71
     refundNotifyUrl: https://sgl-v2-test.njyunzhi.com/api/wxpay/notify/refund
72 72
 

src/main/resources/logback.xml.bak → src/main/resources/logback.xml Vedi File


+ 16
- 0
src/main/resources/mapper/TaNoteResourceMapper.xml Vedi File

@@ -7,9 +7,11 @@
7 7
             s.*,
8 8
             <if test="personId != null and personId != ''">
9 9
                 IFNULL(m.visited_num, 0) as is_visited,
10
+                IFNULL(n.saved_num, 0) as is_saved,
10 11
             </if>
11 12
             <if test="personId == null or personId == ''">
12 13
                 0 as is_visited,
14
+                0 as is_saved,
13 15
             </if>
14 16
             c.area_name,
15 17
             d.area_id,
@@ -33,6 +35,20 @@
33 35
                         b.target_id
34 36
                 ) m ON m.target_type = s.target_type
35 37
                     AND m.target_id = s.target_id
38
+                LEFT JOIN (
39
+                    SELECT
40
+                        a.target_type,
41
+                        a.target_id,
42
+                        count( 1 ) AS saved_num
43
+                    FROM
44
+                        ta_save a
45
+                    WHERE
46
+                        a.person_id = #{personId}
47
+                    GROUP BY
48
+                        a.target_type,
49
+                        a.target_id
50
+                    ) n ON n.target_type = s.target_type
51
+                        AND n.target_id = s.target_id
36 52
                 </if>
37 53
                 LEFT JOIN td_city c ON c.area_id = s.city_id
38 54
                 LEFT JOIN td_city d ON d.area_id = c.area_p_id

+ 19
- 0
src/main/resources/mapper/TaTravelItemMapper.xml Vedi File

@@ -31,6 +31,9 @@
31 31
             s.weight,
32 32
             s.city_id,
33 33
             s.save_num,
34
+            <if test="personId != null and personId != ''">
35
+                IFNULL(n.saved_num, 0) as is_saved,
36
+            </if>
34 37
             s.target_name,
35 38
             c.area_name,
36 39
             d.area_id,
@@ -41,6 +44,22 @@
41 44
                     AND s.target_id = t.target_id
42 45
                 LEFT JOIN td_city c ON c.area_id = s.city_id
43 46
                 LEFT JOIN td_city d ON d.area_id = c.area_p_id
47
+            <if test="personId != null and personId != ''">
48
+                LEFT JOIN (
49
+                    SELECT
50
+                        a.target_type,
51
+                        a.target_id,
52
+                        count( 1 ) AS saved_num
53
+                    FROM
54
+                        ta_save a
55
+                    WHERE
56
+                        a.person_id = #{personId}
57
+                    GROUP BY
58
+                        a.target_type,
59
+                        a.target_id
60
+                    ) n ON n.target_type = s.target_type
61
+                        AND n.target_id = s.target_id
62
+            </if>
44 63
         WHERE
45 64
             t.travel_id = #{travelId}
46 65
           AND s.`status` &gt; -1

+ 1
- 0
src/main/resources/mapper/TaTravelPersonMapper.xml Vedi File

@@ -14,5 +14,6 @@
14 14
         WHERE
15 15
             s.person_id = #{personId}
16 16
           AND t.is_destiny = 1
17
+          AND t.status &gt; -1
17 18
     </select>
18 19
 </mapper>