liujie
9 天以前 536ef422b4f3d8bd0179fa664444a467913616c1
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong
5个文件已修改
4个文件已删除
55个文件已添加
5992 ■■■■■ 已修改文件
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppComplaintsController.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppDriverRideController.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppEvaluateController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppOrderRideController.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppParamRideController.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppComplaintsMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppDriverRideMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppEvaluateMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppOrderRideMapper.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppParamRideMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppComplaintsMapper.xml 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppDriverRideMapper.xml 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppEvaluateMapper.xml 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppOrderRideMapper.xml 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppParamRideMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppComplaints.java 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppDriverRide.java 348 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppEvaluate.java 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppOrderRide.java 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppParamRide.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppComplaintsService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppDriverRideService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppEvaluateService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppOrderRideService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppParamRideService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppComplaintsServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppDriverRideServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppEvaluateServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppOrderRideServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppParamRideServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/GetOpenBodySig.java 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/SendSms.java 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/VenueLatVo.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/WoUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TUser.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaints.html 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaintsRide.html 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaints_add.html 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaints_edit.html 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide.html 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_audit.html 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_auditList.html 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_detail.html 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_showPic.html 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_update.html 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appEvaluate/appEvaluate.html 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appOrderRide/appOrderRide.html 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appOrderRide/appOrderRide_edit.html 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appParamRide/appParamRide.html 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaints.js 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaintsRide.js 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaintsTaxi.js 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaints_info.js 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appDriverRide/appDriverRide.js 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appDriverRide/appDriverRide_auditList.js 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appDriverRide/appDriverRide_info.js 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appEvaluate/appEvaluate.js 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appOrderRide/appOrderRide.js 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appOrderRide/appOrderRide_info.js 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appParamRide/appParamRide.js 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
@@ -5,6 +5,7 @@
import org.apache.http.config.SocketConfig;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
@@ -23,6 +24,7 @@
 * @author stylefeng
 * @Date 2017/5/21 12:06
 */
