Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

zhengqiang 4 gadi atpakaļ
vecāks
revīzija
f0a31f1c03

+ 43 - 2
common/src/main/java/com/jpsoft/bus/modules/bus/callback/GpsDataCallbackImpl.java

@@ -161,6 +161,8 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                                 frontToEnd = false;
                             }
 
+
+
                             //查询乘客表是否有过站的情况
                             List<PassengerInfo> passengerInfoList = passengerInfoService.findByShiftStatusPayStatusNotTicketDown(shiftInfo.getId(),"1","1",stationId);
 
@@ -183,7 +185,7 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
 
                                     //过站发消息
                                     if (passengerInfo.getPayStatus().equals("2")){
-                                        new Thread(()->{
+
                                             List<OrderInfo> orderInfoList = orderInfoService.findByPassengerIdAndPayStatus(passengerInfo.getId(),20);
                                             OrderInfo orderInfo = orderInfoList.get(0);
                                             //综合账单
@@ -214,11 +216,50 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
 
 
 
-                                        }).start();
+
                                     }
 
                                 }
                             }
+
+
+                                //查询乘客有过站的情况
+                                List<PassengerInfo> passengerInfoList1 = passengerInfoService.findByShiftStatusPayStatusNotTicketDown(shiftInfo.getId(),"1","2",stationId);
+                                if (passengerInfoList1.size()>0){
+                                    for (PassengerInfo passengerInfo : passengerInfoList1){
+                                        List<OrderInfo> orderInfoList = orderInfoService.findByPassengerIdAndPayStatus(passengerInfo.getId(),20);
+                                        OrderInfo orderInfo = orderInfoList.get(0);
+                                        //综合账单
+                                        MergeOrderInfo mergeOrderInfo = mergeOrderInfoService.get(orderInfo.getMergeOrderId());
+                                        if (StringUtils.isNotBlank(mergeOrderInfo.getOpenId())){
+
+                                            UserInfo userInfo = userInfoService.findByOpenId(mergeOrderInfo.getOpenId());
+                                            if (userInfo.getAcceptMessage()){
+                                                PassengerMessage passengerMessage0 = passengerMessageService.findByPassengerId(orderInfo.getPassengerId());
+                                                if (passengerMessage0 ==null){
+                                                    PassengerMessage passengerMessage = new PassengerMessage();
+                                                    passengerMessage.setId(UUID.randomUUID().toString());
+                                                    passengerMessage.setOpenId(mergeOrderInfo.getOpenId());
+                                                    passengerMessage.setPassengerId(passengerInfo.getId());
+                                                    passengerMessage.setCreateTime(new Date());
+                                                    passengerMessageService.insert(passengerMessage);
+                                                }
+                                                else {
+                                                    passengerMessage0.setReadStatus(false);
+                                                    passengerMessageService.update(passengerMessage0);
+                                                }
+                                            }
+
+
+
+
+                                        }
+                                    }
+
+                                }
+
+
+
                         }
 
                         if (gpsDataInfo0 != null){

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/dto/PassengerMessageDTO.java

@@ -23,4 +23,6 @@ public class PassengerMessageDTO {
 
     private String statusName;
 
+    private String imageUrl;
+
 }

+ 7 - 5
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/PassengerInfoServiceImpl.java

@@ -293,12 +293,13 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
             throw new Exception("乘客不存在");
         }
 
