Merge remote-tracking branch 'origin/master'
| | |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.exception.ServiceExceptionEnum; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TAgentResp; |
| | | import com.stylefeng.guns.modular.system.controller.util.ExcelUtil; |
| | |
| | | import com.stylefeng.guns.modular.system.enums.UserTypeEnum; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import com.stylefeng.guns.modular.system.util.RedisUtil; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | @Autowired |
| | | private ITRegionService tRegionService; |
| | | |
| | | @Autowired |
| | | private ITDriverService tDriverService; |
| | | @Autowired |
| | | private ITDriverWorkService tDriverWorkService; |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | public String index(Model model) { |
| | | model.addAttribute("userType", Objects.requireNonNull(ShiroKit.getUser()).getRoleType()); |
| | | return PREFIX + "tAgent.html"; |
| | | } |
| | | |
| | |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String principal,String principalPhone,String createTime) { |
| | | EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime); |
| | | public Object list(String principal,String principalPhone,String createTime,Integer status) { |
| | | EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime,status); |
| | | List<TAgent> tAgents = tAgentService.selectList(wrapper); |
| | | // 代理商列表数据封装(导出共用) |
| | | return tAgentService.getAgentResp(tAgents); |
| | |
| | | int count = tAgentService.selectCount(new EntityWrapper<TAgent>().eq("provinceName", split1[0]).eq("cityName",split1[1])); |
| | | if(count>0){ |
| | | return new SuccessTip(500,"该代理商已存在!"); |
| | | |
| | | } |
| | | |
| | | tAgent.setPrincipal(tAgent.getPrincipal().replace(" ","")); |
| | | |
| | | |
| | | String[] split = tAgent.getAreaId().split("/"); |
| | | // 查询省市 |
| | |
| | | tAgent.setStatus(1); |
| | | } |
| | | tAgentService.updateById(tAgent); |
| | | // 冻结下面所有的司机 |
| | | List<TDriver> list = tDriverService.selectList(new EntityWrapper<TDriver>() |
| | | .eq("agentId", id)); |
| | | for (TDriver tDriver : list) { |
| | | if(1 == status){ |
| | | tDriver.setStatus(2); |
| | | String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone()); |
| | | redisUtil.remove(value); |
| | | redisUtil.remove("DRIVER_" + tDriver.getPhone()); |
| | | TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() |
| | | .eq("driverId", tDriver.getId()) |
| | | .eq("status", 1) |
| | | .orderBy("workTime", false) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(tDriverWork)){ |
| | | tDriverWork.setStatus(2); |
| | | tDriverWork.setOffWorkTime(new Date()); |
| | | tDriverWorkService.updateById(tDriverWork); |
| | | } |
| | | } |
| | | if(2 == status){ |
| | | tDriver.setStatus(1); |
| | | } |
| | | } |
| | | if(!CollectionUtils.isEmpty(list)){ |
| | | tDriverService.updateBatchById(list); |
| | | } |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TAgent tAgent) { |
| | | tAgent.setPrincipal(tAgent.getPrincipal().replace(" ","")); |
| | | tAgentService.updateById(tAgent); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | @ApiOperation(value = "导出代理商列表",notes="导出代理商列表") |
| | | @RequestMapping(value = "/export") |
| | | @ResponseBody |
| | | public void export(String principal,String principalPhone,String createTime, HttpServletResponse response) { |
| | | public void export(String principal,String principalPhone,Integer status,String createTime, HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | |
| | | String fileName = "Agent"+time1+".xls"; |
| | | String[] title = new String[] {"时间","姓名","联系电话","代理区域","客服电话","订单数量", |
| | | "有效订单","已发放优惠券","已使用优惠券","累计优惠券金额","司机充值","司机数","状态"}; |
| | | EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime); |
| | | EntityWrapper<TAgent> wrapper = tAgentService.getAgentWrapper(principal,principalPhone,createTime,status); |
| | | // 是否异常 |
| | | List<TAgent> list = tAgentService.selectList(wrapper); |
| | | |
| | |
| | | values[i][7] = d.getEmergencyContact(); |
| | | values[i][8] = d.getEmergencyPhone(); |
| | | values[i][9] = String.valueOf(d.getAccountBalance()); |
| | | values[i][10] = String.valueOf(d.getUserTagId()); |
| | | values[i][10] = String.valueOf(Objects.nonNull(d.getUserTagId())?d.getUserTagId():""); |
| | | Integer status1 = d.getStatus(); |
| | | if(1 == status1){ |
| | | values[i][11] = "正常"; |
| | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TDriverResp; |
| | | import com.stylefeng.guns.modular.system.enums.StatusEnum; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.ITRegionService; |
| | | import com.stylefeng.guns.modular.system.service.ITSystemConfigService; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import com.stylefeng.guns.modular.system.util.RedisUtil; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import com.stylefeng.guns.modular.system.service.ITBranchOfficeService; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | @Autowired |
| | | private ITRegionService tRegionService; |
| | | @Autowired |
| | | private ITDriverService tDriverService; |
| | | @Autowired |
| | | private ITDriverWorkService tDriverWorkService; |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | public String index(Model model) { |
| | | model.addAttribute("userType", Objects.requireNonNull(ShiroKit.getUser()).getRoleType()); |
| | | return PREFIX + "tBranchOffice.html"; |
| | | } |
| | | |
| | |
| | | TBranchOffice tBranchOffice = tBranchOfficeService.selectById(id); |
| | | tBranchOffice.setStatus(StatusEnum.FREEZE.getCode()); |
| | | tBranchOfficeService.updateById(tBranchOffice); |
| | | List<TDriver> list = tDriverService.selectList(new EntityWrapper<TDriver>() |
| | | .eq("branchOfficeId", tBranchOffice.getId())); |
| | | for (TDriver tDriver : list) { |
| | | String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone()); |
| | | redisUtil.remove(value); |
| | | redisUtil.remove("DRIVER_" + tDriver.getPhone()); |
| | | TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() |
| | | .eq("driverId", tDriver.getId()) |
| | | .eq("status", 1) |
| | | .orderBy("workTime", false) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(tDriverWork)){ |
| | | tDriverWork.setStatus(2); |
| | | tDriverWork.setOffWorkTime(new Date()); |
| | | tDriverWorkService.updateById(tDriverWork); |
| | | } |
| | | } |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | |
| | | if(Objects.nonNull(o)){ |
| | | return o; |
| | | } |
| | | tBranchOffice.setPrincipal(tBranchOffice.getPrincipal().replace(" ","")); |
| | | tBranchOffice.setStatus(StatusEnum.NORMAL.getCode()); |
| | | |
| | | tBranchOfficeService.insert(tBranchOffice); |
| | |
| | | if(Objects.nonNull(o)){ |
| | | return o; |
| | | } |
| | | tBranchOffice.setPrincipal(tBranchOffice.getPrincipal().replace(" ","")); |
| | | tBranchOfficeService.updateById(tBranchOffice); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | } |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | wrapper.ne("status", StatusEnum.DELETE.getCode()); |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("create_time",startTime,endTime); |
| | | } |
| | | wrapper.ne("status", StatusEnum.DELETE.getCode()); |
| | |
| | | if(isExit){ |
| | | return new SuccessTip(500,"该优惠券名称与类型已存在!"); |
| | | } |
| | | // 如果是新人优惠券,查询是否存在已启用的新人优惠券 |
| | | if(tCoupon.getCouponType() == 2){ |
| | | int count = tCouponService.selectCount(new EntityWrapper<TCoupon>() |
| | | .eq("coupon_type", 2) |
| | | .eq("coupon_state", 1) |
| | | .eq("status", true)); |
| | | if(count>0){ |
| | | return new SuccessTip(500,"已存在已启用的新人优惠券!"); |
| | | } |
| | | } |
| | | tCouponService.insert(tCoupon); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | |
| | | import com.stylefeng.guns.modular.system.controller.util.UUIDUtil; |
| | | import com.stylefeng.guns.modular.system.enums.UserTypeEnum; |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import com.stylefeng.guns.modular.system.model.TDriverWork; |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import com.stylefeng.guns.modular.system.model.TRegion; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import com.stylefeng.guns.modular.system.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.util.RedisUtil; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.Period; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | |
| | | private HttpUtils httpUtils; |
| | | @Autowired |
| | | private TokenUtils tokenUtils; |
| | | @Autowired |
| | | private ITDriverWorkService tDriverWorkService; |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | @Autowired |
| | | private ITRechargeRecordService tRechargeRecordService; |
| | | |
| | |
| | | * @return |
| | | */ |
| | | @RequestMapping("/auditPage") |
| | | public String auditPage( Integer id, |
| | | Model model) { |
| | | public String auditPage( Integer id,Model model) { |
| | | tDriverService.auditPage(id,model); |
| | | return PREFIX + "tDriverAudit.html"; |
| | | } |
| | |
| | | @ResponseBody |
| | | public Object list(String createTime,String phone,Integer status) { |
| | | EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status); |
| | | wrapper.ne("isException",2); |
| | | wrapper.orderBy("createTime",false); |
| | | List<TDriver> tDrivers = tDriverService.selectList(wrapper); |
| | | return tDriverService.getTDriverResp(tDrivers); |
| | | List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers); |
| | | for (TDriverResp driverResp : tDriverResp) { |
| | | TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() |
| | | .eq("driverId", driverResp.getId()) |
| | | .orderBy("workTime", false) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(tDriverWork)){ |
| | | // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0 |
| | | if(tDriverWork.getStatus() == 1){ |
| | | driverResp.setNotOnlineCount(0); |
| | | }else { |
| | | Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now()); |
| | | driverResp.setNotOnlineCount(Math.abs(period.getDays())); |
| | | } |
| | | }else { |
| | | if(Objects.nonNull(driverResp.getApprovalTime())){ |
| | | // 没有上班记录,计算审核时间 |
| | | Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now()); |
| | | driverResp.setNotOnlineCount(Math.abs(period.getDays())); |
| | | }else { |
| | | driverResp.setNotOnlineCount(0); |
| | | } |
| | | } |
| | | } |
| | | return tDriverResp; |
| | | } |
| | | /** |
| | | * 获取佣金列表 |
| | |
| | | if(Objects.nonNull(tDriver)){ |
| | | tDriverCommissionResp.setInviterName(tDriver.getName()); |
| | | tDriverCommissionResp.setInviterPhone(tDriver.getPhone()); |
| | | |
| | | if(Objects.nonNull(tDriver.getInviterId())){ |
| | | TDriver driver = tDriverService.selectById(tDriver.getInviterId()); |
| | | if(Objects.nonNull(driver.getInviterId())){ |
| | | tDriverCommissionResp.setLevel("三级"); |
| | | }else { |
| | | tDriverCommissionResp.setLevel("二级"); |
| | | } |
| | | }else { |
| | | tDriverCommissionResp.setLevel("一级"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | return commissionResp; |
| | |
| | | return o; |
| | | } |
| | | // 默认值板块 |
| | | tDriver.setName(tDriver.getName().replace(" ","")); |
| | | tDriver.setEmergencyContact(tDriver.getEmergencyContact().replace(" ","")); |
| | | tDriver.setCode(UUIDUtil.getNumberRandom(16)); |
| | | tDriver.setBalance(BigDecimal.ZERO); |
| | | tDriver.setBackgroundBalance(BigDecimal.ZERO); |
| | |
| | | TDriver tDriver = tDriverService.selectById(id); |
| | | if(1 == status){ |
| | | tDriver.setStatus(2); |
| | | String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone()); |
| | | redisUtil.remove(value); |
| | | redisUtil.remove("DRIVER_" + tDriver.getPhone()); |
| | | TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() |
| | | .eq("driverId", tDriver.getId()) |
| | | .eq("status", 1) |
| | | .orderBy("workTime", false) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(tDriverWork)){ |
| | | tDriverWork.setStatus(2); |
| | | tDriverWork.setOffWorkTime(new Date()); |
| | | tDriverWorkService.updateById(tDriverWork); |
| | | } |
| | | } |
| | | if(2 == status){ |
| | | tDriver.setStatus(1); |
| | |
| | | if(Objects.nonNull(o)){ |
| | | return o; |
| | | } |
| | | tDriver.setName(tDriver.getName().replace(" ","")); |
| | | tDriver.setEmergencyContact(tDriver.getEmergencyContact().replace(" ","")); |
| | | tDriverService.updateById(tDriver); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | String time1 = format.format(date); |
| | | String fileName = "DriverInfo"+time1+".xls"; |
| | | String[] title = new String[] {"编号","姓名","手机号","性别","驾驶证号码","身份证号码", |
| | | "身份证","所属代理商","所属分公司","钱包余额","累计订单量","当月订单量","积分","拒单次数","状态","添加时间"}; |
| | | "身份证","所属代理商","所属分公司","钱包余额","累计订单量","当月订单量","积分","拒单次数","状态","审核状态","添加时间"}; |
| | | EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status); |
| | | // 是否异常 |
| | | List<TDriver> list = tDriverService.selectList(wrapper); |
| | | |
| | | List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(list); |
| | | wrapper.orderBy("createTime",false); |
| | | List<TDriver> tDrivers = tDriverService.selectList(wrapper); |
| | | List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers); |
| | | |
| | | String[][] values = new String[tDriverResp.size()][]; |
| | | for (int i = 0; i < tDriverResp.size(); i++) { |
| | |
| | | }else { |
| | | values[i][14] = "删除"; |
| | | } |
| | | values[i][15] = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(d.getCreateTime()); |
| | | Integer approvalStatus = d.getApprovalStatus(); |
| | | if(1 == approvalStatus){ |
| | | values[i][15] = "待审核"; |
| | | }else if(2 == approvalStatus){ |
| | | values[i][15] = "已同意"; |
| | | }else { |
| | | values[i][15] = "已拒绝"; |
| | | } |
| | | values[i][16] = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(d.getCreateTime()); |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | |
| | | "身份证","累计订单量","当月订单量","积分","连续未上线(天)","状态","添加时间"}; |
| | | EntityWrapper<TDriver> wrapper = tDriverService.getPageList(createTime,phone,status); |
| | | wrapper.eq("isException",2); |
| | | // 是否异常 |
| | | List<TDriver> list = tDriverService.selectList(wrapper); |
| | | |
| | | List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(list); |
| | | wrapper.orderBy("createTime",false); |
| | | List<TDriver> tDrivers = tDriverService.selectList(wrapper); |
| | | List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers); |
| | | for (TDriverResp driverResp : tDriverResp) { |
| | | TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() |
| | | .eq("driverId", driverResp.getId()) |
| | | .orderBy("workTime", false) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(tDriverWork)){ |
| | | // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0 |
| | | if(tDriverWork.getStatus() == 1){ |
| | | driverResp.setNotOnlineCount(0); |
| | | }else { |
| | | Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now()); |
| | | driverResp.setNotOnlineCount(Math.abs(period.getDays())); |
| | | } |
| | | }else { |
| | | // 没有上班记录,计算审核时间 |
| | | Period period = Period.between(DateUtil.dateToLocalDate(driverResp.getApprovalTime()), LocalDate.now()); |
| | | driverResp.setNotOnlineCount(Math.abs(period.getDays())); |
| | | } |
| | | } |
| | | |
| | | String[][] values = new String[tDriverResp.size()][]; |
| | | for (int i = 0; i < tDriverResp.size(); i++) { |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | @ApiOperation(value = "导出司机异常列表",notes="导出司机异常列表") |
| | | @ApiOperation(value = "导出司机佣金列表",notes="导出司机佣金列表") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), |
| | | }) |
| | |
| | | EntityWrapper<TEdition> wrapper = new EntityWrapper<>(); |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | if(StringUtils.hasLength(editionNo)){ |
| | |
| | | import com.stylefeng.guns.modular.system.enums.StatusEnum; |
| | | import com.stylefeng.guns.modular.system.model.TAgent; |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import com.stylefeng.guns.modular.system.model.TDriverWork; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import com.stylefeng.guns.modular.system.util.DateUtil; |
| | |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.Duration; |
| | | import java.time.LocalDate; |
| | | import java.time.Period; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | List<Integer> ids = tAgentList.stream().map(TAgent::getId).collect(Collectors.toList()); |
| | | // 查询统计在线司机,待接单,服务中,已完成,已取消 |
| | | List<TDriver> onLineDriver = tDriverService.selectList(new EntityWrapper<TDriver>() |
| | | .in("agentId", ids) |
| | | .eq("serverStatus", 2)); |
| | | .in("agentId", ids)); |
| | | List<TAgent> tAgentAllList = tAgentService.selectList(new EntityWrapper<TAgent>()); |
| | | List<Integer> allIds = tAgentAllList.stream().map(TAgent::getId).collect(Collectors.toList()); |
| | | tOrderService.getDataStatisticsCountByIds(allIds,model); |
| | | |
| | | model.addAttribute("onLineDriverCount",onLineDriver.size()); |
| | | tOrderService.getDataStatisticsCountByIds(ids,model); |
| | | // 查询服务中的订单列表 |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerListByIds(ids); |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerListByIds(allIds); |
| | | List<TOrder> orderList = tOrderService.selectList(new EntityWrapper<TOrder>()); |
| | | // 查询司机 |
| | | for (TOrderServerResp tOrderServerResp : orderServerRespList) { |
| | | TDriver tDriver = tDriverService.selectById(tOrderServerResp.getDriverId()); |
| | | tOrderServerResp.setAvatar(tDriver.getAvatar()); |
| | | tOrderServerResp.setDriverName(tDriver.getName()); |
| | | List<TOrder> collect = orderList.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) && |
| | | (order.getState().equals(OrderStateEnum.WAIT_PAY.getCode()) |
| | | || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) |
| | | || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); |
| | | // 驾龄 |
| | | Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); |
| | | tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); |
| | | // 代驾次数 |
| | | tOrderServerResp.setValetDrivingCount(collect.size()); |
| | | // 行驶时间 |
| | | long goTime = 0; |
| | | for (TOrder tOrder : collect) { |
| | | // 下车时间 |
| | | Date getoffTime = tOrder.getGetoffTime(); |
| | | // 上车时间 |
| | | Date boardingTime = tOrder.getBoardingTime(); |
| | | long minutes = Duration.between(DateUtil.dateToLocalDate(getoffTime), DateUtil.dateToLocalDate(boardingTime)).toMinutes(); |
| | | goTime += Math.abs(minutes); |
| | | } |
| | | tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); |
| | | // 行驶里程 |
| | | int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); |
| | | tOrderServerResp.setMileageTraveled(sum/1000); |
| | | } |
| | | model.addAttribute("serverList",orderServerRespList); |
| | | // 查询今天所有订单 |
| | |
| | | list.add(obj); |
| | | } |
| | | model.addAttribute("allList",list); |
| | | List<List<String>> list1 = new ArrayList<>(allList.size()); |
| | | List<List<String>> list1 = new ArrayList<>(); |
| | | for (TDriver tDriver : onLineDriver) { |
| | | List<String> obj = new ArrayList<>(3); |
| | | String value = redisUtil.getValue("DRIVER" + tDriver.getId()); |
| | |
| | | obj.add(String.valueOf(tDriver.getServerStatus()));// 服务状态 |
| | | list1.add(obj); |
| | | } |
| | | model.addAttribute("onLineDriverCount",list1.size()); |
| | | // 拿到所有在线司机地址 |
| | | model.addAttribute("onLineDriver",list1); |
| | | return PREFIX + "tHomePageMap.html"; |
| | |
| | | if(Objects.nonNull(agentId)){ |
| | | // 查询统计在线司机,待接单,服务中,已完成,已取消 |
| | | List<TDriver> onLineDriver = tDriverService.selectList(new EntityWrapper<TDriver>() |
| | | .eq("agentId", agentId) |
| | | .eq("serverStatus", 2)); |
| | | map.put("onLineDriverCount",onLineDriver.size()); |
| | | tOrderService.getDataStatisticsCountGetMap(agentId,map); |
| | | .eq("agentId", agentId)); |
| | | List<TAgent> tAgentAllList = tAgentService.selectList(new EntityWrapper<TAgent>()); |
| | | List<Integer> allIds = tAgentAllList.stream().map(TAgent::getId).collect(Collectors.toList()); |
| | | tOrderService.getDataStatisticsCountByIdsGetMap(allIds,map); |
| | | |
| | | // 查询服务中的订单列表 |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerList(agentId); |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerListByIds(allIds); |
| | | List<TOrder> orderList = tOrderService.selectList(new EntityWrapper<TOrder>()); |
| | | // 查询司机 |
| | | for (TOrderServerResp tOrderServerResp : orderServerRespList) { |
| | | TDriver tDriver = tDriverService.selectById(tOrderServerResp.getDriverId()); |
| | | tOrderServerResp.setAvatar(tDriver.getAvatar()); |
| | | tOrderServerResp.setDriverName(tDriver.getName()); |
| | | List<TOrder> collect = orderList.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) && |
| | | (order.getState().equals(OrderStateEnum.WAIT_PAY.getCode()) |
| | | || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) |
| | | || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); |
| | | // 驾龄 |
| | | Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); |
| | | tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); |
| | | // 代驾次数 |
| | | tOrderServerResp.setValetDrivingCount(collect.size()); |
| | | // 行驶时间 |
| | | long goTime = 0; |
| | | for (TOrder tOrder : collect) { |
| | | // 下车时间 |
| | | Date getoffTime = tOrder.getGetoffTime(); |
| | | // 上车时间 |
| | | Date boardingTime = tOrder.getBoardingTime(); |
| | | long minutes = Duration.between(DateUtil.dateToLocalDateTime(getoffTime), DateUtil.dateToLocalDateTime(boardingTime)).toMinutes(); |
| | | goTime += Math.abs(minutes); |
| | | } |
| | | tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); |
| | | // 行驶里程 |
| | | int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); |
| | | tOrderServerResp.setMileageTraveled(sum/1000); |
| | | } |
| | | map.put("serverList",orderServerRespList); |
| | | // 查询今天所有订单 |
| | |
| | | list.add(obj); |
| | | } |
| | | map.put("allList",list); |
| | | List<List<String>> list1 = new ArrayList<>(allList.size()); |
| | | List<List<String>> list1 = new ArrayList<>(); |
| | | for (TDriver tDriver : onLineDriver) { |
| | | List<String> obj = new ArrayList<>(3); |
| | | String value = redisUtil.getValue("DRIVER" + tDriver.getId()); |
| | |
| | | obj.add(String.valueOf(tDriver.getServerStatus()));// 服务状态 |
| | | list1.add(obj); |
| | | } |
| | | map.put("onLineDriverCount",list1.size()); |
| | | // 拿到所有在线司机地址 |
| | | map.put("onLineDriver",list1); |
| | | }else { |
| | |
| | | List<Integer> ids = tAgentList.stream().map(TAgent::getId).collect(Collectors.toList()); |
| | | // 查询统计在线司机,待接单,服务中,已完成,已取消 |
| | | List<TDriver> onLineDriver = tDriverService.selectList(new EntityWrapper<TDriver>() |
| | | .in("agentId", ids) |
| | | .eq("serverStatus", 2)); |
| | | |
| | | map.put("onLineDriverCount",onLineDriver.size()); |
| | | .in("agentId", ids)); |
| | | |
| | | List<TAgent> tAgentAllList = tAgentService.selectList(new EntityWrapper<TAgent>()); |
| | | List<Integer> allIds = tAgentAllList.stream().map(TAgent::getId).collect(Collectors.toList()); |
| | |
| | | |
| | | // 查询服务中的订单列表 |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerListByIds(allIds); |
| | | List<TOrder> orderList = tOrderService.selectList(new EntityWrapper<TOrder>()); |
| | | // 查询司机 |
| | | for (TOrderServerResp tOrderServerResp : orderServerRespList) { |
| | | TDriver tDriver = tDriverService.selectById(tOrderServerResp.getDriverId()); |
| | | tOrderServerResp.setAvatar(tDriver.getAvatar()); |
| | | tOrderServerResp.setDriverName(tDriver.getName()); |
| | | List<TOrder> collect = orderList.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) && |
| | | (order.getState().equals(OrderStateEnum.WAIT_PAY.getCode()) |
| | | || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) |
| | | || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); |
| | | // 驾龄 |
| | | Period period = Period.between(LocalDate.now(), DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); |
| | | tOrderServerResp.setDrivingExperience(Math.max(Math.abs(period.getYears()), 1)); |
| | | // 代驾次数 |
| | | tOrderServerResp.setValetDrivingCount(collect.size()); |
| | | // 行驶时间 |
| | | long goTime = 0; |
| | | for (TOrder tOrder : collect) { |
| | | // 下车时间 |
| | | Date getoffTime = tOrder.getGetoffTime(); |
| | | // 上车时间 |
| | | Date boardingTime = tOrder.getBoardingTime(); |
| | | long minutes = Duration.between(DateUtil.dateToLocalDateTime(getoffTime), DateUtil.dateToLocalDateTime(boardingTime)).toMinutes(); |
| | | goTime += Math.abs(minutes); |
| | | } |
| | | tOrderServerResp.setGoTime(Long.valueOf(goTime).intValue()); |
| | | // 行驶里程 |
| | | int sum = collect.stream().mapToInt(TOrder::getActualMileage).sum(); |
| | | tOrderServerResp.setMileageTraveled(sum/1000); |
| | | } |
| | | map.put("serverList",orderServerRespList); |
| | | |
| | | // 查询今天所有订单 |
| | | List<TOrder> allList = tOrderService.getDataStatisticsAllListByIds(allIds,type); |
| | | List<List<String>> list = new ArrayList<>(allList.size()); |
| | |
| | | list.add(obj); |
| | | } |
| | | map.put("allList",list); |
| | | List<List<String>> list1 = new ArrayList<>(allList.size()); |
| | | List<List<String>> list1 = new ArrayList<>(); |
| | | for (TDriver tDriver : onLineDriver) { |
| | | List<String> obj = new ArrayList<>(3); |
| | | String value = redisUtil.getValue("DRIVER" + tDriver.getId()); |
| | |
| | | obj.add(String.valueOf(tDriver.getServerStatus()));// 服务状态 |
| | | list1.add(obj); |
| | | } |
| | | map.put("onLineDriverCount",list1.size()); |
| | | // 拿到所有在线司机地址 |
| | | map.put("onLineDriver",list1); |
| | | } |
| | |
| | | } |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | if(Objects.nonNull(agentId)){ |
| | | List<TAgent> tAgentList = tAgentService.selectList(new EntityWrapper<TAgent>()); |
| | | List<Integer> ids = tAgentList.stream().map(TAgent::getId).collect(Collectors.toList()); |
| | | // 查询服务中的订单列表 |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerList(agentId); |
| | | List<TOrderServerResp> orderServerRespList = tOrderService.getDataStatisticsServerListByIds(ids); |
| | | // 查询司机 |
| | | for (TOrderServerResp tOrderServerResp : orderServerRespList) { |
| | | TDriver tDriver = tDriverService.selectById(tOrderServerResp.getDriverId()); |
| | |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.stylefeng.guns.modular.system.service.ITAppUserService; |
| | | import com.stylefeng.guns.modular.system.service.ITCancelOrderService; |
| | | import com.stylefeng.guns.modular.system.service.ITOrderService; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | |
| | | private ITOrderService tOrderService; |
| | | @Autowired |
| | | private ITAppUserService tAppUserService; |
| | | @Autowired |
| | | private ITCancelOrderService tCancelOrderService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName) { |
| | | return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,2); |
| | | // return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,2); |
| | | return tCancelOrderService.getCancelOrderList(createTime, code, source, userName, userPhone, state, driverName); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | EntityWrapper<TOrder> wrapper = new EntityWrapper<>(); |
| | | if(Objects.nonNull(userId)){ |
| | | wrapper.eq("user_id",userId); |
| | | wrapper.eq("userId",userId); |
| | | } |
| | | List<TOrder> tOrders = tOrderService.selectList(wrapper); |
| | | for (TOrder tOrder : tOrders) { |
| | |
| | | public Object list(String condition) { |
| | | EntityWrapper<TOrderRefusal> wrapper = new EntityWrapper<>(); |
| | | if(StringUtils.hasLength(condition)){ |
| | | wrapper.eq("order_id",condition); |
| | | wrapper.eq("driver_id",condition); |
| | | } |
| | | return tOrderRefusalService.selectList(wrapper); |
| | | } |
| | |
| | | } |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | wrapper.ne("status",3); |
| | |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 2) |
| | | .last("LIMIT 1")); |
| | | JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); |
| | | model.addAttribute("num1",jsonObject.getInteger("num1")); |
| | | model.addAttribute("num2",jsonObject.getInteger("num2")); |
| | | model.addAttribute("num3",jsonObject.getInteger("num3")); |
| | | model.addAttribute("num4",jsonObject.getInteger("num4")); |
| | | model.addAttribute("num5",jsonObject.getInteger("num5")); |
| | | model.addAttribute("num6",jsonObject.getInteger("num6")); |
| | | model.addAttribute("num7",jsonObject.getInteger("num7")); |
| | | model.addAttribute("num1",jsonObject.getString("num1")); |
| | | model.addAttribute("num2",jsonObject.getString("num2")); |
| | | model.addAttribute("num3",jsonObject.getString("num3")); |
| | | model.addAttribute("num4",jsonObject.getString("num4")); |
| | | model.addAttribute("num5",jsonObject.getString("num5")); |
| | | model.addAttribute("num6",jsonObject.getString("num6")); |
| | | model.addAttribute("num7",jsonObject.getString("num7")); |
| | | return PREFIX + "tSystemConfigCommissionShareRules.html"; |
| | | } |
| | | |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | wrapper.ne("status", StatusEnum.DELETE.getCode()); |
| | |
| | | |
| | | public class TDriverCommissionResp extends TDriver { |
| | | |
| | | @ApiModelProperty(value = "层级") |
| | | private String level; |
| | | |
| | | // 所属代理商 |
| | | @ApiModelProperty(value = "所属代理商") |
| | | private String agentName; |
| | |
| | | @ApiModelProperty(value = "邀约人电话") |
| | | private String inviterPhone; |
| | | |
| | | public String getLevel() { |
| | | return level; |
| | | } |
| | | |
| | | public void setLevel(String level) { |
| | | this.level = level; |
| | | } |
| | | |
| | | @Override |
| | | public String getInviterName() { |
| | | return inviterName; |
| | |
| | | @ApiModelProperty(value = "司机头像") |
| | | private String avatar; |
| | | @ApiModelProperty(value = "驾龄") |
| | | private Integer drivingExperience = 105; |
| | | private Integer drivingExperience; |
| | | @ApiModelProperty(value = "代驾次数") |
| | | private Integer valetDrivingCount = 105; |
| | | private Integer valetDrivingCount ; |
| | | |
| | | @ApiModelProperty(value = "行驶时间") |
| | | private Integer goTime = 105; |
| | | private Integer goTime ; |
| | | @ApiModelProperty(value = "行驶里程") |
| | | private Integer mileageTraveled = 105; |
| | | private Integer mileageTraveled ; |
| | | |
| | | public Integer getMileageTraveled() { |
| | | return mileageTraveled; |
| | |
| | | import com.stylefeng.guns.modular.system.service.IMenuService; |
| | | import com.stylefeng.guns.modular.system.service.IUserService; |
| | | import com.stylefeng.guns.modular.system.util.AESUtils; |
| | | import com.stylefeng.guns.modular.system.util.RedisUtil; |
| | | import org.apache.shiro.authc.SimpleAuthenticationInfo; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | | import org.apache.shiro.subject.Subject; |
| | |
| | | |
| | | @Autowired |
| | | private IUserService userService; |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | |
| | | private Map<String, Integer> loginFailures = new HashMap<>(); |
| | | |
| | |
| | | * 点击登录执行的动作 |
| | | */ |
| | | @RequestMapping(value = "/login", method = RequestMethod.POST) |
| | | public String loginVali(String username, String password, String remember, Model model, HttpServletRequest request) { |
| | | public String loginVali(String username, String password,String sms_code, String remember, Model model, HttpServletRequest request) { |
| | | Integer f = loginFailures.get(username); |
| | | f = f == null ? 0 : f; |
| | | // 校验账号,密码是否正确,如果错误,对次数进行加1 |
| | |
| | | return "/login.html"; |
| | | } |
| | | } |
| | | |
| | | // if(!"aaaa".equals(sms_code)){ |
| | | // String value = redisUtil.getValue(user.getPhone()); |
| | | // if(ToolUtil.isEmpty(value) || !sms_code.equals(value)){ |
| | | // model.addAttribute("tips", "无效的验证码"); |
| | | // return "/login.html"; |
| | | // } |
| | | // } |
| | | |
| | | |
| | | //验证验证码是否正确 |
| | | if (KaptchaUtil.getKaptchaOnOff()) { |
| | | String kaptcha = super.getPara("kaptcha").trim(); |
| | | String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); |
| | | if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) { |
| | | throw new InvalidKaptchaException(); |
| | | } |
| | | } |
| | | |
| | | model.addAttribute("number", "3"); |
| | | Subject currentUser = ShiroKit.getSubject(); |
| | | UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); |
| | |
| | | @Permission |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(@RequestParam(required = false) String roleName) { |
| | | List<Map<String, Object>> roles = this.roleService.selectRoles(super.getPara("roleName")); |
| | | public Object list(@RequestParam(required = false) String roleName, |
| | | @RequestParam(required = false) String headName, |
| | | @RequestParam(required = false) String headPhone) { |
| | | List<Map<String, Object>> roles = this.roleService.selectRoles(super.getPara("roleName"),super.getPara("headName"),super.getPara("headPhone")); |
| | | return super.warpObject(new RoleWarpper(roles)); |
| | | } |
| | | |
| | |
| | | * @return |
| | | * @date 2017年2月12日 下午9:14:34 |
| | | */ |
| | | List<Map<String, Object>> selectRoles(@Param("condition") String condition); |
| | | List<Map<String, Object>> selectRoles(@Param("condition") String condition, |
| | | @Param("headName") String headName, |
| | | @Param("headPhone") String headPhone); |
| | | |
| | | /** |
| | | * 删除某个角色的所有权限 |
| | |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | List<DataStatisticsOrderYearResp> getStatisticsOrderByMonthIds(@Param("ids")List<Integer> ids, @Param("dayDate")String dayDate); |
| | | |
| | | /** |
| | | * 查询司机当月有效订单数量 |
| | | * @param driverId |
| | | * @param orderMoney |
| | | * @param month |
| | | * @return |
| | | */ |
| | | Integer getValidOrderCount(@Param("driverId") Integer driverId,@Param("orderMoney") BigDecimal orderMoney, @Param("month")String month); |
| | | } |
| | |
| | | <result column="deptid" property="deptid" /> |
| | | <result column="tips" property="tips" /> |
| | | <result column="version" property="version" /> |
| | | <result column="headName" property="headName" /> |
| | | <result column="headPhone" property="headPhone" /> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | |
| | | <select id="selectRoles" resultType="map"> |
| | | select rr.*,(SELECT COUNT(id) from sys_user where FIND_IN_SET(rr.id,roleid)) as userCount |
| | | from sys_role as rr |
| | | <if test="condition != null"> |
| | | where rr.name like CONCAT('%',#{condition},'%') |
| | | <where> |
| | | <if test="condition != null and condition != ''"> |
| | | and rr.name like CONCAT('%',#{condition},'%') |
| | | </if> |
| | | <if test="headName != null and headName != ''"> |
| | | and rr.headName like CONCAT('%',#{headName},'%') |
| | | </if> |
| | | <if test="headPhone != null and headPhone != ''"> |
| | | and rr.headPhone like CONCAT('%',#{headPhone},'%') |
| | | </if> |
| | | </where> |
| | | ORDER BY rr.num |
| | | </select> |
| | | |
| | | <delete id="deleteRolesById"> |
| | |
| | | AND b.billType = #{billType} |
| | | </if> |
| | | <if test="billHeaderType != null"> |
| | | AND b.billHeaderType = #{addresseePhone} |
| | | AND b.billHeaderType = #{billHeaderType} |
| | | </if> |
| | | <if test="roleType != null and roleType == 2"> |
| | | AND o.branchOfficeId = #{objectId} |
| | |
| | | <if test="roleType != null and roleType == 3"> |
| | | AND o.agentId = #{objectId} |
| | | </if> |
| | | AND co.userType = 1 |
| | | </where> |
| | | ORDER BY co.createTime |
| | | </select> |
| | |
| | | <if test="driverName != null and driverName != ''"> |
| | | AND d.name LIKE concat('%',#{driverName},'%') |
| | | </if> |
| | | <if test="isException != null"> |
| | | AND a.is_exception = #{isException} |
| | | </if> |
| | | <if test="roleType != null and roleType == 2"> |
| | | AND o.branchOfficeId = #{objectId} |
| | | </if> |
| | |
| | | #{id} |
| | | </foreach> |
| | | </if> |
| | | <if test="type != null"> |
| | | AND `state` = #{type} |
| | | <if test="type == 1"> |
| | | AND `state` = 101 |
| | | </if> |
| | | <if test="type == 2"> |
| | | AND (`state` = 107 |
| | | OR `state` = 108 |
| | | OR `state` = 109) |
| | | </if> |
| | | <if test="type == 3"> |
| | | AND `state` = 301 |
| | | </if> |
| | | <if test="localDate != null"> |
| | | AND date_format(createTime, '%Y-%m-%d') LIKE concat('',#{localDate},'%') |
| | |
| | | </where> |
| | | GROUP BY `month` |
| | | </select> |
| | | <select id="getValidOrderCount" resultType="java.lang.Integer"> |
| | | select count(id) |
| | | from t_order |
| | | <where> |
| | | <if test="driverId != null"> |
| | | AND driverId = #{driverId} |
| | | </if> |
| | | <if test="orderMoney != null"> |
| | | AND orderMoney > #{orderMoney} |
| | | </if> |
| | | <if test="month != null"> |
| | | AND DATE_FORMAT(createTime, '%Y-%m') = #{month} |
| | | </if> |
| | | AND (`state` = 107 OR `state` = 108 OR `state` = 109) |
| | | </where> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | * 保留字段(暂时没用) |
| | | */ |
| | | private Integer version; |
| | | /** |
| | | * 负责人姓名 |
| | | */ |
| | | private String headName; |
| | | /** |
| | | * 负责人电话 |
| | | */ |
| | | private String headPhone; |
| | | |
| | | public String getHeadName() { |
| | | return headName; |
| | | } |
| | | |
| | | public void setHeadName(String headName) { |
| | | this.headName = headName; |
| | | } |
| | | |
| | | public String getHeadPhone() { |
| | | return headPhone; |
| | | } |
| | | |
| | | public void setHeadPhone(String headPhone) { |
| | | this.headPhone = headPhone; |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | |
| | | private Date createTime; |
| | | @ApiModelProperty(value = "优推距离") |
| | | private Integer distance; |
| | | @ApiModelProperty(value = "图片") |
| | | @TableField(value = "picture") |
| | | private String picture; |
| | | |
| | | @TableField(exist = false) |
| | | private String serviceContent; |
| | | |
| | | public String getPicture() { |
| | | return picture; |
| | | } |
| | | |
| | | public void setPicture(String picture) { |
| | | this.picture = picture; |
| | | } |
| | | |
| | | public String getServiceContent() { |
| | | return serviceContent; |
| | | } |
| | |
| | | * @return |
| | | * @date 2017年2月12日 下午9:14:34 |
| | | */ |
| | | List<Map<String, Object>> selectRoles(@Param("condition") String condition); |
| | | List<Map<String, Object>> selectRoles(@Param("condition") String condition, |
| | | @Param("headName") String headName, |
| | | @Param("headPhone") String headPhone); |
| | | |
| | | /** |
| | | * 删除某个角色的所有权限 |
| | |
| | | * @param createTime |
| | | * @return |
| | | */ |
| | | EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime); |
| | | EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime,Integer status); |
| | | |
| | | /** |
| | | * 代理商查看详情 |
| | |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.springframework.ui.Model; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | * @param map |
| | | */ |
| | | void getStatisticsOrderByMonthIds(List<Integer> ids, String dayDate, Model model, Map<String, Object> map); |
| | | |
| | | /** |
| | | * 查询司机当月有效订单数量 |
| | | * @param driverId |
| | | * @param orderMoney |
| | | * @param month |
| | | * @return |
| | | */ |
| | | Integer getValidOrderCount(Integer driverId, BigDecimal orderMoney, String month); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectRoles(String condition) { |
| | | return this.baseMapper.selectRoles(condition); |
| | | public List<Map<String, Object>> selectRoles(String condition,String headName,String headPhone) { |
| | | return this.baseMapper.selectRoles(condition,headName,headPhone); |
| | | } |
| | | |
| | | @Override |
| | |
| | | private TUserToCouponMapper tUserToCouponMapper; |
| | | |
| | | @Override |
| | | public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime) { |
| | | public EntityWrapper<TAgent> getAgentWrapper(String principal, String principalPhone, String createTime,Integer status) { |
| | | EntityWrapper<TAgent> wrapper = new EntityWrapper<>(); |
| | | // 昵称 |
| | | if(StringUtils.hasLength(principal)){ |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | // 判断是否为代理商 |
| | | if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 3){ |
| | | wrapper.eq("id",ShiroKit.getUser().getObjectId()); |
| | | } |
| | | // 状态 |
| | | if(Objects.nonNull(status)){ |
| | | wrapper.eq("status",status); |
| | | } |
| | | wrapper.ne("status", StatusEnum.DELETE.getCode()); |
| | | wrapper.orderBy("createTime",false); |
| | | return wrapper; |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createtime",startTime,endTime); |
| | | } |
| | | // if(Objects.nonNull(startTime) && Objects.nonNull(endTime)){ |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0]+" 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0] + " 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | |
| | | @Autowired |
| | | private TRegionMapper tRegionMapper; |
| | | @Autowired |
| | | private TRevenueMapper tRevenueMapper; |
| | | @Autowired |
| | | private ITRegionService itRegionService; |
| | | @Autowired |
| | | private HttpUtils httpUtils; |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | Date startTime = DateUtil.getDate_str3(split[0]+" 00:00:00"); |
| | | Date endTime = DateUtil.getDate_str3(split[1]+" 23:59:59"); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | wrapper.orderBy(true,"approvalStatus"); |
| | |
| | | } |
| | | //累计订单量 |
| | | List<TOrder> cumulativeOrderCount = tOrders.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) |
| | | && order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) && order.getState().equals(OrderStateEnum.FINISH.getCode())).collect(Collectors.toList()); |
| | | && (order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); |
| | | tDriverResp.setCumulativeOrderCount(cumulativeOrderCount.size()); |
| | | //当月订单量 |
| | | List<TOrder> monthOrderCount = tOrders.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) |
| | | && order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) && order.getState().equals(OrderStateEnum.FINISH.getCode()) |
| | | && (order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode())) |
| | | && new SimpleDateFormat("yyyyMM").format(order.getCreateTime()).equals(monthDate)).collect(Collectors.toList()); |
| | | tDriverResp.setMonthOrderCount(monthOrderCount.size()); |
| | | // 拒单次数 |
| | |
| | | |
| | | // 计算驾龄 |
| | | if(Objects.nonNull(tDriver.getFirstCertificateTime())){ |
| | | ZoneId zoneId = ZoneId.systemDefault(); |
| | | LocalDate firstTime = tDriver.getFirstCertificateTime().toInstant().atZone(zoneId).toLocalDate(); |
| | | LocalDate now = tDriver.getFirstCertificateTime().toInstant().atZone(zoneId).toLocalDate(); |
| | | Period period = Period.between(firstTime, now); |
| | | model.addAttribute("drivingExperience",period.getYears()); |
| | | Period period = Period.between(LocalDate.now(), com.stylefeng.guns.modular.system.util.DateUtil.dateToLocalDate(tDriver.getFirstCertificateTime())); |
| | | model.addAttribute("drivingExperience",Math.max(Math.abs(period.getYears()), 1)); |
| | | }else { |
| | | model.addAttribute("drivingExperience",0); |
| | | } |
| | |
| | | TDriver tDriver1 = tDriverMapper.selectById(tDriver.getInviterId()); |
| | | model.addAttribute("inviterName",tDriver1.getName()); |
| | | model.addAttribute("inviterPhone",tDriver1.getPhone()); |
| | | } |
| | | }else { |
| | | model.addAttribute("inviterName",""); |
| | | model.addAttribute("inviterPhone",""); |
| | | } |
| | | } |
| | | |
| | | // 查询当前用户邀请了哪些人 |
| | |
| | | if(!CollectionUtils.isEmpty(tOrders)){ |
| | | //累计订单量 |
| | | List<TOrder> cumulativeOrderCount = tOrders.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) |
| | | && order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) && order.getState().equals(OrderStateEnum.FINISH.getCode())).collect(Collectors.toList()); |
| | | && (order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode()))).collect(Collectors.toList()); |
| | | model.addAttribute("cumulativeOrderCount",cumulativeOrderCount.size()); |
| | | //当月订单量 |
| | | List<TOrder> monthOrderCount = tOrders.stream().filter(order -> tDriver.getId().equals(order.getDriverId()) |
| | | && order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) && order.getState().equals(OrderStateEnum.FINISH.getCode()) |
| | | && (order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode()) || order.getState().equals(OrderStateEnum.FINISH.getCode())) |
| | | && new SimpleDateFormat("yyyyMM").format(order.getCreateTime()).equals(monthDate)).collect(Collectors.toList()); |
| | | model.addAttribute("monthOrderCount",monthOrderCount.size()); |
| | | // 拒单次数 |
| | |
| | | .eq("userDriverId", tDriver.getId()) |
| | | .eq("state", 2)); |
| | | BigDecimal balance = tDriver.getBalance(); |
| | | if(!CollectionUtils.isEmpty(tCashWithdrawals)){ |
| | | Optional<BigDecimal> reduce = tCashWithdrawals.stream().map(TCashWithdrawal::getAmount).reduce(BigDecimal::add); |
| | | if(reduce.isPresent()){ |
| | | balance = balance.add(reduce.get()); |
| | | } |
| | | } |
| | | List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>() |
| | | .eq("type", UserTypeEnum.DRIVER.getCode()) |
| | | .eq("userId", tDriver.getId()) |
| | | .eq("payType", 1) |
| | | .eq("payStatus", PayStatusEnum.FINISH.getCode())); |
| | | if(!CollectionUtils.isEmpty(tRechargeRecords)){ |
| | | Optional<BigDecimal> reduce = tRechargeRecords.stream().map(TRechargeRecord::getAmount).reduce(BigDecimal::add); |
| | | if(reduce.isPresent()){ |
| | | balance = balance.subtract(reduce.get()); |
| | | } |
| | | } |
| | | // if(!CollectionUtils.isEmpty(tCashWithdrawals)){ |
| | | // Optional<BigDecimal> reduce = tCashWithdrawals.stream().map(TCashWithdrawal::getAmount).reduce(BigDecimal::add); |
| | | // if(reduce.isPresent()){ |
| | | // balance = balance.add(reduce.get()); |
| | | // } |
| | | // } |
| | | // List<TRechargeRecord> tRechargeRecords = tRechargeRecordMapper.selectList(new EntityWrapper<TRechargeRecord>() |
| | | // .eq("type", UserTypeEnum.DRIVER.getCode()) |
| | | // .eq("userId", tDriver.getId()) |
| | | // .eq("payType", 1) |
| | | // .eq("payStatus", PayStatusEnum.FINISH.getCode())); |
| | | // if(!CollectionUtils.isEmpty(tRechargeRecords)){ |
| | | // Optional<BigDecimal> reduce = tRechargeRecords.stream().map(TRechargeRecord::getAmount).reduce(BigDecimal::add); |
| | | // if(reduce.isPresent()){ |
| | | // balance = balance.subtract(reduce.get()); |
| | | // } |
| | | // } |
| | | List<TRevenue> tRevenues = tRevenueMapper.selectList(new EntityWrapper<TRevenue>() |
| | | .eq("userType", 2) |
| | | .eq("userId", tDriver.getId())); |
| | | Optional<BigDecimal> reduce = tRevenues.stream().map(TRevenue::getAmount).reduce(BigDecimal::add); |
| | | // 减去充值金额 |
| | | model.addAttribute("cumulativeIncome",balance); |
| | | if(reduce.isPresent()){ |
| | | model.addAttribute("cumulativeIncome", reduce.get()); |
| | | }else { |
| | | model.addAttribute("cumulativeIncome",0); |
| | | } |
| | | }else { |
| | | model.addAttribute("cumulativeOrderCount",0); |
| | | model.addAttribute("monthOrderCount",0); |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0] + " 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | List<TEvaluateResp> list = tEvaluateMapper.selectPageList(startTime, endTime, userName, driverName, orderType, score); |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.modular.system.controller.resp.DataStatisticsOrderYearResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.PerformanceTableResp; |
| | |
| | | import com.stylefeng.guns.modular.system.dao.TAppUserMapper; |
| | | import com.stylefeng.guns.modular.system.dao.TBranchOfficeMapper; |
| | | import com.stylefeng.guns.modular.system.dao.TDriverMapper; |
| | | import com.stylefeng.guns.modular.system.dao.TOrderMapper; |
| | | import com.stylefeng.guns.modular.system.enums.OrderStateEnum; |
| | | import com.stylefeng.guns.modular.system.model.TAppUser; |
| | | import com.stylefeng.guns.modular.system.model.TBranchOffice; |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.stylefeng.guns.modular.system.dao.TOrderMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITOrderService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.stylefeng.guns.modular.system.util.DateUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0] + " 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | |
| | | |
| | | @Override |
| | | public void getDataStatisticsCountByIds(List<Integer> ids, Model model) { |
| | | Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.PENDING_ORDER.getCode(), LocalDate.now()); |
| | | Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.FINISH.getCode(),LocalDate.now()); |
| | | Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.CANCELED.getCode(),LocalDate.now()); |
| | | Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, 1, LocalDate.now()); |
| | | Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, 2,LocalDate.now()); |
| | | Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, 3,LocalDate.now()); |
| | | Integer serverCount = tOrderMapper.getDataStatisticsServerCountByIds(ids, LocalDate.now()); |
| | | |
| | | model.addAttribute("pendingOrderCount",pendingOrderCount); |
| | |
| | | |
| | | @Override |
| | | public void getDataStatisticsCountByIdsGetMap(List<Integer> ids, HashMap<String, Object> map) { |
| | | Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.PENDING_ORDER.getCode(), LocalDate.now()); |
| | | Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.FINISH.getCode(),LocalDate.now()); |
| | | Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, OrderStateEnum.CANCELED.getCode(),LocalDate.now()); |
| | | Integer pendingOrderCount = tOrderMapper.getDataStatisticsCountByIds(ids, 1, LocalDate.now()); |
| | | Integer finishCount = tOrderMapper.getDataStatisticsCountByIds(ids, 2,LocalDate.now()); |
| | | Integer cancelCount = tOrderMapper.getDataStatisticsCountByIds(ids, 3,LocalDate.now()); |
| | | Integer serverCount = tOrderMapper.getDataStatisticsServerCountByIds(ids, LocalDate.now()); |
| | | |
| | | map.put("pendingOrderCount",pendingOrderCount); |
| | |
| | | model.addAttribute("monthResp",resps); |
| | | map.put("monthResp",resps); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public Integer getValidOrderCount(Integer driverId, BigDecimal orderMoney, String month) { |
| | | // 查询司机当月有效订单数量 |
| | | return tOrderMapper.getValidOrderCount(driverId,orderMoney,month); |
| | | } |
| | | } |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0] + " 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0] + " 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(businessTime)){ |
| | | String[] split = businessTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | startTime = split[0] + " 00:00:00"; |
| | | endTime = split[1] + " 23:59:59"; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | |
| | | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.Instant; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.GregorianCalendar; |
| | |
| | | return calendar.getActualMaximum(Calendar.DAY_OF_MONTH); |
| | | } |
| | | |
| | | /** |
| | | * date转localdate |
| | | * @param date |
| | | * @return |
| | | */ |
| | | public static LocalDate dateToLocalDate(Date date){ |
| | | ZoneId zoneId = ZoneId.systemDefault(); |
| | | Instant instant = date.toInstant(); |
| | | return instant.atZone(zoneId).toLocalDate(); |
| | | } |
| | | |
| | | /** |
| | | * date转localdatetime |
| | | * @param date |
| | | * @return |
| | | */ |
| | | public static LocalDateTime dateToLocalDateTime(Date date){ |
| | | ZoneId zoneId = ZoneId.systemDefault(); |
| | | Instant instant = date.toInstant(); |
| | | return instant.atZone(zoneId).toLocalDateTime(); |
| | | } |
| | | |
| | | |
| | | |
| | | public static void main(String[] args) throws ParseException { |
| | |
| | | package com.stylefeng.guns.modular.system.util; |
| | | |
| | | public class PushURL { |
| | | public static String zull_user_url = "http://127.0.0.1:81"; |
| | | // public static String zull_user_url = "http://127.0.0.1:81"; |
| | | public static String zull_user_url = "https://okyueche.com:443"; |
| | | public static String order_push_url = zull_user_url + "/driver/base/order/pushOrderState"; |
| | | public static String driver_auth_url = zull_user_url + "/driver/base/driver/sendsms"; |
| | | public static String withdraw_auth_url = zull_user_url + "/driver/base/withdrawal/withdrawalAudit"; |
| | |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.modular.system.enums.UserTypeEnum; |
| | | import com.stylefeng.guns.modular.system.model.TAppUser; |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import com.stylefeng.guns.modular.system.service.ITDriverService; |
| | | import com.stylefeng.guns.modular.system.service.ITLocationService; |
| | | import com.stylefeng.guns.modular.system.service.IUserCouponRecordService; |
| | | import com.stylefeng.guns.modular.system.model.TDriverWork; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.Period; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private ITLocationService locationService; |
| | | |
| | | @Autowired |
| | | private ITDriverService driverService; |
| | | @Autowired |
| | | private ITAppUserService appUserService; |
| | | @Autowired |
| | | private ITOrderService orderService; |
| | | @Autowired |
| | | private ITDriverWorkService tDriverWorkService; |
| | | |
| | | |
| | | |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 每半天检测用户是否有异常 |
| | | */ |
| | | @Scheduled(cron = "0 0 0,12 * * ? ") |
| | | public void queryUserIsException(){ |
| | | try { |
| | | List<TAppUser> appUserList = appUserService.selectList(new EntityWrapper<TAppUser>().ne("status", 3)); |
| | | for (TAppUser tAppUser : appUserList) { |
| | | TOrder tOrder = orderService.selectOne(new EntityWrapper<TOrder>() |
| | | .eq("userId", tAppUser.getId()) |
| | | .last("LIMIT 1")); |
| | | // 客户一个月未下单,状态异常 |
| | | Period period = Period.between(DateUtil.dateToLocalDate(tOrder.getCreateTime()), LocalDate.now()); |
| | | int day = Math.abs(period.getDays()); |
| | | if(day > 29){ |
| | | tAppUser.setIsException(2); |
| | | } |
| | | } |
| | | appUserService.updateBatchById(appUserList); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 每半天检测司机是否有异常 |
| | | */ |
| | | @Scheduled(cron = "0 0 9,21 * * ? ") |
| | | public void queryDriverIsException(){ |
| | | try { |
| | | List<TDriver> driverList = driverService.selectList(new EntityWrapper<TDriver>().ne("status", 3)); |
| | | for (TDriver driver : driverList) { |
| | | // 15天未上线异常,当月有效订单低于30单,异常 |
| | | Integer count = orderService.getValidOrderCount(driver.getId(),new BigDecimal(14),new SimpleDateFormat("yyyy-MM").format(new Date())); |
| | | if(count < 30){ |
| | | driver.setIsException(2); |
| | | } |
| | | TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>() |
| | | .eq("driverId", driver.getId()) |
| | | .orderBy("workTime", false) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(tDriverWork)){ |
| | | // 如果是下班状态,计算未上线天数,,如果为上班状态,则设置为0 |
| | | if(tDriverWork.getStatus() == 2){ |
| | | Period period = Period.between(DateUtil.dateToLocalDate(tDriverWork.getOffWorkTime()), LocalDate.now()); |
| | | int day = Math.abs(period.getDays()); |
| | | if(day>14){ |
| | | driver.setIsException(2); |
| | | } |
| | | } |
| | | }else { |
| | | // 没有上班记录,计算审核时间 |
| | | Period period = Period.between(DateUtil.dateToLocalDate(driver.getApprovalTime()), LocalDate.now()); |
| | | int day = Math.abs(period.getDays()); |
| | | if(day>14){ |
| | | driver.setIsException(2); |
| | | } |
| | | } |
| | | } |
| | | driverService.updateBatchById(driverList); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | spring: |
| | | profiles: |
| | | active: local |
| | | active: produce |
| | | mvc: |
| | | static-path-pattern: /static/** |
| | | view: |
| | |
| | | spring: |
| | | profiles: local |
| | | datasource: |
| | | url: jdbc:mysql://127.0.0.1:3306/super_save_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 |
| | | url: jdbc:mysql://192.168.110.80:3306/super_save_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 |
| | | username: root |
| | | password: f4OfRjqoN3jSiNGiUoiNsQdOBtCOKYRj |
| | | # password: 123456 |
| | | # password: f4OfRjqoN3jSiNGiUoiNsQdOBtCOKYRj |
| | | password: 123456 |
| | | db-name: super_save_driving #用来搜集数据库的所有表 |
| | | filters: wall,mergeStat |
| | | |
| | |
| | | spring: |
| | | profiles: produce |
| | | datasource: |
| | | url: jdbc:mysql://120.24.34.190:3306/mask?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 |
| | | url: jdbc:mysql://127.0.0.1:3306/super_save_driving?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8 |
| | | username: root |
| | | password: Root2020! |
| | | db-name: mask #用来搜集数据库的所有表 |
| | | password: f4OfRjqoN3jSiNGiUoiNsQdOBtCOKYRj |
| | | db-name: super_save_driving #用来搜集数据库的所有表 |
| | | filters: wall,mergeStat |
| | | |
| | | --- |
| | |
| | | <div id="noVipUnlockDiv" class="flex-div"> |
| | | <div class="sp-hidden flex-div noVipUnlockTimess sp-width" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);"> |
| | | <input type="text" id="noVipUnlockTime" class="form-control layer-date " > |
| | | <#button style="margin: 0;" btnCs="info" name="搜索" id="ensure" icon="fa-check" clickFun="noVipUnlockSubmit()"/> |
| | | <#button style="margin: 0;" btnCs="info" name="查询" id="ensure" icon="fa-check" clickFun="noVipUnlockSubmit()"/> |
| | | </div> |
| | | <div class="noVipUnlockTimes flex-div" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);width: 180px;justify-content: flex-end;"> |
| | | <span class="active sp-item">今日</span> |
| | |
| | | <div id="vipUnlockDiv" class="flex-div"> |
| | | <div class="sp-hidden flex-div vipUnlockTimess sp-width" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);"> |
| | | <input type="text" id="vipUnlockTime" class="form-control layer-date " > |
| | | <#button style="margin: 0;" btnCs="info" name="搜索" id="ensure" icon="fa-check" clickFun="vipUnlockSubmit()"/> |
| | | <#button style="margin: 0;" btnCs="info" name="查询" id="ensure" icon="fa-check" clickFun="vipUnlockSubmit()"/> |
| | | </div> |
| | | <div class="vipUnlockTimes flex-div" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);width: 180px;justify-content: flex-end;"> |
| | | <span class="active sp-item">今日</span> |
| | |
| | | <div id="allIncomeDiv" class="flex-div"> |
| | | <div class="sp-hidden flex-div allIncomeTimess sp-width" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);"> |
| | | <input type="text" id="allIncomeTime" class="form-control layer-date " > |
| | | <#button style="margin: 0;" btnCs="info" name="搜索" id="ensure" icon="fa-check" clickFun="allIncomeSubmit()"/> |
| | | <#button style="margin: 0;" btnCs="info" name="查询" id="ensure" icon="fa-check" clickFun="allIncomeSubmit()"/> |
| | | </div> |
| | | <div class="allIncomeTimes flex-div" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);width: 180px;justify-content: flex-end;"> |
| | | <span class="active sp-item">今日</span> |
| | |
| | | <div id="addVipDiv" class="flex-div"> |
| | | <div class="sp-hidden flex-div addVipTimess sp-width" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);"> |
| | | <input type="text" id="addVipTime" class="form-control layer-date " > |
| | | <#button style="margin: 0;" btnCs="info" name="搜索" id="ensure" icon="fa-check" clickFun="addVipSubmit()"/> |
| | | <#button style="margin: 0;" btnCs="info" name="查询" id="ensure" icon="fa-check" clickFun="addVipSubmit()"/> |
| | | </div> |
| | | <div class="addVipTimes flex-div" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);width: 180px;justify-content: flex-end;"> |
| | | <span class="active sp-item">今日</span> |
| | |
| | | <div id="sendActiveDiv" class="flex-div"> |
| | | <div class="sp-hidden flex-div sendActiveTimess sp-width" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);"> |
| | | <input type="text" id="sendActiveTime" class="form-control layer-date " > |
| | | <#button style="margin: 0;" btnCs="info" name="搜索" id="ensure" icon="fa-check" clickFun="sendActiveSubmit()"/> |
| | | <#button style="margin: 0;" btnCs="info" name="查询" id="ensure" icon="fa-check" clickFun="sendActiveSubmit()"/> |
| | | </div> |
| | | <div class="sendActiveTimes flex-div" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);width: 180px;justify-content: flex-end;"> |
| | | <span class="active sp-item">今日</span> |
| | |
| | | <div id="userDiv" class="flex-div"> |
| | | <div class="sp-hidden flex-div userTimess sp-width" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);"> |
| | | <input type="text" id="userTime" class="form-control layer-date " > |
| | | <#button style="margin: 0;" btnCs="info" name="搜索" id="ensure" icon="fa-check" clickFun="userSubmit()"/> |
| | | <#button style="margin: 0;" btnCs="info" name="查询" id="ensure" icon="fa-check" clickFun="userSubmit()"/> |
| | | </div> |
| | | <div class="userTimes flex-div" style="position: absolute;right: 40px;top: 50%;transform: translateY(-50%);width: 180px;justify-content: flex-end;"> |
| | | <span class="active sp-item">今日</span> |
| | |
| | | </select> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <#button name="搜索" icon="fa-search" clickFun="getData()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="getData()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="reset()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | </select> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <#button name="搜索" icon="fa-search" clickFun="getDataOrder()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="getDataOrder()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="resetOrder()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | var allList; |
| | | if(e==""){ |
| | | allList = $('#allList').val(); |
| | | console.log(1111111111) |
| | | var list = JSON.stringify(allList) |
| | | console.log(2222222222) |
| | | const jsonArray = JSON.parse(list) |
| | | console.log(3333333333333) |
| | | const jsonArray1 = JSON.parse(jsonArray); |
| | | console.log(jsonArray1) |
| | | M = jsonArray1; |
| | |
| | | <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}/blackboard?type=${type}" frameborder="0" data-id="${ctxPath}/blackboard" seamless></iframe> |
| | | </div> |
| | | <div class="footer"> |
| | | <div class="pull-right">© 2019-2021 <a href="#" onclick="return false" target="_blank">超省新代驾</a> |
| | | <div class="pull-right">© 2023 <a href="#" onclick="return false" target="_blank">超省新代驾</a> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="phone" name="手机号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Home.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="Home.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="Home.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="getData()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="getData()"/> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="getData1()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="getData1()"/> |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | |
| | | <form class="m-t" role="form" action="${ctxPath}/login" method="post"> |
| | | <div class="item"> |
| | | <img src="${ctxPath}/static/img/account.png" /> |
| | | <input hidden id="number" value="${number}"> |
| | | <input class="itemInput" type="text" name="username" id="username" placeholder="请输入您的账号" required="" value=""> |
| | | </div> |
| | | <div class="item"> |
| | |
| | | @if(kaptcha.getKaptchaOnOff() == true){ |
| | | <div class="form-group" style="float: left;"> |
| | | <div class="col-sm-8" style="padding-left: 0px; padding-right: 0px;"> |
| | | <input class="form-control" type="text" name="kaptcha" id="verifyNumber" placeholder="验证码" > |
| | | <input class="form-control" type="text" name="kaptcha" id="verifyNumber" placeholder="验证码" required> |
| | | </div> |
| | | <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;"> |
| | | <img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/> |
| | |
| | | <script src="${ctxPath}/static/crypto-js/crypto-js.js"></script> |
| | | <script> |
| | | $(function () { |
| | | if($("#number").val()==5){ |
| | | document.getElementById("verifyNumber").setAttribute("required","") |
| | | // if($("#number").val()==5){ |
| | | // document.getElementById("verifyNumber").setAttribute("required","") |
| | | // $("#verify").show() |
| | | // }else { |
| | | // $("#number").val(0) |
| | | // $("#verify").hide() |
| | | // } |
| | | $("#verify").show() |
| | | }else { |
| | | $("#number").val(0) |
| | | $("#verify").hide() |
| | | } |
| | | |
| | | $("#kaptcha").on('click', function () { |
| | | $("#kaptcha").attr('src', '${ctxPath}/kaptcha?' + Math.floor(Math.random() * 100)).fadeIn(); |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Dept.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="Dept.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="DeptTableToolbar" role="group"> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Dict.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="Dict.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="DictTableToolbar" role="group"> |
| | |
| | | <#NameCon id="name" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="DriverActivity.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="DriverActivity.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="DriverActivity.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="logName" name="用户名称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="OptLog.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="OptLog.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="OptLog.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="logName" name="用户名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="LoginLog.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="LoginLog.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="LoginLog.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="level" name="层级" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Menu.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="Menu.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="menuTableToolbar" role="group"> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Notice.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="Notice.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="NoticeTableToolbar" role="group"> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="CouponStatistics.search1()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="CouponStatistics.search1()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="CouponStatistics.resetSearch1()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="CouponStatistics.downloadExcel1()"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="CouponStatistics.search2()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="CouponStatistics.search2()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="CouponStatistics.resetSearch2()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="CouponStatistics.downloadExcel2()"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="CouponStatistics.search3()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="CouponStatistics.search3()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="CouponStatistics.resetSearch3()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="CouponStatistics.downloadExcel3()"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="CouponStatistics.search4()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="CouponStatistics.search4()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="CouponStatistics.resetSearch4()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="CouponStatistics.downloadExcel4()"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="CouponStatistics.search5()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="CouponStatistics.search5()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="CouponStatistics.resetSearch5()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="CouponStatistics.downloadExcel5()"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="CouponStatisticsInfo.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="CouponStatisticsInfo.search()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="CouponStatisticsInfo.resetSearch()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="CouponStatisticsInfo.downloadExcel()"/> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="OperationalData.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="OperationalData.search()"/> |
| | | <#button name="重置" icon="fa-search" clickFun="OperationalData.resetSearch()"/> |
| | | <#button name="下载" icon="fa-download" clickFun="OperationalData.downloadExcel()"/> |
| | | </div> |
| | |
| | | <#NameCon id="roleName" name="角色名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Role.search()"/> |
| | | <#NameCon id="headName" name="负责人" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="headPhone" name="负责人电话" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="查询" icon="fa-search" clickFun="Role.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="Role.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="roleTableToolbar" role="group"> |
| | |
| | | <#button name="添加" icon="fa-plus" clickFun="Role.openAddRole()" /> |
| | | @} |
| | | @if(shiro.hasPermission("/role/edit")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="Role.openChangeRole()" space="true"/> |
| | | <#button name="编辑" icon="fa-edit" clickFun="Role.openChangeRole()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/role/remove")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="Role.delRole()" space="true"/> |
| | |
| | | <#input id="pName" name="上级名称" underline="true" hidden="pid" readonly="readonly" |
| | | clickFun="RolInfoDlg.showPNameSelectTree(); return false;" |
| | | style="background-color: #ffffff !important;"/> |
| | | <#input id="headName" name="负责人名称" underline="true"/> |
| | | <#input id="deptName" name="部门名称" hidden="deptid" readonly="readonly" |
| | | clickFun="RolInfoDlg.showDeptSelectTree(); return false;" |
| | | style="background-color: #ffffff !important;"/> |
| | | </div> |
| | | <div class="col-sm-6"> |
| | | <#input id="tips" name="别名" underline="true"/> |
| | | <#input id="num" name="排序"/> |
| | | <#input id="num" name="排序" underline="true"/> |
| | | <#input id="headPhone" name="负责人电话" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <#input id="pName" name="上级名称" underline="true" hidden="pid" hiddenValue="${role.pid}" readonly="readonly" value="${pName}" |
| | | clickFun="RolInfoDlg.showPNameSelectTree(); return false;" |
| | | style="background-color: #ffffff !important;"/> |
| | | <#input id="headName" name="负责人名称" value="${role.headName}" underline="true"/> |
| | | <#input id="deptName" name="部门名称" hidden="deptid" hiddenValue="${role.deptid}" readonly="readonly" value="${deptName}" |
| | | clickFun="RolInfoDlg.showDeptSelectTree(); return false;" |
| | | style="background-color: #ffffff !important;"/> |
| | | </div> |
| | | <div class="col-sm-6"> |
| | | <#input id="tips" name="别名" underline="true" value="${role.tips}"/> |
| | | <#input id="num" name="排序" value="${role.num}"/> |
| | | <#input id="num" name="排序" value="${role.num}" underline="true"/> |
| | | <#input id="headPhone" name="负责人电话" value="${role.headPhone}" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <input hidden id="userType" value="${userType}"> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="principal" name="姓名" /> |
| | | </div> |
| | |
| | | <div class="col-sm-3"> |
| | | <#TimeCon id="createTime" name="时间" /> |
| | | </div> |
| | | <!--<div class="col-sm-1"> |
| | | <select class="input-group" id="status" style="width: 80px;height: 33px" name="status"> |
| | | <div class="col-sm-2"> |
| | | <#SelectCon id="status" name="状态" > |
| | | <option value="">状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | <option value="3">已删除</option> |
| | | </select> |
| | | </div>--> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TAgent.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TAgent.resetSearch()" space="true"/> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="查询" icon="fa-search" clickFun="TAgent.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TAgent.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TAgentTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tAgent/export")){ |
| | | <#button name="导出" icon="" clickFun="TAgent.export()"/> |
| | | @} |
| | |
| | | <#button name="添加" icon="fa-plus" clickFun="TAgent.openAddTAgent()"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | | <!--<div class="hidden-xs" id="TAgentTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tAgent/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TAgent.openAddTAgent()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tAgent/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TAgent.openTAgentDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tAgent/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TAgent.delete()" space="true"/> |
| | | @} |
| | | </div>--> |
| | | <#table id="TAgentTable"/> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="phone" name="手机号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="status" style="width: 80px;height: 33px" name="status"> |
| | | <div class="col-sm-2"> |
| | | <#SelectCon id="status" name="状态" > |
| | | <option value="">状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TAppUser.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TAppUser.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TAppUser.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tAppUser/export-userInfo")){ |
| | | <#button name="导出" icon="" clickFun="TAppUser.export()"/> |
| | | @} |
| | |
| | | <#button name="赠送优惠劵" icon="" clickFun="TAppUser.searchCoupon()"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | | <!--<div class="hidden-xs" id="TAppUserTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tAppUser/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TAppUser.openAddTAppUser()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tAppUser/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TAppUser.openTAppUserDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tAppUser/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TAppUser.delete()" space="true"/> |
| | | @} |
| | | </div>--> |
| | | <#table id="TAppUserTable"/> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${id}"> |
| | | <hr/> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div style="background-color: gray;height: 35px;line-height: 35px"> |
| | |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | $(function (){ |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | queryData['userId'] = $("#id").val(); |
| | | TAppUserDetailOrderTable.table.refresh({query: queryData}); |
| | | }) |
| | | </script> |
| | | @} |
| | |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TAppUserException.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TAppUserException.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TAppUserException.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${id}"> |
| | | <input hidden id="status" value="${status}"> |
| | | <div class="col-lg-3"> |
| | | <div> |
| | | @if(status==1){ |
| | | 冻结理由:<textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>冻结理由:</label><br/><br/> |
| | | <textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | @if(status==2){ |
| | | 启用理由:<textarea id="startRemark" placeholder="请输入启用理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>启用理由:</label><br/><br/> |
| | | <textarea id="startRemark" placeholder="请输入启用理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="margin-left:300px"> |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TAppUserInfoDlg.close()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TAppUser.updateStatus()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${id}"> |
| | | <input hidden id="status" value="${status}"> |
| | | <div class="col-lg-3"> |
| | | <div> |
| | | @if(status==1){ |
| | | 冻结理由:<textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>冻结理由:</label><br/><br/> |
| | | <textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | @if(status==2){ |
| | | 启用理由:<textarea id="startRemark" placeholder="请输入启用理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>启用理由:</label><br/><br/> |
| | | <textarea id="startRemark" placeholder="请输入启用理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="margin-left:300px"> |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TAppUserInfoDlg.closeException()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TAppUserException.updateStatus()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="couponName" name="优惠券名称" placeholder="请输入优惠券名称"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | </div> |
| | | </div> |
| | | <#table id="TCouponTable"/> |
| | |
| | | <#NameCon id="couponName" name="优惠券名称" placeholder="请输入优惠券名称"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | </div> |
| | | </div> |
| | | <#table id="TCouponTable"/> |
| | |
| | | <#NameCon id="addresseePhone" name="手机号" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="state" style="width: 180px;height: 33px" name="state"> |
| | | <#SelectCon id="state" name="状态" > |
| | | <option value="">状态</option> |
| | | <option value="1">待开票</option> |
| | | <option value="2">已开票</option> |
| | | <option value="3">开票失败</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="billType" style="width: 180px;height: 33px" name="billType"> |
| | | <#SelectCon id="billType" name="发票类型" > |
| | | <option value="">发票类型</option> |
| | | <option value="1">电子发票</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="billHeaderType" style="width: 180px;height: 33px" name="billHeaderType"> |
| | | <#SelectCon id="billHeaderType" name="抬头类型" > |
| | | <option value="">抬头类型</option> |
| | | <option value="1">公司</option> |
| | | <option value="2">个人</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TBill.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TBill.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TBill.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <input hidden id="userType" value="${userType}"> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="branchOfficeName" name="分公司名称" /> |
| | | </div> |
| | |
| | | <#NameCon id="condition" name="管理人电话" /> |
| | | </div>--> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="operatingBusiness" style="width: 180px;height: 33px" name="operatingBusiness"> |
| | | <#SelectCon id="operatingBusiness" name="选择经营业务" > |
| | | <option value="">选择经营业务</option> |
| | | <option value="1">司机代驾</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="status" style="width: 180px;height: 33px" name="status"> |
| | | <#SelectCon id="status" name="选择状态" > |
| | | <option value="">选择状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TBranchOffice.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TBranchOffice.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TBranchOffice.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | </div> |
| | | <div class="hidden-xs" id="TBranchOfficeTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tBranchOffice/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TBranchOffice.openAddTBranchOffice()"/> |
| | | @} |
| | |
| | | <#button name="启动" icon="fa-edit" clickFun="TBranchOffice.start()" space="true"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | | <!--<div class="hidden-xs" id="TBranchOfficeTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tBranchOffice/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TBranchOffice.openAddTBranchOffice()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tBranchOffice/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TBranchOffice.openTBranchOfficeDetail()" space="true"/> |
| | | @} |
| | | </div>--> |
| | | <#table id="TBranchOfficeTable"/> |
| | | </div> |
| | | </div> |
| | |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">区:</label> |
| | | <label class="col-sm-1" style="width: 20px;">区/县:</label> |
| | | <select class="input-group col-sm-2" id="district" style="width: 200px;height: 33px" name="district"> |
| | | <option value="">请选择</option> |
| | | @for(district in districtList){ |
| | |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">区:</label> |
| | | <label class="col-sm-1" style="width: 20px;">区/县:</label> |
| | | <select class="input-group col-sm-2" id="district" style="width: 200px;height: 33px" name="district"> |
| | | <option>请选择</option> |
| | | @for(district in districtList){ |
| | |
| | | <#NameCon id="content" name="消息内容" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TBroadcast.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TBroadcast.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TBroadcast.resetSearch()"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCancelOrder.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCancelOrder.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TCancelOrderTableToolbar" role="group"> |
| | |
| | | <hr/> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div style="background-color: gray;height: 35px;line-height: 35px"> |
| | | <label style="color: #0C0C0C">取消信息</label> |
| | | </div> |
| | | </div> |
| | | <hr/> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label" >取消时间:</label> |
| | | <label>${cancelTime}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label" >取消原因:</label> |
| | | <div style="margin-left: 70px" > |
| | | <textarea id="cause" style="width: 681px; height: 249px;" readonly>${cause}</textarea> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <hr/> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div style="background-color: gray;height: 35px;line-height: 35px"> |
| | | <label style="color: #0C0C0C">费用明细</label> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <hr/> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div style="background-color: gray;height: 35px;line-height: 35px"> |
| | | <label style="color: #0C0C0C">取消信息</label> |
| | | </div> |
| | | </div> |
| | | <hr/> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label" >取消时间:</label> |
| | | <label>${cancelTime}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label" >取消原因:</label> |
| | | <div style="margin-left: 70px" > |
| | | <textarea id="cause" style="width: 681px; height: 249px;" readonly>${cause}</textarea> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TCancelOrderInfoDlg.close()" /> |
| | | </div> |
| | |
| | | <#NameCon id="franchiseeName" name="所属加盟商" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCar.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCar.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCar.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | |
| | | $("#homePageBanner").hide() |
| | | } |
| | | }) |
| | | //监听下拉菜单的变动操作 |
| | | $("#jumpType").change(function(){ |
| | | if(this.value == 1){ |
| | | $("#jumpUrlIsShow").hide() |
| | | } |
| | | if(this.value == 2){ |
| | | $("#jumpUrlIsShow").show() |
| | | } |
| | | }) |
| | | </script> |
| | | @} |
| | |
| | | $("#homePageBanner").hide() |
| | | } |
| | | }) |
| | | //监听下拉菜单的变动操作 |
| | | $("#jumpType").change(function(){ |
| | | if(this.value == 1){ |
| | | $("#jumpUrlIsShow").hide() |
| | | } |
| | | if(this.value == 2){ |
| | | $("#jumpUrlIsShow").show() |
| | | } |
| | | }) |
| | | </script> |
| | | @} |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="Franchisee.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="Franchisee.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="Franchisee.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCompany.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCompany.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCompany.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="driverPhone" name="司机手机号" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="state" style="width: 180px;height: 33px" name="state"> |
| | | <#SelectCon id="state" name="选择状态" > |
| | | <option value="">选择状态</option> |
| | | <option value="1">待处理</option> |
| | | <option value="2">已处理</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TComplaint.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TComplaint.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TComplaint.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <#TimeCon id="createTime" name="发布时间"/> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="couponType" style="width: 180px;height: 33px" name="couponType"> |
| | | <#SelectCon id="couponType" name="优惠券类型" > |
| | | <option value="">优惠券类型</option> |
| | | <option value="1">活动券</option> |
| | | <option value="2">优惠券</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="couponServiceType" style="width: 180px;height: 33px" name="couponServiceType"> |
| | | <#SelectCon id="couponServiceType" name="服务类类型" > |
| | | <option value="">服务类类型</option> |
| | | <option value="1">通用券</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCoupon.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >优惠券类型:</label> |
| | | <select id="couponType" name="couponType" onclick="TCoupon.changeCouponType()" style="height: 30px" required> |
| | | <select id="couponType" name="couponType" onclick="TCoupon.changeCouponType()" style="height: 30px;width: 180px" required> |
| | | <option value="">请选择优惠券类型</option> |
| | | <option value="1">活动券</option> |
| | | <option value="2">新人券</option> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class=" control-label">服务类类型:</label> |
| | | <select id="couponServiceType" name="couponServiceType" style="height: 30px" required> |
| | | <select id="couponServiceType" name="couponServiceType" style="height: 30px;width: 180px" required> |
| | | <option value="">请选择服务类类型</option> |
| | | <option value="1">通用型</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" id="coupon1" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">优惠券限制数量:</label> |
| | | <input id="couponCount" name="couponCount1" type="number" min="0" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" id="coupon2" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">优惠券限制数量:</label> |
| | | <input id="couponCount" name="couponCount" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | <input id="couponCount" name="couponCount2" type="number" min="1" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">条件金额:订单满</label> |
| | | <input id="couponConditionalAmount" name="couponConditionalAmount" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | <input id="couponConditionalAmount" name="couponConditionalAmount" type="number" min="14" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <label>可使用</label> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">优惠金额:</label> |
| | | <input id="couponPreferentialAmount" name="couponPreferentialAmount" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | <input id="couponPreferentialAmount" name="couponPreferentialAmount" type="number" min="1" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">有效期:</label> |
| | | <input id="couponValidity" name="couponValidity" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | <input id="couponValidity" name="couponValidity" type="number" min="1" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <label>天</label> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">优惠券总量:</label> |
| | | <input id="remainingQuantity" name="remainingQuantity" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | <input id="remainingQuantity" name="remainingQuantity" min="1" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">赠送数量:</label> |
| | | <input id="couponSendQuantity" name="couponSendQuantity" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | <input id="couponSendQuantity" name="couponSendQuantity" min="1" type="number" maxlength="4" placeholder="最多4位数字" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <label>张</label> |
| | |
| | | <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon_info.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon.js"></script> |
| | | <script type="text/javascript"> |
| | | //监听下拉菜单的变动操作 |
| | | $("#couponType").change(function(){ |
| | | if(this.value == 1){ |
| | | $("#coupon1").show() |
| | | $("#coupon2").hide() |
| | | } |
| | | if(this.value == 2){ |
| | | $("#coupon1").hide() |
| | | $("#coupon2").show() |
| | | } |
| | | }) |
| | | </script> |
| | | @} |
| | |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="phone" name="手机号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="status" style="width: 80px;height: 33px" name="status"> |
| | | <div class="col-sm-2"> |
| | | <#SelectCon id="status" name="状态" > |
| | | <option value="">状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TDriver.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TDriver.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TDriver.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | @if(shiro.hasPermission("/tDriver/rechargeBalancePage")){ |
| | | <#button name="充值" icon="fa-edit" clickFun="TDriver.rechargeBalancePage()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tAgent/add")){ |
| | | @if(shiro.hasPermission("/tDriver/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TDriver.openAddTDriver()"/> |
| | | @} |
| | | </div> |
| | |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">区:</label> |
| | | <label class="col-sm-1" style="width: 20px;">区/县:</label> |
| | | <select class="input-group col-sm-2" id="district" style="width: 200px;height: 33px" name="district"> |
| | | <option>请选择</option> |
| | | @for(district in districtList){ |
| | |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">区:</label> |
| | | <label class="col-sm-1" style="width: 20px;">区/县:</label> |
| | | <select class="input-group col-sm-2" id="district" style="width: 200px;height: 33px" name="district"> |
| | | <option>请选择</option> |
| | | @for(district in districtList){ |
| | |
| | | <label>${phone}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">紧急联系人电话:</label> |
| | | <label>${emergencyPhone}</label> |
| | | </div> |
| | |
| | | <label>未知</label> |
| | | @} |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">司机来源:</label> |
| | | <label></label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">邀请人:</label> |
| | | <label>${phone}</label> |
| | | <label>${inviterName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">电话:</label> |
| | | <label>${phone}</label> |
| | | <label>${inviterPhone}</label> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <label class="control-label" >驾驶证号码:</label> |
| | | <label>${driverLicenseNumber}</label> |
| | | </div> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">驾龄:</label> |
| | | <label>${driverLicenseNumber}</label> |
| | | <label>${drivingExperience}</label> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <label class="control-label" >身份证号码:</label> |
| | | <label>${idcard}</label> |
| | | </div> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">加盟城市:</label> |
| | | <label>${cityName}</label> |
| | | </div> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">服务区域:</label> |
| | | <label>${areaName}</label> |
| | |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="name" name="司机姓名" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="status" style="width: 80px;height: 33px" name="status"> |
| | | <div class="col-sm-2"> |
| | | <#SelectCon id="status" name="状态" > |
| | | <option value="">状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TDriverCommission.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TDriverCommission.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TDriverCommission.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | |
| | | <hr/> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div style="background-color: gray;height: 35px;line-height: 35px"> |
| | | <label style="color: #0C0C0C">用户资料</label> |
| | | <label style="color: #0C0C0C">司机详情</label> |
| | | </div> |
| | | </div> |
| | | <hr/> |
| | |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >身份证正面照:</label> |
| | | <img src="${idcardFront}" style="height: 100px;width: 100px"/> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">身份证背面照:</label> |
| | | <img src="${idcardBack}" style="height: 100px;width: 100px"/> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >姓名:</label> |
| | | <label>${name}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >身份证号码:</label> |
| | | <label>${idcard}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >身份证正面照:</label><br/> |
| | | <img src="${idcardFront}" style="height: 100px;width: 100px"/> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">身份证背面照:</label><br/> |
| | | <img src="${idcardBack}" style="height: 100px;width: 100px"/> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <script type="text/javascript"> |
| | | $(function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#driverId").val();; |
| | | queryData['condition'] = $("#driverId").val(); |
| | | TOrderRefusal.table.refresh({query: queryData}); |
| | | }); |
| | | laydate.render({ |
| | |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="phone" name="手机号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="status" style="width: 80px;height: 33px" name="status"> |
| | | <div class="col-sm-2"> |
| | | <#SelectCon id="status" name="状态" > |
| | | <option value="">状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TDriverException.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TDriverException.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TDriverException.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${id}"> |
| | | <input hidden id="status" value="${status}"> |
| | | <div class="col-lg-3"> |
| | | <div> |
| | | @if(status==1){ |
| | | 冻结理由:<textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>冻结理由:</label><br/><br/> |
| | | <textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | @if(status==2){ |
| | | 解冻理由:<textarea id="startRemark" placeholder="请输入解冻理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>解冻理由:</label><br/><br/> |
| | | <textarea id="startRemark" placeholder="请输入解冻理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | </div> |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="margin-left:300px"> |
| | | </div> |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TDriverInfoDlg.closeException()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TDriverException.updateStatus()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${id}"> |
| | | <input hidden id="status" value="${status}"> |
| | | <div class="col-lg-3"> |
| | | <div> |
| | | @if(status==1){ |
| | | 冻结理由:<textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>冻结理由:</label><br/><br/> |
| | | <textarea id="stopRemark" placeholder="请输入冻结理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | @if(status==2){ |
| | | 解冻理由:<textarea id="startRemark" placeholder="请输入解冻理由" maxlength="200" style="width: 681px; height: 249px;"></textarea> |
| | | <label>解冻理由:</label><br/><br/> |
| | | <textarea id="startRemark" placeholder="请输入解冻理由" maxlength="200" style="width: 100%; height: 180px;" required></textarea> |
| | | @} |
| | | </div> |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="margin-left:300px"> |
| | | </div> |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TDriverInfoDlg.close()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TDriver.updateStatus()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="serverStr" name="服务模式" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="SelectCar.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="SelectCar.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="SelectCar.resetSearch()" space="true"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="SelectCar.selectCarOpt()" space="true"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="SelectCar.close()" space="true"/> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >紧急联系人姓名:</label> |
| | | <input id="emergencyContact" name="emergencyContact" value="${item.emergencyContact}" type="text" maxlength="20" style="height: 30px" required> |
| | | <input id="emergencyContact" name="emergencyContact" value="${item.emergencyContact}" type="text" maxlength="20" style="height: 30px" required disabled> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >紧急联系人电话:</label> |
| | | <input id="emergencyPhone" name="emergencyPhone" value="${item.emergencyPhone}" type="number" maxlength="11" style="height: 30px" required> |
| | | <input id="emergencyPhone" name="emergencyPhone" value="${item.emergencyPhone}" type="number" maxlength="11" style="height: 30px" required disabled> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >邀约人姓名:</label> |
| | | <input id="inviterName" value="${item.inviterName}" type="text" maxlength="20" style="height: 30px"> |
| | | <input id="inviterName" value="${item.inviterName}" type="text" maxlength="20" style="height: 30px" disabled> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >邀约人电话:</label> |
| | | <input id="inviterPhone" value="${item.inviterPhone}" type="number" maxlength="11" style="height: 30px"> |
| | | <input id="inviterPhone" value="${item.inviterPhone}" type="number" maxlength="11" style="height: 30px" disabled> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >身份证号码:</label> |
| | | <input id="idcard" name="idcard" value="${item.idcard}" type="text" maxlength="20" style="height: 30px" required> |
| | | <input id="idcard" name="idcard" value="${item.idcard}" type="text" maxlength="20" style="height: 30px" required disabled> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <!-- <div class="initialLevel col-sm-3 control-label form-group" >--> |
| | | <!-- <span style="color:red">*</span>--> |
| | | <!-- <label class="control-label" >身份证正面照:</label>--> |
| | | <!-- <#uploadImg id="idcardFront" fileImg="${item.idcardFront}"/>--> |
| | | <!-- </div>--> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >身份证正面照:</label> |
| | | <#uploadImg id="idcardFront" fileImg="${item.idcardFront}"/> |
| | | <div class="form-group"> |
| | | <div class="col-sm-4"> |
| | | <div id="idcardFrontPreId"> |
| | | <div><img width="100px" height="100px" src="${item.idcardFront}"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="initialLevel col-sm-3 control-label form-group" >--> |
| | | <!-- <span style="color:red">*</span>--> |
| | | <!-- <label class="control-label" >身份证背面照:</label>--> |
| | | <!-- <#uploadImg id="idcardBack" fileImg="${item.idcardBack}"/>--> |
| | | <!-- </div>--> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >身份证背面照:</label> |
| | | <#uploadImg id="idcardBack" fileImg="${item.idcardBack}"/> |
| | | <div class="form-group"> |
| | | <div class="col-sm-4"> |
| | | <div id="idcardBackPreId"> |
| | | <div><img width="100px" height="100px" src="${item.idcardBack}"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <!-- <div class="initialLevel col-sm-3 control-label form-group" >--> |
| | | <!-- <span style="color:red">*</span>--> |
| | | <!-- <label class="control-label" >驾驶证:</label>--> |
| | | <!-- <#uploadImg id="driverLicense" fileImg="${item.driverLicense}"/>--> |
| | | <!-- </div>--> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >驾驶证:</label> |
| | | <#uploadImg id="driverLicense" fileImg="${item.driverLicense}"/> |
| | | <div class="form-group"> |
| | | <div class="col-sm-4"> |
| | | <div id="driverLicensePreId"> |
| | | <div><img width="100px" height="100px" src="${item.driverLicense}"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="YesDriver.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="YesDriver.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="YesDriver.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | |
| | | <#NameCon id="editionNo" name="版本号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TEdition.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TEdition.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TEdition.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TEditionTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tEdition/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TEdition.openAddTEdition()"/> |
| | | <#button name="添加版本" icon="fa-plus" clickFun="TEdition.openAddTEdition()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tEdition/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TEdition.openTEditionDetail()" space="true"/> |
| | |
| | | </select> |
| | | </div>--> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="score" style="width: 120px;height: 33px" name="score"> |
| | | <#SelectCon id="score" name="评价分数" > |
| | | <option value="">选择分数</option> |
| | | <option value="1">非常差</option> |
| | | <option value="2">差</option> |
| | | <option value="3">一般</option> |
| | | <option value="4">满意</option> |
| | | <option value="5">非常满意</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TEvaluate.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TEvaluate.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TEvaluate.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | @if(shiro.hasPermission("/tEvaluate/export")){ |
| | | <#button name="导出" icon="" clickFun="TEvaluate.export()"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TEvaluateTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tEvaluate/export")){ |
| | | <#button name="导出" icon="" clickFun="TEvaluate.export()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tEvaluate/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TEvaluate.openAddTEvaluate()"/> |
| | | @} |
| | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >订单来源:</label> |
| | | <label>${source}</label> |
| | | @if(1 == source){ |
| | | <label>用户创建</label> |
| | | @} |
| | | @if(2 == source){ |
| | | <label>司机创建</label> |
| | | @} |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >乘车时间:</label> |
| | |
| | | </select> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <#button name="搜索" icon="fa-search" clickFun="getData()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="getData()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="reset()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | M.forEach(function(marker) { |
| | | new AMap.Marker({ |
| | | map: map, |
| | | icon: marker[2]==301?'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-1.png':((marker[2]==109||marker[2]==107||marker[2]==108)?'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-2.png': |
| | | icon: marker[2]==301?'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-1.png':((marker[2]==109||marker[2]==107||marker[2]==108)?'https://csxdj.obs.cn-south-1.myhuaweicloud.com/c1d2f38187de40daa353fcc70993288e.png': |
| | | (marker[2]==101?'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-3.png':'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-4.png') |
| | | ), |
| | | position: [marker[0], marker[1]], |
| | |
| | | M.forEach(function(marker) { |
| | | new AMap.Marker({ |
| | | map: map, |
| | | icon: marker[2]==1?'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-5.png':'//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-6.png', |
| | | icon: 'https://csxdj.obs.cn-south-1.myhuaweicloud.com/c1d2f38187de40daa353fcc70993288e.png', |
| | | position: [marker[0], marker[1]], |
| | | offset: new AMap.Pixel(-13, -30) |
| | | }); |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="THtml.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="THtml.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="THtmlTableToolbar" role="group"> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TInvoice.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TInvoice.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TInvoice.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TLine.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TLine.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TLine.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-2" style="text-align: center"> |
| | | @if(shiro.hasPermission("/tMainContent/driverCancelOrder/add")){ |
| | | <#button btnCss="info" name="新增" id="ensure" icon="fa-check" clickFun="TMainContent.driverCancelOrderAdd()"/> |
| | | <#button btnCss="info" name="新增" id="ensure" icon="" clickFun="TMainContent.driverCancelOrderAdd()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tMainContent/driverCancelOrder/update")){ |
| | | <#button btnCss="info" name="编辑" id="ensure" icon="fa-check" clickFun="TMainContent.driverCancelOrderUpdate()"/> |
| | | <#button btnCss="info" name="编辑" id="ensure" icon="" clickFun="TMainContent.driverCancelOrderUpdate()"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="fa-check" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.driverCancelOrderAddSubmit()"/> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="" clickFun="TMainContentInfoDlg.driverCancelOrderAddSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="fa-check" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.driverCancelOrderUpdateSubmit()"/> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="" clickFun="TMainContentInfoDlg.driverCancelOrderUpdateSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TMainContent.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TMainContent.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TMainContentTableToolbar" role="group"> |
| | |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="" clickFun="TMainContentInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | </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="TMainContentInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="" clickFun="TMainContentInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-2" style="text-align: center"> |
| | | @if(shiro.hasPermission("/tMainContent/transferOrder/add")){ |
| | | <#button btnCss="info" name="新增" id="ensure" icon="fa-check" clickFun="TMainContent.transferOrderAdd()"/> |
| | | <#button btnCss="info" name="新增" id="ensure" icon="" clickFun="TMainContent.transferOrderAdd()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tMainContent/transferOrder/update")){ |
| | | <#button btnCss="info" name="编辑" id="ensure" icon="fa-check" clickFun="TMainContent.transferOrderUpdate()"/> |
| | | <#button btnCss="info" name="编辑" id="ensure" icon="" clickFun="TMainContent.transferOrderUpdate()"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="fa-check" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.transferOrderAddSubmit()"/> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="" clickFun="TMainContentInfoDlg.transferOrderAddSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="fa-check" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.transferOrderUpdateSubmit()"/> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="" clickFun="TMainContentInfoDlg.transferOrderUpdateSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-2" style="text-align: center"> |
| | | @if(shiro.hasPermission("/tMainContent/userCancelOrder/add")){ |
| | | <#button btnCss="info" name="新增" id="ensure" icon="fa-check" clickFun="TMainContent.userCancelOrderAdd()"/> |
| | | <#button btnCss="info" name="新增" id="ensure" icon="" clickFun="TMainContent.userCancelOrderAdd()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tMainContent/userCancelOrder/update")){ |
| | | <#button btnCss="info" name="编辑" id="ensure" icon="fa-check" clickFun="TMainContent.userCancelOrderUpdate()"/> |
| | | <#button btnCss="info" name="编辑" id="ensure" icon="" clickFun="TMainContent.userCancelOrderUpdate()"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="fa-check" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.userCancelOrderAddSubmit()"/> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="" clickFun="TMainContentInfoDlg.userCancelOrderAddSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="fa-check" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="TMainContentInfoDlg.userCancelOrderUpdateSubmit()"/> |
| | | <#button btnCss="info" name="取消" id="cancel" icon="" clickFun="TMainContentInfoDlg.close()"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="" clickFun="TMainContentInfoDlg.userCancelOrderUpdateSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="content" name="消息内容" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="System.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="System.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="System.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="content" name="消息内容" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TNotices.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TNotices.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TNotices.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCancelOrder.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TCancelOrder.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCancelOrder.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <#TimeCon id="createTime" name="订单时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="code" name="订单编号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="source" style="width: 120px;height: 33px" name="source"> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="source" name="订单来源" > |
| | | <option value="">请选择订单来源</option> |
| | | <option value="1">小程序</option> |
| | | <option value="2">司机创建</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="state" style="width: 120px;height: 33px" name="state"> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="state" name="状态" > |
| | | <option value="">请选择订单状态</option> |
| | | <option value="101">待接单</option> |
| | | <option value="102">已接单</option> |
| | |
| | | <option value="201">转单中</option> |
| | | <option value="301">已取消</option> |
| | | <option value="401">等待中</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="driverName" name="司机姓名" /> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrder.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TOrder.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TOrder.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrderException.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TOrderException.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TOrderException.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrderEvaluate.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TOrderEvaluate.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TOrderEvaluate.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrderRefusal.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TOrderRefusal.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TOrderRefusalTableToolbar" role="group"> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TReassign.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TReassign.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TReassign.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TReassign.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TReassign.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TReassign.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="phone" name="司机手机号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="SelectPrivateCarDriver.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="SelectPrivateCarDriver.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="SelectPrivateCarDriver.resetSearch()" space="true"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="SelectPrivateCarDriver.selectDriver()" space="true"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="SelectPrivateCarDriver.close()" space="true"/> |
| | |
| | | <#NameCon id="phone" name="司机手机号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="SelectCrossDriver.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="SelectCrossDriver.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="SelectCrossDriver.resetSearch()" space="true"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="SelectCrossDriver.selectDriver()" space="true"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="SelectCrossDriver.close()" space="true"/> |
| | |
| | | <#NameCon id="phone" name="司机手机号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="SelectPrivateCarDriver.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="SelectPrivateCarDriver.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="SelectPrivateCarDriver.resetSearch()" space="true"/> |
| | | <#button btnCss="info" name="确定" id="ensure" icon="fa-check" clickFun="SelectPrivateCarDriver.selectDriver()" space="true"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="SelectPrivateCarDriver.close()" space="true"/> |
| | |
| | | <#TimeCon id="businessTime" name="交易时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRechargeRecord.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TRechargeRecord.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TRechargeRecord.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <#TimeCon id="createTime" name="充值时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRechargeRecordAgent.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TRechargeRecordAgent.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TRechargeRecordAgent.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <#TimeCon id="createTime" name="充值时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRechargeRecordUser.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TRechargeRecordUser.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TRechargeRecordUser.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRegion.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TRegion.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TRegionTableToolbar" role="group"> |
| | |
| | | <#NameCon id="code" name="订单号" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="businessType" style="width: 180px;height: 33px" name="businessType"> |
| | | <#SelectCon id="businessType" name="交易类型" > |
| | | <option value="">交易类型</option> |
| | | <option value="11">佣金提现</option> |
| | | <option value="12">余额提现</option> |
| | | <option value="1">支付订单</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="payType" style="width: 180px;height: 33px" name="payType"> |
| | | <#SelectCon id="payType" name="支付渠道" > |
| | | <option value="">支付渠道</option> |
| | | <option value="1">微信支付</option> |
| | | <option value="2">余额支付</option> |
| | | <option value="3">线下收款</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverName" name="司机姓名" /> |
| | |
| | | <#TimeCon id="businessTime" name="交易时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRevenue.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TRevenue.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TRevenue.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | |
| | | <#NameCon id="content" name="消息内容" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TSystemBulletin.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TSystemBulletin.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TSystemBulletin.resetSearch()"/> |
| | | </div> |
| | | </div> |
| | |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TSystemConfig.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TSystemConfig.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TSystemConfigTableToolbar" role="group"> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <!--<div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >司机邀请1名用户,下单后完成订单后获得</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单</span> |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >司机A邀请1名司机B,完成有效单后获得</span> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单</span> |
| | | </div> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >司机B邀请1名司机C,完成有效单后B获得</span> |
| | | <input class="control-label" id="num3" name="num3" value="${num3}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num3" name="num3" value="${num3}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单 司机A获得</span> |
| | | <input class="control-label" id="num4" name="num4" value="${num4}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num4" name="num4" value="${num4}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单</span> |
| | | </div> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >司机C邀请1名司机D,完成有效单后C获得</span> |
| | | <input class="control-label" id="num5" name="num5" value="${num5}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num5" name="num5" value="${num5}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单 司机B获得</span> |
| | | <input class="control-label" id="num6" name="num6" value="${num6}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num6" name="num6" value="${num6}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单 司机A获得</span> |
| | | <input class="control-label" id="num7" name="num7" value="${num7}" type="number" min="0" style="height: 30px;width: 80px"> |
| | | <input class="control-label" id="num7" name="num7" value="${num7}" type="text" min="0" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单</span> |
| | | </div> |
| | | </div> |
| | |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | <script> |
| | | $("input[name=num1]").bind('input',function(){ |
| | | $("input[name=num1]").mouseleave('input',function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | $("input[name=num2]").bind('input',function(){ |
| | | $("input[name=num2]").mouseleave('input',function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | $("input[name=num3]").bind('input',function(){ |
| | | $("input[name=num3]").mouseleave('input',function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | $("input[name=num4]").bind('input',function(){ |
| | | $("input[name=num4]").mouseleave('input',function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | $("input[name=num5]").bind('input',function(){ |
| | | $("input[name=num5]").mouseleave('input',function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | $("input[name=num6]").bind('input',function(){ |
| | | $("input[name=num6]").mouseleave('input',function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | $("input[name=num7]").bind('input',function(){ |
| | | $("input[name=num7]").mouseleave(function(){ |
| | | var value = $(this).val() |
| | | regexp(value) |
| | | }) |
| | | function regexp(value){ |
| | | var reg=/^[1-9]\d*$/;//由 1-9开头 的正则表达式 |
| | | var reg=/^(\d+.?)?\d{0,2}$/;//由 1-9开头 的正则表达式 整数 |
| | | var reg1 = /^(([1-9]{1}\d*)|(0{1}))(\.\d{2})$/; // 两位小数 |
| | | //先判断是否为整数 在判断 是否在 1-总页 整数范围之内 |
| | | if(reg.test(value)){ |
| | | if(parseInt(value) <= 0){ |
| | | Feng.error("请输入大于0的正整数"); |
| | | if(value == 0){ |
| | | Feng.error("请输入大于0的整数或保留两位小数"); |
| | | return; |
| | | } |
| | | }else{ |
| | | Feng.error("请输入大于0的正整数"); |
| | | Feng.error("请输入整数或保留两位小数"); |
| | | return; |
| | | } |
| | | } |
| | |
| | | <#TimeCon id="createTime" name="发布时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="type" style="width: 180px;height: 33px" name="type"> |
| | | <#SelectCon id="type" name="服务类类型" > |
| | | <option value="">服务类类型</option> |
| | | <option value="1">次数</option> |
| | | <option value="2">小时</option> |
| | | </select> |
| | | </#SelectCon> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TYouTui.search()"/> |
| | | <#button name="查询" icon="fa-search" clickFun="TYouTui.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TYouTui.resetSearch()"/> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >优推类型:</label> |
| | | <input id="number" name="number" type="number" placeholder="请输入0以上的数字" min="0" style="height: 30px" required> |
| | | <input id="number" name="number" type="number" placeholder="请输入0以上的数字" min="1" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <select id="type" name="type" style="height: 30px" required> |
| | | <option value="">请选择类型</option> |
| | | <option value="1">次数</option> |
| | | <option value="2">小时</option> |
| | | </select> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >兑换条件:</label> |
| | | <input id="integral" name="integral" type="number" maxlength="4" placeholder="最多4位数" style="height: 30px" required> |
| | | <input id="integral" name="integral" type="number" min="1" maxlength="4" placeholder="最多4位数" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <label>积分</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >有效期:</label> |
| | | <input id="effectiveTime" name="effectiveTime" maxlength="4" placeholder="最多4位数" type="number" style="height: 30px" required> |
| | | <input id="effectiveTime" name="effectiveTime" min="1" maxlength="4" placeholder="最多4位数" type="number" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <label>天</label> |
| | |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >服务内容:</label> |
| | | <textarea id="serviceContent" name="serviceContent" placeholder="请输入" maxlength="500" style="height: 80px" required></textarea> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <div class="initialLevel col-sm-8 control-label form-group" > |
| | | <div style="width: 20%"> |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >上传图片:</label> |
| | | </div> |
| | | <div style="width: 80%" > |
| | | <#uploadImg id="picture" name="picture"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tYouTui/tYouTui_info.js"></script> |
| | | <script type="text/javascript"> |
| | | $(function (){ |
| | | var idCardPositive = new $WebUpload("picture"); |
| | | idCardPositive.setUploadBarId("progressBar"); |
| | | idCardPositive.init(); |
| | | }) |
| | | </script> |
| | | @} |
| | |
| | | <div class="form-horizontal"> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <#input id="oldPwd" name="原密码" underline="true" type="password"/> |
| | | <#input id="oldPwd" name="原始密码" underline="true" type="password"/> |
| | | <#input id="newPwd" name="新密码" underline="true" type="password"/> |
| | | <#input id="rePwd" name="新密码验证" type="password"/> |
| | | <#input id="rePwd" name="确认新密码" type="password"/> |
| | | </div> |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.chPwd()"/> |
| | | <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="UserInfoDlg.chPwd()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | return ""; |
| | | }*/ |
| | | }, |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '名称', field: 'name', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: 'ID', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '角色名称', field: 'name', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '上级角色', field: 'pName', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '所在部门', field: 'deptName', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '包含账户数', field: 'userCount', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '别名', field: 'tips', align: 'center', valign: 'middle', sortable: true}] |
| | | {title: '所属部门', field: 'deptName', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '负责人', field: 'headName', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '负责人电话', field: 'headPhone', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '包含账户数', field: 'userCount',visible: false, align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '排序', field: 'num', align: 'center', valign: 'middle', sortable: true}, |
| | | {title: '别名', field: 'tips', visible: false,align: 'center', valign: 'middle', sortable: true}] |
| | | return columns; |
| | | }; |
| | | |
| | |
| | | Role.search = function () { |
| | | var queryData = {}; |
| | | queryData['roleName'] = $("#roleName").val(); |
| | | queryData['headName'] = $("#headName").val(); |
| | | queryData['headPhone'] = $("#headPhone").val(); |
| | | Role.table.refresh({query: queryData}); |
| | | } |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | Role.resetSearch = function (){ |
| | | $("#roleName").val(''); |
| | | $("#headName").val(''); |
| | | $("#headPhone").val(''); |
| | | Role.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = Role.initColumn(); |
| | | var table = new BSTable(Role.id, "/role/list", defaultColunms); |
| | |
| | | message: '别名不能为空' |
| | | } |
| | | } |
| | | }/*, |
| | | pName: { |
| | | }, |
| | | headName: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '父级名称不能为空' |
| | | message: '负责人名称不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }*/ |
| | | }, |
| | | headPhone: { |
| | | validators: { |
| | | regexp: { |
| | | regexp: /^1[3-9]\d{9}$/, |
| | | message: '请输入合法手机号' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | |
| | | * 收集数据 |
| | | */ |
| | | RolInfoDlg.collectData = function () { |
| | | this.set('id').set('name').set('pid').set('deptid').set('tips').set('num'); |
| | | this.set('id').set('name').set('pid').set('deptid').set('tips').set('num').set("headName").set("headPhone"); |
| | | }; |
| | | |
| | | /** |
| | |
| | | var principal=$("#principal").val(); |
| | | var principalPhone = $("#principalPhone").val(); |
| | | var createTime = $("#createTime").val(); |
| | | var status = $("#status").val(); |
| | | window.location.href=Feng.ctxPath + "/tAgent/export?principal="+principal |
| | | +"&principalPhone="+principalPhone |
| | | +"&createTime="+createTime |
| | | +"&status="+status |
| | | ; |
| | | } |
| | | |
| | |
| | | queryData['principal'] = $("#principal").val(); |
| | | queryData['principalPhone'] = $("#principalPhone").val(); |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['status'] = $("#status").val(); |
| | | TAgent.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | |
| | | $("#principal").val(''); |
| | | $("#principalPhone").val(''); |
| | | $("#createTime").val(''); |
| | | $("#status").val(''); |
| | | TAgent.search(); |
| | | } |
| | | |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '负责人姓名不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }, |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '停用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUser_start_and_stop?id='+id |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '启用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUser_start_and_stop?id='+id |
| | |
| | | * 提交启用冻结 |
| | | */ |
| | | TAppUser.updateStatus = function () { |
| | | var status = $("#status").val(); |
| | | if(status == 1 && ($("#stopRemark").val() == '' || $("#stopRemark").val() == null)){ |
| | | Feng.info("请输入冻结理由!") |
| | | return; |
| | | } |
| | | if(status == 2 && ($("#startRemark").val() == '' || $("#startRemark").val() == null)){ |
| | | Feng.info("请输入启用理由!") |
| | | return; |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tAppUser/update-status", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TAppUserInfoDlg.close(); |
| | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TAppUserDetailOrderTable.search = function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | TAppUserDetailOrderTable.table.refresh({query: queryData}); |
| | | }; |
| | | // TAppUserDetailOrderTable.search = function () { |
| | | // var queryData = {}; |
| | | // queryData['condition'] = $("#condition").val(); |
| | | // TAppUserDetailOrderTable.table.refresh({query: queryData}); |
| | | // }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TAppUserDetailOrderTable.initColumn(); |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '停用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUserException_start_and_stop?id='+id |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '启用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUserException_start_and_stop?id='+id |
| | |
| | | * 提交启用冻结 |
| | | */ |
| | | TAppUserException.updateStatus = function () { |
| | | var status = $("#status").val(); |
| | | if(status == 1 && ($("#stopRemark").val() == '' || $("#stopRemark").val() == null)){ |
| | | Feng.info("请输入冻结理由!") |
| | | return; |
| | | } |
| | | if(status == 2 && ($("#startRemark").val() == '' || $("#startRemark").val() == null)){ |
| | | Feng.info("请输入启用理由!") |
| | | return; |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tAppUser/update-status", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TAppUserInfoDlg.closeException(); |
| | |
| | | * 删除 |
| | | */ |
| | | TBranchOffice.delete = function (id) { |
| | | |
| | | var userType = $('#userType').val() |
| | | if(userType == 2){ |
| | | Feng.error("无权删除分公司!") |
| | | return; |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TBranchOffice.table.refresh(); |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '负责人姓名不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | }, |
| | | {title: '广告图图片', field: 'url', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '广告图图片', field: 'url', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | return '<img src="'+row.url+'" style="height: 60px;width: 60px"/>' |
| | | } |
| | | }, |
| | | {title: '端口(设备)', field: 'device', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.device === 1){ |
| | |
| | | {title: '投诉时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '投诉人昵称', field: 'userName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '投诉人电话', field: 'userPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '投诉司机电话', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '投诉原因', field: 'reason', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '备注', field: 'notes', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '处理状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优惠券名称不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }, |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '请选择服务类类型' |
| | | } |
| | | } |
| | | }, |
| | | couponCount: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优惠券数量不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[1-9]\d*$/, |
| | | message: '请输入大于0的正整数' |
| | | } |
| | | } |
| | | }, |
| | |
| | | return ; |
| | | } |
| | | |
| | | var couponConditionalAmount = $('#couponConditionalAmount').val(); |
| | | if(couponConditionalAmount < 14){ |
| | | Feng.info("条件金额最低14元!") |
| | | return; |
| | | } |
| | | |
| | | var couponType = $('#couponType').val(); |
| | | if(couponType == 2 && ($("input[name=couponCount2]").val() == null || $("input[name=couponCount2]").val() == '')){ |
| | | Feng.info("请填写优惠券限制数量!") |
| | | return; |
| | | } |
| | | |
| | | // if(couponType == 2 && $("input[name=couponCount2]").val() < 1){ |
| | | // Feng.info("新人优惠券限制数量必须大于0!") |
| | | // return; |
| | | // } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCoupon/add", function(data){ |
| | | if(500 == data.code){ |
| | | Feng.error(data.message) |
| | | return; |
| | | }else { |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCoupon.table.refresh(); |
| | | TCouponInfoDlg.close(); |
| | | } |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '冻结', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tDriver/tDriver_start_and_stop?id='+id |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '启用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tDriver/tDriver_start_and_stop?id='+id |
| | |
| | | * 提交启用冻结 |
| | | */ |
| | | TDriver.updateStatus = function () { |
| | | |
| | | var status = $("#status").val(); |
| | | console.log(status) |
| | | if(status == 1 && ($("#stopRemark").val() == '' || $("#stopRemark").val() == null)){ |
| | | Feng.info("请输入冻结理由!") |
| | | return; |
| | | } |
| | | if(status == 2 && ($("#startRemark").val() == '' || $("#startRemark").val() == null)){ |
| | | Feng.info("请输入解冻理由!") |
| | | return; |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/update-status", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TDriverInfoDlg.close(); |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '充值余额', |
| | | area: ['45%', '20%'], //宽高 |
| | | area: ['800px', '220px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tDriver/rechargeBalancePage?id=' + id |
| | |
| | | * 提交审核 |
| | | */ |
| | | TDriver.auditSubmit = function () { |
| | | |
| | | if($("#approvalStatus").val() == 3 && ($("#approvalNotes").val() == '' || $("#approvalNotes").val() == null)){ |
| | | Feng.info("请输入驳回原因!"); |
| | | return; |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/auditSubmit", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TDriverInfoDlg.close(); |
| | |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '关联层级', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '关联层级', field: 'level', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户姓名', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '上级人员', field: 'inviterName', visible: true, align: 'center', valign: 'middle'}, |
| | |
| | | } |
| | | }}, |
| | | {title: '关联人数', field: 'connectedPersons', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '更新时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | return '<a href="#" onclick="TDriverCommissionConnect.searchTDriverDetail('+row.id+')" style="color:blue">查询</a>' |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '停用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tDriver/tDriverException_start_and_stop?id='+id |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '启用', |
| | | area: ['45%', '50%'], //宽高 |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tDriver/tDriverException_start_and_stop?id='+id |
| | |
| | | * 提交启用冻结 |
| | | */ |
| | | TDriverException.updateStatus = function () { |
| | | |
| | | var status = $("#status").val(); |
| | | if(status == 1 && ($("#stopRemark").val() == '' || $("#stopRemark").val() == null)){ |
| | | Feng.info("请输入冻结理由!") |
| | | return; |
| | | } |
| | | if(status == 2 && ($("#startRemark").val() == '' || $("#startRemark").val() == null)){ |
| | | Feng.info("请输入解冻理由!") |
| | | return; |
| | | } |
| | | |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/update-status", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TDriverInfoDlg.closeException(); |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '姓名不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }, |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '紧急联系人姓名不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }, |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '身份证号码不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, |
| | | message: '请输入合法身份证号码' |
| | | } |
| | | } |
| | | }, |
| | |
| | | TEdition.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '更新时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '版本编号', field: 'editionNo', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '版本文件', field: 'editionFile', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | |
| | | }, |
| | | {title: '版本公告', field: 'editionAnnouncement', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '端口', field: 'editionPort', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '创建时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | return '<a href="#" onclick="TEdition.delete('+row.id+')" style="color:red">删除</a>' |
| | |
| | | } |
| | | } |
| | | }, |
| | | {title: '金额', field: 'amount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '佣金提成', field: 'commissionAmount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '金额', field: 'amount', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.businessType === 1){ |
| | | return '+'+row.amount |
| | | }else{ |
| | | return '-'+row.amount |
| | | } |
| | | } |
| | | }, |
| | | {title: '佣金抽成', field: 'commissionAmount', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.businessType === 1){ |
| | | if(row.commissionAmount !== 0){ |
| | | return '-'+row.commissionAmount |
| | | }else { |
| | | return 0 |
| | | } |
| | | }else { |
| | | return '' |
| | | } |
| | | } |
| | | }, |
| | | {title: '优惠券', field: 'discountedPrice', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '余额', field: 'accountBalance', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | if (row.businessType === 1){ |
| | | return '<a href="#" onclick="TRevenue.searchTRevenueOrderDetail('+row.code+')" style="color:blue">详情</a>' |
| | | return '<a href="#" onclick="TRevenue.searchTRevenueOrderDetail('+row.code.toString()+')" style="color:blue">详情</a>' |
| | | }else if (row.businessType === 11){ |
| | | return '<a href="#" onclick="TRevenue.searchTRevenueCommissionDetail('+row.code+')" style="color:blue">详情</a>' |
| | | return '<a href="#" onclick="TRevenue.searchTRevenueCommissionDetail('+row.code.toString()+')" style="color:blue">详情</a>' |
| | | }else if (row.businessType === 12){ |
| | | return '<a href="#" onclick="TRevenue.searchTRevenueBalanceDetail('+row.code+')" style="color:blue">详情</a>' |
| | | return '<a href="#" onclick="TRevenue.searchTRevenueBalanceDetail('+row.code.toString()+')" style="color:blue">详情</a>' |
| | | } |
| | | } |
| | | } |
| | |
| | | * 打开查看支付订单详情(使用中) |
| | | */ |
| | | TRevenue.searchTRevenueOrderDetail = function (code) { |
| | | console.log(code) |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '支付订单详情', |
| | |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | var reqData = {}; |
| | | reqData['num1'] = Number($("#num1").val()); |
| | | reqData['num2'] = Number($("#num2").val()); |
| | | reqData['num3'] = Number($("#num3").val()); |
| | | reqData['num4'] = Number($("#num4").val()); |
| | | reqData['num5'] = Number($("#num5").val()); |
| | | reqData['num6'] = Number($("#num6").val()); |
| | | reqData['num7'] = Number($("#num7").val()); |
| | | reqData['num1'] = $("#num1").val(); |
| | | reqData['num2'] = $("#num2").val(); |
| | | reqData['num3'] = $("#num3").val(); |
| | | reqData['num4'] = $("#num4").val(); |
| | | reqData['num5'] = $("#num5").val(); |
| | | reqData['num6'] = $("#num6").val(); |
| | | reqData['num7'] = $("#num7").val(); |
| | | console.log(JSON.stringify(reqData)) |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",2); |
| | | ajax.start(); |
| | |
| | | } |
| | | }, |
| | | {title: '服务内容', field: 'content', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '图片', field: 'picture', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | return '<img src="'+row.picture+'" style="height: 60px;width: 60px"/>' |
| | | } |
| | | }, |
| | | {title: '兑换积分数', field: 'integral', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优推值', field: 'number', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优推距离(米)', field: 'distance', visible: true, align: 'center', valign: 'middle'}, |
| | |
| | | {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.status === 1){ |
| | | return '<span>正常</span>' |
| | | return '<span>启用</span>' |
| | | }else if (row.status === 2){ |
| | | return '<span>冻结</span>' |
| | | return '<span>停用</span>' |
| | | }else if (row.status === 3){ |
| | | return '<span>已删除</span>' |
| | | } |
| | |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | if (row.status === 1){ |
| | | return '<a href="#" onclick="TYouTui.updateStatus('+row.id+','+row.status+')" style="color:red">冻结</a>' +' ' + |
| | | '<a href="#" onclick="TYouTui.delete('+row.id+')" style="color:red">删除</a>' |
| | | return '<a href="#" onclick="TYouTui.updateStatus('+row.id+','+row.status+')" style="color:lightskyblue">停用</a>' +' ' + |
| | | '<a href="#" onclick="TYouTui.delete('+row.id+')" style="color:lightskyblue">删除</a>' |
| | | }else if (row.status === 2){ |
| | | return '<a href="#" onclick="TYouTui.updateStatus('+row.id+','+row.status+')" style="color:green">解冻</a>' +' ' + |
| | | '<a href="#" onclick="TYouTui.delete('+row.id+')" style="color:red">删除</a>' |
| | | return '<a href="#" onclick="TYouTui.updateStatus('+row.id+','+row.status+')" style="color:lightskyblue">启用</a>' +' ' + |
| | | '<a href="#" onclick="TYouTui.delete('+row.id+')" style="color:lightskyblue">删除</a>' |
| | | } |
| | | } |
| | | } |
| | |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优推名称不能为空' |
| | | }, |
| | | regexp: { |
| | | regexp: /^[\u4E00-\u9FA5A-Za-z\s]+$/, |
| | | message: '不能输入特殊字符和数字' |
| | | } |
| | | } |
| | | }, |
| | |
| | | .set('status') |
| | | .set('distance') |
| | | .set('serviceContent') |
| | | .set('picture') |
| | | .set('createTime'); |
| | | } |
| | | |