@MapperScan("com.stylefeng.guns.modular.*.dao")
@EnableScheduling//开启定时任务
@SpringBootApplication
public class GunsApplication {
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppComplaintsController.java
New file
@@ -0,0 +1,178 @@
package com.stylefeng.guns.modular.shunfeng.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.modular.shunfeng.model.AppComplaints;
import com.stylefeng.guns.modular.shunfeng.service.IAppComplaintsService;
import com.stylefeng.guns.modular.system.model.TUser;
import com.stylefeng.guns.modular.system.service.ITUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 投诉管理控制器  出租车/appComplaints/taxi
 * @Date 2019-06-24 10:30:38
 */
@Controller
@RequestMapping("/appComplaints")
public class AppComplaintsController extends BaseController {
    private String PREFIX = "/shunfeng/appComplaints/";
    @Autowired
    private IAppComplaintsService appComplaintsService;
    @Autowired
    private ITUserService userService;
    /**
     * 跳转到投诉管理首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "appComplaints.html";
    }
    /**
     * 跳转到投诉管理首页(出租车)
     */
    @RequestMapping("/taxi")
    public String indexTaxi() {
        return PREFIX + "appComplaintsTaxi.html";
    }
    /**
     * 跳转到投诉管理首页(顺风车)
     * @return
     */
    @RequestMapping("/ride")
    public String indexRide() {
        return PREFIX + "appComplaintsRide.html";
    }
    /**
     * 跳转到添加投诉管理
     */
    @RequestMapping("/appComplaints_add")
    public String appComplaintsAdd() {
        return PREFIX + "appComplaints_add.html";
    }
    /**
     * 跳转到修改投诉管理
     */
    @RequestMapping("/appComplaints_update/{appComplaintsId}")
    public String appComplaintsUpdate(@PathVariable Integer appComplaintsId, Model model) {
        AppComplaints appComplaints = appComplaintsService.selectById(appComplaintsId);
        model.addAttribute("item",appComplaints);
        LogObjectHolder.me().set(appComplaints);
        return PREFIX + "appComplaints_edit.html";
    }
    /**
     * 获取投诉管理列表(普通司机)
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(AppComplaints appComplaints,String beginTime,String endTime ) {
        Wrapper appComplaintsEntityWrapper=new EntityWrapper<AppComplaints>();
        /*敏感词名称*/
        if(SinataUtil.isNotEmpty(appComplaints.getPhone())){
            appComplaintsEntityWrapper.like("phone",appComplaints.getPhone());
        }
        if(SinataUtil.isNotEmpty(beginTime)){
            appComplaintsEntityWrapper.ge("addTime",beginTime +" 00:00:00");
        }
        if(SinataUtil.isNotEmpty(endTime)){
            appComplaintsEntityWrapper.le("addTime",endTime +" 23:59:59");
        }
        appComplaintsEntityWrapper.eq("type",1);
        Page<AppComplaints> page = new PageFactory<AppComplaints>().defaultPage();
        appComplaintsEntityWrapper.orderBy("addTime",false);//
        page.setRecords(appComplaintsService.selectMapsPage(page, appComplaintsEntityWrapper).getRecords());
        return super.packForBT(page);
    }
    /**
     * 获取投诉管理列表(出租车)
     */
    @RequestMapping(value = "/taxiList")
    @ResponseBody
    public Object taxiList(AppComplaints appComplaints ) {
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        appComplaints.setType(2);
        List<Map<String, Object>> result = appComplaintsService.getAppComplaintsTaxi(appComplaints,page);
        page.setRecords(result);
        return super.packForBT(page);
    }
    /**
     * 获取投诉管理列表(顺风车)
     */
    @RequestMapping(value = "/rideList")
    @ResponseBody
    public Object rideList(AppComplaints appComplaints) {
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        if(appComplaints.getType()==null){
            appComplaints.setType(3);
        }
        List<Map<String, Object>> result = appComplaintsService.getAppComplaintsRide(appComplaints,page);
        page.setRecords(result);
        return super.packForBT(page);
    }
    /**
     * 新增投诉管理
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(AppComplaints appComplaints) {
        TUser appUserInfo=userService.selectOne(new EntityWrapper<TUser>().eq("phone",appComplaints.getPhone()));
        if(SinataUtil.isEmpty(appUserInfo)){
            return "1";
        }
        appComplaints.setAddTime(new Date());
        appComplaintsService.insert(appComplaints);
        return SUCCESS_TIP;
    }
    /**
     * 删除投诉管理
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer appComplaintsId) {
        appComplaintsService.deleteById(appComplaintsId);
        return SUCCESS_TIP;
    }
    /**
     * 修改投诉管理
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(AppComplaints appComplaints) {
        appComplaintsService.updateById(appComplaints);
        return SUCCESS_TIP;
    }
    /**
     * 投诉管理详情
     */
    @RequestMapping(value = "/detail/{appComplaintsId}")
    @ResponseBody
    public Object detail(@PathVariable("appComplaintsId") Integer appComplaintsId) {
        return appComplaintsService.selectById(appComplaintsId);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppDriverRideController.java
New file
@@ -0,0 +1,174 @@
package com.stylefeng.guns.modular.shunfeng.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.modular.shunfeng.model.AppDriverRide;
import com.stylefeng.guns.modular.shunfeng.service.IAppDriverRideService;
import com.stylefeng.guns.modular.system.model.TCarBrand;
import com.stylefeng.guns.modular.system.model.TUser;
import com.stylefeng.guns.modular.system.service.ITCarBrandService;
import com.stylefeng.guns.modular.system.service.ITUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
/**
 * 顺风车司机控制器
 * @Date 2020-04-27 10:56:28
 */
@Controller
@RequestMapping("/appDriverRide")
public class AppDriverRideController extends BaseController {
    private String PREFIX = "/shunfeng/appDriverRide/";
    @Autowired
    private IAppDriverRideService appDriverRideService;
    @Autowired
    private ITUserService userService;
    @Autowired
    private ITCarBrandService carBrandService;
    /**
     * 跳转到顺风车司机首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "appDriverRide.html";
    }
    /**
     * 跳转到司机管理审核列表页面
     */
    @RequestMapping("/auditList")
    public String auditList() {
        return PREFIX + "appDriverRide_auditList.html";
    }
    /**
     * 跳转到添加顺风车司机
     */
    @RequestMapping("/appDriverRide_add")
    public String appDriverRideAdd() {
        return PREFIX + "appDriverRide_add.html";
    }
    /**
     * 跳转到修改顺风车司机
     */
    @RequestMapping("/appDriverRide_update/{appDriverRideId}")
    public String appDriverRideUpdate(@PathVariable Integer appDriverRideId, Model model) {
        AppDriverRide appDriverRide = appDriverRideService.selectById(appDriverRideId);
        model.addAttribute("item",appDriverRide);
        TUser appUserInfo=userService.selectOne(new EntityWrapper<TUser>().eq("driverId",appDriverRideId));
        model.addAttribute("user",appUserInfo);
        List<TCarBrand> brands=carBrandService.selectList(null);
        model.addAttribute("brands",brands);
        return PREFIX + "appDriverRide_update.html";
    }
    /**
     * 跳转到查看顺风车图片
     */
    @RequestMapping("/appDriverRide_showPic/{appDriverRideId}")
    public String appDriverRideShowPic(@PathVariable Integer appDriverRideId, Model model) {
        AppDriverRide appDriverRide = appDriverRideService.selectById(appDriverRideId);
        model.addAttribute("item",appDriverRide);
        LogObjectHolder.me().set(appDriverRide);
        return PREFIX + "appDriverRide_showPic.html";
    }
    /**
     * 跳转到查看顺风车详情
     */
    @RequestMapping("/appDriverRide_detail/{appDriverRideId}")
    public String appDriverRideDetail(@PathVariable Integer appDriverRideId, Model model) {
        AppDriverRide appDriverRide = appDriverRideService.selectById(appDriverRideId);
        model.addAttribute("item",appDriverRide);
        TUser appUserInfo=userService.selectOne(new EntityWrapper<TUser>().eq("driverId",appDriverRideId));
        model.addAttribute("user",appUserInfo);
        return PREFIX + "appDriverRide_detail.html";
    }
    /**
     * 跳转到顺风车司机审核
     */
    @RequestMapping("/appDriverRide_audit/{appDriverRideId}")
    public String appDriverRideAudit(@PathVariable Integer appDriverRideId, Model model) {
        AppDriverRide appDriverRide = appDriverRideService.selectById(appDriverRideId);
        model.addAttribute("item",appDriverRide);
        LogObjectHolder.me().set(appDriverRide);
        return PREFIX + "appDriverRide_audit.html";
    }
    /**
     * 获取顺风车司机列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(AppDriverRide appDriverRide) {
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        List<Map<String, Object>> result = appDriverRideService.getAppDriverRide(appDriverRide,page);
        page.setRecords(result);
        return super.packForBT(page);
    }
    /**
     * 新增顺风车司机
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(AppDriverRide appDriverRide) {
        appDriverRideService.insert(appDriverRide);
        return SUCCESS_TIP;
    }
    /**
     * 删除顺风车司机
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer appDriverRideId) {
        appDriverRideService.deleteById(appDriverRideId);
        return SUCCESS_TIP;
    }
    /**
     * 修改顺风车司机 (顺风车司机审核)
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(AppDriverRide appDriverRide,String certificationImg) {
        AppDriverRide appDriverRide1=appDriverRideService.selectById(appDriverRide.getId());
        TUser userInfo=userService.selectById(appDriverRide1.getUserId());
        if(appDriverRide.getState()!=null && appDriverRide.getState()==2){//顺风车司机通过审核之后需要把id绑定到用户表中
            userInfo.setIsDriverRide(1);//是否为顺风车司机(0否,1是)
            userService.updateById(userInfo);
        }else {
            if(certificationImg!=null){
                userInfo.setCertificationImg(certificationImg);
                userService.updateById(userInfo);
            }
        }
        appDriverRideService.updateById(appDriverRide);
        return SUCCESS_TIP;
    }
    /**
     * 顺风车司机详情
     */
    @RequestMapping(value = "/detail/{appDriverRideId}")
    @ResponseBody
    public Object detail(@PathVariable("appDriverRideId") Integer appDriverRideId) {
        return appDriverRideService.selectById(appDriverRideId);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppEvaluateController.java
New file
@@ -0,0 +1,110 @@
package com.stylefeng.guns.modular.shunfeng.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.modular.shunfeng.model.AppEvaluate;
import com.stylefeng.guns.modular.shunfeng.service.IAppEvaluateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
/**
 * 订单评价控制器
 * @Date 2019-09-12 13:58:21
 */
@Controller
@RequestMapping("/appEvaluate")
public class AppEvaluateController extends BaseController {
    private String PREFIX = "/shunfeng/appEvaluate/";
    @Autowired
    private IAppEvaluateService appEvaluateService;
    /**
     * 跳转到订单评价首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "appEvaluate.html";
    }
    /**
     * 跳转到添加订单评价
     */
    @RequestMapping("/appEvaluate_add")
    public String appEvaluateAdd() {
        return PREFIX + "appEvaluate_add.html";
    }
    /**
     * 跳转到修改订单评价
     */
    @RequestMapping("/appEvaluate_update/{appEvaluateId}")
    public String appEvaluateUpdate(@PathVariable Integer appEvaluateId, Model model) {
        AppEvaluate appEvaluate = appEvaluateService.selectById(appEvaluateId);
        model.addAttribute("item",appEvaluate);
        LogObjectHolder.me().set(appEvaluate);
        return PREFIX + "appEvaluate_edit.html";
    }
    /**
     * 获取订单评价列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(AppEvaluate appOrderTaxi) {
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        List<Map<String, Object>> result = appEvaluateService.getAppEvaluateRide(appOrderTaxi,page);
        page.setRecords(result);
        return super.packForBT(page);
    }
    /**
     * 新增订单评价
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(AppEvaluate appEvaluate) {
        appEvaluateService.insert(appEvaluate);
        return SUCCESS_TIP;
    }
    /**
     * 删除订单评价
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer appEvaluateId) {
        appEvaluateService.deleteById(appEvaluateId);
        return SUCCESS_TIP;
    }
    /**
     * 修改订单评价
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(AppEvaluate appEvaluate) {
        appEvaluateService.updateById(appEvaluate);
        return SUCCESS_TIP;
    }
    /**
     * 订单评价详情
     */
    @RequestMapping(value = "/detail/{appEvaluateId}")
    @ResponseBody
    public Object detail(@PathVariable("appEvaluateId") Integer appEvaluateId) {
        return appEvaluateService.selectById(appEvaluateId);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppOrderRideController.java
New file
@@ -0,0 +1,149 @@
package com.stylefeng.guns.modular.shunfeng.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
import com.stylefeng.guns.modular.shunfeng.model.AppEvaluate;
import com.stylefeng.guns.modular.shunfeng.model.AppOrderRide;
import com.stylefeng.guns.modular.shunfeng.service.IAppEvaluateService;
import com.stylefeng.guns.modular.shunfeng.service.IAppOrderRideService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
/**
 * 顺风车订单控制器
 * @Date 2020-05-06 16:43:18
 */
@Controller
@RequestMapping("/appOrderRide")
public class AppOrderRideController extends BaseController {
    private String PREFIX = "/shunfeng/appOrderRide/";
    @Autowired
    private IAppOrderRideService appOrderRideService;
    @Autowired
    private IAppEvaluateService appEvaluateService;
    /**
     * 跳转到顺风车订单首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "appOrderRide.html";
    }
    /**
     * 跳转到添加顺风车订单
     */
    @RequestMapping("/appOrderRide_add")
    public String appOrderRideAdd() {
        return PREFIX + "appOrderRide_add.html";
    }
    /**
     * 跳转到修改顺风车订单
     */
    @RequestMapping("/appOrderRide_update/{appOrderRideId}")
    public String appOrderRideUpdate(@PathVariable Integer appOrderRideId, Model model) {
        AppOrderRide appOrderRide=new AppOrderRide();
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        appOrderRide.setId(appOrderRideId);
        Map<String,Object> map= appOrderRideService.getAppOrderRide(appOrderRide,page ).get(0);
        String stateName="已取消";//1待付款,2已发单,3待出行,4出行中,5完成,6取消
        if(map.get("stateU").toString().equals("1")){
            stateName="待付款";
        }else if(map.get("stateU").toString().equals("2")){
            stateName="已发单";
        }else if(map.get("stateU").toString().equals("3")){
            stateName="待出行";
        }else if(map.get("stateU").toString().equals("4")){
            stateName="出行中";
        }else if(map.get("stateU").toString().equals("5")){
            if(map.get("isEvaluate").toString().equals("1")){
                stateName="已完成";
            }else {
                stateName="已评价";
            }
        }else {
            stateName="已取消";
        }
        map.put("stateName",stateName);
        String payTypeName="无";//1=余额 2=微信 3=支付宝
        if(map.get("payType")!=null){
            if(map.get("payType").toString().equals("1")){
                payTypeName="余额";
            }else if(map.get("payType").toString().equals("2")){
                payTypeName="微信";
            }else if(map.get("payType").toString().equals("3")){
                payTypeName="支付宝";
            }
        }
        map.put("payTypeName",payTypeName);
        AppEvaluate appEvaluate=appEvaluateService.selectOne(new EntityWrapper<AppEvaluate>().eq("type",2).eq("orderId",appOrderRideId));
        model.addAttribute("item",map);
        model.addAttribute("evaluate",appEvaluate);
        /*LogObjectHolder.me().set(appOrderRide);*/
        return PREFIX + "appOrderRide_edit.html";
    }
    /**
     * 获取顺风车订单列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(AppOrderRide appOrderRide) {
        Page<Map<String,Object>> page = new PageFactory<Map<String,Object>>().defaultPage();
        List<Map<String, Object>> result = appOrderRideService.getAppOrderRide(appOrderRide,page);
        page.setRecords(result);
        return super.packForBT(page);
    }
    /**
     * 新增顺风车订单
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(AppOrderRide appOrderRide) {
        appOrderRideService.insert(appOrderRide);
        return SUCCESS_TIP;
    }
    /**
     * 删除顺风车订单
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer appOrderRideId) {
        appOrderRideService.deleteById(appOrderRideId);
        return SUCCESS_TIP;
    }
    /**
     * 修改顺风车订单
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(AppOrderRide appOrderRide) {
        appOrderRideService.updateById(appOrderRide);
        return SUCCESS_TIP;
    }
    /**
     * 顺风车订单详情
     */
    @RequestMapping(value = "/detail/{appOrderRideId}")
    @ResponseBody
    public Object detail(@PathVariable("appOrderRideId") Integer appOrderRideId) {
        return appOrderRideService.selectById(appOrderRideId);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/AppParamRideController.java
New file
@@ -0,0 +1,136 @@
package com.stylefeng.guns.modular.shunfeng.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.modular.shunfeng.model.AppParamRide;
import com.stylefeng.guns.modular.shunfeng.service.IAppParamRideService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.List;
/**
 * 顺风车设置控制器
 * @Date 2020-04-26 10:14:53
 */
@Controller
@RequestMapping("/appParamRide")
public class AppParamRideController extends BaseController {
    private String PREFIX = "/shunfeng/appParamRide/";
    @Autowired
    private IAppParamRideService appParamRideService;
    /**
     * 跳转到顺风车设置首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "appParamRide.html";
    }
    /**
     * 跳转到添加顺风车设置
     */
    @RequestMapping("/appParamRide_add")
    public String appParamRideAdd() {
        return PREFIX + "appParamRide_add.html";
    }
    /**
     * 跳转到修改顺风车设置
     */
    @RequestMapping("/appParamRide_update/{appParamRideId}")
    public String appParamRideUpdate(@PathVariable Integer appParamRideId, Model model) {
        AppParamRide appParamRide = appParamRideService.selectById(appParamRideId);
        model.addAttribute("item",appParamRide);
        LogObjectHolder.me().set(appParamRide);
        return PREFIX + "appParamRide_edit.html";
    }
    /**
     * 获取设置列表
     * @param type 1价格设置,2平台抽成,3乘客退单,4司机退单
     */
    @RequestMapping(value = "/getContentByType")
    @ResponseBody
    public Object list(Integer type) {
        List<AppParamRide> paramList=new ArrayList<>();
        if(type==1){//价格设置
            paramList= appParamRideService.selectList(new EntityWrapper<AppParamRide>().in("type","1"));
        }else if(type==2){//平台抽成
            paramList= appParamRideService.selectList(new EntityWrapper<AppParamRide>().in("type","2"));
        }else if(type==3){//乘客退单
            paramList= appParamRideService.selectList(new EntityWrapper<AppParamRide>().in("type","3"));
        }else if(type==4){//司机退单
            paramList= appParamRideService.selectList(new EntityWrapper<AppParamRide>().in("type","4"));
        }
        return paramList;
    }
    /**
     * 获取顺风车设置列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(String condition) {
        return appParamRideService.selectList(null);
    }
    /**
     * 新增顺风车设置
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(AppParamRide appParamRide) {
        appParamRideService.insert(appParamRide);
        return SUCCESS_TIP;
    }
    /**
     * 删除顺风车设置
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer appParamRideId) {
        appParamRideService.deleteById(appParamRideId);
        return SUCCESS_TIP;
    }
    /**
     * 修改顺风车设置
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(AppParamRide appParamRide) {
        if(appParamRide.getType()==1){//价格设置需要单独设置
            String[] contexts=appParamRide.getContext().split("-");
            for(int i = 1;i<6;i++){
                appParamRide.setId(i);
                appParamRide.setDistanceType(i);
                appParamRide.setContext(contexts[i-1]);
                appParamRideService.updateById(appParamRide);
            }
        }else {
            appParamRide.setId(appParamRide.getType()+4);
            appParamRideService.updateById(appParamRide);
        }
        return SUCCESS_TIP;
    }
    /**
     * 顺风车设置详情
     */
    @RequestMapping(value = "/detail/{appParamRideId}")
    @ResponseBody
    public Object detail(@PathVariable("appParamRideId") Integer appParamRideId) {
        return appParamRideService.selectById(appParamRideId);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppComplaintsMapper.java
New file
@@ -0,0 +1,34 @@
package com.stylefeng.guns.modular.shunfeng.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.modular.shunfeng.model.AppComplaints;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 投诉管理; InnoDB free: 11264 kB Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2019-06-24
 */
public interface AppComplaintsMapper extends BaseMapper<AppComplaints> {
    /**
     * 出租车投诉列表
     * @param appComplaints
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppComplaintsTaxi(AppComplaints appComplaints, Page page);
    /**
     * 顺风车投诉列表
     * @param appComplaints
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppComplaintsRide(AppComplaints appComplaints, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppDriverRideMapper.java
New file
@@ -0,0 +1,26 @@
package com.stylefeng.guns.modular.shunfeng.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.modular.shunfeng.model.AppDriverRide;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 顺风车司机 Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-27
 */
public interface AppDriverRideMapper extends BaseMapper<AppDriverRide> {
    /**
     * 获取顺风车司机列表
     * @param appDriverRide
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppDriverRide(AppDriverRide appDriverRide, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppEvaluateMapper.java
New file
@@ -0,0 +1,34 @@
package com.stylefeng.guns.modular.shunfeng.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.modular.shunfeng.model.AppEvaluate;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 评价 Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2019-09-12
 */
public interface AppEvaluateMapper extends BaseMapper<AppEvaluate> {
    /**
     * 获取评价数据
     * @param appEvaluate
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppEvaluate(AppEvaluate appEvaluate, Page page);
    /**
     * 顺风车评价
     * @param appEvaluate
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppEvaluateRide(AppEvaluate appEvaluate, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppOrderRideMapper.java
New file
@@ -0,0 +1,26 @@
package com.stylefeng.guns.modular.shunfeng.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.modular.shunfeng.model.AppOrderRide;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 顺风车订单 Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2020-05-06
 */
public interface AppOrderRideMapper extends BaseMapper<AppOrderRide> {
    /**
     * 获取顺风车订单列表
     * @param appOrderRide
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppOrderRide(AppOrderRide appOrderRide, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/AppParamRideMapper.java
New file
@@ -0,0 +1,16 @@
package com.stylefeng.guns.modular.shunfeng.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.shunfeng.model.AppParamRide;
/**
 * <p>
 * 顺风车设置 Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-26
 */
public interface AppParamRideMapper extends BaseMapper<AppParamRide> {
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppComplaintsMapper.xml
New file
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.shunfeng.dao.AppComplaintsMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.shunfeng.model.AppComplaints">
        <id column="id" property="id" />
        <result column="addTime" property="addTime" />
        <result column="userId" property="userId" />
        <result column="context" property="content" />
        <result column="reMark" property="reMark" />
        <result column="phone" property="phone" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, addTime, userId, context, reMark, phone
    </sql>
    <!--获取投诉列表(出租车)-->
    <select id="getAppComplaintsTaxi" resultType="map">
        select c.*,d.`name` as driverName,d.phone as driverPhone_ ,u.nickName ,u.phone as userPhone_ from app_complaints c
        left join app_driver_taxi d on c.driverId =d.id
        left join app_user_info u on c.userId=u.id
    <where>
        <if test="type!=null">
            and c.type=2
        </if>
        <if test="beginTime != null and beginTime != ''">
            and c.addTime &gt;= CONCAT(#{beginTime},' 00:00:00')
        </if>
        <if test=" endTime != null and endTime != ''">
            and c.addTime &lt;=  CONCAT(#{endTime},' 23:59:59')
        </if>
        <if test="userName!=null and userName!=''">
            and (u.nickName like '%${userName}%' or u.phone like  '%${userName}%')
        </if>
        <if test="driverName!=null and driverName!=''">
            and (d.name like '%${driverName}%' or d.phone like  '%${driverName}%')
        </if>
    </where>
        order by c.addTime desc
    </select>
    <!--顺风车投诉-->
    <select id="getAppComplaintsRide" resultType="map">
        select c.*,u1.realName as driverName,u1.phone as driverPhone_ ,u.nickName ,u.phone as userPhone_ from app_complaints c
        left join app_user_info u1 on u1.driverId=c.driverId
        left join app_user_info u on c.userId=u.id
        <where>
            <if test="type!=null">
                and c.type=#{type}
            </if>
            <if test="beginTime != null and beginTime != ''">
                and c.addTime &gt;= CONCAT(#{beginTime},' 00:00:00')
            </if>
            <if test=" endTime != null and endTime != ''">
                and c.addTime &lt;=  CONCAT(#{endTime},' 23:59:59')
            </if>
            <if test="userName!=null and userName!=''">
                and (u.nickName like '%${userName}%' or u.phone like  '%${userName}%')
            </if>
            <if test="driverName!=null and driverName!=''">
                and (u1.realName like '%${driverName}%' or u1.phone like  '%${driverName}%')
            </if>
        </where>
        order by c.addTime desc
    </select>
</mapper>
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppDriverRideMapper.xml
New file
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.shunfeng.dao.AppDriverRideMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.shunfeng.model.AppDriverRide">
        <id column="id" property="id" />
        <result column="addTime" property="addTime" />
        <result column="companyId" property="companyId" />
        <result column="carType" property="carType" />
        <result column="carNum" property="carNum" />
        <result column="license" property="license" />
        <result column="licenseImg" property="licenseImg" />
        <result column="comInsuranceTime" property="comInsuranceTime" />
        <result column="comInsuranceImg" property="comInsuranceImg" />
        <result column="businessInsuranceTime" property="businessInsuranceTime" />
        <result column="businessInsuranceImg" property="businessInsuranceImg" />
        <result column="dutyInsuranceTime" property="dutyInsuranceTime" />
        <result column="dutyInsuranceImg" property="dutyInsuranceImg" />
        <result column="annualInspectionTime" property="annualInspectionTime" />
        <result column="annualInspectionImg" property="annualInspectionImg" />
        <result column="userId" property="userId" />
        <result column="state" property="state" />
        <result column="byInviteCode" property="byInviteCode" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, addTime, companyId, carType, carNum, license, licenseImg, comInsuranceTime, comInsuranceImg, businessInsuranceTime, businessInsuranceImg, dutyInsuranceTime, dutyInsuranceImg, annualInspectionTime, annualInspectionImg, userId, state, byInviteCode
    </sql>
    <!--获取顺风车司机列表-->
    <select id="getAppDriverRide" resultType="map">
      select r.*,u.phone,u.nickName as realName,u.idCard as `identity`,r.id as uid
      from app_driver_ride r
          left join t_user u on r.userId=u.id
      <where>
          and r.isDelete = 0
          <if test="phone !=null and phone !=''">
              and u.phone like '%${phone}%'
          </if>
          <if test="carType!=null and carType!=''">
              and r.carType like '%${carType}%'
          </if>
          <if test="carNum!=null and carNum!=''">
              and r.carNum like '%${carNum}%'
          </if>
          <if test="license!=null and license!=''">
              and r.license like '%${license}%'
          </if>
          <if test="state!=null">
              and r.state = #{state}
          </if>
          <if test="userId!=null">
              and r.userId = #{userId}
          </if>
          <if test="realName!=null and realName!=''">
              and u.nickName = #{realName}
          </if>
          <if test="excep!=null">
              <if test="excep==1">
                  and  now() > r.comInsuranceTime  and now() > r.businessInsuranceTime and now() > r.dutyInsuranceTime and now() > r.annualInspectionTime
              </if>
              <if test="excep==2">
                  and   r.comInsuranceTime now() >  and  r.businessInsuranceTime > now() and r.dutyInsuranceTime > now() and  r.annualInspectionTime > now()
              </if>
          </if>
      </where>
        order by r.addTime desc
    </select>
</mapper>
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppEvaluateMapper.xml
New file
@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.shunfeng.dao.AppEvaluateMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.shunfeng.model.AppEvaluate">
        <id column="id" property="id" />
        <result column="addTime" property="addTime" />
        <result column="userId" property="userId" />
        <result column="driverId" property="driverId" />
        <result column="score" property="score" />
        <result column="content" property="content" />
        <result column="type" property="type" />
        <result column="userPhone" property="userPhone" />
        <result column="driverPhone" property="driverPhone" />
        <result column="orderId" property="orderId" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, addTime, userId, driverId, score, content, type, userPhone, driverPhone, orderId
    </sql>
    <!--获取评价数据-->
    <select id="getAppEvaluate" resultType="map">
        select e.*,d.`name` as driverName,d.phone as driverPhone_ ,u.nickName ,u.phone as userPhone_
        from app_evaluate e
        left join app_driver_taxi d on e.driverId =d.id
        left join app_user_info u on e.userId=u.id
      <where>
          and e.type = 1
          <if test="beginTime != null and beginTime != ''">
              and e.addTime &gt;= CONCAT(#{beginTime},' 00:00:00')
          </if>
          <if test=" endTime != null and endTime != ''">
              and e.addTime &lt;=  CONCAT(#{endTime},' 23:59:59')
          </if>
          <if test=" score>0">
              and e.score = #{score}
          </if>
          <if test="userName!=null and userName!=''">
              and (u.nickName like '%${userName}%' or u.phone like  '%${userName}%')
          </if>
          <if test="driverName!=null and driverName!=''">
              and (d.name like '%${driverName}%' or d.phone like  '%${driverName}%')
          </if>
      </where>
        order by e.addTime desc
    </select>
    <!--顺风车评价列表-->
    <select id="getAppEvaluateRide" resultType="map">
        select e.*,u1.name as driverName,u1.phone as driverPhone_ ,u.nickName ,u.phone as userPhone_
        from app_evaluate e
        left join t_driver u1 on u1.id=e.driverId
        left join t_user u on e.userId=u.id
        <where>
            and e.type = 2
            <if test="beginTime != null and beginTime != ''">
                and e.addTime &gt;= CONCAT(#{beginTime},' 00:00:00')
            </if>
            <if test=" endTime != null and endTime != ''">
                and e.addTime &lt;=  CONCAT(#{endTime},' 23:59:59')
            </if>
            <if test=" score>0">
                and e.score = #{score}
            </if>
            <if test="userName!=null and userName!=''">
                and (u.nickName like '%${userName}%' or u.phone like  '%${userName}%')
            </if>
            <if test="driverName!=null and driverName!=''">
                and (u1.name like '%${driverName}%' or u1.phone like  '%${driverName}%')
            </if>
        </where>
        order by e.addTime desc
    </select>
</mapper>
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppOrderRideMapper.xml
New file
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.shunfeng.dao.AppOrderRideMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.shunfeng.model.AppOrderRide">
        <id column="id" property="id" />
        <result column="addTime" property="addTime" />
        <result column="userId" property="userId" />
        <result column="startTime" property="startTime" />
        <result column="num" property="num" />
        <result column="startName" property="startName" />
        <result column="endName" property="endName" />
        <result column="lxPhone" property="lxPhone" />
        <result column="isDai" property="isDai" />
        <result column="money" property="money" />
        <result column="state" property="state" />
        <result column="isEvaluate" property="isEvaluate" />
        <result column="isComplaint" property="isComplaint" />
        <result column="startLon" property="startLon" />
        <result column="startLat" property="startLat" />
        <result column="endLon" property="endLon" />
        <result column="endLat" property="endLat" />
        <result column="travelId" property="travelId" />
        <result column="payType" property="payType" />
        <result column="tuiMoney" property="tuiMoney" />
        <result column="serviceMoney" property="serviceMoney" />
        <result column="platformMoney" property="platformMoney" />
        <result column="driverId" property="driverId" />
        <result column="orderNum" property="orderNum" />
        <result column="payTime" property="payTime" />
        <result column="couponId" property="couponId" />
        <result column="couponName" property="couponName" />
        <result column="couponMoney" property="couponMoney" />
        <result column="outNum" property="outNum" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, addTime, userId, startTime, num, startName, endName, lxPhone, isDai, money, state, isEvaluate, isComplaint, startLon, startLat, endLon, endLat, travelId, payType, tuiMoney, serviceMoney, platformMoney, driverId, orderNum, payTime, couponId, couponName, couponMoney, outNum
    </sql>
    <!--获取顺风车订单列表-->
    <select id="getAppOrderRide" resultType="map">
        select r.id,u.realName as nameU,u.identity as identityU,u.phone as phoneU,r.startName as startNameU,r.endName as endNameU,r.num as numU,r.addTime as addTimeU,r.startTime as startTimeU,
        u1.id as driverUserId,u1.phone as phoneD,u1.realName as nameD,u1.identity as identityD,t.startName as startNameD,t.endName as endNameD,t.startTime as startTimeD,
        t.num as numD,r.state as stateU,t.state as stateD,r.isEvaluate,r.payTime,r.payType,r.money
        from app_order_ride r
        left join app_order_travel t on r.travelId=t.id
        left join app_user_info u on r.userId=u.id
        left join app_driver_ride i on i.id=t.driverId
        left join app_user_info u1 on  u1.driverId=t.driverId
        <where>
            <if test="id!=null">
                and r.id = #{id}
            </if>
            <if test="state!=null">
                <if test="7>state">
                    and r.state = #{state}
                </if>
                <if test="state==7">
                    and r.state = 5
                    and r.isEvaluate = 2
                </if>
                <if test="state==8">
                    and r.state = 5
                    and r.isEvaluate = 1
                </if>
            </if>
        </where>
        order by r.addTime desc
    </select>
</mapper>
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/dao/mapping/AppParamRideMapper.xml
New file
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stylefeng.guns.modular.shunfeng.dao.AppParamRideMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.shunfeng.model.AppParamRide">
        <id column="id" property="id" />
        <result column="type" property="type" />
        <result column="distanceType" property="distanceType" />
        <result column="context" property="context" />
        <result column="remark" property="remark" />
        <result column="openCityId" property="openCityId" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, type, numType, distanceType, context, remark, openCityId
    </sql>
</mapper>
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppComplaints.java
New file
@@ -0,0 +1,202 @@
package com.stylefeng.guns.modular.shunfeng.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * 投诉管理; InnoDB free: 11264 kB
 * </p>
 *
 * @author stylefeng123
 * @since 2019-06-24
 */
@TableName("app_complaints")
public class AppComplaints extends Model<AppComplaints> {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 时间
     */
    private Date addTime;
    /**
     * 用户ID
     */
    private Integer userId;
    /**
     * 内容
     */
    private String content;
    /**
     * 备注
     */
    private String reMark;
    /**
     * 投诉用户电话
     */
    private String phone;
    /**
     * 司机id
     */
    private Integer driverId;
    /**
     * 1未处理,2已处理
     */
    private Integer state;
    /**
     * 1其他,2出租车司机
     */
    private Integer type;
    /**
     * 时间查询条件(开始)
     */
    @TableField(exist = false)
    private String beginTime;
    /**
     * 时间查询条件(结束)
     */
    @TableField(exist = false)
    private String endTime;
    /**
     * 用户
     */
    @TableField(exist = false)
    private String userName;
    /**
     * 司机
     */
    @TableField(exist = false)
    private String driverName;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Date getAddTime() {
        return addTime;
    }
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getReMark() {
        return reMark;
    }
    public void setReMark(String reMark) {
        this.reMark = reMark;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getBeginTime() {
        return beginTime;
    }
    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }
    public String getEndTime() {
        return endTime;
    }
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getDriverName() {
        return driverName;
    }
    public void setDriverName(String driverName) {
        this.driverName = driverName;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    @Override
    public String toString() {
        return "AppComplaints{" +
        "id=" + id +
        ", addTime=" + addTime +
        ", userId=" + userId +
        ", content=" + content +
        ", reMark=" + reMark +
        ", phone=" + phone +
        "}";
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppDriverRide.java
New file
@@ -0,0 +1,348 @@
package com.stylefeng.guns.modular.shunfeng.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * 顺风车司机
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-27
 */
@TableName("app_driver_ride")
public class AppDriverRide extends Model<AppDriverRide> {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 申请时间
     */
    private Date addTime;
    /**
     * 所属公司
     */
    private Integer companyId;
    /**
     * 车辆品牌
     */
    private String carType;
    /**
     * 车牌
     */
    private String carNum;
    /**
     * 驾驶证号
     */
    private String license;
    /**
     * 驾驶证图片
     */
    private String licenseImg;
    /**
     * 交强险到期时间
     */
    private String comInsuranceTime;
    /**
     * 交强险照片
     */
    private String comInsuranceImg;
    /**
     * 商业险到期时间
     */
    private String businessInsuranceTime;
    /**
     * 商业险图片
     */
    private String businessInsuranceImg;
    /**
     * 驾乘人员责任险到期时间
     */
    private String dutyInsuranceTime;
    /**
     * 驾乘人员责任险照片
     */
    private String dutyInsuranceImg;
    /**
     * 年检到期时间
     */
    private String annualInspectionTime;
    /**
     * 年检图片
     */
    private String annualInspectionImg;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 1等待审核,2审核通过,3不通过
     */
    private Integer state;
    /**
     * 别人的邀请码
     */
    private String byInviteCode;
    /**
     * 审核备注
     */
    private String remark;
    /**
     * 状态 1=正常 2=禁用
     */
    private Integer status;
    /**
     *   是否删除  0否,1是
     */
    private Integer isDelete;
    public Integer getIsDelete() {
        return isDelete;
    }
    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }
    /**
     * 用户电话(所属条件)
     */
    @TableField(exist = false)
    private String phone;
    /**
     * 用户真实名称
     */
    @TableField(exist = false)
    private String realName;
    /**
     * 是否为异常订单(0否,1是)
     */
    @TableField(exist = false)
    private Integer excep;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Date getAddTime() {
        return addTime;
    }
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }
    public Integer getCompanyId() {
        return companyId;
    }
    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }
    public String getCarType() {
        return carType;
    }
    public void setCarType(String carType) {
        this.carType = carType;
    }
    public String getCarNum() {
        return carNum;
    }
    public void setCarNum(String carNum) {
        this.carNum = carNum;
    }
    public String getLicense() {
        return license;
    }
    public void setLicense(String license) {
        this.license = license;
    }
    public String getLicenseImg() {
        return licenseImg;
    }
    public void setLicenseImg(String licenseImg) {
        this.licenseImg = licenseImg;
    }
    public String getComInsuranceTime() {
        return comInsuranceTime;
    }
    public void setComInsuranceTime(String comInsuranceTime) {
        this.comInsuranceTime = comInsuranceTime;
    }
    public String getComInsuranceImg() {
        return comInsuranceImg;
    }
    public void setComInsuranceImg(String comInsuranceImg) {
        this.comInsuranceImg = comInsuranceImg;
    }
    public String getBusinessInsuranceTime() {
        return businessInsuranceTime;
    }
    public void setBusinessInsuranceTime(String businessInsuranceTime) {
        this.businessInsuranceTime = businessInsuranceTime;
    }
    public String getBusinessInsuranceImg() {
        return businessInsuranceImg;
    }
    public void setBusinessInsuranceImg(String businessInsuranceImg) {
        this.businessInsuranceImg = businessInsuranceImg;
    }
    public String getDutyInsuranceTime() {
        return dutyInsuranceTime;
    }
    public void setDutyInsuranceTime(String dutyInsuranceTime) {
        this.dutyInsuranceTime = dutyInsuranceTime;
    }
    public String getDutyInsuranceImg() {
        return dutyInsuranceImg;
    }
    public void setDutyInsuranceImg(String dutyInsuranceImg) {
        this.dutyInsuranceImg = dutyInsuranceImg;
    }
    public String getAnnualInspectionTime() {
        return annualInspectionTime;
    }
    public void setAnnualInspectionTime(String annualInspectionTime) {
        this.annualInspectionTime = annualInspectionTime;
    }
    public String getAnnualInspectionImg() {
        return annualInspectionImg;
    }
    public void setAnnualInspectionImg(String annualInspectionImg) {
        this.annualInspectionImg = annualInspectionImg;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public String getByInviteCode() {
        return byInviteCode;
    }
    public void setByInviteCode(String byInviteCode) {
        this.byInviteCode = byInviteCode;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getRealName() {
        return realName;
    }
    public void setRealName(String realName) {
        this.realName = realName;
    }
    public Integer getExcep() {
        return excep;
    }
    public void setExcep(Integer excep) {
        this.excep = excep;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    @Override
    public String toString() {
        return "AppDriverRide{" +
        "id=" + id +
        ", addTime=" + addTime +
        ", companyId=" + companyId +
        ", carType=" + carType +
        ", carNum=" + carNum +
        ", license=" + license +
        ", licenseImg=" + licenseImg +
        ", comInsuranceTime=" + comInsuranceTime +
        ", comInsuranceImg=" + comInsuranceImg +
        ", businessInsuranceTime=" + businessInsuranceTime +
        ", businessInsuranceImg=" + businessInsuranceImg +
        ", dutyInsuranceTime=" + dutyInsuranceTime +
        ", dutyInsuranceImg=" + dutyInsuranceImg +
        ", annualInspectionTime=" + annualInspectionTime +
        ", annualInspectionImg=" + annualInspectionImg +
        ", userId=" + userId +
        ", state=" + state +
        ", byInviteCode=" + byInviteCode +
        "}";
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppEvaluate.java
New file
@@ -0,0 +1,221 @@
package com.stylefeng.guns.modular.shunfeng.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * 评价
 * </p>
 *
 * @author stylefeng123
 * @since 2019-09-12
 */
@TableName("app_evaluate")
public class AppEvaluate extends Model<AppEvaluate> {
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 时间
     */
    private Date addTime;
    /**
     * 评论用户ID
     */
    private Integer userId;
    /**
     * 被评司机
     */
    private Integer driverId;
    /**
     * 评论分数
     */
    private Integer score;
    /**
     * 评论内容
     */
    private String content;
    /**
     * 1出租车
     */
    private Integer type;
    /**
     * 评价用户手机
     */
    private String userPhone;
    /**
     * 被评司机电话
     */
    private String driverPhone;
    /**
     * 订单id
     */
    private Integer orderId;
    /**
     * 时间查询条件(开始)
     */
    @TableField(exist = false)
    private String beginTime;
    /**
     * 时间查询条件(结束)
     */
    @TableField(exist = false)
    private String endTime;
    /**
     * 用户
     */
    @TableField(exist = false)
    private String userName;
    /**
     * 司机
     */
    @TableField(exist = false)
    private String driverName;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Date getAddTime() {
        return addTime;
    }
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public Integer getScore() {
        return score;
    }
    public void setScore(Integer score) {
        this.score = score;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getUserPhone() {
        return userPhone;
    }
    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }
    public String getDriverPhone() {
        return driverPhone;
    }
    public void setDriverPhone(String driverPhone) {
        this.driverPhone = driverPhone;
    }
    public Integer getOrderId() {
        return orderId;
    }
    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }
    public String getBeginTime() {
        return beginTime;
    }
    public void setBeginTime(String beginTime) {
        this.beginTime = beginTime;
    }
    public String getEndTime() {
        return endTime;
    }
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getDriverName() {
        return driverName;
    }
    public void setDriverName(String driverName) {
        this.driverName = driverName;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    @Override
    public String toString() {
        return "AppEvaluate{" +
        "id=" + id +
        ", addTime=" + addTime +
        ", userId=" + userId +
        ", driverId=" + driverId +
        ", score=" + score +
        ", content=" + content +
        ", type=" + type +
        ", userPhone=" + userPhone +
        ", driverPhone=" + driverPhone +
        ", orderId=" + orderId +
        "}";
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppOrderRide.java
New file
@@ -0,0 +1,414 @@
package com.stylefeng.guns.modular.shunfeng.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * 顺风车订单
 * </p>
 *
 * @author stylefeng123
 * @since 2020-05-06
 */
@TableName("app_order_ride")
public class AppOrderRide extends Model<AppOrderRide> {
    private static final long serialVersionUID = 1L;
    /**
     * ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 添加时间
     */
    private Date addTime;
    /**
     * 用户id
     */
    private Integer userId;
    /**
     * 出发时间
     */
    private Date startTime;
    /**
     * 同行人数
     */
    private Integer num;
    /**
     * 出发地
     */
    private String startName;
    /**
     * 目的地
     */
    private String endName;
    /**
     * 联系电话
     */
    private String lxPhone;
    /**
     * 是否代喊  1=是 2=否
     */
    private Integer isDai;
    /**
     * 金额
     */
    private Double money;
    /**
     * 状态(1未支付,2已支付,3待出行,4出行中,5完成,6取消)
     */
    private Integer state;
    /**
     * 是否评价(1未评价,2已评价)
     */
    private Integer isEvaluate;
    /**
     * 是否投诉(1未投诉,2已投诉)
     */
    private Integer isComplaint;
    /**
     * 出发地经度
     */
    private Double startLon;
    /**
     * 出发地纬度
     */
    private Double startLat;
    /**
     * 目的地经度
     */
    private Double endLon;
    /**
     * 目的地纬度
     */
    private Double endLat;
    /**
     * 司机订单id
     */
    private Integer travelId;
    /**
     * 1=余额 2=微信 3=支付宝
     */
    private Integer payType;
    /**
     * 退款金额
     */
    private Double tuiMoney;
    /**
     * 取消服务费(取消时才会有)
     */
    private Double serviceMoney;
    /**
     * 平台抽成金额(下单的时候就需要计算)
     */
    private Double platformMoney;
    /**
     * 司机id
     */
    private Integer driverId;
    /**
     * 订单编号
     */
    private String orderNum;
    /**
     * 支付时间
     */
    private Date payTime;
    /**
     * 优惠券id
     */
    private Integer couponId;
    /**
     * 优惠券名称
     */
    private String couponName;
    /**
     * 优惠券金额
     */
    private Double couponMoney;
    /**
     * 支付流水
     */
    private String outNum;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Date getAddTime() {
        return addTime;
    }
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
    public String getStartName() {
        return startName;
    }
    public void setStartName(String startName) {
        this.startName = startName;
    }
    public String getEndName() {
        return endName;
    }
    public void setEndName(String endName) {
        this.endName = endName;
    }
    public String getLxPhone() {
        return lxPhone;
    }
    public void setLxPhone(String lxPhone) {
        this.lxPhone = lxPhone;
    }
    public Integer getIsDai() {
        return isDai;
    }
    public void setIsDai(Integer isDai) {
        this.isDai = isDai;
    }
    public Double getMoney() {
        return money;
    }
    public void setMoney(Double money) {
        this.money = money;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Integer getIsEvaluate() {
        return isEvaluate;
    }
    public void setIsEvaluate(Integer isEvaluate) {
        this.isEvaluate = isEvaluate;
    }
    public Integer getIsComplaint() {
        return isComplaint;
    }
    public void setIsComplaint(Integer isComplaint) {
        this.isComplaint = isComplaint;
    }
    public Double getStartLon() {
        return startLon;
    }
    public void setStartLon(Double startLon) {
        this.startLon = startLon;
    }
    public Double getStartLat() {
        return startLat;
    }
    public void setStartLat(Double startLat) {
        this.startLat = startLat;
    }
    public Double getEndLon() {
        return endLon;
    }
    public void setEndLon(Double endLon) {
        this.endLon = endLon;
    }
    public Double getEndLat() {
        return endLat;
    }
    public void setEndLat(Double endLat) {
        this.endLat = endLat;
    }
    public Integer getTravelId() {
        return travelId;
    }
    public void setTravelId(Integer travelId) {
        this.travelId = travelId;
    }
    public Integer getPayType() {
        return payType;
    }
    public void setPayType(Integer payType) {
        this.payType = payType;
    }
    public Double getTuiMoney() {
        return tuiMoney;
    }
    public void setTuiMoney(Double tuiMoney) {
        this.tuiMoney = tuiMoney;
    }
    public Double getServiceMoney() {
        return serviceMoney;
    }
    public void setServiceMoney(Double serviceMoney) {
        this.serviceMoney = serviceMoney;
    }
    public Double getPlatformMoney() {
        return platformMoney;
    }
    public void setPlatformMoney(Double platformMoney) {
        this.platformMoney = platformMoney;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public String getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }
    public Date getPayTime() {
        return payTime;
    }
    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }
    public Integer getCouponId() {
        return couponId;
    }
    public void setCouponId(Integer couponId) {
        this.couponId = couponId;
    }
    public String getCouponName() {
        return couponName;
    }
    public void setCouponName(String couponName) {
        this.couponName = couponName;
    }
    public Double getCouponMoney() {
        return couponMoney;
    }
    public void setCouponMoney(Double couponMoney) {
        this.couponMoney = couponMoney;
    }
    public String getOutNum() {
        return outNum;
    }
    public void setOutNum(String outNum) {
        this.outNum = outNum;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    @Override
    public String toString() {
        return "AppOrderRide{" +
        "id=" + id +
        ", addTime=" + addTime +
        ", userId=" + userId +
        ", startTime=" + startTime +
        ", num=" + num +
        ", startName=" + startName +
        ", endName=" + endName +
        ", lxPhone=" + lxPhone +
        ", isDai=" + isDai +
        ", money=" + money +
        ", state=" + state +
        ", isEvaluate=" + isEvaluate +
        ", isComplaint=" + isComplaint +
        ", startLon=" + startLon +
        ", startLat=" + startLat +
        ", endLon=" + endLon +
        ", endLat=" + endLat +
        ", travelId=" + travelId +
        ", payType=" + payType +
        ", tuiMoney=" + tuiMoney +
        ", serviceMoney=" + serviceMoney +
        ", platformMoney=" + platformMoney +
        ", driverId=" + driverId +
        ", orderNum=" + orderNum +
        ", payTime=" + payTime +
        ", couponId=" + couponId +
        ", couponName=" + couponName +
        ", couponMoney=" + couponMoney +
        ", outNum=" + outNum +
        "}";
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/model/AppParamRide.java
New file
@@ -0,0 +1,108 @@
package com.stylefeng.guns.modular.shunfeng.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
/**
 * <p>
 * 顺风车设置
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-26
 */
@TableName("app_param_ride")
public class AppParamRide extends Model<AppParamRide> {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 1价格设置,2平台抽成,3乘客退单,4司机退单
     */
    private Integer type;
    /**
     * 距离类型(1-100,100-200,200-500,500-800,800以上)
     */
    private Integer distanceType;
    /**
     * 内容
     */
    private String context;
    /**
     * 描述
     */
    private String remark;
    private Integer openCityId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getDistanceType() {
        return distanceType;
    }
    public void setDistanceType(Integer distanceType) {
        this.distanceType = distanceType;
    }
    public String getContext() {
        return context;
    }
    public void setContext(String context) {
        this.context = context;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Integer getOpenCityId() {
        return openCityId;
    }
    public void setOpenCityId(Integer openCityId) {
        this.openCityId = openCityId;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
    }
    @Override
    public String toString() {
        return "AppParamRide{" +
        "id=" + id +
        ", type=" + type +
        ", distanceType=" + distanceType +
        ", context=" + context +
        ", remark=" + remark +
        ", openCityId=" + openCityId +
        "}";
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppComplaintsService.java
New file
@@ -0,0 +1,33 @@
package com.stylefeng.guns.modular.shunfeng.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.shunfeng.model.AppComplaints;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 投诉管理; InnoDB free: 11264 kB 服务类
 * </p>
 *
 * @author stylefeng123
 * @since 2019-06-24
 */
public interface IAppComplaintsService extends IService<AppComplaints> {
    /**
     * 出租车投诉列表
     * @param appComplaints
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppComplaintsTaxi(AppComplaints appComplaints, Page page);
    /**
     * 顺风车投诉列表
     * @param appComplaints
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppComplaintsRide(AppComplaints appComplaints, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppDriverRideService.java
New file
@@ -0,0 +1,26 @@
package com.stylefeng.guns.modular.shunfeng.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.shunfeng.model.AppDriverRide;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 顺风车司机 服务类
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-27
 */
public interface IAppDriverRideService extends IService<AppDriverRide> {
    /**
     * 获取顺风车司机列表
     * @param appDriverRide
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppDriverRide(AppDriverRide appDriverRide, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppEvaluateService.java
New file
@@ -0,0 +1,33 @@
package com.stylefeng.guns.modular.shunfeng.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.shunfeng.model.AppEvaluate;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 评价 服务类
 * </p>
 *
 * @author stylefeng123
 * @since 2019-09-12
 */
public interface IAppEvaluateService extends IService<AppEvaluate> {
    /**
     * 获取评价数据
     * @param appEvaluate
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppEvaluate(AppEvaluate appEvaluate, Page page);
    /**
     * 顺风车评价
     * @param appEvaluate
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppEvaluateRide(AppEvaluate appEvaluate, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppOrderRideService.java
New file
@@ -0,0 +1,25 @@
package com.stylefeng.guns.modular.shunfeng.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.shunfeng.model.AppOrderRide;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 顺风车订单 服务类
 * </p>
 *
 * @since 2020-05-06
 */
public interface IAppOrderRideService extends IService<AppOrderRide> {
    /**
     * 获取顺风车订单列表
     * @param appOrderRide
     * @param page
     * @return
     */
    List<Map<String,Object>> getAppOrderRide(AppOrderRide appOrderRide, Page page);
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/IAppParamRideService.java
New file
@@ -0,0 +1,16 @@
package com.stylefeng.guns.modular.shunfeng.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.shunfeng.model.AppParamRide;
/**
 * <p>
 * 顺风车设置 服务类
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-26
 */
public interface IAppParamRideService extends IService<AppParamRide> {
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppComplaintsServiceImpl.java
New file
@@ -0,0 +1,32 @@
package com.stylefeng.guns.modular.shunfeng.service.impl;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.shunfeng.dao.AppComplaintsMapper;
import com.stylefeng.guns.modular.shunfeng.model.AppComplaints;
import com.stylefeng.guns.modular.shunfeng.service.IAppComplaintsService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 投诉管理; InnoDB free: 11264 kB 服务实现类
 * </p>
 *
 * @author stylefeng123
 * @since 2019-06-24
 */
@Service
public class AppComplaintsServiceImpl extends ServiceImpl<AppComplaintsMapper, AppComplaints> implements IAppComplaintsService {
    @Override
    public List<Map<String, Object>> getAppComplaintsTaxi(AppComplaints appComplaints, Page page) {
        return this.baseMapper.getAppComplaintsTaxi(appComplaints,page);
    }
    @Override
    public List<Map<String, Object>> getAppComplaintsRide(AppComplaints appComplaints, Page page) {
        return this.baseMapper.getAppComplaintsRide(appComplaints,page);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppDriverRideServiceImpl.java
New file
@@ -0,0 +1,27 @@
package com.stylefeng.guns.modular.shunfeng.service.impl;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.shunfeng.dao.AppDriverRideMapper;
import com.stylefeng.guns.modular.shunfeng.model.AppDriverRide;
import com.stylefeng.guns.modular.shunfeng.service.IAppDriverRideService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 顺风车司机 服务实现类
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-27
 */
@Service
public class AppDriverRideServiceImpl extends ServiceImpl<AppDriverRideMapper, AppDriverRide> implements IAppDriverRideService {
    @Override
    public List<Map<String, Object>> getAppDriverRide(AppDriverRide appDriverRide, Page page) {
        return this.baseMapper.getAppDriverRide(appDriverRide,page);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppEvaluateServiceImpl.java
New file
@@ -0,0 +1,32 @@
package com.stylefeng.guns.modular.shunfeng.service.impl;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.shunfeng.dao.AppEvaluateMapper;
import com.stylefeng.guns.modular.shunfeng.model.AppEvaluate;
import com.stylefeng.guns.modular.shunfeng.service.IAppEvaluateService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 评价 服务实现类
 * </p>
 *
 * @author stylefeng123
 * @since 2019-09-12
 */
@Service
public class AppEvaluateServiceImpl extends ServiceImpl<AppEvaluateMapper, AppEvaluate> implements IAppEvaluateService {
    @Override
    public List<Map<String, Object>> getAppEvaluate(AppEvaluate appEvaluate, Page page) {
        return this.baseMapper.getAppEvaluate(appEvaluate,page);
    }
    @Override
    public List<Map<String, Object>> getAppEvaluateRide(AppEvaluate appEvaluate, Page page) {
        return this.baseMapper.getAppEvaluateRide(appEvaluate,page);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppOrderRideServiceImpl.java
New file
@@ -0,0 +1,27 @@
package com.stylefeng.guns.modular.shunfeng.service.impl;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.shunfeng.dao.AppOrderRideMapper;
import com.stylefeng.guns.modular.shunfeng.model.AppOrderRide;
import com.stylefeng.guns.modular.shunfeng.service.IAppOrderRideService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * 顺风车订单 服务实现类
 * </p>
 *
 * @author stylefeng123
 * @since 2020-05-06
 */
@Service
public class AppOrderRideServiceImpl extends ServiceImpl<AppOrderRideMapper, AppOrderRide> implements IAppOrderRideService {
    @Override
    public List<Map<String, Object>> getAppOrderRide(AppOrderRide appOrderRide, Page page) {
        return this.baseMapper.getAppOrderRide(appOrderRide,page);
    }
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/service/impl/AppParamRideServiceImpl.java
New file
@@ -0,0 +1,20 @@
package com.stylefeng.guns.modular.shunfeng.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.shunfeng.dao.AppParamRideMapper;
import com.stylefeng.guns.modular.shunfeng.model.AppParamRide;
import com.stylefeng.guns.modular.shunfeng.service.IAppParamRideService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 顺风车设置 服务实现类
 * </p>
 *
 * @author stylefeng123
 * @since 2020-04-26
 */
@Service
public class AppParamRideServiceImpl extends ServiceImpl<AppParamRideMapper, AppParamRide> implements IAppParamRideService {
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderCrossCityController.java
@@ -1,6 +1,5 @@
package com.stylefeng.guns.modular.system.controller.specialTrain;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
@@ -10,14 +9,15 @@
import com.stylefeng.guns.core.util.DateUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.controller.general.TDriverController;
import com.stylefeng.guns.modular.system.controller.util.GetOpenBodySig;
import com.stylefeng.guns.modular.system.dao.LineShiftDriverMapper;
import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import org.apache.commons.lang.time.DateFormatUtils;
import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
import com.stylefeng.guns.modular.system.util.PushURL;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
@@ -446,9 +446,6 @@
    @Autowired
    private IIncomeService incomeService;
@Autowired
private TDriverController tDriverController;
    /**
     * 取消跨城出行订单
@@ -605,35 +602,5 @@
        tOrderCrossCityService.updateById(tOrderCrossCity);
        return SUCCESS_TIP;
    }
    public static ResultUtil cancleMoney(BigDecimal amount,String no) throws Exception {
        JSONObject json = new JSONObject();
        json.put("requestTimestamp", DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));    // 报文请求时间
//        json.put("merOrderId", Util.getMerOrderId("34U0")); // 商户订单号
        json.put("merOrderId", no); // 商户订单号
        json.put("mid", "898150841210108"); // 商户号
        json.put("tid", "84UJWSE8");    // 终端号
        json.put("instMid", "QRPAYDEFAULT"); // 业务类型
        BigDecimal multiply = amount.multiply(new BigDecimal(100));
        int money = multiply.intValue();
        json.put("refundAmount",money);      // 支付总金额
        System.err.println("请求报文json:\n" + json);
        String  url = "https://test-api-open.chinaums.com/v1/netpay/refund";
//        String  url = "https://api-mop.chinaums.com/v1/netpay/refund";
        //OPEN-BODY-SIG 方式
        String result = GetOpenBodySig.sendOpenBodySig(url, json.toString());
        System.err.println("响应报文json:\n" + result);
        JSONObject jsonObject = JSONObject.parseObject(result);
        Object appPayRequest = jsonObject.get("appPayRequest");
        System.out.println(appPayRequest);
        return ResultUtil.success(appPayRequest);
    }
    @Autowired
    private ITEnterpriseWithdrawalService tEnterpriseWithdrawalService;
    @Autowired
    private IUserWithdrawalService userWithdrawalService;
}
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/GetOpenBodySig.java
File was deleted
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/SendSms.java
File was deleted
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/VenueLatVo.java
File was deleted
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/util/WoUtil.java
File was deleted
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TUser.java
@@ -1,12 +1,13 @@
package com.stylefeng.guns.modular.system.model;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
/**
 * <p>
@@ -126,6 +127,18 @@
    private Integer insertUser;
    private Date updateTime;
    private Integer updateUser;
    /**
     * 是否为顺风车司机(0否,1是)
     */
    private Integer isDriverRide;
    /**
     * 顺风车司机id
     */
    private Integer driverId;
    /**
     * 实名认证照片
     */
    private String certificationImg;
    public Integer getId() {
@@ -360,6 +373,30 @@
        this.updateUser = updateUser;
    }
    public Integer getIsDriverRide() {
        return isDriverRide;
    }
    public void setIsDriverRide(Integer isDriverRide) {
        this.isDriverRide = isDriverRide;
    }
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    public String getCertificationImg() {
        return certificationImg;
    }
    public void setCertificationImg(String certificationImg) {
        this.certificationImg = certificationImg;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
ManagementQYTTravel/guns-admin/src/main/resources/application-dev.yml
@@ -34,7 +34,7 @@
    password: 123456
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  type-aliases-package: com.stylefeng.guns.modular
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
ManagementQYTTravel/guns-admin/src/main/resources/application-prod.yml
@@ -38,7 +38,7 @@
      nodes: 172.21.35.151:6512,172.21.35.152:6512,172.21.35.153:6512,172.21.35.151:6513,172.21.35.152:6513,172.21.35.153:6513
mybatis-plus:
  type-aliases-package: com.stylefeng.guns.modular.system.model
  type-aliases-package: com.stylefeng.guns.modular
  global-config:
    id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
    db-column-underline: false
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaints.html
New file
@@ -0,0 +1,45 @@
@layout("/common/_container.html"){
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>投诉管理</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <div class="col-sm-2">
                                <#NameCon id="phone" name="用户电话" />
                            </div>
                            <div class="col-sm-2">
                                <#TimeCon id="beginTime" name="开始日期" isTime="false" pattern="YYYY-MM-DD"/>
                            </div>
                            <div class="col-sm-2">
                                <#TimeCon id="endTime" name="结束日期" isTime="false" pattern="YYYY-MM-DD"/>
                            </div>
                            <div class="col-sm-3">
                                <#button name="搜索" icon="fa-search" clickFun="AppComplaints.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="AppComplaints.resetSearch()"/>
                            </div>
                        </div>
                        <div class="hidden-xs" id="AppComplaintsTableToolbar" role="group">
                            @if(shiro.hasPermission("/appComplaints/add")){
                                <#button name="添加" icon="fa-plus" clickFun="AppComplaints.openAddAppComplaints()"/>
                            @}
                            @if(shiro.hasPermission("/appComplaints/update")){
                                <#button name="修改" icon="fa-edit" clickFun="AppComplaints.openAppComplaintsDetail()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/appComplaints/delete")){
                                <#button name="删除" icon="fa-remove" clickFun="AppComplaints.delete()" space="true"/>
                            @}
                        </div>
                        <#table id="AppComplaintsTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appComplaints/appComplaints.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaintsRide.html
New file
@@ -0,0 +1,79 @@
@layout("/common/_container.html"){
<style>
    .titleItem {
        float: left;
        text-align: center;
        width: 180px;
        line-height: 40px;
        border-top: 1px solid #E7EBEE;
        border-bottom: 1px solid #E7EBEE;
        border-left: 1px solid #E7EBEE;
        font-size: 16px;
    }
    .titleDiv {
        overflow: hidden;
    }
    .titleItemCk {
        color: #fff !important;
        background: #1AB395 !important;
    }
    .titleItem:last-child {
        border-right: 1px solid #E7EBEE;
    }
</style>
<div class="search_box" style="margin-left: 2%;">
    <div class="titleDiv">
        <!--1 司机投诉 ,2 用户投诉-->
        <div id="titleDivU1" class="titleItem titleItemCk" onclick="AppComplaints.titleClick('titleDivU1',3)">顺风车司机投诉</div>
        <div id="titleDivU2" class="titleItem" onclick="AppComplaints.titleClick('titleDivU2',4)">顺风车用户投诉</div>
    </div>
    <!--全部订单-->
    <div id="container">
        <div id="tab" class="tab-pane">
            <div class="row">
                <div class="col-sm-12">
                    <div class="ibox float-e-margins">
                        <div class="ibox-content">
                            <div class="row row-lg">
                                <div class="col-sm-12">
                                    <div class="row">
                                        <div class="col-sm-3">
                                            <#TimeCon id="beginTime" name="开始日期" isTime="false" pattern="YYYY-MM-DD"/>
                                        </div>
                                        <div class="col-sm-3">
                                            <#TimeCon id="endTime" name="结束日期" isTime="false" pattern="YYYY-MM-DD"/>
                                        </div>
                                        <div class="col-sm-3">
                                            <#NameCon id="userName" name="评论用户" />
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-sm-3">
                                            <#NameCon id="driverName" name="被评司机" />
                                        </div>
                                        <div class="col-sm-3">
                                            <#SelectCon id="score" name="分数" >
                                            <option value="0" selected>全部</option>
                                            <option value="1">1星</option>
                                            <option value="2">2星</option>
                                            <option value="3">3星</option>
                                            <option value="4">4星</option>
                                            <option value="5">5星</option>
                                        </#SelectCon>
                                    </div>
                                    <div class="col-sm-3">
                                        <#button name="搜索" icon="fa-search" clickFun="AppComplaints.search()"/>
                                        <#button name="重置" icon="fa-trash" clickFun="AppComplaints.resetSearch()"/>
                                    </div>
                                </div>
                                <#table id="AppComplaintsTable"/>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appComplaints/appComplaintsRide.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaints_add.html
New file
@@ -0,0 +1,39 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <input type="hidden" id="id" value="">
            <div class="row">
                <div class="col-sm-8">
                    <#input id="phone" name="用户电话" underline="true"/>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">内容</label>
                        <div class="col-sm-9">
                            <textarea type="text/plain" style="width:90%;height:200px;" id="content"></textarea>
                        </div>
                    </div>
                    <div class="hr-line-dashed"></div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">备注说明</label>
                        <div class="col-sm-9">
                            <textarea type="text/plain" style="width:90%;height:100px;" id="reMark"></textarea>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="AppComplaintsInfoDlg.addSubmit()"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="AppComplaintsInfoDlg.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appComplaints/appComplaints_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appComplaints/appComplaints_edit.html
New file
@@ -0,0 +1,33 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <input type="hidden" id="id" value="${item.id}">
            <div class="row">
                <div class="col-sm-6 b-r">
                            <#input id="id" name="" value="${item.id}" underline="true"/>
                            <#input id="addTime" name="时间" value="${item.addTime}" underline="true"/>
                            <#input id="userId" name="用户ID" value="${item.userId}" />
                </div>
                <div class="col-sm-6">
                            <#input id="context" name="内容" value="${item.content}" underline="true"/>
                            <#input id="reMark" name="备注" value="${item.reMark}" underline="true"/>
                            <#input id="phone" name="投诉用户电话" value="${item.phone}" />
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="AppComplaintsInfoDlg.editSubmit()"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="AppComplaintsInfoDlg.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appComplaints/appComplaints_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide.html
New file
@@ -0,0 +1,46 @@
@layout("/common/_container.html"){
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>顺风车司机管理</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <div class="col-sm-2">
                                <#NameCon id="userId" name="用户id" />
                            </div>
                            <div class="col-sm-2">
                                <#NameCon id="phone" name="用户手机号" />
                            </div>
                            <div class="col-sm-2">
                                <#NameCon id="realName" name="真实姓名" />
                            </div>
                            <div class="col-sm-2">
                                <#NameCon id="carNum" name="车牌号" />
                            </div>
                            <div class="col-sm-2">
                                <#SelectCon id="excep" name="异常账号" >
                                <option value="">全部</option>
                                <option value="0">否</option>
                                <option value="1">是</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-2">
                                <#button name="搜索" icon="fa-search" clickFun="AppDriverRide.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="AppDriverRide.resetSearch()"/>
                            </div>
                        </div>
                        <div class="hidden-xs" id="AppDriverRideTableToolbar" role="group">
                        </div>
                        <#table id="AppDriverRideTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appDriverRide/appDriverRide.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_audit.html
New file
@@ -0,0 +1,38 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <input type="hidden" id="id" value="${item.id}">
            <div class="row">
                <div class="col-sm-8">
                    <div class="form-group">
                        <label class="col-sm-3 control-label">是否通过</label>
                        <div class="col-sm-9">
                            <input type="radio" name="state" checked value="2">通过
                            <input type="radio" name="state" value="3">不通过
                        </div>
                    </div>
                    <div class="hr-line-dashed"></div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">备注</label>
                        <div class="col-sm-9">
                            <textarea type="text/plain" style="width:90%;height:200px;" id="remark"></textarea>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="AppDriverRideInfoDlg.editSubmit()"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="AppDriverRideInfoDlg.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appDriverRide/appDriverRide_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_auditList.html
New file
@@ -0,0 +1,50 @@
@layout("/common/_container.html"){
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>顺风车司机审核管理</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <div class="col-sm-2">
                            <#NameCon id="userId" name="用户id" />
                        </div>
                            <div class="col-sm-2">
                                <#NameCon id="phone" name="用户手机号" />
                            </div>
                            <div class="col-sm-2">
                                <#NameCon id="realName" name="真实姓名" />
                            </div>
                            <div class="col-sm-2">
                                <#NameCon id="carNum" name="车牌号" />
                            </div>
                            <div class="col-sm-2">
                                <#SelectCon id="state" name="状态" >
                                <option value="">全部</option>
                                <option value="1">待审核</option>
                                <option value="2">通过</option>
                                <option value="3">拒绝</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-2">
                                <#button name="搜索" icon="fa-search" clickFun="AppDriverRide.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="AppDriverRide.resetSearch()"/>
                            </div>
                        </div>
                        <div class="hidden-xs" id="AppDriverRideTableToolbar" role="group">
                            @if(shiro.hasPermission("/appDriver/audit")){
                            <#button name="审核" icon="fa-plus" clickFun="AppDriverRide.audit()"/>
                            @}
                        </div>
                        <#table id="AppDriverRideTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appDriverRide/appDriverRide_auditList.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_detail.html
New file
@@ -0,0 +1,86 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <div class="row">
                <div class="col-sm-6">
                    <input type="hidden" id="id" name="id" value="${item.id}">
                    <#label id="userId" name="用户id"  value="${item.userId}"/>
                    <#label id="phone" name="用户手机号"  value="${user.phone}"/>
                    <#label id="realName" name="真实姓名"  value="${user.realName}"/>
                    <#label id="identity" name="驾驶证号"  value="${item.license}"/>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾驶证照片</label>
                        <div class="col-sm-9">
                            <img src="${item.licenseImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">认证照片</label>
                        <div class="col-sm-9">
                            <img src="${user.certificationImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <#label id="identity" name="车辆品牌"  value="${item.carType}"/>
                    <#input id="carNum" name="车牌" value="${item.carNum}"/>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">交强险到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" readonly id="comInsuranceTime" value="${item.comInsuranceTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">交强险照片</label>
                        <div class="col-sm-9">
                            <img src="${item.comInsuranceImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">商业险到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" readonly id="businessInsuranceTime" value="${item.businessInsuranceTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">商业险图片</label>
                        <div class="col-sm-9">
                            <img src="${item.businessInsuranceImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾乘人员责任险到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date"  readonly id="dutyInsuranceTime" value="${item.dutyInsuranceTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾乘人员责任险照片</label>
                        <div class="col-sm-9">
                            <img src="${item.dutyInsuranceImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">年检到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" readonly id="annualInspectionTime" value="${item.annualInspectionTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">年检图片</label>
                        <div class="col-sm-9">
                            <img src="${item.annualInspectionImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="AppDriverRideInfoDlg.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appDriverRide/appDriverRide_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_showPic.html
New file
@@ -0,0 +1,52 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <div class="row">
                <div class="col-sm-6">
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾驶证图片</label>
                        <div class="col-sm-9">
                            <img src="${item.licenseImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">交强险照片</label>
                        <div class="col-sm-9">
                            <img src="${item.comInsuranceImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">商业险图片</label>
                        <div class="col-sm-9">
                            <img src="${item.businessInsuranceImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                </div>
                <div class="col-sm-6">
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾乘人员责任险照片</label>
                        <div class="col-sm-9">
                            <img src="${item.dutyInsuranceImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">年检图片</label>
                        <div class="col-sm-9">
                            <img src="${item.annualInspectionImg}" width="150px" height="150px" onclick="showBigPic(this)">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">备注</label>
                        <div class="col-sm-9">
                            <span>${item.remark}</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appDriverRide/appDriverRide_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appDriverRide/appDriverRide_update.html
New file
@@ -0,0 +1,90 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <div class="row">
                <div class="col-sm-6">
                    <input type="hidden" id="id" name="id" value="${item.id}">
                    <#label id="userId" name="用户id"  value="${item.userId}"/>
                    <#label id="phone" name="用户手机号"  value="${user.phone}"/>
                    <#label id="realName" name="真实姓名"  value="${user.realName}"/>
                    <#label id="identity" name="身份证号"  value="${user.identity}"/>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">认证照片</label>
                        <div class="col-sm-9">
                            <#uploadImg id="certificationImg"  value="${user.certificationImg}" fileImg="${user.certificationImg}"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">车辆品牌</label>
                        <div class="col-sm-9">
                            <select class="form-control" id="carType" name="carType">
                                @for(b in brands){
                                    <option value="${b.name}" ${item.carType == b.name ? 'selected=selected' : ''}>${b.name}</option>
                                @}
                            </select>
                        </div>
                    </div>
                    <#input id="carNum" name="车牌" value="${item.carNum}"/>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">交强险到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" onclick="laydate({istime: false, format: 'YYYY-MM-DD',min:laydate.now(0)})" id="comInsuranceTime" value="${item.comInsuranceTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">交强险照片</label>
                        <div class="col-sm-9">
                            <#uploadImg id="comInsuranceImg"  value="${item.comInsuranceImg}" fileImg="${item.comInsuranceImg}"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">商业险到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" onclick="laydate({istime: false, format: 'YYYY-MM-DD',min:laydate.now(0)})" id="businessInsuranceTime" value="${item.businessInsuranceTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">商业险图片</label>
                        <div class="col-sm-9">
                            <#uploadImg id="businessInsuranceImg"  value="${item.businessInsuranceImg}" fileImg="${item.businessInsuranceImg}"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾乘人员责任险到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" onclick="laydate({istime: false, format: 'YYYY-MM-DD',min:laydate.now(0)})" id="dutyInsuranceTime" value="${item.dutyInsuranceTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">驾乘人员责任险照片</label>
                        <div class="col-sm-9">
                            <#uploadImg id="dutyInsuranceImg"  value="${item.dutyInsuranceImg}" fileImg="${item.dutyInsuranceImg}"/>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">年检到期时间</label>
                        <div class="col-sm-9">
                            <input type="text" class="form-control layer-date" onclick="laydate({istime: false, format: 'YYYY-MM-DD',min:laydate.now(0)})" id="annualInspectionTime" value="${item.annualInspectionTime}">
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-sm-3 control-label">年检图片</label>
                        <div class="col-sm-9">
                            <#uploadImg id="annualInspectionImg"  value="${item.annualInspectionImg}" fileImg="${item.annualInspectionImg}"/>
                        </div>
                    </div>
                </div>
            </div>
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="AppDriverRideInfoDlg.editSubmit()"/>
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="AppDriverRideInfoDlg.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appDriverRide/appDriverRide_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appEvaluate/appEvaluate.html
New file
@@ -0,0 +1,74 @@
@layout("/common/_container.html"){
<style>
    .titleItem {
        float: left;
        text-align: center;
        width: 180px;
        line-height: 40px;
        border-top: 1px solid #E7EBEE;
        border-bottom: 1px solid #E7EBEE;
        border-left: 1px solid #E7EBEE;
        font-size: 16px;
    }
    .titleDiv {
        overflow: hidden;
    }
    .titleItemCk {
        color: #fff !important;
        background: #1AB395 !important;
    }
    .titleItem:last-child {
        border-right: 1px solid #E7EBEE;
    }
</style>
<div class="search_box" style="margin-left: 2%;">
    <!--全部订单-->
    <div id="container">
        <div id="tab" class="tab-pane">
            <div class="row">
                <div class="col-sm-12">
                    <div class="ibox float-e-margins">
                        <div class="ibox-content">
                            <div class="row row-lg">
                                <div class="col-sm-12">
                                    <div class="row">
                                        <div class="col-sm-3">
                                            <#TimeCon id="beginTime" name="开始日期" isTime="false" pattern="YYYY-MM-DD"/>
                                        </div>
                                        <div class="col-sm-3">
                                            <#TimeCon id="endTime" name="结束日期" isTime="false" pattern="YYYY-MM-DD"/>
                                        </div>
                                        <div class="col-sm-3">
                                            <#NameCon id="userName" name="评论用户" />
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-sm-3">
                                            <#NameCon id="driverName" name="被评司机" />
                                        </div>
                                        <div class="col-sm-3">
                                            <#SelectCon id="score" name="分数" >
                                            <option value="0" selected>全部</option>
                                            <option value="1">1星</option>
                                            <option value="2">2星</option>
                                            <option value="3">3星</option>
                                            <option value="4">4星</option>
                                            <option value="5">5星</option>
                                        </#SelectCon>
                                    </div>
                                    <div class="col-sm-3">
                                        <#button name="搜索" icon="fa-search" clickFun="AppEvaluate.search()"/>
                                        <#button name="重置" icon="fa-trash" clickFun="AppEvaluate.resetSearch()"/>
                                    </div>
                                </div>
                                <#table id="AppEvaluateTable"/>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appEvaluate/appEvaluate.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appOrderRide/appOrderRide.html
New file
@@ -0,0 +1,43 @@
@layout("/common/_container.html"){
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>顺风车订单管理</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <div class="col-sm-2">
                                <!--状态(1待付款,2已发单,3待出行,4出行中,5完成,6取消)-->
                                <#SelectCon id="state" name="状态" >
                                <option value="">全部</option>
                                <option value="1">待付款</option>
                                <option value="2">已发单</option>
                                <option value="3">待出行</option>
                                <option value="4">出行中</option>
                                <option value="8">已完成</option>
                                <option value="7">已评价</option>
                                <option value="6">已取消</option>
                                </#SelectCon>
                            </div>
                            <div class="col-sm-3">
                                <#button name="搜索" icon="fa-search" clickFun="AppOrderRide.search()"/>
                                <#button name="重置" icon="fa-trash" clickFun="AppOrderRide.resetSearch()"/>
                            </div>
                        </div>
                        <div class="hidden-xs" id="AppOrderRideTableToolbar" role="group">
                            @if(shiro.hasPermission("/appOrderRide/delete")){
                                <#button name="删除" icon="fa-remove" clickFun="AppOrderRide.delete()" space="true"/>
                            @}
                        </div>
                        <#table id="AppOrderRideTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appOrderRide/appOrderRide.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appOrderRide/appOrderRide_edit.html
New file
@@ -0,0 +1,60 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal">
            <input type="hidden" id="id" value="${item.id}">
            <div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">出行信息</div>
            <div class="row">
                <div class="col-sm-8">
                    <#label id="id" name="订单id" value="${item.id}" underline="true"/>
                    <#label id="phoneU" name="乘客手机号" value="${item.phoneU}" underline="true"/>
                    <#label id="nameU" name="乘客真实姓名" value="${item.nameU}" underline="true"/>
                    <#label id="identityU" name="乘客身份证号" value="${item.identityU}" underline="true"/>
                    <#label id="startNameU" name="出发地" value="${item.startNameU}" underline="true"/>
                    <#label id="endNameU" name="目的地" value="${item.endNameU}" underline="true"/>
                    <#label id="startTimeU" name="出发时间" value="${item.startTimeU}" underline="true"/>
                    <#label id="numU" name="乘客人数" value="${item.numU}" underline="true"/>
                    <#label id="addTimeU" name="下单时间" value="${item.addTimeU}" underline="true"/>
                    <#label id="driverUserId" name="司机用户id" value="${item.driverUserId}" underline="true"/>
                    <#label id="phoneD" name="司机手机号" value="${item.phoneD}" underline="true"/>
                    <#label id="nameD" name="真实姓名" value="${item.nameD}" underline="true"/>
                    <#label id="identityD" name="身份证号" value="${item.identityD}" underline="true"/>
                    <#label id="startNameD" name="出发地" value="${item.startNameD}" underline="true"/>
                    <#label id="endNameD" name="目的地" value="${item.endNameD}" underline="true"/>
                    <#label id="startTimeD" name="出发时间" value="${item.startTimeD}" underline="true"/>
                    <#label id="numD" name="可乘人数" value="${item.numD}" underline="true"/>
                    <#label id="stateName" name="状态" value="${item.stateName}"/>
                </div>
            </div>
            @if(item.stateU>1 && item.stateU<6){
                <div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">支付信息</div>
                <div class="row">
                    <div class="col-sm-8">
                        <#label id="money" name="订单金额" value="${item.money}" underline="true"/>
                        <#label id="payTime" name="支付时间" value="${item.payTime}" underline="true"/>
                        <#label id="payType" name="支付方式" value="${item.payTypeName}"/>
                    </div>
                </div>
            @}
            @if(evaluate!=null){
                <div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">评论</div>
                <div class="row">
                    <div class="col-sm-8">
                        <#label id="score" name="分数" value="${evaluate.score}" underline="true"/>
                        <#label id="content" name="评价内容" value="${evaluate.content}" />
                    </div>
                </div>
            @}
            <div class="row btn-group-m-t">
                <div class="col-sm-10">
                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="AppOrderRideInfoDlg.close()"/>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appOrderRide/appOrderRide_info.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/shunfeng/appParamRide/appParamRide.html
New file
@@ -0,0 +1,189 @@
@layout("/common/_container.html"){
<style>
    .titleItem {
        float: left;
        text-align: center;
        width: 170px;
        line-height: 40px;
        border-top: 1px solid #E7EBEE;
        border-bottom: 1px solid #E7EBEE;
        border-left: 1px solid #E7EBEE;
        font-size: 16px;
    }
    .titleDiv {
        overflow: hidden;
    }
    .titleItemCk {
        color: #fff !important;
        background: #1AB395 !important;
    }
    .titleItem:last-child {
        border-right: 1px solid #E7EBEE;
    }
    .panel-body input {width: 70px;}
    /*.nav > li.active {
        border-left: 2px solid #19aa8d;
        background: #19aa8d;
    }*/
    p span{
        color: red;
        padding-right: 7px;
    }
    input{
        border: 1px solid #e5e6e7;
        text-align: center;
        height: 33px;
    }
    select{
        background-image: none;
        border: 1px solid #e5e6e7;
        border-radius: 1px;
        color: inherit;
        padding: 6px 12px;
        -webkit-transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
        transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
        font-size: 14px;
    }
    p{
        line-height: 30px;
    }
    strong{
        margin-left: 20px;
        line-height: 35px;
    }
    /*表格样式*/
    table.gridtable {
        font-family: verdana,arial,sans-serif;
        font-size:11px;
        color:#333333;
        border-width: 1px;
        border-color: #666666;
        border-collapse: collapse;
        width: 100%;
    }
    table.gridtable th {
        border-width: 1px;
        padding: 8px;
        border-style: solid;
        border-color: #cbd3d9;
        background-color: #e7eaec;
        width:300px;
    }
    table.gridtable td {
        border-width: 1px;
        padding: 8px;
        border-style: solid;
        border-color: #e7eaec;
        background-color: #ffffff;
        width:300px;
    }
</style>
<div class="search_box" style="margin-left: 2%;">
    <div class="titleDiv">
        <div id="titleDivU1" class="titleItem titleItemCk" onclick="AppParamRide.titleClick('titleDivU1',1)">价格设置</div>
        <div id="titleDivU2" class="titleItem " onclick="AppParamRide.titleClick('titleDivU2',2)">平台抽成</div>
        <div id="titleDivU3" class="titleItem" onclick="AppParamRide.titleClick('titleDivU3',3)">乘客退单</div>
        <div id="titleDivU4" class="titleItem" onclick="AppParamRide.titleClick('titleDivU4',4)">司机退单</div>
    </div>
    <!--价格设置-->
    <div class="ibox float-e-margins" id="titleDivU1Form">
        <div class="ibox-content">
            <div class="form-horizontal" id="form1">
                <!--<div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">价格设置</div>-->
                <div class="row" style="margin-top: 20px">
                    <div class="col-sm-12">
                        <table class="gridtable" >
                            <tr id="thContent">
                                <th style="text-align: center">~</th>
                                <th>1个人</th>
                                <th>2个人</th>
                                <th>3个人</th>
                                <th>4个人</th>
                                <th>5个人</th>
                                <th>6个人</th>
                                <th>7个人</th>
                                <th>8个人</th>
                            </tr>
                            <!--<tr>
                                <td style="text-align: center">i</td>
                                <td style="text-align: center"></td>
                                <td style="text-align: center"></td>
                                <td style="text-align: center"></td>
                                <td style="text-align: center"></td>
                            </tr>-->
                        </table>
                    </div>
                </div>
                <div class="row btn-group-m-t">
                    <div class="col-sm-10">
                        <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="AppParamRide.editSubmit(1)"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!--平台抽成-->
    <div class="ibox float-e-margins" id="titleDivU2Form" hidden>
        <div class="ibox-content">
            <div class="form-horizontal" id="form2">
                <!--<div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">平台抽成</div>-->
                <div class="row" style="margin-top: 20px">
                    <div class="col-sm-8">
                        <p><span>*</span>1个人提 <input type="text" id="commission1" class="commission">元</p>
                        <p><span>*</span>2个人提 <input type="text" id="commission2" class="commission">元</p>
                        <p><span>*</span>3个人提 <input type="text" id="commission3" class="commission">元</p>
                        <p><span>*</span>4个人提 <input type="text" id="commission4" class="commission">元</p>
                        <p><span>*</span>5个人提 <input type="text" id="commission5" class="commission">元</p>
                        <p><span>*</span>6个人提 <input type="text" id="commission6" class="commission">元</p>
                        <p><span>*</span>7个人提 <input type="text" id="commission7" class="commission">元</p>
                        <p><span>*</span>8个人提 <input type="text" id="commission8" class="commission">元</p>
                    </div>
                </div>
                <div class="row btn-group-m-t">
                    <div class="col-sm-10">
                        <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="AppParamRide.editSubmit(2)"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!--乘客退单-->
    <div class="ibox float-e-margins" id="titleDivU3Form" hidden>
            <div class="ibox-content">
            <div class="form-horizontal" id="form3">
                <!--<div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">乘客退单</div>-->
                <div class="row" style="margin-top: 20px">
                    <div class="col-sm-8">
                        <p><span>*</span> <input type="text" id="paramTD1">倍平台提成金额</p>
                    </div>
                </div>
                <div class="row btn-group-m-t">
                    <div class="col-sm-10">
                        <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="AppParamRide.editSubmit(3)"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!--司机退单-->
    <div class="ibox float-e-margins" id="titleDivU4Form" hidden>
        <div class="ibox-content">
            <div class="form-horizontal" id="form4">
                <!--<div style="height: 50px;line-height:50px;width: 100%;background-color: #eeeeee;font-size: 15px;font-weight: bold;padding-left: 10px">司机退单</div>-->
                <div class="row" style="margin-top: 20px">
                    <div class="col-sm-8">
                        <p><span>*</span> <input type="text" id="paramTD2">倍平台提成金额</p>
                    </div>
                </div>
                <div class="row btn-group-m-t">
                    <div class="col-sm-10">
                        <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="AppParamRide.editSubmit(4)"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/shunfeng/appParamRide/appParamRide.js"></script>
@}
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaints.js
New file
@@ -0,0 +1,134 @@
/**
 * 投诉管理管理初始化
 */
var AppComplaints = {
    id: "AppComplaintsTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppComplaints.initColumn = function () {
    return [
            {field: 'selectItem', radio: true},
            {title: '投诉ID', field: 'id', visible: true, align: 'center', valign: 'middle'},
            {title: '时间', field: 'addTime', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉用户电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
            {title: '内容', field: 'content', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    var v=value;
                    if(value!=null && value!=''){
                        if(value.length>20){
                            v=value.substring(0,20)+"......";
                        }
                        return '<span title="'+value+'">'+v+'</span>';
                    }
                }
            },
            {title: '备注', field: 'reMark', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    var v=value;
                    if(value!=null && value!=''){
                        if(value.length>20){
                            v=value.substring(0,20)+"......";
                        }
                        return '<span title="'+value+'">'+v+'</span>';
                    }
                }
            },
    ];
};
/**
 * 检查是否选中
 */
AppComplaints.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppComplaints.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加投诉管理
 */
AppComplaints.openAddAppComplaints = function () {
    var index = layer.open({
        type: 2,
        title: '添加投诉管理',
        area: ['60%', '80%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appComplaints/appComplaints_add'
    });
    this.layerIndex = index;
};
/**
 * 打开查看投诉管理详情
 */
AppComplaints.openAppComplaintsDetail = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: '投诉管理详情',
            area: ['800px', '420px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/appComplaints/appComplaints_update/' + AppComplaints.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除投诉管理
 */
AppComplaints.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appComplaints/delete", function (data) {
            Feng.success("删除成功!");
            AppComplaints.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appComplaintsId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 查询投诉管理列表
 */
AppComplaints.search = function () {
    var queryData = {};
    queryData['phone'] = $("#phone").val();
    queryData['beginTime'] = $("#beginTime").val();
    queryData['endTime'] = $("#endTime").val();
    AppComplaints.table.refresh({query: queryData});
};
/**
 * 重置
 */
AppComplaints.resetSearch = function () {
    $("#beginTime").val("");
    $("#endTime").val("");
    $("#phone").val("");
    AppComplaints.search();
};
$(function () {
    var defaultColunms = AppComplaints.initColumn();
    var table = new BSTable(AppComplaints.id, "/appComplaints/list", defaultColunms);
    table.setPaginationType("server");
    AppComplaints.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaintsRide.js
New file
@@ -0,0 +1,168 @@
var type_=3;//默认普通订单评价
/**
 * 投诉管理管理初始化
 */
var AppComplaints = {
    id: "AppComplaintsTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppComplaints.initColumn = function () {
    if(type_==3){
        return [
            {field: 'selectItem', radio: true,visible:false},
            {title: '投诉时间', field: 'addTime', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉电话号码', field: 'driverPhone_', visible: true, align: 'center', valign: 'middle'},
            {title: '被投诉用户', field: 'nickName', visible: true, align: 'center', valign: 'middle'},
            {title: '被投诉用户电话号码', field: 'userPhone_', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉内容', field: 'content', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    var v=value;
                    if(v=="其他"){
                        v=row.reMark;
                    }
                    if(value!=null && value!=''){
                        if(value.length>20){
                            v=value.substring(0,20)+"......";
                        }
                        return '<span title="'+value+'">'+v+'</span>';
                    }
                }
            },
        ];
    }else {
        return [
            {field: 'selectItem', radio: true,visible:false},
            {title: '投诉时间', field: 'addTime', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉用户', field: 'nickName', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉用户电话号码', field: 'userPhone_', visible: true, align: 'center', valign: 'middle'},
            {title: '被投诉司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'},
            {title: '被投诉电话号码', field: 'driverPhone_', visible: true, align: 'center', valign: 'middle'},
            {title: '投诉内容', field: 'content', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    var v=value;
                    if(v=="其他"){
                        v=row.reMark;
                    }
                    if(value!=null && value!=''){
                        if(value.length>20){
                            v=value.substring(0,20)+"......";
                        }
                        return '<span title="'+value+'">'+v+'</span>';
                    }
                }
            },
        ];
    }
};
/**
 * 检查是否选中
 */
AppComplaints.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppComplaints.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加投诉管理
 */
AppComplaints.openAddAppComplaints = function () {
    var index = layer.open({
        type: 2,
        title: '添加投诉管理',
        area: ['60%', '80%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appComplaints/appComplaints_add'
    });
    this.layerIndex = index;
};
/**
 * 打开查看投诉管理详情
 */
AppComplaints.openAppComplaintsDetail = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: '投诉管理详情',
            area: ['800px', '420px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/appComplaints/appComplaints_update/' + AppComplaints.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除投诉管理
 */
AppComplaints.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appComplaints/delete", function (data) {
            Feng.success("删除成功!");
            AppComplaints.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appComplaintsId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 查询投诉管理列表
 */
AppComplaints.search = function () {
    var queryData = {};
    queryData['userName'] = $("#userName").val();
    queryData['driverName'] = $("#driverName").val();
    queryData['beginTime'] = $("#beginTime").val();
    queryData['endTime'] = $("#endTime").val();
    queryData['type'] =type_;
    AppComplaints.table.refresh({query: queryData});
};
/*页面tab切换*/
AppComplaints.titleClick=function(typeName,type){
    type_=type;
    //$('#AppRoomTable').bootstrapTable('destroy');
    for(var i=1;i<=2;i++){
        $("#titleDivU"+i+"").removeClass("titleItemCk");
    }
    $("#"+typeName).addClass("titleItemCk");
    AppComplaints.search();
}
/**
 * 重置
 */
AppComplaints.resetSearch = function () {
    $("#beginTime").val("");
    $("#endTime").val("");
    $("#userName").val("");
    $("#driverName").val("");
    AppComplaints.search();
};
$(function () {
    var defaultColunms = AppComplaints.initColumn();
    var table = new BSTable(AppComplaints.id, "/appComplaints/rideList", defaultColunms);
    table.setPaginationType("server");
    AppComplaints.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaintsTaxi.js
New file
@@ -0,0 +1,129 @@
/**
 * 投诉管理管理初始化
 */
var AppComplaints = {
    id: "AppComplaintsTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppComplaints.initColumn = function () {
    return [
        {field: 'selectItem', radio: true,visible:false},
        {title: '投诉时间', field: 'addTime', visible: true, align: 'center', valign: 'middle'},
        {title: '投诉用户', field: 'nickName', visible: true, align: 'center', valign: 'middle'},
        {title: '投诉用户电话号码', field: 'userPhone_', visible: true, align: 'center', valign: 'middle'},
        {title: '被投诉司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'},
        {title: '被投诉电话号码', field: 'driverPhone_', visible: true, align: 'center', valign: 'middle'},
        {title: '投诉内容', field: 'content', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                var v=value;
                if(v=="其他"){
                    v=row.reMark;
                }
                if(value!=null && value!=''){
                    if(value.length>20){
                        v=value.substring(0,20)+"......";
                    }
                    return '<span title="'+value+'">'+v+'</span>';
                }
            }
        },
    ];
};
/**
 * 检查是否选中
 */
AppComplaints.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppComplaints.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加投诉管理
 */
AppComplaints.openAddAppComplaints = function () {
    var index = layer.open({
        type: 2,
        title: '添加投诉管理',
        area: ['60%', '80%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appComplaints/appComplaints_add'
    });
    this.layerIndex = index;
};
/**
 * 打开查看投诉管理详情
 */
AppComplaints.openAppComplaintsDetail = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: '投诉管理详情',
            area: ['800px', '420px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/appComplaints/appComplaints_update/' + AppComplaints.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除投诉管理
 */
AppComplaints.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appComplaints/delete", function (data) {
            Feng.success("删除成功!");
            AppComplaints.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appComplaintsId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 查询投诉管理列表
 */
AppComplaints.search = function () {
    var queryData = {};
    queryData['userName'] = $("#userName").val();
    queryData['driverName'] = $("#driverName").val();
    queryData['beginTime'] = $("#beginTime").val();
    queryData['endTime'] = $("#endTime").val();
    AppComplaints.table.refresh({query: queryData});
};
/**
 * 重置
 */
AppComplaints.resetSearch = function () {
    $("#beginTime").val("");
    $("#endTime").val("");
    $("#userName").val("");
    $("#driverName").val("");
    AppComplaints.search();
};
$(function () {
    var defaultColunms = AppComplaints.initColumn();
    var table = new BSTable(AppComplaints.id, "/appComplaints/taxiList", defaultColunms);
    table.setPaginationType("server");
    AppComplaints.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appComplaints/appComplaints_info.js
New file
@@ -0,0 +1,109 @@
/**
 * 初始化投诉管理详情对话框
 */
var AppComplaintsInfoDlg = {
    appComplaintsInfoData : {}
};
/**
 * 清除数据
 */
AppComplaintsInfoDlg.clearData = function() {
    this.appComplaintsInfoData = {};
}
/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
AppComplaintsInfoDlg.set = function(key, val) {
    this.appComplaintsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}
/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
AppComplaintsInfoDlg.get = function(key) {
    return $("#" + key).val();
}
/**
 * 关闭此对话框
 */
AppComplaintsInfoDlg.close = function() {
    parent.layer.close(window.parent.AppComplaints.layerIndex);
}
/**
 * 收集数据
 */
AppComplaintsInfoDlg.collectData = function() {
    this
    .set('id')
    .set('addTime')
    .set('userId')
    .set('content')
    .set('reMark')
    .set('phone');
}
/**
 * 提交添加
 */
AppComplaintsInfoDlg.addSubmit = function() {
    this.clearData();
    this.collectData();
    if($("#phone").val()==null || $("#phone").val()==''){
        Feng.info("请输入手机号");
        return ;
    }
    if($("#content").val()==null || $("#content").val()==''){
        Feng.info("请输入内容");
        return ;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appComplaints/add", function(data){
        if(data=="1"){
            Feng.info("该手机号没有注册");
            return;
        }
        Feng.success("添加成功!");
        window.parent.AppComplaints.table.refresh();
        AppComplaintsInfoDlg.close();
    },function(data){
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.appComplaintsInfoData);
    ajax.start();
}
/**
 * 提交修改
 */
AppComplaintsInfoDlg.editSubmit = function() {
    this.clearData();
    this.collectData();
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appComplaints/update", function(data){
        Feng.success("修改成功!");
        window.parent.AppComplaints.table.refresh();
        AppComplaintsInfoDlg.close();
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.appComplaintsInfoData);
    ajax.start();
}
$(function() {
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appDriverRide/appDriverRide.js
New file
@@ -0,0 +1,198 @@
/**
 * 顺风车司机管理初始化
 */
var AppDriverRide = {
    id: "AppDriverRideTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppDriverRide.initColumn = function () {
    return [
        {field: 'selectItem', radio: true},
        {title: '用户id', field: 'uid', visible: true, align: 'center', valign: 'middle'},
        {title: '用户手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'},
        {title: '真实姓名', field: 'realName', visible: true, align: 'center', valign: 'middle'},
        {title: '身份证号', field: 'identity', visible: true, align: 'center', valign: 'middle'},
        {title: '车辆品牌', field: 'carType', visible: true, align: 'center', valign: 'middle'},
        {title: '车牌', field: 'carNum', visible: true, align: 'center', valign: 'middle'},
        {title: '驾驶证号', field: 'license', visible: true, align: 'center', valign: 'middle'},
        {title: '交强险到期时间', field: 'comInsuranceTime', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                if(!checkEndTime(value)){
                    return  timeStamp2String(value) ;
                }else {
                    return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                }
            }
        },
        {title: '商业险到期时间', field: 'businessInsuranceTime', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                if(!checkEndTime(value)){
                    return  timeStamp2String(value) ;
                }else {
                    return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                }
            }
        },
        {title: '驾乘人员责任险到期时间', field: 'dutyInsuranceTime', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                if(!checkEndTime(value)){
                    return  timeStamp2String(value) ;
                }else {
                    return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                }
            }
        },
        {title: '年检到期时间', field: 'annualInspectionTime', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                if(!checkEndTime(value)){
                    return  timeStamp2String(value) ;
                }else {
                    return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                }
            }
        },
        {title: '别人的邀请码', field: 'byInviteCode', visible: true, align: 'center', valign: 'middle'},
        {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                if(value==1){//状态 1=正常 2=禁用
                    return "正常";
                }else{
                    return "锁定";
                }
            }
        },
        {title: '操作', field: 'opt', visible: true, align: 'left', valign: 'middle',width:"7%",
            formatter: function (value, row) {
                var btn=[];
                btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppDriverRide.openAppDriverRideDetail('+row.id+')">查看图片</a>';
                btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppDriverRide.openAddAppDriverRide('+row.id+')">编辑</a>';
                if(row.status==1){
                    btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppDriverRide.isState('+row.id+',2)">锁定</a></p>';
                }else{
                    btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppDriverRide.isState('+row.id+',1)">解锁</a></p>';
                }
                return btn;
            }
        }
    ];
};
/**
 * 检查是否选中
 */
AppDriverRide.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppDriverRide.seItem = selected[0];
        return true;
    }
};
/**
 * 点击编辑顺风车司机
 */
AppDriverRide.openAddAppDriverRide = function (id) {
    var index = layer.open({
        type: 2,
        title: '编辑',
        area: ['90%', '90%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appDriverRide/appDriverRide_update/'+id
    });
    this.layerIndex = index;
};
/**
 * 删除顺风车司机
 */
AppDriverRide.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appDriverRide/delete", function (data) {
            Feng.success("删除成功!");
            AppDriverRide.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appDriverRideId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 锁定与解锁
 */
AppDriverRide.isState = function (id,state) {
    var stateName = "锁定";
    if (state == 1) {
        stateName = "解锁";
    }
    var confirm = layer.confirm("确定要"+stateName+"该司机?", {btn: ['确定', '取消']}, function () {
        layer.close(confirm);
        var ajax = new $ax(Feng.ctxPath + "/appDriverRide/update", function (data) {
            Feng.success(""+stateName+"成功!");
            AppDriverRide.table.refresh();
        }, function (data) {
            Feng.error(""+stateName+"失败!" + data.responseJSON.message + "!");
        });
        ajax.set("id",id);
        ajax.set("status",state);
        ajax.start();
    })
};
/**
 * 查询顺风车司机列表
 */
AppDriverRide.search = function () {
    var queryData = {};
    queryData['phone'] = $("#phone").val();
    queryData['userId'] = $("#userId").val();
    queryData['carNum'] = $("#carNum").val();
    queryData['realName'] = $("#realName").val();
    queryData['excep'] = $("#excep").val();
    AppDriverRide.table.refresh({query: queryData});
};
/**
 * 重置
 */
AppDriverRide.resetSearch = function () {
    $("#phone").val("");
    $("#userId").val("");
    $("#carNum").val("");
    $("#realName").val("");
    $("#excep").val("");
    AppDriverRide.search();
};
/**
 * 打开查看顺风车司机详情
 */
AppDriverRide.openAppDriverRideDetail = function (id) {
    var index = layer.open({
        type: 2,
        title: '顺风车司机图片',
        area: ['80%', '80%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appDriverRide/appDriverRide_showPic/' + id
    });
    this.layerIndex = index;
};
$(function () {
    var defaultColunms = AppDriverRide.initColumn();
    var table = new BSTable(AppDriverRide.id, "/appDriverRide/list?state=2", defaultColunms);
    table.setPaginationType("server");
    AppDriverRide.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appDriverRide/appDriverRide_auditList.js
New file
@@ -0,0 +1,197 @@
/**
 * 顺风车司机管理初始化
 */
var AppDriverRide = {
    id: "AppDriverRideTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppDriverRide.initColumn = function () {
    return [
        {field: 'selectItem', radio: true},
            {title: 'ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
            {title: '申请时间', field: 'addTime', visible: true, align: 'center', valign: 'middle'},
            {title: '用户id', field: 'uid', visible: true, align: 'center', valign: 'middle'},
            {title: '用户手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'},
            {title: '真实姓名', field: 'realName', visible: true, align: 'center', valign: 'middle'},
            {title: '身份证号', field: 'identity', visible: true, align: 'center', valign: 'middle'},
            {title: '车辆品牌', field: 'carType', visible: true, align: 'center', valign: 'middle'},
            {title: '车牌', field: 'carNum', visible: true, align: 'center', valign: 'middle'},
            {title: '驾驶证号', field: 'license', visible: true, align: 'center', valign: 'middle'},
            {title: '交强险到期时间', field: 'comInsuranceTime', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    if(!checkEndTime(value)){
                        return  timeStamp2String(value) ;
                    }else {
                        return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                    }
                }
            },
            {title: '商业险到期时间', field: 'businessInsuranceTime', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    if(!checkEndTime(value)){
                        return  timeStamp2String(value) ;
                    }else {
                        return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                    }
                }
            },
            {title: '驾乘人员责任险到期时间', field: 'dutyInsuranceTime', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    if(!checkEndTime(value)){
                        return  timeStamp2String(value) ;
                    }else {
                        return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                    }
                }
            },
            {title: '年检到期时间', field: 'annualInspectionTime', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    if(!checkEndTime(value)){
                        return  timeStamp2String(value) ;
                    }else {
                        return  "<span style='color: red'>"+timeStamp2String(value)+"</span>" ;
                    }
                }
            },
            {title: '审核状态', field: 'state', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    if(value==1) {//1等待审核,2审核通过,3不通过
                        return "等待审核";
                    }else if(value==2){
                        return "审核通过";
                    }else{
                        return "不通过";
                    }
                }
            },
            {title: '操作', field: 'opt', visible: true, align: 'left', valign: 'middle',width:"5%",
                formatter: function (value, row) {
                    var btn=[];
                    btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppDriverRide.openAppDriverRideDetail('+row.id+')">查看图片</a>';
                    btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppDriverRide.openAddAppDriverRide('+row.id+')">查看详情</a>';
                    return btn;
                }
            }
    ];
};
/**
 * 检查是否选中
 */
AppDriverRide.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppDriverRide.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加顺风车司机
 */
AppDriverRide.openAddAppDriverRide = function (id) {
    var index = layer.open({
        type: 2,
        title: '查看详情',
        area: ['90%', '90%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appDriverRide/appDriverRide_detail/'+id
    });
    this.layerIndex = index;
};
/**
 * 打开查看顺风车司机详情
 */
AppDriverRide.audit = function () {
    if (this.check()) {
        var audit=this.seItem.state;
        if(audit!=1){
            Feng.info("该数据已审核");
            return;
        }
        var index = layer.open({
            type: 2,
            title: '顺风车司机审核',
            area: ['60%', '60%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/appDriverRide/appDriverRide_audit/' + this.seItem.id
        });
        this.layerIndex = index;
    };
};
/**
 * 打开查看顺风车司机详情
 */
AppDriverRide.openAppDriverRideDetail = function (id) {
    var index = layer.open({
        type: 2,
        title: '顺风车司机图片',
        area: ['80%', '80%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appDriverRide/appDriverRide_showPic/' + id
    });
    this.layerIndex = index;
};
/**
 * 删除顺风车司机
 */
AppDriverRide.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appDriverRide/delete", function (data) {
            Feng.success("删除成功!");
            AppDriverRide.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appDriverRideId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 查询顺风车司机列表
 */
AppDriverRide.search = function () {
    var queryData = {};
    queryData['phone'] = $("#phone").val();
    queryData['userId'] = $("#userId").val();
    queryData['carNum'] = $("#carNum").val();
    queryData['realName'] = $("#realName").val();
    queryData['state'] = $("#state").val();
    AppDriverRide.table.refresh({query: queryData});
};
/**
 * 重置
 */
AppDriverRide.resetSearch = function () {
    $("#phone").val("");
    $("#userId").val("");
    $("#carNum").val("");
    $("#realName").val("");
    $("#state").val("");
    AppDriverRide.search();
};
$(function () {
    var defaultColunms = AppDriverRide.initColumn();
    var table = new BSTable(AppDriverRide.id, "/appDriverRide/list", defaultColunms);
    table.setPaginationType("server");
    AppDriverRide.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appDriverRide/appDriverRide_info.js
New file
@@ -0,0 +1,139 @@
/**
 * 初始化顺风车司机详情对话框
 */
var AppDriverRideInfoDlg = {
    appDriverRideInfoData : {}
};
/**
 * 清除数据
 */
AppDriverRideInfoDlg.clearData = function() {
    this.appDriverRideInfoData = {};
}
/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
AppDriverRideInfoDlg.set = function(key, val) {
    this.appDriverRideInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}
/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
AppDriverRideInfoDlg.get = function(key) {
    return $("#" + key).val();
}
/**
 * 关闭此对话框
 */
AppDriverRideInfoDlg.close = function() {
    parent.layer.close(window.parent.AppDriverRide.layerIndex);
}
/**
 * 收集数据
 */
AppDriverRideInfoDlg.collectData = function() {
    this.appDriverRideInfoData['state'] = $(":radio[name='state']:checked").val();
    this
    .set('id')
    .set('addTime')
    .set('companyId')
    .set('carType')
    .set('carNum')
    .set('license')
    .set('licenseImg')
    .set('comInsuranceTime')
    .set('comInsuranceImg')
    .set('businessInsuranceTime')
    .set('businessInsuranceImg')
    .set('dutyInsuranceTime')
    .set('dutyInsuranceImg')
    .set('annualInspectionTime')
    .set('annualInspectionImg')
    .set('userId')
    .set('remark')
    .set('certificationImg')
    .set('byInviteCode');
}
/**
 * 提交添加
 */
AppDriverRideInfoDlg.addSubmit = function() {
    this.clearData();
    this.collectData();
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appDriverRide/add", function(data){
        Feng.success("添加成功!");
        window.parent.AppDriverRide.table.refresh();
        AppDriverRideInfoDlg.close();
    },function(data){
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.appDriverRideInfoData);
    ajax.start();
}
/**
 * 提交修改
 */
AppDriverRideInfoDlg.editSubmit = function() {
    this.clearData();
    this.collectData();
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appDriverRide/update", function(data){
        Feng.success("修改成功!");
        window.parent.AppDriverRide.table.refresh();
        AppDriverRideInfoDlg.close();
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.appDriverRideInfoData);
    ajax.start();
}
$(function() {
    // 交强险照片
    var imageUp = new $WebUploadImage("comInsuranceImg");
    imageUp.setUploadBarId("comInsuranceImg");
    imageUp.init();
    // 商业险图片
    var imageUp = new $WebUploadImage("businessInsuranceImg");
    imageUp.setUploadBarId("businessInsuranceImg");
    imageUp.init();
    // 驾乘人员责任险照片
    var imageUp = new $WebUploadImage("dutyInsuranceImg");
    imageUp.setUploadBarId("dutyInsuranceImg");
    imageUp.init();
    // 年检图片
    var imageUp = new $WebUploadImage("annualInspectionImg");
    imageUp.setUploadBarId("annualInspectionImg");
    imageUp.init();
    // 认证图片
    var imageUp = new $WebUploadImage("certificationImg");
    imageUp.setUploadBarId("certificationImg");
    imageUp.init();
    //交强险到期时间
    $("#comInsuranceTime").val(timeStamp2String($("#comInsuranceTime").val()));
    //商业险到期时间
    $("#businessInsuranceTime").val(timeStamp2String($("#businessInsuranceTime").val()));
    //驾乘人员责任险到期时间
    $("#dutyInsuranceTime").val(timeStamp2String($("#dutyInsuranceTime").val()));
    //年检到期时间
    $("#annualInspectionTime").val(timeStamp2String($("#annualInspectionTime").val()));
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appEvaluate/appEvaluate.js
New file
@@ -0,0 +1,140 @@
var type_=1;//默认普通订单评价
/**
 * 订单评价管理初始化
 */
var AppEvaluate = {
    id: "AppEvaluateTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppEvaluate.initColumn = function () {
    return [
        {field: 'selectItem', radio: true,visible:false},
            {title: '评论时间', field: 'addTime', visible: true, align: 'center', valign: 'middle'},
            {title: '评论用户', field: 'nickName', visible: true, align: 'center', valign: 'middle'},
            {title: '评论用户电话号码', field: 'userPhone_', visible: true, align: 'center', valign: 'middle'},
            {title: '被评司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'},
            {title: '被评司机电话号码', field: 'driverPhone_', visible: true, align: 'center', valign: 'middle'},
            {title: '评论分数', field: 'score', visible: true, align: 'center', valign: 'middle'},
            {title: '评论内容', field: 'content', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    var v=value;
                    if(value!=null && value!=''){
                        if(value.length>20){
                            v=value.substring(0,20)+"......";
                        }
                        return '<span title="'+value+'">'+v+'</span>';
                    }
                }
            },
    ];
};
/**
 * 检查是否选中
 */
AppEvaluate.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppEvaluate.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加订单评价
 */
AppEvaluate.openAddAppEvaluate = function () {
    var index = layer.open({
        type: 2,
        title: '添加订单评价',
        area: ['800px', '420px'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appEvaluate/appEvaluate_add'
    });
    this.layerIndex = index;
};
/**
 * 打开查看订单评价详情
 */
AppEvaluate.openAppEvaluateDetail = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: '订单评价详情',
            area: ['800px', '420px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/appEvaluate/appEvaluate_update/' + AppEvaluate.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除订单评价
 */
AppEvaluate.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appEvaluate/delete", function (data) {
            Feng.success("删除成功!");
            AppEvaluate.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appEvaluateId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 查询订单评价列表
 */
AppEvaluate.search = function () {
    var queryData = {};
    queryData['beginTime'] = $("#beginTime").val();
    queryData['endTime'] = $("#endTime").val();
    queryData['userName'] = $("#userName").val();
    queryData['driverName'] = $("#driverName").val();
    queryData['score'] = $("#score").val();
    queryData['type'] = type_;
    AppEvaluate.table.refresh({query: queryData});
};
/**
 * 重置
 */
AppEvaluate.resetSearch = function () {
    $("#beginTime").val("");
    $("#endTime").val("");
    $("#userName").val("");
    $("#driverName").val("");
    $("#score").val("");
    AppEvaluate.search();
};
/*页面tab切换*/
AppEvaluate.titleClick=function(typeName,type){
    type_=type;
    //$('#AppRoomTable').bootstrapTable('destroy');
    for(var i=1;i<=2;i++){
        $("#titleDivU"+i+"").removeClass("titleItemCk");
    }
    $("#"+typeName).addClass("titleItemCk");
    AppEvaluate.search();
}
$(function () {
    var defaultColunms = AppEvaluate.initColumn();
    var table = new BSTable(AppEvaluate.id, "/appEvaluate/list", defaultColunms);
    table.setPaginationType("server");
    AppEvaluate.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appOrderRide/appOrderRide.js
New file
@@ -0,0 +1,148 @@
/**
 * 顺风车订单管理初始化
 */
var AppOrderRide = {
    id: "AppOrderRideTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppOrderRide.initColumn = function () {
    return [
        {field: 'selectItem', radio: true},
            {title: '订单id', field: 'id', visible: true, align: 'center', valign: 'middle'},
            {title: '乘客手机号', field: 'phoneU', visible: true, align: 'center', valign: 'middle'},
            {title: '真实姓名', field: 'nameU', visible: true, align: 'center', valign: 'middle'},
            {title: '身份证号', field: 'identityU', visible: true, align: 'center', valign: 'middle'},
            {title: '出发地', field: 'startNameU', visible: true, align: 'center', valign: 'middle'},
            {title: '目的地', field: 'endNameU', visible: true, align: 'center', valign: 'middle'},
            {title: '出发时间', field: 'startTimeU', visible: true, align: 'center', valign: 'middle'},
            {title: '乘客人数', field: 'numU', visible: true, align: 'center', valign: 'middle'},
            {title: '下单时间', field: 'addTimeU', visible: true, align: 'center', valign: 'middle'},
            {title: '司机用户id', field: 'driverUserId', visible: true, align: 'center', valign: 'middle'},
            {title: '司机手机号', field: 'phoneD', visible: true, align: 'center', valign: 'middle'},
            {title: '真实姓名', field: 'nameD', visible: true, align: 'center', valign: 'middle'},
            {title: '身份证号', field: 'identityD', visible: true, align: 'center', valign: 'middle'},
            {title: '出发地', field: 'startNameD', visible: true, align: 'center', valign: 'middle'},
            {title: '目的地', field: 'endNameD', visible: true, align: 'center', valign: 'middle'},
            {title: '出发时间', field: 'startTimeD', visible: true, align: 'center', valign: 'middle'},
            {title: '可乘人数', field: 'numD', visible: true, align: 'center', valign: 'middle'},
            {title: '状态', field: 'stateU', visible: true, align: 'center', valign: 'middle',
                formatter: function (value, row) {
                    if(value==1){//状态(1未支付,2已支付,3待出行,4出行中,5完成,6取消)
                        return "待付款"
                    }else if(value==2){
                        return "已发单"
                    }else if(value==3){
                        return "待出行"
                    }else if(value==4){
                        return "出行中"
                    }else if(value==5){
                        if(row.isEvaluate==1){
                            return "已完成"
                        }else {
                            return "已评价"
                        }
                    }else {
                        return "已取消"
                    }
                }
            },
            {title: '操作', field: 'opt', visible: true, align: 'left', valign: 'middle',width:'6%',
                formatter: function (value, row) {
                    var btn=[];
                    btn+='<p style="line-height: 10px;"><a href="javascript:void(0);" onclick="AppOrderRide.openAppOrderRideDetail('+row.id+')">出行信息</a></p>';
                    return btn;
                }
            }
    ];
};
/**
 * 检查是否选中
 */
AppOrderRide.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppOrderRide.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加顺风车订单
 */
AppOrderRide.openAddAppOrderRide = function () {
    var index = layer.open({
        type: 2,
        title: '添加顺风车订单',
        area: ['800px', '420px'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appOrderRide/appOrderRide_add'
    });
    this.layerIndex = index;
};
/**
 * 打开查看顺风车订单详情
 */
AppOrderRide.openAppOrderRideDetail = function (id) {
    var index = layer.open({
        type: 2,
        title: '顺风车订单详情',
        area: ['90%', '90%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appOrderRide/appOrderRide_update/' + id
    });
    this.layerIndex = index;
};
/**
 * 删除顺风车订单
 */
AppOrderRide.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appOrderRide/delete", function (data) {
            Feng.success("删除成功!");
            AppOrderRide.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appOrderRideId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 查询顺风车订单列表
 */
AppOrderRide.search = function () {
    var queryData = {};
    queryData['state'] = $("#state").val();
    AppOrderRide.table.refresh({query: queryData});
};
/**
 * 重置
 */
AppOrderRide.resetSearch = function () {
    $("#state").val("");
    AppOrderRide.search();
};
$(function () {
    var defaultColunms = AppOrderRide.initColumn();
    var table = new BSTable(AppOrderRide.id, "/appOrderRide/list", defaultColunms);
    table.setPaginationType("server");
    AppOrderRide.table = table.init();
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appOrderRide/appOrderRide_info.js
New file
@@ -0,0 +1,121 @@
/**
 * 初始化顺风车订单详情对话框
 */
var AppOrderRideInfoDlg = {
    appOrderRideInfoData : {}
};
/**
 * 清除数据
 */
AppOrderRideInfoDlg.clearData = function() {
    this.appOrderRideInfoData = {};
}
/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
AppOrderRideInfoDlg.set = function(key, val) {
    this.appOrderRideInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
    return this;
}
/**
 * 设置对话框中的数据
 *
 * @param key 数据的名称
 * @param val 数据的具体值
 */
AppOrderRideInfoDlg.get = function(key) {
    return $("#" + key).val();
}
/**
 * 关闭此对话框
 */
AppOrderRideInfoDlg.close = function() {
    parent.layer.close(window.parent.AppOrderRide.layerIndex);
}
/**
 * 收集数据
 */
AppOrderRideInfoDlg.collectData = function() {
    this
    .set('id')
    .set('addTime')
    .set('userId')
    .set('startTime')
    .set('num')
    .set('startName')
    .set('endName')
    .set('lxPhone')
    .set('isDai')
    .set('money')
    .set('state')
    .set('isEvaluate')
    .set('isComplaint')
    .set('startLon')
    .set('startLat')
    .set('endLon')
    .set('endLat')
    .set('travelId')
    .set('payType')
    .set('tuiMoney')
    .set('serviceMoney')
    .set('platformMoney')
    .set('driverId')
    .set('orderNum')
    .set('payTime')
    .set('couponId')
    .set('couponName')
    .set('couponMoney')
    .set('outNum');
}
/**
 * 提交添加
 */
AppOrderRideInfoDlg.addSubmit = function() {
    this.clearData();
    this.collectData();
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appOrderRide/add", function(data){
        Feng.success("添加成功!");
        window.parent.AppOrderRide.table.refresh();
        AppOrderRideInfoDlg.close();
    },function(data){
        Feng.error("添加失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.appOrderRideInfoData);
    ajax.start();
}
/**
 * 提交修改
 */
AppOrderRideInfoDlg.editSubmit = function() {
    this.clearData();
    this.collectData();
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appOrderRide/update", function(data){
        Feng.success("修改成功!");
        window.parent.AppOrderRide.table.refresh();
        AppOrderRideInfoDlg.close();
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.appOrderRideInfoData);
    ajax.start();
}
$(function() {
});
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/shunfeng/appParamRide/appParamRide.js
New file
@@ -0,0 +1,254 @@
/**
 * 顺风车设置管理初始化
 */
var AppParamRide = {
    id: "AppParamRideTable",    //表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1
};
/**
 * 初始化表格的列
 */
AppParamRide.initColumn = function () {
    return [
        {field: 'selectItem', radio: true},
            {title: '', field: 'id', visible: true, align: 'center', valign: 'middle'},
            {title: '1价格设置,2平台抽成,3乘客退单,4司机退单', field: 'type', visible: true, align: 'center', valign: 'middle'},
            {title: '数量类型(1到8)', field: 'numType', visible: true, align: 'center', valign: 'middle'},
            {title: '距离类型(1-100,100-200,200-500,500-800,800以上)', field: 'distanceType', visible: true, align: 'center', valign: 'middle'},
            {title: '内容  ', field: 'context', visible: true, align: 'center', valign: 'middle'},
            {title: '描述', field: 'remark', visible: true, align: 'center', valign: 'middle'},
            {title: '', field: 'openCityId', visible: true, align: 'center', valign: 'middle'}
    ];
};
/**
 * 检查是否选中
 */
AppParamRide.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if(selected.length == 0){
        Feng.info("请先选中表格中的某一记录!");
        return false;
    }else{
        AppParamRide.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加顺风车设置
 */
AppParamRide.openAddAppParamRide = function () {
    var index = layer.open({
        type: 2,
        title: '添加顺风车设置',
        area: ['800px', '420px'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/appParamRide/appParamRide_add'
    });
    this.layerIndex = index;
};
/**
 * 打开查看顺风车设置详情
 */
AppParamRide.openAppParamRideDetail = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: '顺风车设置详情',
            area: ['800px', '420px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/appParamRide/appParamRide_update/' + AppParamRide.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除顺风车设置
 */
AppParamRide.delete = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/appParamRide/delete", function (data) {
            Feng.success("删除成功!");
            AppParamRide.table.refresh();
        }, function (data) {
            Feng.error("删除失败!" + data.responseJSON.message + "!");
        });
        ajax.set("appParamRideId",this.seItem.id);
        ajax.start();
    }
};
/**
 * 每一个输入项验证
 * @param type
 * @returns {boolean}
 */
AppParamRide.validate = function (type) {
    var ok=true;
    var okN=true;
    var reg_=/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
    if(type==1){//价格设置
        $(".price").each(function () {
            if($(this).val()==null || $(this).val()==''){
                okN=false;
            }
            if(!reg_.test($(this).val())){
                ok=false;
            }
        })
    }else if(type==2){//平台抽成
        $(".commission").each(function () {
            if($(this).val()==null || $(this).val()==''){
                okN=false;
            }
            if(!reg_.test($(this).val())){
                ok=false;
            }
        })
    }else if(type==3){//乘客退单
        if($("#paramTD1").val()==null || $("#paramTD1").val()==''){
            okN=false;
        }
        if(!reg_.test($("#paramTD1").val())){
            ok=false;
        }
    }else if(type==4){//司机退单
        if($("#paramTD2").val()==null || $("#paramTD2").val()==''){
            okN=false;
        }
        if(!reg_.test($("#paramTD2").val())){
            ok=false;
        }
    }
    if(!okN){
        Feng.info("各项不能为空");
        return false;
    }
    if(!ok){
        Feng.info("数值格式不正确");
    }
    return ok;
};
/**
 * 清除数据
 */
AppParamRide.clearData = function() {
    this.setInfoInfoData = {};
}
/**
 * 收集数据
 */
AppParamRide.collectData = function(type) {
    var content="";
    if(type==1){//顺风车价格设置
        content='{"person1":"'+$('#person11').val()+'","person2":"'+$('#person12').val()+'","person3":"'+$('#person13').val()+'","person4":"'+$('#person14').val()
            +'","person5":"'+$('#person15').val()+'","person6":"'+$('#person16').val()+'","person7":"'+$('#person17').val()+'","person8":"'+$('#person18').val()+'"}'+"-";
        content+='{"person1":"'+$('#person21').val()+'","person2":"'+$('#person22').val()+'","person3":"'+$('#person23').val()+'","person4":"'+$('#person24').val()
            +'","person5":"'+$('#person25').val()+'","person6":"'+$('#person26').val()+'","person7":"'+$('#person27').val()+'","person8":"'+$('#person28').val()+'"}'+"-";
        content+='{"person1":"'+$('#person31').val()+'","person2":"'+$('#person32').val()+'","person3":"'+$('#person33').val()+'","person4":"'+$('#person34').val()
            +'","person5":"'+$('#person35').val()+'","person6":"'+$('#person36').val()+'","person7":"'+$('#person37').val()+'","person8":"'+$('#person38').val()+'"}'+"-";
        content+='{"person1":"'+$('#person41').val()+'","person2":"'+$('#person42').val()+'","person3":"'+$('#person43').val()+'","person4":"'+$('#person44').val()
            +'","person5":"'+$('#person45').val()+'","person6":"'+$('#person46').val()+'","person7":"'+$('#person47').val()+'","person8":"'+$('#person48').val()+'"}'+"-";
        content+='{"person1":"'+$('#person51').val()+'","person2":"'+$('#person52').val()+'","person3":"'+$('#person53').val()+'","person4":"'+$('#person54').val()
            +'","person5":"'+$('#person55').val()+'","person6":"'+$('#person56').val()+'","person7":"'+$('#person57').val()+'","person8":"'+$('#person58').val()+'"}';
    }else  if(type==2) {//平台抽成
        content='{"commission1":"'+$('#commission1').val()+'","commission2":"'+$('#commission2').val()+'","commission3":"'+$('#commission3').val()+'","commission4":"'+$('#commission4').val()
            +'","commission5":"'+$('#commission5').val()+'","commission6":"'+$('#commission6').val()+'","commission7":"'+$('#commission7').val()+'","commission8":"'+$('#commission8').val()+'"}';
    }else if(type==3){//乘客退单
        content=$("#paramTD1").val();
    }else if(type==4){//司机退单
        content=$("#paramTD2").val();
    }
    this.setInfoInfoData['context'] = content;
    this.setInfoInfoData['type'] = type;
}
/**
 * 提交添加
 */
AppParamRide.editSubmit = function(type) {
    this.clearData();
    this.collectData(type);
    if (!this.validate(type)) {
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/appParamRide/update", function(data){
        Feng.success("修改成功!");
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.setInfoInfoData);
    ajax.start();
}
/**
 * 点击获取数据
 * @param typeName
 * @param type
 */
AppParamRide.titleClick=function(typeName,type){
    //重置
    //this.resetSearch();
    for(var i=1;i<=4;i++){
        $("#titleDivU"+i+"").removeClass("titleItemCk");
        $("#titleDivU"+i+"Form").hide();
    }
    $("#"+typeName).addClass("titleItemCk");
    $("#"+typeName+"Form").show();
    $.ajax({
        type: "post",
        url: Feng.ctxPath + "/appParamRide/getContentByType",
        async: false,
        data: {"type": type},
        success: function (data) {
            if(type==1){//价格设置
                var content="";
                var  values=["0-99(公里)","100-199(公里)","200-499(公里)","500-799(公里)","800(公里)以上"];
               for(var i = 0 ;i<data.length;i++){
                   var  context= eval('('+data[i].context+')');
                   var contentTr="<tr>";
                   contentTr+="<td>"+values[i]+"</td>"
                   for(var j= 1;j<9;j++){
                       contentTr+="<td style=\"text-align: center\"><input value='"+context["person"+j]+"' id='person"+(i+1)+j+"' class=\"price\" style='width: 120px'></td>"
                   }
                    contentTr+="</tr>";
                    content+=contentTr;
               }
                $(".gridtable tr:gt(0)").empty();
                $("#thContent").after(content);
            }else if(type==2){//平台抽成
                var  context= eval('('+data[0].context+')');
                for(var j= 1;j<9;j++){
                    $("#commission"+j+"").val(context["commission"+j]);
                }
            }else if(type==3){//乘客退单
                $("#paramTD1").val(data[0].context);
            }else if(type==4){//司机退单
                $("#paramTD2").val(data[0].context);
            }
        }
    });
}
/**
 * 查询顺风车设置列表
 */
AppParamRide.search = function () {
    var queryData = {};
    queryData['condition'] = $("#condition").val();
    AppParamRide.table.refresh({query: queryData});
};
$(function () {
    AppParamRide.titleClick('titleDivU1',1);
});