-        PriceInfo priceInfo = priceInfoService.findByStartStationAndEndStation(ticketUpStationId, ticketDownStationId);
-        if (priceInfo == null) {
-            PriceInfo priceInfo1 = priceInfoService.findByStartStationAndEndStation(ticketDownStationId, ticketUpStationId);
-            if (priceInfo1 == null) {
+        PriceInfo priceInfo = priceInfoService.findByStartStationAndEndStation(ticketUpStationId,ticketDownStationId);
+        if (priceInfo == null || priceInfo.getPrice().compareTo(BigDecimal.ZERO) <=0){
+            PriceInfo priceInfo1 = priceInfoService.findByStartStationAndEndStation(ticketDownStationId,ticketUpStationId);
+            if (priceInfo1 == null || priceInfo1.getPrice().compareTo(BigDecimal.ZERO) <= 0){
                 throw new Exception("站点间无费用设置");
             }
+            priceInfo = priceInfo1;
         }
 
         BigDecimal price = priceInfo.getPrice();
@@ -376,7 +377,7 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
                     //创建订单
                     OrderInfo orderInfo = new OrderInfo();
                     orderInfo.setId(UUID.randomUUID().toString());
-                    orderInfo.setTotalFee(new BigDecimal(totalFee));
+                    orderInfo.setTotalFee(price);
                     orderInfo.setBody("买车票");
                     orderInfo.setPayStatus(10);
                     orderInfo.setOutOrderNo(com.jpsoft.bus.modules.common.utils.StringUtils.getOutTradeNo());
@@ -387,6 +388,7 @@ public class PassengerInfoServiceImpl implements PassengerInfoService {
 
                     if (!goodTicketStatus){
                         orderInfo.setGoodsTicket(new BigDecimal(goodsTicket));
+                        orderInfo.setTotalFee(price.add(new BigDecimal(goodsTicket)));
                         goodTicketStatus = true;
                     }
 

+ 3 - 5
common/src/main/resources/mapper/bus/UserInfo.xml

@@ -19,11 +19,9 @@
 			<result property="openId" column="open_id"/>
 			</resultMap>
 	<insert id="insert" parameterType="com.jpsoft.bus.modules.bus.entity.UserInfo">
-	<!--
-	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
-		select sys_guid() from dual
-	</selectKey>
-	-->
+		<selectKey keyProperty="id" resultType="long" order="AFTER">
+			SELECT LAST_INSERT_ID();
+		</selectKey>
 	<![CDATA[
 		insert into bus_user_info
 	    (name_,phone_,password_,face_image,accept_message,create_by,create_time,update_by,update_time,del_flag,remark_,open_id)

+ 2 - 0
web/src/main/java/com/jpsoft/bus/interceptor/LoginInterceptor.java

@@ -3,6 +3,7 @@ package com.jpsoft.bus.interceptor;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.jpsoft.bus.modules.common.dto.MessageResult;
 import com.jpsoft.bus.modules.common.utils.JwtUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
@@ -12,6 +13,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 @Component
+@Slf4j
 public class LoginInterceptor implements HandlerInterceptor {
     @Value("${jwt.secret}")
     private String jwtSecret;

+ 21 - 17
web/src/main/java/com/jpsoft/bus/modules/bus/controller/PriceInfoController.java

@@ -274,11 +274,11 @@ public class PriceInfoController {
             List<Map> stationPriceColumns = new ArrayList<>();
 
 
-            for (StationInfo startSi : stationInfoList){
+            for (StationInfo endSi : stationInfoList){
                 Map<String,Object> map = new HashMap<>();
                 List<Map> priceList = new ArrayList<>();
                 Map<String,Map> stationPriceMap = new HashMap<>();
-                for(StationInfo endSi : stationInfoList){
+                for(StationInfo startSi : stationInfoList){
                     Map<String,Object> priceMap = new HashMap<>();
                     PriceInfo priceInfo = priceInfoService.findByStartStationAndEndStation(startSi.getId(),endSi.getId());
                     String priceStr = "无";
@@ -289,11 +289,11 @@ public class PriceInfoController {
 
                     priceMap.put("price",priceStr);
                     priceList.add(priceMap);
-                    stationPriceMap.put(endSi.getId(),priceMap);
+                    stationPriceMap.put(startSi.getId(),priceMap);
                 }
 
-                map.put("id",startSi.getId());
-                map.put("name",startSi.getName());
+                map.put("id",endSi.getId());
+                map.put("name",endSi.getName());
                 map.put("priceList",priceList);
                 map.put("stationPriceMap",stationPriceMap);
 
@@ -347,12 +347,12 @@ public class PriceInfoController {
 
 
             Map<Integer,String> heardMap = new HashMap<Integer,String>();
-            //查第一列 表头的站点名称名称 --  点站
+            //查第一列 表头的站点名称名称 --  点站
             if(sheet1.getLastRowNum() > 0){
                 int coloumNum = sheet1.getRow(0).getPhysicalNumberOfCells();
                 for(int i = 1;i<coloumNum;i++){
-                    String endName = (String)poiUtils.getCellValue(sheetIndex,0,i).toString().replace(" ","");
-                    heardMap.put(i,endName);
+                    String startName = (String)poiUtils.getCellValue(sheetIndex,0,i).toString().replace(" ","");
+                    heardMap.put(i,startName);
                 }
             }
 
@@ -360,23 +360,27 @@ public class PriceInfoController {
 
             for(int rowIndex=0 ; rowIndex<=sheet1.getLastRowNum(); rowIndex++){
                 try {
-                    //第一列为点站点
-                    String startName = (String)poiUtils.getCellValue(sheetIndex,rowIndex,0).toString().replace(" ","");
-                    StationInfo startInfo = stationInfoService.findByRouteIdAndName(routeId,startName);
-                    if(startInfo == null){
+                    //第一列为点站点
+                    String endName = (String)poiUtils.getCellValue(sheetIndex,rowIndex,0).toString().replace(" ","");
+                    StationInfo endInfo = stationInfoService.findByRouteIdAndName(routeId,endName);
+                    if(endInfo == null){
                         continue;
                     }
 
-                    for(int endIndex = 1;endIndex <=heardMap.size();endIndex++){
-                        String endName = heardMap.get(endIndex);
-                        StationInfo endInfo = stationInfoService.findByRouteIdAndName(routeId,endName);
-                        if(endInfo == null){
+                    for(int startIndex = 1;startIndex <=heardMap.size();startIndex++){
+                        String startName = heardMap.get(startIndex);
+                        StationInfo startInfo = stationInfoService.findByRouteIdAndName(routeId,startName);
+                        if(startInfo == null){
                             continue;
                         }
 
                         PriceInfo pi = priceInfoService.findByStartStationAndEndStation(startInfo.getId(),endInfo.getId());
 
-                        String price = (String)poiUtils.getCellValue(sheetIndex,rowIndex,endIndex).toString().replace(" ","");
+                        String price = (String)poiUtils.getCellValue(sheetIndex,rowIndex,startIndex).toString().replace(" ","");
+                        if("0".equals(price)){
+                            //金额为0不保存
+                            continue;
+                        }
 
                         if(pi == null){
                             pi = new PriceInfo();

+ 3 - 2
web/src/main/java/com/jpsoft/bus/modules/driver/controller/DriverApiController.java

@@ -890,11 +890,12 @@ public class DriverApiController {
 
         try {
             PriceInfo priceInfo = priceInfoService.findByStartStationAndEndStation(ticketUpStationId,ticketDownStationId);
-            if (priceInfo == null){
+            if (priceInfo == null || priceInfo.getPrice().compareTo(BigDecimal.ZERO) <=0){
                 PriceInfo priceInfo1 = priceInfoService.findByStartStationAndEndStation(ticketDownStationId,ticketUpStationId);
-                if (priceInfo1 == null){
+                if (priceInfo1 == null || priceInfo1.getPrice().compareTo(BigDecimal.ZERO) <= 0){
                     throw new Exception("站点间无费用设置");
                 }
+                priceInfo = priceInfo1;
             }
 
             BigDecimal price = priceInfo.getPrice();

+ 3 - 4
web/src/main/java/com/jpsoft/bus/modules/mobile/controller/PassengerApiController.java

@@ -189,19 +189,18 @@ public class PassengerApiController {
                 userInfo1.setName("乘客_" + com.jpsoft.bus.modules.common.utils.StringUtils.random(8, com.jpsoft.bus.modules.common.utils.StringUtils.RandomType.ALL));
                 userInfo1.setPhone(phone);
                 userInfo1.setPassword(des3.encrypt(jwtSecret, phone));
-                userInfo1.setAcceptMessage(false);
+                userInfo1.setAcceptMessage(true);
                 userInfo1.setCreateTime(new Date());
                 userInfo1.setDelFlag(false);
                 userInfo1.setOpenId(openId);
                 userInfoService.insert(userInfo1);
-                userId = userInfo1.getId();
+               userId = userInfo1.getId();
                 userInfo = userInfo1;
             } else {
                 userInfo.setOpenId(openId);
                 userInfoService.update(userInfo);
                 userId = userInfo.getId();
             }
-
             token = JwtUtil.createToken(jwtSecret, String.valueOf(userId), DateTime.now().plusDays(30).toDate());
 
             Map<String, Object> map = new HashMap<>();
@@ -955,6 +954,7 @@ public class PassengerApiController {
                     passengerMessageDTO.setRouteName(routeInfo.getName());
                     passengerMessageDTO.setSendTime(DateUtil.format(passengerMessage.getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
                     passengerMessageDTO.setStatusName("已过站");
+                    passengerMessageDTO.setImageUrl(passengerInfo.getImageUrl());
                     list.add(passengerMessageDTO);
 
                     passengerMessage.setReadStatus(true);
@@ -1236,7 +1236,6 @@ public class PassengerApiController {
             @ApiImplicitParam(name = "name", value = "用户姓名", paramType = "form"),
             @ApiImplicitParam(name = "faceImage", value = "人脸照片", paramType = "form"),
             @ApiImplicitParam(name = "acceptMessage", value = "是否接受乘车信息(0:不接受,1:接受)", paramType = "form"),
-            @ApiImplicitParam(name = "code", value = "验证码", paramType = "form"),
             @ApiImplicitParam(name = "subject", value = "目标(不传)", paramType = "form")
     })
     public MessageResult<Map> updateUserInfo(String token, @RequestAttribute String subject,String name,String faceImage,String acceptMessage) {

+ 2 - 2
web/src/main/resources/application-test.yml

@@ -53,8 +53,8 @@ wx:
     portalUrl: http://xpgj.xiaoxinda.com/test/business/#/
 
   jpsoft:
-    appId: wx343bf93d2a3dc8af
-    appSecret: ac61fa669a7a79c7d2a8188ff7ddaef6
+    appId: wx907e84ad32e6e142
+    appSecret: 1d891ee3f4cc8002ff0330d1e04acf2c
     mchId: 1509055881
     subMchId: 1523544111
     mchKey: xxd33333333333333333333333333333