Merge remote-tracking branch 'origin/master'
| | |
| | | * 跳转区域页面 |
| | | */ |
| | | @RequestMapping("/areaDetail") |
| | | public String areaDetail(Model model) { |
| | | public String areaDetail(String area,String areaId,Model model) { |
| | | String[] split1 = areaId.split("/"); |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); |
| | | model.addAttribute("province",tRegions); |
| | | List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | // 查询市 |
| | | List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0])); |
| | | model.addAttribute("cityList",tRegions1); |
| | | if(StringUtils.hasLength(area) && StringUtils.hasLength(areaId)){ |
| | | String[] split = area.split("/"); |
| | | model.addAttribute("provinceName",split[0]); |
| | | model.addAttribute("cityName",split[1]); |
| | | |
| | | model.addAttribute("provinceId",split1[0]); |
| | | model.addAttribute("cityId",split1[1]); |
| | | }else { |
| | | model.addAttribute("provinceName",""); |
| | | model.addAttribute("cityName",""); |
| | | |
| | | model.addAttribute("provinceId",""); |
| | | model.addAttribute("cityId",""); |
| | | } |
| | | return PREFIX + "tAgentArea.html"; |
| | | } |
| | | |
| | |
| | | @ResponseBody |
| | | public Object add(TAgent tAgent) { |
| | | |
| | | int count = tAgentService.selectCount(new EntityWrapper<TAgent>().eq("principalPhone", tAgent.getPrincipalPhone())); |
| | | String[] split1 = tAgent.getArea().split("/"); |
| | | |
| | | int count = tAgentService.selectCount(new EntityWrapper<TAgent>().eq("provinceName", split1[0]).eq("cityName",split1[1])); |
| | | if(count>0){ |
| | | return new SuccessTip(500,"该代理商已存在!"); |
| | | } |
| | |
| | | import com.stylefeng.guns.modular.system.model.TAppUser; |
| | | import com.stylefeng.guns.modular.system.model.TCoupon; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.stylefeng.guns.modular.system.service.ITAppUserService; |
| | | import com.stylefeng.guns.modular.system.service.ITCouponService; |
| | | import com.stylefeng.guns.modular.system.service.ITOrderService; |
| | | import com.stylefeng.guns.modular.system.service.ITUserToCouponService; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | |
| | | private ITCouponService tCouponService; |
| | | @Autowired |
| | | private ITOrderService tOrderService; |
| | | @Autowired |
| | | private ITUserToCouponService tUserToCouponService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | for (TAppUser tAppUser : tAppUsers) { |
| | | TAppUserResp tAppUserResp = new TAppUserResp(); |
| | | BeanUtils.copyProperties(tAppUser,tAppUserResp); |
| | | List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("user_id", tAppUser.getId())); |
| | | List<TCoupon> notUsedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.NOT_USED.getCode())).collect(Collectors.toList()); |
| | | tAppUserResp.setCouponSum(tCoupons.size()); |
| | | tAppUserResp.setNotUsedCount(notUsedList.size()); |
| | | |
| | | // 查询当前用户优惠券数量 |
| | | List<TUserToCoupon> tUserToCoupons = tUserToCouponService.selectList(new EntityWrapper<TUserToCoupon>().eq("userId", tAppUser.getId())); |
| | | |
| | | int couponTotal = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); |
| | | int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum(); |
| | | |
| | | // List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("user_id", tAppUser.getId())); |
| | | // List<TCoupon> notUsedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.NOT_USED.getCode())).collect(Collectors.toList()); |
| | | tAppUserResp.setCouponSum(couponTotal); |
| | | tAppUserResp.setNotUsedCount(validCount); |
| | | List<TOrder> orders = tOrderService.selectList(new EntityWrapper<TOrder>().eq("userId", tAppUser.getId()).orderBy(true,"createTime",false)); |
| | | if(!CollectionUtils.isEmpty(orders)){ |
| | | List<TOrder> collect1 = orders.stream().filter(order->Objects.nonNull(order.getState())) |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TBranchOfficeResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TDriverResp; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.ITRegionService; |
| | | import com.stylefeng.guns.modular.system.service.ITSystemConfigService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | |
| | | 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.model.TBranchOffice; |
| | | import com.stylefeng.guns.modular.system.service.ITBranchOfficeService; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 控制器 |
| | |
| | | |
| | | @Autowired |
| | | private ITBranchOfficeService tBranchOfficeService; |
| | | @Autowired |
| | | private ITSystemConfigService tSystemConfigService; |
| | | |
| | | @Autowired |
| | | private ITRegionService tRegionService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | */ |
| | | @RequestMapping("/tBranchOffice_update/{tBranchOfficeId}") |
| | | public String tBranchOfficeUpdate(@PathVariable Integer tBranchOfficeId, Model model) { |
| | | |
| | | TBranchOffice tBranchOffice = tBranchOfficeService.selectById(tBranchOfficeId); |
| | | model.addAttribute("item",tBranchOffice); |
| | | TBranchOfficeResp tBranchOfficeResp = new TBranchOfficeResp(); |
| | | BeanUtils.copyProperties(tBranchOffice,tBranchOfficeResp); |
| | | |
| | | // 查询区域 |
| | | TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tBranchOffice.getCityCode()) |
| | | .last("LIMIT 1")); |
| | | TRegion district = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tBranchOffice.getDistrictCode()) |
| | | .last("LIMIT 1")); |
| | | |
| | | if(StringUtils.hasLength(tBranchOffice.getDistrictName())){ |
| | | tBranchOfficeResp.setArea(tBranchOffice.getProvinceName()+"/"+tBranchOffice.getCityName()+"/"+tBranchOffice.getDistrictName()); |
| | | }else { |
| | | tBranchOfficeResp.setArea(tBranchOffice.getProvinceName()+"/"+tBranchOffice.getCityName()); |
| | | } |
| | | |
| | | if(Objects.nonNull(city)){ |
| | | if(Objects.nonNull(district)){ |
| | | tBranchOfficeResp.setAreaId(city.getParentId()+"/"+city.getId()+"/"+district.getId()); |
| | | }else { |
| | | tBranchOfficeResp.setAreaId(city.getParentId()+"/"+city.getId()); |
| | | } |
| | | } |
| | | |
| | | model.addAttribute("item",tBranchOfficeResp); |
| | | LogObjectHolder.me().set(tBranchOffice); |
| | | return PREFIX + "tBranchOffice_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到详情 |
| | | */ |
| | | @RequestMapping("/tBranchOfficeDetail") |
| | | public String tBranchOfficeDetail(Integer tBranchOfficeId, Model model) { |
| | | tBranchOfficeService.tBranchOfficeDetail(tBranchOfficeId,model); |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 3)); |
| | | JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); |
| | | model.addAttribute("num2",jsonObject.getInteger("num2")); |
| | | model.addAttribute("num3",jsonObject.getInteger("num3")); |
| | | return PREFIX + "tBranchOfficeDetail.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转区域页面新增 |
| | | */ |
| | | @RequestMapping("/areaPageAdd") |
| | | public String areaPageAdd(String area,String areaId,Model model) { |
| | | String[] split1 = areaId.split("/"); |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); |
| | | model.addAttribute("provinceList",tRegions); |
| | | List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | // 查询市 |
| | | List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0])); |
| | | model.addAttribute("cityList",tRegions1); |
| | | |
| | | // 查询区 |
| | | List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds)); |
| | | model.addAttribute("districtList",tRegions2); |
| | | |
| | | if(StringUtils.hasLength(area) && StringUtils.hasLength(areaId)){ |
| | | String[] split = area.split("/"); |
| | | model.addAttribute("provinceName",split[0]); |
| | | model.addAttribute("cityName",split[1]); |
| | | if(split.length>2){ |
| | | model.addAttribute("districtName",split[2]); |
| | | }else { |
| | | model.addAttribute("districtName",""); |
| | | } |
| | | |
| | | model.addAttribute("provinceId",split1[0]); |
| | | model.addAttribute("cityId",split1[1]); |
| | | if(split1.length>2) { |
| | | model.addAttribute("districtId", split1[2]); |
| | | }else { |
| | | model.addAttribute("districtId", ""); |
| | | } |
| | | }else { |
| | | model.addAttribute("provinceName",""); |
| | | model.addAttribute("cityName","split[1]"); |
| | | model.addAttribute("districtName",""); |
| | | |
| | | model.addAttribute("provinceId",""); |
| | | model.addAttribute("cityId","split1[1]"); |
| | | model.addAttribute("districtId", ""); |
| | | } |
| | | return PREFIX + "tBranchOfficeAreaAdd.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转区域页面编辑 |
| | | */ |
| | | @RequestMapping("/areaPageUpdate") |
| | | public String areaPageUpdate(String area,String areaId,Model model) { |
| | | |
| | | String[] split = area.split("/"); |
| | | model.addAttribute("provinceName",split[0]); |
| | | model.addAttribute("cityName",split[1]); |
| | | if(split.length>2){ |
| | | model.addAttribute("districtName",split[2]); |
| | | }else { |
| | | model.addAttribute("districtName",""); |
| | | } |
| | | |
| | | String[] split1 = areaId.split("/"); |
| | | String provinceId = split1[0]; |
| | | model.addAttribute("provinceId",split1[0]); |
| | | model.addAttribute("cityId",split1[1]); |
| | | if(split1.length>2) { |
| | | model.addAttribute("districtId", split1[2]); |
| | | }else { |
| | | model.addAttribute("districtId", ""); |
| | | } |
| | | |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); |
| | | model.addAttribute("provinceList",tRegions); |
| | | // List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | // 查询市 |
| | | List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", provinceId)); |
| | | model.addAttribute("cityList",tRegions1); |
| | | |
| | | // 查询区 |
| | | List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds)); |
| | | model.addAttribute("districtList",tRegions2); |
| | | |
| | | return PREFIX + "tBranchOfficeAreaUpdate.html"; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String condition) { |
| | | public Object list(String branchOfficeName,String principal,String principalPhone,Integer operatingBusiness ,Integer status) { |
| | | List<TBranchOfficeResp> tBranchOfficeRespList = tBranchOfficeService.getPageList(branchOfficeName,principal,principalPhone,operatingBusiness,status); |
| | | // 分公司查询优惠券,订单,司机等信息 |
| | | tBranchOfficeService.queryOtherInfo(tBranchOfficeRespList); |
| | | return tBranchOfficeRespList; |
| | | } |
| | | |
| | | @ApiOperation(value = "市区查询",notes="市区查询") |
| | | @RequestMapping(value = "/areaCity") |
| | | @ResponseBody |
| | | public Object areaCity(Integer parentId,Model model) { |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", parentId)); |
| | | /*if(CollectionUtils.isEmpty(tRegions) && StringUtils.hasLength(parentName)){ |
| | | TRegion parent = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("name", parentName)); |
| | | tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", parentId)); |
| | | }*/ |
| | | model.addAttribute("list",tRegions); |
| | | return tRegions; |
| | | } |
| | | |
| | | /** |
| | | * 启用分公司 |
| | | */ |
| | | @RequestMapping(value = "/start") |
| | | @ResponseBody |
| | | public Object start(Integer id) { |
| | | TBranchOffice tBranchOffice = tBranchOfficeService.selectById(id); |
| | | tBranchOffice.setStatus(1); |
| | | tBranchOfficeService.updateById(tBranchOffice); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 冻结分公司 |
| | | */ |
| | | @RequestMapping(value = "/stop") |
| | | @ResponseBody |
| | | public Object updateStatus(Integer id) { |
| | | TBranchOffice tBranchOffice = tBranchOfficeService.selectById(id); |
| | | tBranchOffice.setStatus(2); |
| | | tBranchOfficeService.updateById(tBranchOffice); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list-back") |
| | | @ResponseBody |
| | | public Object listBack(String condition) { |
| | | return tBranchOfficeService.selectList(null); |
| | | } |
| | | |
| | |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object add(TBranchOffice tBranchOffice) { |
| | | int count = tBranchOfficeService.selectCount(new EntityWrapper<TBranchOffice>().eq("branchOfficeName", tBranchOffice.getBranchOfficeName())); |
| | | if(count>0){ |
| | | return new SuccessTip(500,"该分公司名称已存在!"); |
| | | } |
| | | |
| | | Object o = tBranchOfficeService.addOrUpdate(tBranchOffice); |
| | | if(Objects.nonNull(o)){ |
| | | return o; |
| | | } |
| | | tBranchOffice.setStatus(1); |
| | | |
| | | tBranchOfficeService.insert(tBranchOffice); |
| | | return SUCCESS_TIP; |
| | | } |
| | |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TBranchOffice tBranchOffice) { |
| | | TBranchOffice office = tBranchOfficeService.selectOne(new EntityWrapper<TBranchOffice>().eq("branchOfficeName", tBranchOffice.getBranchOfficeName()) |
| | | .last("LIMIT 1")); |
| | | if(Objects.nonNull(office) && !tBranchOffice.getId().equals(office.getId())){ |
| | | return new SuccessTip(500,"该分公司名称已存在!"); |
| | | } |
| | | // Object ocr = ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png"); |
| | | // System.err.println(ocr); |
| | | Object o = tBranchOfficeService.addOrUpdate(tBranchOffice); |
| | | if(Objects.nonNull(o)){ |
| | | return o; |
| | | } |
| | | tBranchOfficeService.updateById(tBranchOffice); |
| | | return SUCCESS_TIP; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.controller.util.ExcelUtil; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | 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.model.TCancelOrder; |
| | | import com.stylefeng.guns.modular.system.service.ITCancelOrderService; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2023-02-27 15:52:01 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/tCancelOrder") |
| | | public class TCancelOrderController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/tCancelOrder/"; |
| | | |
| | | @Autowired |
| | | private ITCancelOrderService tCancelOrderService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "tCancelOrder.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加 |
| | | */ |
| | | @RequestMapping("/tCancelOrder_add") |
| | | public String tCancelOrderAdd() { |
| | | return PREFIX + "tCancelOrder_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改 |
| | | */ |
| | | @RequestMapping("/tCancelOrder_update/{tCancelOrderId}") |
| | | public String tCancelOrderUpdate(@PathVariable Integer tCancelOrderId, Model model) { |
| | | TCancelOrder tCancelOrder = tCancelOrderService.selectById(tCancelOrderId); |
| | | model.addAttribute("item",tCancelOrder); |
| | | LogObjectHolder.me().set(tCancelOrder); |
| | | return PREFIX + "tCancelOrder_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转详情页面 |
| | | */ |
| | | @RequestMapping("/cancelOrderDetail") |
| | | public String cancelOrderDetail(Integer cancelOrderId, Model model) { |
| | | tCancelOrderService.cancelOrderDetail(cancelOrderId,model); |
| | | return PREFIX + "tCancelOrderDetail.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String condition) { |
| | | return tCancelOrderService.selectList(null); |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @ApiOperation(value = "获取取消订单列表") |
| | | @RequestMapping(value = "/cancelOrderList") |
| | | @ResponseBody |
| | | public Object cancelOrderList(String createTime, |
| | | String code, |
| | | Integer source, |
| | | String userName, |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName) { |
| | | return tCancelOrderService.getCancelOrderList(createTime, code, source, userName, userPhone, state, driverName); |
| | | } |
| | | /** |
| | | * 获取取消订单列表(订单异常详情页面使用) |
| | | */ |
| | | @ApiOperation(value = "获取取消订单列表(订单异常详情页面使用)") |
| | | @RequestMapping(value = "/userCancelOrderList") |
| | | @ResponseBody |
| | | public Object userCancelOrderList(Integer userId,Integer orderId) { |
| | | return tCancelOrderService.userCancelOrderList(userId,orderId); |
| | | } |
| | | |
| | | /** |
| | | * 新增 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object add(TCancelOrder tCancelOrder) { |
| | | tCancelOrderService.insert(tCancelOrder); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer tCancelOrderId) { |
| | | tCancelOrderService.deleteById(tCancelOrderId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TCancelOrder tCancelOrder) { |
| | | tCancelOrderService.updateById(tCancelOrder); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{tCancelOrderId}") |
| | | @ResponseBody |
| | | public Object detail(@PathVariable("tCancelOrderId") Integer tCancelOrderId) { |
| | | return tCancelOrderService.selectById(tCancelOrderId); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出取消订单列表",notes="导出取消订单列表") |
| | | @RequestMapping(value = "/export") |
| | | @ResponseBody |
| | | public void export(String createTime, |
| | | String code, |
| | | Integer source, |
| | | String userName, |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName, HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | | String time1 = format.format(date); |
| | | String fileName = "CancelOrderInfo"+time1+".xls"; |
| | | String[] title = new String[] {"下单时间","订单编号","订单来源","下单用户昵称", |
| | | "下单用户手机","起点地址","终点地址","接单司机","司机电话","转单原因","取消时间"}; |
| | | List<TOrderResp> orderList = tCancelOrderService.getCancelOrderList(createTime, code, source, userName, userPhone, state, driverName); |
| | | String[][] values = new String[orderList.size()][]; |
| | | for (int i = 0; i < orderList.size(); i++) { |
| | | TOrderResp d = orderList.get(i); |
| | | values[i] = new String[title.length]; |
| | | values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getPlaceTime()); |
| | | values[i][1] = d.getCode(); |
| | | Integer source1 = d.getSource(); |
| | | if(1 == source1){ |
| | | values[i][2] = "小程序"; |
| | | }else if(2 == source1){ |
| | | values[i][2] = "司机创建"; |
| | | } |
| | | values[i][3] = d.getUserName(); |
| | | values[i][4] = d.getUserPhone(); |
| | | values[i][5] = d.getStartAddress(); |
| | | values[i][6] = d.getEndAddress(); |
| | | values[i][7] = d.getDriverName(); |
| | | values[i][8] = d.getDriverPhone(); |
| | | values[i][9] = d.getCause(); |
| | | values[i][10] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime()); |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | | OutputStream os = response.getOutputStream(); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.constant.factory.PageFactory; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.SinataUtil; |
| | | import com.stylefeng.guns.modular.system.model.TProblem; |
| | | import com.stylefeng.guns.modular.system.model.TSystemNotice; |
| | | import com.stylefeng.guns.modular.system.service.ITSystemNoticeService; |
| | | import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | |
| | | import com.stylefeng.guns.modular.system.model.TComplaint; |
| | | import com.stylefeng.guns.modular.system.service.ITComplaintService; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLDecoder; |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 投诉列表控制器 |
| | | * 控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2020-06-09 17:31:24 |
| | | * @Date 2023-03-02 10:14:46 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/tComplaint") |
| | |
| | | @Autowired |
| | | private ITComplaintService tComplaintService; |
| | | |
| | | @Autowired |
| | | private ITSystemNoticeService tSystemNoticeService; |
| | | |
| | | @Autowired |
| | | private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; |
| | | |
| | | @Value("${pushMinistryOfTransport}") |
| | | private boolean pushMinistryOfTransport; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 跳转到投诉列表首页 |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 跳转到查看详情 |
| | | * 跳转到添加 |
| | | */ |
| | | @RequestMapping("/lookDetail/{id}/{type}") |
| | | public String lookDetail(@PathVariable Integer id, @PathVariable Integer type, Model model) { |
| | | TComplaint tComplaint = tComplaintService.selectById(id); |
| | | String str = ""; |
| | | if (1 == type){ |
| | | str = tComplaint.getReason(); |
| | | }else if (2 == type){ |
| | | str = tComplaint.getDescription(); |
| | | }else if (3 == type){ |
| | | str = tComplaint.getHandleResult(); |
| | | } |
| | | model.addAttribute("str",str); |
| | | return "/system/tComplaint/lookDetail.html"; |
| | | @RequestMapping("/tComplaint_add") |
| | | public String tComplaintAdd() { |
| | | return PREFIX + "tComplaint_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到立即处理页面 |
| | | * 跳转到修改 |
| | | */ |
| | | @RequestMapping("/tComplaint_immediately/{tComplaintId}") |
| | | @RequestMapping("/tComplaint_update/{tComplaintId}") |
| | | public String tComplaintUpdate(@PathVariable Integer tComplaintId, Model model) { |
| | | TComplaint tComplaint = tComplaintService.selectById(tComplaintId); |
| | | model.addAttribute("item",tComplaint); |
| | | LogObjectHolder.me().set(tComplaint); |
| | | return PREFIX + "tComplaint_edit.html"; |
| | | } |
| | | /** |
| | | * 跳转到投诉处理 |
| | | */ |
| | | @RequestMapping("/immediatelyAudit") |
| | | public String immediatelyAudit(Integer tComplaintId,Model model) { |
| | | model.addAttribute("tComplaintId",tComplaintId); |
| | | return PREFIX + "tComplaint_immediately.html"; |
| | | return PREFIX + "tComplaintAudit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到查看详情 |
| | | * 审核 |
| | | */ |
| | | @RequestMapping("/lookDetail/{str}") |
| | | public String lookDetail(@PathVariable String str, Model model) { |
| | | System.out.println(str); |
| | | model.addAttribute("str",str); |
| | | return PREFIX + "lookDetail.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取投诉列表列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @RequestMapping(value = "/audit") |
| | | @ResponseBody |
| | | public Object list(String insertTime, |
| | | String userName, |
| | | String userPhone, |
| | | String driverPhone, |
| | | Integer isHandle) { |
| | | String beginTime = null; |
| | | String endTime = null; |
| | | if (SinataUtil.isNotEmpty(insertTime)){ |
| | | String[] timeArray = insertTime.split(" - "); |
| | | beginTime = timeArray[0]; |
| | | endTime = timeArray[1]; |
| | | } |
| | | Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); |
| | | page.setRecords(tComplaintService.getComplaintList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),beginTime,endTime,userName,userPhone,driverPhone,isHandle)); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | /** |
| | | * 删除投诉列表 |
| | | */ |
| | | @RequestMapping(value = "/immediately") |
| | | @ResponseBody |
| | | public Object immediately(@RequestParam Integer id,@RequestParam String handleResult) { |
| | | TComplaint tComplaint = tComplaintService.selectById(id); |
| | | if(SinataUtil.isNotEmpty(tComplaint)){ |
| | | tComplaint.setHandleResult(handleResult); |
| | | tComplaint.setHandleUserId(ShiroKit.getUser().getId()); |
| | | tComplaint.setIsHandle(1); |
| | | tComplaint.setHandleTime(new Date()); |
| | | tComplaintService.updateById(tComplaint); |
| | | |
| | | //增加系统消息 |
| | | TSystemNotice notice = new TSystemNotice(); |
| | | notice.setType(2); |
| | | notice.setUserType(1); |
| | | notice.setContent("投诉处理结果:【"+handleResult+"】。"); |
| | | notice.setUserId(tComplaint.getUserId()); |
| | | notice.setInsertTime(new Date()); |
| | | notice.setRead(1); |
| | | tSystemNoticeService.insert(notice); |
| | | |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | if(pushMinistryOfTransport){//上传数据 |
| | | pushMinistryOfTransportUtil.ratedPassengerComplaint(tComplaint.getId()); |
| | | } |
| | | } |
| | | }).start(); |
| | | } |
| | | public Object audit(Integer tComplaintId,String notes) { |
| | | TComplaint tComplaint = tComplaintService.selectById(tComplaintId); |
| | | tComplaint.setNotes(notes); |
| | | tComplaint.setState(2); |
| | | // 审核用户id |
| | | Subject subject = ShiroKit.getSubject(); |
| | | ShiroUser shiroUser = (ShiroUser)subject.getPrincipal(); |
| | | tComplaint.setAuditId(shiroUser.getId()); |
| | | tComplaint.setAuditPersonName(shiroUser.getName()); |
| | | tComplaint.setAuditTime(new Date()); |
| | | tComplaintService.updateById(tComplaint); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除投诉 |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String createTime,String userName,String userPhone,String driverPhone,Integer state) { |
| | | return tComplaintService.getPageList(createTime,userName,userPhone,driverPhone,state); |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list-back") |
| | | @ResponseBody |
| | | public Object listBack(String condition) { |
| | | return tComplaintService.selectList(null); |
| | | } |
| | | |
| | | /** |
| | | * 新增 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object add(TComplaint tComplaint) { |
| | | tComplaintService.insert(tComplaint); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | public Object delete(Integer tComplaintId) { |
| | | public Object delete(@RequestParam Integer tComplaintId) { |
| | | tComplaintService.deleteById(tComplaintId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改投诉列表 |
| | | * 修改 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | |
| | | } |
| | | |
| | | /** |
| | | * 投诉列表详情 |
| | | * 详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{tComplaintId}") |
| | | @ResponseBody |
| | |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.controller.req.CouponSendReq; |
| | | import com.stylefeng.guns.modular.system.enums.CouponStatusEnum; |
| | | import com.stylefeng.guns.modular.system.model.TAgent; |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.stylefeng.guns.modular.system.service.ITUserToCouponService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.hdf.extractor.TC; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.util.Assert; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | import com.stylefeng.guns.modular.system.model.TCoupon; |
| | | import com.stylefeng.guns.modular.system.service.ITCouponService; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.ZoneId; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private ITCouponService tCouponService; |
| | | @Autowired |
| | | private ITUserToCouponService tUserToCouponService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | wrapper.between("create_time",startTime,endTime); |
| | | } |
| | | wrapper.orderBy(true,"create_time",false); |
| | | wrapper.groupBy(true,"coupon_name"); |
| | | wrapper.groupBy(true,"coupon_type"); |
| | | return tCouponService.selectList(wrapper); |
| | | } |
| | | |
| | | /** |
| | | * 获取活动券列表 |
| | | */ |
| | | @RequestMapping(value = "/activityCouponList") |
| | | @ResponseBody |
| | | public Object activityCouponList(String couponName) { |
| | | EntityWrapper<TCoupon> wrapper = new EntityWrapper<>(); |
| | | if(StringUtils.hasLength(couponName)){ |
| | | wrapper.like("coupon_name",couponName); |
| | | } |
| | | wrapper.eq("coupon_type",1); |
| | | wrapper.eq("coupon_state",1); |
| | | wrapper.orderBy(true,"create_time",false); |
| | | return tCouponService.selectList(wrapper); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 修改优惠券状态 |
| | | */ |
| | | @RequestMapping(value = "/update-status") |
| | | @ResponseBody |
| | | public Object updateStatus(Integer id,Integer status) { |
| | | TCoupon tCoupon = tCouponService.selectById(id); |
| | | |
| | | // 查询已启用的新人券数量 |
| | | int count = tCouponService.selectCount(new EntityWrapper<TCoupon>().eq("coupon_state", 1) |
| | | .eq("coupon_type",2)); |
| | | |
| | | // 判断是否为新人券,新人券只可启用一条记录 |
| | | if(count > 0 && 2 == tCoupon.getCouponType() && 2 == status){ |
| | | return new SuccessTip(500,"已有启动的新人券!"); |
| | | } |
| | | |
| | | if(1 == status){ |
| | | tCoupon.setCouponState(2); |
| | | } |
| | | if(2 == status){ |
| | | tCoupon.setCouponState(1); |
| | | } |
| | | tCouponService.updateById(tCoupon); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | |
| | | |
| | | List<Integer> userIds = couponSendReq.getUserIds(); |
| | | |
| | | // 查询选择的优惠券 |
| | | TCoupon tCoupon = tCouponService.selectById(couponSendReq.getCouponId()); |
| | | |
| | | List<TUserToCoupon> tUserToCoupons = new ArrayList<>(userIds.size()); |
| | | |
| | | for (Integer userId : userIds) { |
| | | // 创建用户优惠券关联表 |
| | | TUserToCoupon tUserToCoupon = new TUserToCoupon(); |
| | | tUserToCoupon.setCouponId(tCoupon.getId()); |
| | | tUserToCoupon.setUserId(userId); |
| | | tUserToCoupon.setCouponTotal(1); |
| | | tUserToCoupon.setValidCount(1); |
| | | Date expireTime = Date.from(LocalDate.now().plusDays(tCoupon.getCouponValidity()).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); |
| | | System.err.println(expireTime); |
| | | tUserToCoupon.setExpireTime(expireTime); |
| | | tUserToCoupons.add(tUserToCoupon); |
| | | } |
| | | tUserToCouponService.insertBatch(tUserToCoupons); |
| | | |
| | | // 查询该优惠券的列表 |
| | | List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("coupon_name", couponSendReq.getCouponName()) |
| | | /*List<TCoupon> tCoupons = tCouponService.selectList(new EntityWrapper<TCoupon>().eq("coupon_name", couponSendReq.getCouponName()) |
| | | .eq("coupon_status",CouponStatusEnum.UNISSUED.getCode())); |
| | | Assert.isTrue(!CollectionUtils.isEmpty(tCoupons),"该优惠券不存在!"); |
| | | List<TCoupon> tCouponList = new ArrayList<>(); |
| | |
| | | } |
| | | if(!CollectionUtils.isEmpty(tCouponList)){ |
| | | tCouponService.updateBatchById(tCouponList); |
| | | } |
| | | }*/ |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | |
| | | */ |
| | | @RequestMapping("/areaPageUpdate") |
| | | public String areaPageUpdate(String area,String areaId,Model model) { |
| | | |
| | | String[] split = area.split("/"); |
| | | model.addAttribute("provinceName",split[0]); |
| | | model.addAttribute("cityName",split[1]); |
| | | model.addAttribute("districtName",split[2]); |
| | | |
| | | String[] split1 = areaId.split("/"); |
| | | model.addAttribute("provinceId",split1[0]); |
| | | model.addAttribute("cityId",split1[1]); |
| | | model.addAttribute("districtId",split1[2]); |
| | | |
| | | |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); |
| | | model.addAttribute("provinceList",tRegions); |
| | | List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | |
| | | |
| | | // 查询市 |
| | | List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0])); |
| | | model.addAttribute("cityList",tRegions1); |
| | | |
| | | // 查询区 |
| | | List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds)); |
| | | model.addAttribute("districtList",tRegions2); |
| | | |
| | | return PREFIX + "tDriverAreaUpdate.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转区域页面新增 |
| | | */ |
| | | @RequestMapping("/areaPageAdd") |
| | | public String areaPageAdd(String area,String areaId,Model model) { |
| | | String[] split1 = areaId.split("/"); |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); |
| | | model.addAttribute("provinceList",tRegions); |
| | | List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList()); |
| | | // 查询市 |
| | | List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", provinceIds)); |
| | | List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0])); |
| | | model.addAttribute("cityList",tRegions1); |
| | | |
| | | // 查询区 |
| | |
| | | String[] split = area.split("/"); |
| | | model.addAttribute("provinceName",split[0]); |
| | | model.addAttribute("cityName",split[1]); |
| | | model.addAttribute("districtName",split[2]); |
| | | if(split.length>2){ |
| | | model.addAttribute("districtName",split[2]); |
| | | }else { |
| | | model.addAttribute("districtName",""); |
| | | } |
| | | |
| | | String[] split1 = areaId.split("/"); |
| | | model.addAttribute("provinceId",split1[0]); |
| | | model.addAttribute("cityId",split1[1]); |
| | | model.addAttribute("districtId",split1[2]); |
| | | } |
| | | return PREFIX + "tDriverAreaUpdate.html"; |
| | | } |
| | | if(split1.length>2) { |
| | | model.addAttribute("districtId", split1[2]); |
| | | }else { |
| | | model.addAttribute("districtId", ""); |
| | | } |
| | | }else { |
| | | model.addAttribute("provinceName",""); |
| | | model.addAttribute("cityName","split[1]"); |
| | | model.addAttribute("districtName",""); |
| | | |
| | | /** |
| | | * 跳转区域页面新增 |
| | | */ |
| | | @RequestMapping("/areaPageAdd") |
| | | public String areaPageAdd(Model model) { |
| | | List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0)); |
| | | model.addAttribute("provinceList",tRegions); |
| | | model.addAttribute("provinceId",""); |
| | | model.addAttribute("cityId","split1[1]"); |
| | | model.addAttribute("districtId", ""); |
| | | } |
| | | return PREFIX + "tDriverAreaAdd.html"; |
| | | } |
| | | |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TEvaluateResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.controller.util.ExcelUtil; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | 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.model.TEvaluate; |
| | | import com.stylefeng.guns.modular.system.service.ITEvaluateService; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2023-02-27 14:03:41 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/tEvaluate") |
| | | public class TEvaluateController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/tEvaluate/"; |
| | | |
| | | @Autowired |
| | | private ITEvaluateService tEvaluateService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "tEvaluate.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加 |
| | | */ |
| | | @RequestMapping("/tEvaluate_add") |
| | | public String tEvaluateAdd() { |
| | | return PREFIX + "tEvaluate_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改 |
| | | */ |
| | | @RequestMapping("/tEvaluate_update/{tEvaluateId}") |
| | | public String tEvaluateUpdate(@PathVariable Integer tEvaluateId, Model model) { |
| | | TEvaluate tEvaluate = tEvaluateService.selectById(tEvaluateId); |
| | | model.addAttribute("item",tEvaluate); |
| | | LogObjectHolder.me().set(tEvaluate); |
| | | return PREFIX + "tEvaluate_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转详情页面 |
| | | */ |
| | | @RequestMapping("/evaluateDetail") |
| | | public String evaluateDetail(Integer evaluateId, Model model) { |
| | | tEvaluateService.evaluateDetail(evaluateId,model); |
| | | return PREFIX + "tEvaluateDetail.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String createTime,String userName,String driverName ,Integer score) { |
| | | return tEvaluateService.selectPageList(createTime,userName,driverName,null,score); |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list-back") |
| | | @ResponseBody |
| | | public Object listBack(String condition) { |
| | | return tEvaluateService.selectList(null); |
| | | } |
| | | |
| | | /** |
| | | * 新增 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object add(TEvaluate tEvaluate) { |
| | | tEvaluateService.insert(tEvaluate); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer tEvaluateId) { |
| | | tEvaluateService.deleteById(tEvaluateId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TEvaluate tEvaluate) { |
| | | tEvaluateService.updateById(tEvaluate); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{tEvaluateId}") |
| | | @ResponseBody |
| | | public Object detail(@PathVariable("tEvaluateId") Integer tEvaluateId) { |
| | | return tEvaluateService.selectById(tEvaluateId); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出评价列表",notes="导出评价列表") |
| | | @RequestMapping(value = "/export") |
| | | @ResponseBody |
| | | public void export(String createTime,String userName,String driverName,Integer score, HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | | String time1 = format.format(date); |
| | | String fileName = "EvaluateInfo"+time1+".xls"; |
| | | String[] title = new String[] {"评价时间","订单编号","评论用户", |
| | | "评论用户手机号","评论司机","司机手机号","评价分数","评价内容"}; |
| | | List<TEvaluateResp> list = tEvaluateService.selectPageList(createTime, userName, driverName, null, score); |
| | | String[][] values = new String[list.size()][]; |
| | | for (int i = 0; i < list.size(); i++) { |
| | | TEvaluateResp d = list.get(i); |
| | | values[i] = new String[title.length]; |
| | | values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime()); |
| | | values[i][1] = d.getCode(); |
| | | values[i][2] = d.getUserName(); |
| | | values[i][3] = d.getUserPhone(); |
| | | values[i][4] = d.getDriverName(); |
| | | values[i][5] = d.getDriverPhone(); |
| | | values[i][6] = String.valueOf(Objects.nonNull(d.getScore())?d.getScore(): ""); |
| | | Integer score1 = d.getScore(); |
| | | if(Objects.nonNull(score1)){ |
| | | if(1 == score1){ |
| | | values[i][6] = "非常差"; |
| | | }else if (2 == score1){ |
| | | values[i][6] = "差"; |
| | | }else if (3 == score1){ |
| | | values[i][6] = "一般"; |
| | | }else if (4 == score1){ |
| | | values[i][6] = "满意"; |
| | | }else if (5 == score1){ |
| | | values[i][6] = "非常满意"; |
| | | } |
| | | }else { |
| | | values[i][6] = ""; |
| | | } |
| | | values[i][7] = d.getEvaluate(); |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | | OutputStream os = response.getOutputStream(); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | 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.resp.TAppUserDetailOrderResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.controller.util.ExcelUtil; |
| | | import com.stylefeng.guns.modular.system.model.TAppUser; |
| | | 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.ITOrderService; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private ITOrderService tOrderService; |
| | | @Autowired |
| | | private ITAppUserService tAppUserService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 跳转异常页面 |
| | | * @return |
| | | */ |
| | | @RequestMapping("/tOrder-exception") |
| | | public String tOrderException(Model model) { |
| | | return PREFIX + "tOrderException.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("/cancelOrder") |
| | | public String cancelOrder() { |
| | | return PREFIX + "tCancelOrder.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转冻结页面 |
| | | * @return |
| | | */ |
| | | @RequestMapping("/tOrderException_start_and_stop") |
| | | public String tAppUserStartAndStop( Integer id, |
| | | Model model) { |
| | | |
| | | // 查询订单 |
| | | TOrder tOrder = tOrderService.selectById(id); |
| | | TAppUser tAppUser = new TAppUser(); |
| | | if(Objects.nonNull(tOrder)){ |
| | | tAppUser = tAppUserService.selectById(tOrder.getUserId()); |
| | | } |
| | | |
| | | model.addAttribute("id",id); |
| | | if(Objects.nonNull(tAppUser)){ |
| | | model.addAttribute("status",tAppUser.getStatus()); |
| | | } |
| | | return PREFIX + "tOrderStartAndStopException.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转详情页面 |
| | | */ |
| | | @RequestMapping("/orderDetail") |
| | | public String orderDetail(Integer orderId, Model model) { |
| | | tOrderService.orderDetail(orderId,model); |
| | | return PREFIX + "tOrderDetail.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转异常详情页面 |
| | | */ |
| | | @RequestMapping("/orderExceptionDetail") |
| | | public String orderExceptionDetail(Integer orderId, Model model) { |
| | | tOrderService.orderExceptionDetail(orderId,model); |
| | | return PREFIX + "tOrderExceptionDetail.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @ApiOperation(value = "获取订单列表") |
| | | @ApiOperation(value = "用户获取订单列表") |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String condition,Integer userId) { |
| | | public Object list(Integer userId) { |
| | | EntityWrapper<TOrder> wrapper = new EntityWrapper<>(); |
| | | if(Objects.nonNull(userId)){ |
| | | wrapper.eq("user_id",userId); |
| | | } |
| | | return tOrderService.selectList(wrapper); |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @ApiOperation(value = "获取订单列表") |
| | | @RequestMapping(value = "/orderList") |
| | | @ResponseBody |
| | | public Object orderList(String createTime, |
| | | String code, |
| | | Integer source, |
| | | String userName, |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName) { |
| | | return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,1); |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @ApiOperation(value = "获取订单异常列表") |
| | | @RequestMapping(value = "/orderExceptionList") |
| | | @ResponseBody |
| | | public Object orderExceptionList(String createTime, |
| | | String code, |
| | | Integer source, |
| | | String userName, |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName) { |
| | | return tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,2); |
| | | } |
| | | |
| | | /** |
| | |
| | | TAppUserDetailOrderResp tAppUserDetailOrderResp = new TAppUserDetailOrderResp(); |
| | | BeanUtils.copyProperties(tOrder,tAppUserDetailOrderResp); |
| | | |
| | | // 计算总里程 |
| | | // TODO 计算总里程 |
| | | |
| | | |
| | | // 计算总时长 |
| | |
| | | public Object detail(@PathVariable("tOrderId") Integer tOrderId) { |
| | | return tOrderService.selectById(tOrderId); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出订单列表",notes="导出订单列表") |
| | | @RequestMapping(value = "/export") |
| | | @ResponseBody |
| | | public void export(String createTime, |
| | | String code, |
| | | Integer source, |
| | | String userName, |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName,HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | | String time1 = format.format(date); |
| | | String fileName = "OrderInfo"+time1+".xls"; |
| | | String[] title = new String[] {"下单时间","订单编号","订单来源","开始服务时间","下单用户昵称", |
| | | "下单用户手机","起点地址","终点地址","接单司机","司机电话","预估价","取消次数","订单状态"}; |
| | | List<TOrderResp> orderList = tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,1); |
| | | String[][] values = new String[orderList.size()][]; |
| | | for (int i = 0; i < orderList.size(); i++) { |
| | | TOrderResp d = orderList.get(i); |
| | | values[i] = new String[title.length]; |
| | | values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime()); |
| | | values[i][1] = d.getCode(); |
| | | Integer source1 = d.getSource(); |
| | | if(1 == source1){ |
| | | values[i][2] = "小程序"; |
| | | }else if(2 == source1){ |
| | | values[i][2] = "司机创建"; |
| | | } |
| | | values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime()); |
| | | values[i][4] = d.getUserName(); |
| | | values[i][5] = d.getUserPhone(); |
| | | values[i][6] = d.getStartAddress(); |
| | | values[i][7] = d.getEndAddress(); |
| | | values[i][8] = d.getDriverName(); |
| | | values[i][9] = d.getDriverPhone(); |
| | | values[i][10] = String.valueOf(Objects.nonNull(d.getEstimatedPrice())?d.getEstimatedPrice(): BigDecimal.ZERO); |
| | | values[i][11] = String.valueOf(d.getCancelCount()); |
| | | Integer status1 = d.getState(); |
| | | if(101 == status1){ |
| | | values[i][12] = "待接单"; |
| | | }else if(102 == status1){ |
| | | values[i][12] = "已接单"; |
| | | }else if(103 == status1){ |
| | | values[i][12] = "前往预约点"; |
| | | }else if(104 == status1){ |
| | | values[i][12] = "到达预约点"; |
| | | }else if(105 == status1){ |
| | | values[i][12] = "开始服务"; |
| | | }else if(106 == status1){ |
| | | values[i][12] = "到达目的地"; |
| | | }else if(107 == status1){ |
| | | values[i][12] = "待支付"; |
| | | }else if(108 == status1){ |
| | | values[i][12] = "待评价"; |
| | | }else if(109 == status1){ |
| | | values[i][12] = "已完成"; |
| | | }else if(201 == status1){ |
| | | values[i][12] = "转单中"; |
| | | }else if(301 == status1){ |
| | | values[i][12] = "已取消"; |
| | | }else if(401 == status1){ |
| | | values[i][12] = "等待中"; |
| | | } |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | | OutputStream os = response.getOutputStream(); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "导出订单列表",notes="导出订单列表") |
| | | @RequestMapping(value = "/export-exception") |
| | | @ResponseBody |
| | | public void exportException(String createTime, |
| | | String code, |
| | | Integer source, |
| | | String userName, |
| | | String userPhone, |
| | | Integer state, |
| | | String driverName,HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | | String time1 = format.format(date); |
| | | String fileName = "OrderExceptionInfo"+time1+".xls"; |
| | | String[] title = new String[] {"下单时间","订单编号","订单来源","乘车时间","下单用户昵称", |
| | | "下单用户手机","起点","终点","接单司机","司机电话","预估价格","取消次数","订单状态"}; |
| | | List<TOrderResp> orderList = tOrderService.getOrderList(createTime, code, source, userName, userPhone, state, driverName,1); |
| | | String[][] values = new String[orderList.size()][]; |
| | | for (int i = 0; i < orderList.size(); i++) { |
| | | TOrderResp d = orderList.get(i); |
| | | values[i] = new String[title.length]; |
| | | values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime()); |
| | | values[i][1] = d.getCode(); |
| | | Integer source1 = d.getSource(); |
| | | if(1 == source1){ |
| | | values[i][2] = "小程序"; |
| | | }else if(2 == source1){ |
| | | values[i][2] = "司机创建"; |
| | | } |
| | | values[i][3] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getStartTime()); |
| | | values[i][4] = d.getUserName(); |
| | | values[i][5] = d.getUserPhone(); |
| | | values[i][6] = d.getStartAddress(); |
| | | values[i][7] = d.getEndAddress(); |
| | | values[i][8] = d.getDriverName(); |
| | | values[i][9] = d.getDriverPhone(); |
| | | values[i][10] = String.valueOf(Objects.nonNull(d.getEstimatedPrice())?d.getEstimatedPrice(): BigDecimal.ZERO); |
| | | values[i][11] = String.valueOf(d.getCancelCount()); |
| | | Integer status1 = d.getState(); |
| | | if(101 == status1){ |
| | | values[i][12] = "待接单"; |
| | | }else if(102 == status1){ |
| | | values[i][12] = "已接单"; |
| | | }else if(103 == status1){ |
| | | values[i][12] = "前往预约点"; |
| | | }else if(104 == status1){ |
| | | values[i][12] = "到达预约点"; |
| | | }else if(105 == status1){ |
| | | values[i][12] = "开始服务"; |
| | | }else if(106 == status1){ |
| | | values[i][12] = "到达目的地"; |
| | | }else if(107 == status1){ |
| | | values[i][12] = "待支付"; |
| | | }else if(108 == status1){ |
| | | values[i][12] = "待评价"; |
| | | }else if(109 == status1){ |
| | | values[i][12] = "已完成"; |
| | | }else if(201 == status1){ |
| | | values[i][12] = "转单中"; |
| | | }else if(301 == status1){ |
| | | values[i][12] = "已取消"; |
| | | }else if(401 == status1){ |
| | | values[i][12] = "等待中"; |
| | | } |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | | OutputStream os = response.getOutputStream(); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordAgentResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordUserResp; |
| | | import com.stylefeng.guns.modular.system.controller.util.ExcelUtil; |
| | | import com.stylefeng.guns.modular.system.model.TDriver; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import com.stylefeng.guns.modular.system.service.ITRechargeRecordService; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.text.DateFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 控制器 |
| | |
| | | model.addAttribute("item",tRechargeRecord); |
| | | LogObjectHolder.me().set(tRechargeRecord); |
| | | return PREFIX + "tRechargeRecord_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到用户充值列表 |
| | | */ |
| | | @RequestMapping("/userRecharge") |
| | | public String userRecharge() { |
| | | return PREFIX + "tRechargeRecordUser.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到代理商充值列表 |
| | | */ |
| | | @RequestMapping("/agentRecharge") |
| | | public String agentRecharge() { |
| | | return PREFIX + "tRechargeRecordAgent.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取用户充值列表 |
| | | */ |
| | | @RequestMapping(value = "/userRechargeList") |
| | | @ResponseBody |
| | | public Object userRechargeList(String userName,String userPhone,String code,String createTime) { |
| | | return tRechargeRecordService.userRecharge(userName,userPhone,code,createTime); |
| | | } |
| | | |
| | | /** |
| | | * 获取代理商充值列表 |
| | | */ |
| | | @RequestMapping(value = "/agentRechargeList") |
| | | @ResponseBody |
| | | public Object agentRechargeList(String driverName,String driverPhone,String createTime) { |
| | | return tRechargeRecordService.agentRechargeList(driverName,driverPhone,createTime); |
| | | } |
| | | |
| | | /** |
| | |
| | | public Object detail(@PathVariable("tRechargeRecordId") Integer tRechargeRecordId) { |
| | | return tRechargeRecordService.selectById(tRechargeRecordId); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出用户充值列表",notes="导出用户充值列表") |
| | | @RequestMapping(value = "/exportUserRecharge") |
| | | @ResponseBody |
| | | public void exportUserRecharge(String userName,String userPhone,String code,String createTime, HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | | String time1 = format.format(date); |
| | | String fileName = "UserRechargeRecord"+time1+".xls"; |
| | | String[] title = new String[] {"充值时间","流水ID","用户姓名","用户手机号","充值金额", |
| | | "充值方式","状态"}; |
| | | List<TRechargeRecordUserResp> userRechargeList = tRechargeRecordService.userRecharge(userName,userPhone,code,createTime); |
| | | |
| | | String[][] values = new String[userRechargeList.size()][]; |
| | | for (int i = 0; i < userRechargeList.size(); i++) { |
| | | TRechargeRecordUserResp d = userRechargeList.get(i); |
| | | values[i] = new String[title.length]; |
| | | values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime()); |
| | | values[i][1] = d.getCode(); |
| | | values[i][2] = d.getUserName(); |
| | | values[i][3] = d.getUserPhone(); |
| | | values[i][4] = String.valueOf(Objects.nonNull(d.getAmount())?d.getAmount(): BigDecimal.ZERO); |
| | | Integer payType = d.getPayType(); |
| | | if(1 == payType){ |
| | | values[i][5] = "微信"; |
| | | }else if(2 == payType){ |
| | | values[i][5] = "系统充值"; |
| | | }else{ |
| | | values[i][5] = "其他"; |
| | | } |
| | | Integer status1 = d.getPayStatus(); |
| | | if(1 == status1){ |
| | | values[i][6] = "失败"; |
| | | }else if(2 == status1){ |
| | | values[i][6] = "成功"; |
| | | } |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | | OutputStream os = response.getOutputStream(); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @ApiOperation(value = "导出代理商充值列表",notes="导出代理商充值列表") |
| | | @RequestMapping(value = "/exportAgentRecharge") |
| | | @ResponseBody |
| | | public void exportAgentRecharge(String driverName,String driverPhone,String createTime, HttpServletResponse response) { |
| | | try { |
| | | Date date = new Date(); |
| | | DateFormat format = new SimpleDateFormat("yyyyMMdd"); |
| | | String time1 = format.format(date); |
| | | String fileName = "AgentRechargeRecord"+time1+".xls"; |
| | | String[] title = new String[] {"充值时间","代理商姓名","联系电话","代理区域","司机姓名","司机手机号","充值金额", |
| | | "充值方式","状态"}; |
| | | List<TRechargeRecordAgentResp> agentRechargeList = tRechargeRecordService.agentRechargeList(driverName,driverPhone,createTime); |
| | | |
| | | String[][] values = new String[agentRechargeList.size()][]; |
| | | for (int i = 0; i < agentRechargeList.size(); i++) { |
| | | TRechargeRecordAgentResp d = agentRechargeList.get(i); |
| | | values[i] = new String[title.length]; |
| | | values[i][0] = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(d.getCreateTime()); |
| | | values[i][1] = d.getPrincipal(); |
| | | values[i][2] = d.getPrincipalPhone(); |
| | | values[i][3] = d.getProvinceName()+d.getCityName(); |
| | | values[i][4] = d.getDriverName(); |
| | | values[i][5] = d.getDriverPhone(); |
| | | values[i][6] = String.valueOf(Objects.nonNull(d.getAmount())?d.getAmount(): BigDecimal.ZERO); |
| | | Integer payType = d.getPayType(); |
| | | if(1 == payType){ |
| | | values[i][7] = "微信"; |
| | | }else if(2 == payType){ |
| | | values[i][7] = "系统充值"; |
| | | }else{ |
| | | values[i][7] = "其他"; |
| | | } |
| | | Integer status1 = d.getPayStatus(); |
| | | if(1 == status1){ |
| | | values[i][8] = "失败"; |
| | | }else if(2 == status1){ |
| | | values[i][8] = "成功"; |
| | | } |
| | | } |
| | | HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); |
| | | ExcelUtil.setResponseHeader(response, fileName); |
| | | OutputStream os = response.getOutputStream(); |
| | | wb.write(os); |
| | | os.flush(); |
| | | os.close(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | 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.model.TSystemConfig; |
| | | import com.stylefeng.guns.modular.system.service.ITSystemConfigService; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2023-03-02 17:09:55 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/tSystemConfig") |
| | | public class TSystemConfigController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/tSystemConfig/"; |
| | | |
| | | @Autowired |
| | | private ITSystemConfigService tSystemConfigService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "tSystemConfig.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加 |
| | | */ |
| | | @RequestMapping("/tSystemConfig_add") |
| | | public String tSystemConfigAdd() { |
| | | return PREFIX + "tSystemConfig_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改 |
| | | */ |
| | | @RequestMapping("/tSystemConfig_update/{tSystemConfigId}") |
| | | public String tSystemConfigUpdate(@PathVariable Integer tSystemConfigId, Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectById(tSystemConfigId); |
| | | model.addAttribute("item",tSystemConfig); |
| | | LogObjectHolder.me().set(tSystemConfig); |
| | | return PREFIX + "tSystemConfig_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到派单规则 |
| | | */ |
| | | @RequestMapping("/dispatchRules") |
| | | public String dispatchRules(Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 1) |
| | | .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")); |
| | | return PREFIX + "tSystemConfigDispatchRules.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到佣金分成规则 |
| | | */ |
| | | @RequestMapping("/commissionShareRules") |
| | | public String commissionShareRules(Model model) { |
| | | 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")); |
| | | return PREFIX + "tSystemConfigCommissionShareRules.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到抽成规则 |
| | | */ |
| | | @RequestMapping("/extractionRules") |
| | | public String extractionRules(Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 3) |
| | | .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")); |
| | | return PREFIX + "tSystemConfigExtractionRules.html"; |
| | | } |
| | | /** |
| | | * 跳转到积分规则 |
| | | */ |
| | | @RequestMapping("/integralRules") |
| | | public String integralRules(Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 4) |
| | | .last("LIMIT 1")); |
| | | JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); |
| | | model.addAttribute("num1",jsonObject.getString("num1")); |
| | | model.addAttribute("num2",jsonObject.getString("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("num8",jsonObject.getInteger("num8")); |
| | | model.addAttribute("num9",jsonObject.getInteger("num9")); |
| | | model.addAttribute("num10",jsonObject.getInteger("num10")); |
| | | return PREFIX + "tSystemConfigIntegralRules.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到价格规则 |
| | | */ |
| | | @RequestMapping("/priceRules") |
| | | public String priceRules(Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 5) |
| | | .last("LIMIT 1")); |
| | | JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); |
| | | JSONArray array = jsonObject.getJSONArray("ChargeStandard"); |
| | | JSONArray objects = new JSONArray(); |
| | | for (int i = 0; i < array.size(); i++) { |
| | | JSONObject jsonObject1 = JSONObject.parseObject(JSONObject.toJSONString(array.get(i))); |
| | | if(i == 0){ |
| | | jsonObject1.put("key",0); |
| | | }else { |
| | | jsonObject1.put("key",1); |
| | | } |
| | | objects.add(jsonObject1); |
| | | } |
| | | model.addAttribute("array",objects); |
| | | JSONObject extraCost = JSONObject.parseObject(jsonObject.getString("ExtraCost")); |
| | | model.addAttribute("ExtraCost",extraCost); |
| | | return PREFIX + "tSystemConfigPriceRules.html"; |
| | | } |
| | | /** |
| | | * 跳转到余额规则 |
| | | */ |
| | | @RequestMapping("/balanceRules") |
| | | public String balanceRules(Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 6) |
| | | .last("LIMIT 1")); |
| | | JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); |
| | | model.addAttribute("num1",jsonObject.getInteger("num1")); |
| | | model.addAttribute("num2",jsonObject.getInteger("num2")); |
| | | return PREFIX + "tSystemConfigBalanceRules.html"; |
| | | } |
| | | /** |
| | | * 跳转到客服管理 |
| | | */ |
| | | @RequestMapping("/serviceMgmt") |
| | | public String serviceMgmt(Model model) { |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 7) |
| | | .last("LIMIT 1")); |
| | | JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent()); |
| | | model.addAttribute("num1",jsonObject.getString("num1")); |
| | | return PREFIX + "tSystemConfigServiceMgmt.html"; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/systemConfigSubmit") |
| | | @ResponseBody |
| | | public Object systemConfigSubmit(Integer type,String content) { |
| | | |
| | | TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", type) |
| | | .last("LIMIT 1")); |
| | | |
| | | System.err.println(content); |
| | | |
| | | tSystemConfig.setContent(content); |
| | | |
| | | return tSystemConfigService.updateById(tSystemConfig); |
| | | } |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String condition) { |
| | | return tSystemConfigService.selectList(null); |
| | | } |
| | | |
| | | /** |
| | | * 新增 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object add(TSystemConfig tSystemConfig) { |
| | | tSystemConfigService.insert(tSystemConfig); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer tSystemConfigId) { |
| | | tSystemConfigService.deleteById(tSystemConfigId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TSystemConfig tSystemConfig) { |
| | | tSystemConfigService.updateById(tSystemConfig); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{tSystemConfigId}") |
| | | @ResponseBody |
| | | public Object detail(@PathVariable("tSystemConfigId") Integer tSystemConfigId) { |
| | | return tSystemConfigService.selectById(tSystemConfigId); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.general; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.model.TAgent; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | 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.model.TYouTui; |
| | | import com.stylefeng.guns.modular.system.service.ITYouTuiService; |
| | | |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2023-03-01 16:17:43 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/tYouTui") |
| | | public class TYouTuiController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/tYouTui/"; |
| | | |
| | | @Autowired |
| | | private ITYouTuiService tYouTuiService; |
| | | |
| | | /** |
| | | * 跳转到首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "tYouTui.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加 |
| | | */ |
| | | @RequestMapping("/tYouTui_add") |
| | | public String tYouTuiAdd() { |
| | | return PREFIX + "tYouTui_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改 |
| | | */ |
| | | @RequestMapping("/tYouTui_update/{tYouTuiId}") |
| | | public String tYouTuiUpdate(@PathVariable Integer tYouTuiId, Model model) { |
| | | TYouTui tYouTui = tYouTuiService.selectById(tYouTuiId); |
| | | model.addAttribute("item",tYouTui); |
| | | LogObjectHolder.me().set(tYouTui); |
| | | return PREFIX + "tYouTui_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String createTime,Integer type) { |
| | | EntityWrapper<TYouTui> wrapper = new EntityWrapper<>(); |
| | | |
| | | if(Objects.nonNull(type)){ |
| | | wrapper.eq("type",type); |
| | | } |
| | | |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | Date startTime = DateUtil.getDate_str4(split[0]); |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | return tYouTuiService.selectList(wrapper); |
| | | } |
| | | |
| | | /** |
| | | * 获取列表 |
| | | */ |
| | | @RequestMapping(value = "/list-back") |
| | | @ResponseBody |
| | | public Object listBack(String condition) { |
| | | return tYouTuiService.selectList(null); |
| | | } |
| | | |
| | | /** |
| | | * 新增 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | public Object add(TYouTui tYouTui) { |
| | | tYouTui.setContent(tYouTui.getServiceContent()); |
| | | tYouTuiService.insert(tYouTui); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer tYouTuiId) { |
| | | TYouTui tYouTui = tYouTuiService.selectById(tYouTuiId); |
| | | if(1 == tYouTui.getStatus()){ |
| | | return new SuccessTip(500,"启用下的优推不可删除!"); |
| | | } |
| | | |
| | | tYouTuiService.deleteById(tYouTuiId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改用户状态 |
| | | */ |
| | | @RequestMapping(value = "/update-status") |
| | | @ResponseBody |
| | | public Object updateStatus(Integer id,Integer status) { |
| | | TYouTui tYouTui = tYouTuiService.selectById(id); |
| | | if(1 == status){ |
| | | tYouTui.setStatus(2); |
| | | } |
| | | if(2 == status){ |
| | | tYouTui.setStatus(1); |
| | | } |
| | | tYouTuiService.updateById(tYouTui); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | public Object update(TYouTui tYouTui) { |
| | | tYouTuiService.updateById(tYouTui); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{tYouTuiId}") |
| | | @ResponseBody |
| | | public Object detail(@PathVariable("tYouTuiId") Integer tYouTuiId) { |
| | | return tYouTuiService.selectById(tYouTuiId); |
| | | } |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "优惠券名称") |
| | | private String couponName; |
| | | @ApiModelProperty(value = "优惠券ID") |
| | | private Integer couponId; |
| | | |
| | | public Integer getCouponId() { |
| | | return couponId; |
| | | } |
| | | |
| | | public void setCouponId(Integer couponId) { |
| | | this.couponId = couponId; |
| | | } |
| | | |
| | | public List<Integer> getUserIds() { |
| | | return userIds; |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.resp; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TBranchOffice; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | public class TBranchOfficeResp extends TBranchOffice { |
| | | |
| | | @ApiModelProperty(value = "订单数量") |
| | | private Integer orderCount; |
| | | |
| | | @ApiModelProperty(value = "有效订单") |
| | | private Integer effectiveOrderCount; |
| | | |
| | | @ApiModelProperty(value = "已发放优惠券") |
| | | private Integer totalCount; |
| | | |
| | | @ApiModelProperty(value = "已使用优惠券") |
| | | private Integer usedCount; |
| | | |
| | | @ApiModelProperty(value = "累计优惠券金额") |
| | | private BigDecimal orderPriceCount; |
| | | |
| | | @ApiModelProperty(value = "司机数量") |
| | | private Integer driverCount; |
| | | |
| | | public Integer getDriverCount() { |
| | | return driverCount; |
| | | } |
| | | |
| | | public void setDriverCount(Integer driverCount) { |
| | | this.driverCount = driverCount; |
| | | } |
| | | |
| | | public Integer getOrderCount() { |
| | | return orderCount; |
| | | } |
| | | |
| | | public void setOrderCount(Integer orderCount) { |
| | | this.orderCount = orderCount; |
| | | } |
| | | |
| | | public Integer getEffectiveOrderCount() { |
| | | return effectiveOrderCount; |
| | | } |
| | | |
| | | public void setEffectiveOrderCount(Integer effectiveOrderCount) { |
| | | this.effectiveOrderCount = effectiveOrderCount; |
| | | } |
| | | |
| | | public Integer getTotalCount() { |
| | | return totalCount; |
| | | } |
| | | |
| | | public void setTotalCount(Integer totalCount) { |
| | | this.totalCount = totalCount; |
| | | } |
| | | |
| | | public Integer getUsedCount() { |
| | | return usedCount; |
| | | } |
| | | |
| | | public void setUsedCount(Integer usedCount) { |
| | | this.usedCount = usedCount; |
| | | } |
| | | |
| | | public BigDecimal getOrderPriceCount() { |
| | | return orderPriceCount; |
| | | } |
| | | |
| | | public void setOrderPriceCount(BigDecimal orderPriceCount) { |
| | | this.orderPriceCount = orderPriceCount; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.resp; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TAgent; |
| | | import com.stylefeng.guns.modular.system.model.TComplaint; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | public class TComplaintResp extends TComplaint { |
| | | |
| | | @ApiModelProperty(value = "投诉人名称") |
| | | private String userName; |
| | | |
| | | @ApiModelProperty(value = "投诉人电话") |
| | | private String userPhone; |
| | | |
| | | @ApiModelProperty(value = "司机电话") |
| | | private String driverPhone; |
| | | |
| | | public String getUserName() { |
| | | return userName; |
| | | } |
| | | |
| | | public void setUserName(String userName) { |
| | | this.userName = userName; |
| | | } |
| | | |
| | | public String getUserPhone() { |
| | | return userPhone; |
| | | } |
| | | |
| | | public void setUserPhone(String userPhone) { |
| | | this.userPhone = userPhone; |
| | | } |
| | | |
| | | public String getDriverPhone() { |
| | | return driverPhone; |
| | | } |
| | | |
| | | public void setDriverPhone(String driverPhone) { |
| | | this.driverPhone = driverPhone; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.resp; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TEvaluate; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | public class TEvaluateResp extends TEvaluate { |
| | | |
| | | @ApiModelProperty(value = "订单编号") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "评论用户名") |
| | | private String userName; |
| | | |
| | | @ApiModelProperty(value = "评论用户手机号") |
| | | private String userPhone; |
| | | |
| | | @ApiModelProperty(value = "评论司机") |
| | | private String driverName; |
| | | |
| | | @ApiModelProperty(value = "司机手机号") |
| | | private String driverPhone; |
| | | |
| | | @ApiModelProperty(value = "分公司id") |
| | | private Integer branchOfficeId; |
| | | |
| | | @ApiModelProperty(value = "代理商id") |
| | | private Integer agentId; |
| | | |
| | | public Integer getBranchOfficeId() { |
| | | return branchOfficeId; |
| | | } |
| | | |
| | | public void setBranchOfficeId(Integer branchOfficeId) { |
| | | this.branchOfficeId = branchOfficeId; |
| | | } |
| | | |
| | | public Integer getAgentId() { |
| | | return agentId; |
| | | } |
| | | |
| | | public void setAgentId(Integer agentId) { |
| | | this.agentId = agentId; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getUserName() { |
| | | return userName; |
| | | } |
| | | |
| | | public void setUserName(String userName) { |
| | | this.userName = userName; |
| | | } |
| | | |
| | | public String getUserPhone() { |
| | | return userPhone; |
| | | } |
| | | |
| | | public void setUserPhone(String userPhone) { |
| | | this.userPhone = userPhone; |
| | | } |
| | | |
| | | public String getDriverName() { |
| | | return driverName; |
| | | } |
| | | |
| | | public void setDriverName(String driverName) { |
| | | this.driverName = driverName; |
| | | } |
| | | |
| | | public String getDriverPhone() { |
| | | return driverPhone; |
| | | } |
| | | |
| | | public void setDriverPhone(String driverPhone) { |
| | | this.driverPhone = driverPhone; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.resp; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.util.Date; |
| | | |
| | | public class TOrderResp extends TOrder { |
| | | |
| | | @ApiModelProperty(value = "下单用户昵称") |
| | | private String userName; |
| | | |
| | | @ApiModelProperty(value = "下单用户电话") |
| | | private String userPhone; |
| | | |
| | | @ApiModelProperty(value = "司机昵称") |
| | | private String driverName; |
| | | |
| | | @ApiModelProperty(value = "司机电话") |
| | | private String driverPhone; |
| | | |
| | | @ApiModelProperty(value = "取消次数") |
| | | private Integer cancelCount; |
| | | |
| | | @ApiModelProperty(value = "用户状态") |
| | | private Integer userStatus; |
| | | |
| | | @ApiModelProperty(value = "取消订单页面使用:下单时间") |
| | | private Date placeTime; |
| | | |
| | | @ApiModelProperty(value = "取消原因") |
| | | private String cause; |
| | | |
| | | |
| | | public Date getPlaceTime() { |
| | | return placeTime; |
| | | } |
| | | |
| | | public void setPlaceTime(Date placeTime) { |
| | | this.placeTime = placeTime; |
| | | } |
| | | |
| | | public String getCause() { |
| | | return cause; |
| | | } |
| | | |
| | | public void setCause(String cause) { |
| | | this.cause = cause; |
| | | } |
| | | |
| | | public Integer getUserStatus() { |
| | | return userStatus; |
| | | } |
| | | |
| | | public void setUserStatus(Integer userStatus) { |
| | | this.userStatus = userStatus; |
| | | } |
| | | |
| | | public Integer getCancelCount() { |
| | | return cancelCount; |
| | | } |
| | | |
| | | public void setCancelCount(Integer cancelCount) { |
| | | this.cancelCount = cancelCount; |
| | | } |
| | | |
| | | public String getUserName() { |
| | | return userName; |
| | | } |
| | | |
| | | public void setUserName(String userName) { |
| | | this.userName = userName; |
| | | } |
| | | |
| | | public String getUserPhone() { |
| | | return userPhone; |
| | | } |
| | | |
| | | public void setUserPhone(String userPhone) { |
| | | this.userPhone = userPhone; |
| | | } |
| | | |
| | | public String getDriverName() { |
| | | return driverName; |
| | | } |
| | | |
| | | public void setDriverName(String driverName) { |
| | | this.driverName = driverName; |
| | | } |
| | | |
| | | public String getDriverPhone() { |
| | | return driverPhone; |
| | | } |
| | | |
| | | public void setDriverPhone(String driverPhone) { |
| | | this.driverPhone = driverPhone; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.resp; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | public class TRechargeRecordAgentResp extends TRechargeRecord { |
| | | |
| | | @ApiModelProperty(value = "司机姓名") |
| | | private String driverName; |
| | | |
| | | @ApiModelProperty(value = "司机手机号") |
| | | private String driverPhone; |
| | | |
| | | @ApiModelProperty(value = "代理商姓名") |
| | | private String principal; |
| | | |
| | | @ApiModelProperty(value = "联系电话") |
| | | private String principalPhone; |
| | | @ApiModelProperty(value = "省份") |
| | | private String provinceName; |
| | | |
| | | @ApiModelProperty(value = "市区") |
| | | private String cityName; |
| | | |
| | | @ApiModelProperty(value = "代理区域") |
| | | private String area; |
| | | |
| | | public String getCityName() { |
| | | return cityName; |
| | | } |
| | | |
| | | public void setCityName(String cityName) { |
| | | this.cityName = cityName; |
| | | } |
| | | |
| | | public String getProvinceName() { |
| | | return provinceName; |
| | | } |
| | | |
| | | public void setProvinceName(String provinceName) { |
| | | this.provinceName = provinceName; |
| | | } |
| | | |
| | | public String getDriverName() { |
| | | return driverName; |
| | | } |
| | | |
| | | public void setDriverName(String driverName) { |
| | | this.driverName = driverName; |
| | | } |
| | | |
| | | public String getDriverPhone() { |
| | | return driverPhone; |
| | | } |
| | | |
| | | public void setDriverPhone(String driverPhone) { |
| | | this.driverPhone = driverPhone; |
| | | } |
| | | |
| | | public String getPrincipal() { |
| | | return principal; |
| | | } |
| | | |
| | | public void setPrincipal(String principal) { |
| | | this.principal = principal; |
| | | } |
| | | |
| | | public String getPrincipalPhone() { |
| | | return principalPhone; |
| | | } |
| | | |
| | | public void setPrincipalPhone(String principalPhone) { |
| | | this.principalPhone = principalPhone; |
| | | } |
| | | |
| | | public String getArea() { |
| | | return area; |
| | | } |
| | | |
| | | public void setArea(String area) { |
| | | this.area = area; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller.resp; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | public class TRechargeRecordUserResp extends TRechargeRecord { |
| | | |
| | | @ApiModelProperty(value = "用户姓名") |
| | | private String userName; |
| | | |
| | | @ApiModelProperty(value = "用户手机号") |
| | | private String userPhone; |
| | | |
| | | public String getUserName() { |
| | | return userName; |
| | | } |
| | | |
| | | public void setUserName(String userName) { |
| | | this.userName = userName; |
| | | } |
| | | |
| | | public String getUserPhone() { |
| | | return userPhone; |
| | | } |
| | | |
| | | public void setUserPhone(String userPhone) { |
| | | this.userPhone = userPhone; |
| | | } |
| | | } |
| | |
| | | |
| | | private Map<String, Integer> loginFailures = new HashMap<>(); |
| | | |
| | | private List<String> ips = Arrays.asList("127.0.0.1"); |
| | | private List<String> ips = Arrays.asList("127.0.0.1","192.168.0.247"); |
| | | |
| | | |
| | | |
| | |
| | | // 校验密码 |
| | | ShiroUser shiroUser1 = shiroFactory.shiroUser(user); |
| | | SimpleAuthenticationInfo info = shiroFactory.info(shiroUser1, user, username); |
| | | System.out.println(info.getCredentials()); |
| | | String pass = ShiroKit.md5(password, user.getSalt()); |
| | | System.out.println(pass); |
| | | if(!info.getCredentials().equals(pass)){ |
| | | f++; |
| | | loginFailures.put(username, f); |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.model.TCancelOrder; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单取消记录 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | @Mapper |
| | | public interface TCancelOrderMapper extends BaseMapper<TCancelOrder> { |
| | | |
| | | /** |
| | | * 查询取消订单列表 |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param code |
| | | * @param source |
| | | * @param userName |
| | | * @param userPhone |
| | | * @param state |
| | | * @param driverName |
| | | * @return |
| | | */ |
| | | List<TOrderResp> getCancelOrderList(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("code") String code, |
| | | @Param("source") Integer source, @Param("userName")String userName, @Param("userPhone")String userPhone, |
| | | @Param("state")Integer state, @Param("driverName")String driverName,@Param("roleType")Integer roleType, |
| | | @Param("objectId")Integer objectId); |
| | | |
| | | /** |
| | | * 订单异常详情页面的取消记录列表 |
| | | * @param userId |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | List<TOrderResp> userCancelOrderList(@Param("userId") Integer userId,@Param("orderId") Integer orderId); |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TComplaintResp; |
| | | import com.stylefeng.guns.modular.system.model.TComplaint; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 投诉管理 Mapper 接口 |
| | | * 投诉 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author 吕雪 |
| | | * @since 2020-06-09 |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | @Mapper |
| | | public interface TComplaintMapper extends BaseMapper<TComplaint> { |
| | | |
| | | /** |
| | | * 根据条件查询投诉列表 |
| | | *获取列表 |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param userName |
| | | * @param userPhone |
| | | * @param driverPhone |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<Map<String,Object>> getComplaintList(@Param("page") Page<Map<String, Object>> page, |
| | | @Param("roleType") Integer roleType, |
| | | @Param("nowUserId") Integer nowUserId, |
| | | @Param("beginTime") String beginTime, |
| | | @Param("endTime") String endTime, |
| | | @Param("userName") String userName, |
| | | @Param("userPhone") String userPhone, |
| | | @Param("driverPhone") String driverPhone, |
| | | @Param("isHandle") Integer isHandle); |
| | | List<TComplaintResp> getPageList(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("userName")String userName, |
| | | @Param("userPhone")String userPhone, @Param("driverPhone")String driverPhone, @Param("state")Integer state); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TEvaluateResp; |
| | | import com.stylefeng.guns.modular.system.model.TEvaluate; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单评价 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | @Mapper |
| | | public interface TEvaluateMapper extends BaseMapper<TEvaluate> { |
| | | |
| | | /** |
| | | * 查询评论列表 |
| | | * @param startTime 开始时间 |
| | | * @param endTime 结束时间 |
| | | * @param userName 评论用户名 |
| | | * @param driverName 评论司机名 |
| | | * @param orderType 订单类型 |
| | | * @param score 评价分数 |
| | | * @return |
| | | */ |
| | | List<TEvaluateResp> selectPageList(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("userName")String userName, |
| | | @Param("driverName")String driverName, @Param("orderType")Integer orderType, @Param("score")Integer score); |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Mapper |
| | | public interface TOrderMapper extends BaseMapper<TOrder> { |
| | | |
| | | /** |
| | | * 查询订单列表 |
| | | * @param startTime |
| | | * @param endTime |
| | | * @param code |
| | | * @param source |
| | | * @param userName |
| | | * @param userPhone |
| | | * @param state |
| | | * @param driverName |
| | | * @return |
| | | */ |
| | | List<TOrderResp> getOrderList(@Param("startTime") String startTime,@Param("endTime")String endTime, @Param("code") String code, |
| | | @Param("source") Integer source,@Param("userName")String userName, @Param("userPhone")String userPhone, |
| | | @Param("state")Integer state,@Param("driverName")String driverName,@Param("isException") Integer isException, |
| | | @Param("roleType")Integer roleType,@Param("objectId")Integer objectId); |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordAgentResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordUserResp; |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-20 |
| | | * @since 2023-03-10 |
| | | */ |
| | | @Mapper |
| | | public interface TRechargeRecordMapper extends BaseMapper<TRechargeRecord> { |
| | | |
| | | /** |
| | | * 用户充值记录查询 |
| | | * @param userName 用户名 |
| | | * @param userPhone 用户手机号 |
| | | * @param code 流水号 |
| | | * @param startTime 开始时间 |
| | | * @param endTime 结束时间 |
| | | * @return List<TRechargeRecordUserResp> |
| | | */ |
| | | List<TRechargeRecordUserResp> userRecharge(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("userName")String userName, |
| | | @Param("userPhone")String userPhone, @Param("code")String code); |
| | | |
| | | List<TRechargeRecordAgentResp> agentRechargeList(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("driverName")String driverName, |
| | | @Param("driverPhone")String driverPhone, @Param("roleType")Integer roleType, @Param("objectId")Integer objectId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TSystemConfig; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * <p> |
| | | * 系统配置 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | @Mapper |
| | | public interface TSystemConfigMapper extends BaseMapper<TSystemConfig> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * <p> |
| | | * 用户优惠券中间表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-28 |
| | | */ |
| | | @Mapper |
| | | public interface TUserToCouponMapper extends BaseMapper<TUserToCoupon> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TYouTui; |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | |
| | | /** |
| | | * <p> |
| | | * 优推 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-01 |
| | | */ |
| | | public interface TYouTuiMapper extends BaseMapper<TYouTui> { |
| | | |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.TCancelOrderMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TCancelOrder"> |
| | | <id column="id" property="id" /> |
| | | <result column="orderId" property="orderId" /> |
| | | <result column="userType" property="userType" /> |
| | | <result column="userId" property="userId" /> |
| | | <result column="cause" property="cause" /> |
| | | <result column="status" property="status" /> |
| | | <result column="createTime" property="createTime" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, orderId, userType, userId, cause, status, createTime |
| | | </sql> |
| | | |
| | | <sql id="Base_Column_Order"> |
| | | co.id, co.orderId, co.userType, co.userId, co.cause, co.status, co.createTime,o.code, o.`source`, o.startAddress, o.endAddress,o.createTime AS placeTime, |
| | | a.nickname AS userName,a.phone AS userPhone,a.cancelCount,a.status AS userStatus,d.name AS driverName,d.phone AS driverPhone |
| | | </sql> |
| | | |
| | | <select id="getCancelOrderList" resultType="com.stylefeng.guns.modular.system.controller.resp.TOrderResp"> |
| | | select <include refid="Base_Column_Order"></include> |
| | | from t_cancel_order co |
| | | left join t_order o on co.orderId = o.id |
| | | left join t_app_user a on o.userId = a.id |
| | | left join t_driver d on o.driverId = d.id |
| | | <where> |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> |
| | | AND co.createTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="code != null and code != ''"> |
| | | AND o.code LIKE concat('%',#{code},'%') |
| | | </if> |
| | | <if test="source != null"> |
| | | AND o.source = #{source} |
| | | </if> |
| | | <if test="userName != null and userName != ''"> |
| | | AND a.nickname LIKE concat('%',#{userName},'%') |
| | | </if> |
| | | <if test="userPhone != null and userPhone != ''"> |
| | | AND a.phone LIKE concat('%',#{userPhone},'%') |
| | | </if> |
| | | <if test="state != null"> |
| | | AND o.state = #{state} |
| | | </if> |
| | | <if test="driverName != null and driverName != ''"> |
| | | AND d.name LIKE concat('%',#{driverName},'%') |
| | | </if> |
| | | <if test="roleType != null and roleType == 2"> |
| | | AND o.branchOfficeId = #{objectId} |
| | | </if> |
| | | <if test="roleType != null and roleType == 3"> |
| | | AND o.agentId = #{objectId} |
| | | </if> |
| | | AND co.userType = 1 |
| | | </where> |
| | | ORDER BY co.createTime |
| | | </select> |
| | | <select id="userCancelOrderList" resultType="com.stylefeng.guns.modular.system.controller.resp.TOrderResp"> |
| | | select co.createTime,o.code,o.startAddress,o.endAddress |
| | | from t_cancel_order co |
| | | left join t_order o on co.orderId = o.id |
| | | <where> |
| | | <if test="userId != null"> |
| | | AND co.userId = #{userId} |
| | | </if> |
| | | <if test="orderId != null"> |
| | | AND co.orderId = #{orderId} |
| | | </if> |
| | | AND co.userType = 1 |
| | | </where> |
| | | ORDER BY co.createTime DESC |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TComplaint"> |
| | | <id column="id" property="id" /> |
| | | <result column="userId" property="userId" /> |
| | | <result column="reason" property="reason" /> |
| | | <result column="driverId" property="driverId" /> |
| | | <result column="description" property="description" /> |
| | | <result column="isHandle" property="isHandle" /> |
| | | <result column="insert_time" property="insertTime" /> |
| | | <result column="handleResult" property="handleResult" /> |
| | | <result column="handleUserId" property="handleUserId" /> |
| | | <result column="reason" property="reason" /> |
| | | <result column="notes" property="notes" /> |
| | | <result column="state" property="state" /> |
| | | <result column="status" property="status" /> |
| | | <result column="createTime" property="createTime" /> |
| | | <result column="auditId" property="auditId" /> |
| | | <result column="auditPersonName" property="auditPersonName" /> |
| | | <result column="auditTime" property="auditTime" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, userId, reason, driverId, description, isHandle, insert_time, handleResult, handleUserId |
| | | id, userId, driverId, reason, notes, state, status, createTime,auditId,auditPersonName,auditTime |
| | | </sql> |
| | | |
| | | <!--根据条件查询投诉列表--> |
| | | <select id="getComplaintList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT * FROM (SELECT di.companyId,di.franchiseeId,ui.nickName as userName,ui.phone as userPhone,di.`name` as driverName,di.phone as driverPhone,si.`name` as handleUserName,cc.* FROM t_complaint as cc |
| | | LEFT JOIN (select * from t_user where flag != 3) as ui on ui.id = cc.userId |
| | | LEFT JOIN (select * from t_driver where flag != 3) as di on di.id = cc.driverId |
| | | LEFT JOIN sys_user as si on si.id = cc.handleUserId |
| | | ) as o |
| | | <select id="getPageList" resultType="com.stylefeng.guns.modular.system.controller.resp.TComplaintResp"> |
| | | select c.id, c.userId, c.driverId, c.reason, c.notes, c.state, c.status, c.createTime,c.auditId,c.auditPersonName,c.auditTime, |
| | | au.nickname AS userName,au.phone AS userPhone,d.phone AS driverPhone |
| | | from t_complaint c |
| | | left join t_app_user au on c.userId = au.id |
| | | left join t_driver d on c.driverId = d.id |
| | | <where> |
| | | 1 = 1 |
| | | <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> |
| | | AND (o.insert_time between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59')) |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> |
| | | AND c.createTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="userName != null and userName != ''"> |
| | | and o.userName LIKE CONCAT('%',#{userName},'%') |
| | | AND au.nickname LIKE concat('%',#{userName},'%') |
| | | </if> |
| | | <if test="userPhone != null and userPhone != ''"> |
| | | and o.userPhone LIKE CONCAT('%',#{userPhone},'%') |
| | | AND au.phone LIKE concat('%',#{userPhone},'%') |
| | | </if> |
| | | <if test="driverPhone != null and driverPhone != ''"> |
| | | and o.driverPhone LIKE CONCAT('%',#{driverPhone},'%') |
| | | AND d.phone LIKE concat('%',#{driverPhone},'%') |
| | | </if> |
| | | <if test="isHandle != null and isHandle != '' and isHandle == 2"> |
| | | and o.isHandle = 0 |
| | | </if> |
| | | <if test="isHandle != null and isHandle != '' and isHandle == 1"> |
| | | and o.isHandle = 1 |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 2"> |
| | | and o.companyId = #{nowUserId} and (o.franchiseeId = 0 or o.franchiseeId is null) |
| | | </if> |
| | | <if test="roleType != null and roleType != '' and roleType == 3"> |
| | | and o.franchiseeId = #{nowUserId} |
| | | <if test="state != null"> |
| | | AND c.state = #{state} |
| | | </if> |
| | | </where> |
| | | order by o.id desc |
| | | ORDER BY c.state |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.TEvaluateMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TEvaluate"> |
| | | <id column="id" property="id" /> |
| | | <result column="orderId" property="orderId" /> |
| | | <result column="userId" property="userId" /> |
| | | <result column="score" property="score" /> |
| | | <result column="evaluate" property="evaluate" /> |
| | | <result column="status" property="status" /> |
| | | <result column="createTime" property="createTime" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, orderId, userId, score, evaluate, status, createTime |
| | | </sql> |
| | | <select id="selectPageList" resultType="com.stylefeng.guns.modular.system.controller.resp.TEvaluateResp"> |
| | | select e.id, e.orderId, e.userId, e.score, e.evaluate, e.status, e.createTime, |
| | | a.nickname AS userName,a.phone AS userPhone,o.code,o.agentId,o.branchOfficeId,d.name AS driverName,d.phone AS driverPhone |
| | | from t_evaluate e |
| | | left join t_app_user a on e.userId = a.id |
| | | left join t_order o on e.orderId = o.id |
| | | left join t_driver d on o.driverId = d.id |
| | | <where> |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> |
| | | AND e.createTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="userName != null and userName != ''"> |
| | | AND a.nickname LIKE concat('%',#{userName},'%') |
| | | </if> |
| | | <if test="driverName != null and driverName != ''"> |
| | | AND d.name LIKE concat('%',#{driverName},'%') |
| | | </if> |
| | | <if test="score != null"> |
| | | AND e.score = #{score} |
| | | </if> |
| | | </where> |
| | | ORDER BY e.createTime DESC |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <result column="code" property="code" /> |
| | | <result column="userId" property="userId" /> |
| | | <result column="driverId" property="driverId" /> |
| | | <result column="source" property="source" /> |
| | | <result column="`source`" property="source" /> |
| | | <result column="agentId" property="agentId" /> |
| | | <result column="branchOfficeId" property="branchOfficeId" /> |
| | | <result column="startTime" property="startTime" /> |
| | |
| | | <result column="couponId" property="couponId" /> |
| | | <result column="payType" property="payType" /> |
| | | <result column="payTime" property="payTime" /> |
| | | <result column="state" property="state" /> |
| | | <result column="`state`" property="state" /> |
| | | <result column="status" property="status" /> |
| | | <result column="createTime" property="createTime" /> |
| | | <result column="startDistance" property="startLng" /> |
| | |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, code, userId, driverId, source, agentId, branchOfficeId, startTime, startAddress, startLat, startLng, endAddress, endLat, endLng, |
| | | boardingTime, getoffTime, estimatedPrice, orderMoney, payMoney, discountedPrice, couponId, payType, payTime, state, status, createTime, |
| | | id, code, userId, driverId, `source`, agentId, branchOfficeId, startTime, startAddress, startLat, startLng, endAddress, endLat, endLng, |
| | | boardingTime, getoffTime, estimatedPrice, orderMoney, payMoney, discountedPrice, couponId, payType, payTime, `state`, status, createTime, |
| | | startDistance,startPrice,overDriveDistance,overDrivePrice,longDistance,longDistancePrice,overLongDistance,overLongDistancePrice, |
| | | waitTime,waitTimePrice,outWaitTime,outWaitTimePrice,badWeatherDistance,badWeatherPrice,overBadWeatherDistance,overBadWeatherPrice |
| | | </sql> |
| | | |
| | | <sql id="Base_Column_Order"> |
| | | o.id, o.code, o.userId, o.driverId, o.`source`, o.agentId, o.branchOfficeId, o.startTime, o.startAddress, o.startLat, o.startLng, o.endAddress, o.endLat, o.endLng, |
| | | o.boardingTime, o.getoffTime, o.estimatedPrice, o.orderMoney, o.payMoney, o.discountedPrice, o.couponId, o.payType, o.payTime, o.`state`, o.status, o.createTime, |
| | | o.startDistance,o.startPrice,o.overDriveDistance,o.overDrivePrice,o.longDistance,o.longDistancePrice,o.overLongDistance,o.overLongDistancePrice, |
| | | o.waitTime,o.waitTimePrice,o.outWaitTime,o.outWaitTimePrice,o.badWeatherDistance,o.badWeatherPrice,o.overBadWeatherDistance,o.overBadWeatherPrice,a.nickname AS userName, |
| | | a.phone AS userPhone,a.cancelCount,a.status AS userStatus,d.name AS driverName,d.phone AS driverPhone |
| | | </sql> |
| | | |
| | | <select id="getOrderList" resultType="com.stylefeng.guns.modular.system.controller.resp.TOrderResp"> |
| | | select <include refid="Base_Column_Order"></include> |
| | | from t_order o |
| | | left join t_app_user a on o.userId = a.id |
| | | left join t_driver d on o.driverId = d.id |
| | | <where> |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> |
| | | AND o.createTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="code != null and code != ''"> |
| | | AND o.code LIKE concat('%',#{code},'%') |
| | | </if> |
| | | <if test="source != null"> |
| | | AND o.source = #{source} |
| | | </if> |
| | | <if test="userName != null and userName != ''"> |
| | | AND a.nickname LIKE concat('%',#{userName},'%') |
| | | </if> |
| | | <if test="userPhone != null and userPhone != ''"> |
| | | AND a.phone LIKE concat('%',#{userPhone},'%') |
| | | </if> |
| | | <if test="state != null"> |
| | | AND o.state = #{state} |
| | | </if> |
| | | <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> |
| | | <if test="roleType != null and roleType == 3"> |
| | | AND o.agentId = #{objectId} |
| | | </if> |
| | | </where> |
| | | ORDER BY o.createTime |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, type, userId, code, amount, payType, payTime, payStatus, orderNumber, createTime |
| | | id, `type`, userId, code, amount, payType, payTime, payStatus, orderNumber, createTime |
| | | </sql> |
| | | <select id="userRecharge" resultType="com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordUserResp"> |
| | | select rr.id, rr.`type`, rr.userId, rr.code, rr.amount, rr.payType, rr.payTime, rr.payStatus, rr.orderNumber, rr.createTime,au.nickname AS userName,au.phone AS userPhone |
| | | from t_recharge_record rr |
| | | left join t_app_user au on rr.userId = au.id |
| | | <where> |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> |
| | | AND rr.createTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="userName != null and userName != ''"> |
| | | AND au.nickname LIKE concat('%',#{userName},'%') |
| | | </if> |
| | | <if test="userPhone != null and userPhone != ''"> |
| | | AND au.phone LIKE concat('%',#{userPhone},'%') |
| | | </if> |
| | | <if test="code != null and code != ''"> |
| | | AND rr.code LIKE concat('%',#{code},'%') |
| | | </if> |
| | | AND rr.`type` = 1 |
| | | </where> |
| | | ORDER BY rr.createTime DESC |
| | | </select> |
| | | <select id="agentRechargeList" resultType="com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordAgentResp"> |
| | | select rr.id, rr.`type`, rr.userId, rr.code, rr.amount, rr.payType, rr.payTime, rr.payStatus, rr.orderNumber, rr.createTime, |
| | | d.name AS driverName,d.phone AS driverPhone,a.principal,a.principalPhone,a.provinceName,a.cityName |
| | | from t_recharge_record rr |
| | | left join t_driver d on rr.userId = d.id |
| | | left join t_agent a on d.agentId = a.id |
| | | <where> |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> |
| | | AND rr.createTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="driverName != null and driverName != ''"> |
| | | AND d.name LIKE concat('%',#{driverName},'%') |
| | | </if> |
| | | <if test="driverPhone != null and driverPhone != ''"> |
| | | AND d.phone LIKE concat('%',#{driverPhone},'%') |
| | | </if> |
| | | <if test="roleType != null and roleType == 3"> |
| | | AND a.id = #{objectId} |
| | | </if> |
| | | AND rr.`type` = 3 |
| | | </where> |
| | | ORDER BY rr.createTime DESC |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.TSystemConfigMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TSystemConfig"> |
| | | <id column="id" property="id" /> |
| | | <result column="type" property="type" /> |
| | | <result column="content" property="content" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, type, content |
| | | </sql> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.TUserToCouponMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TUserToCoupon"> |
| | | <id column="id" property="id" /> |
| | | <result column="userId" property="userId" /> |
| | | <result column="couponId" property="couponId" /> |
| | | <result column="couponTotal" property="couponTotal" /> |
| | | <result column="validCount" property="validCount" /> |
| | | <result column="expireTime" property="expireTime" /> |
| | | <result column="createTime" property="createTime" /> |
| | | <result column="status" property="status" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, userId, couponId, couponTotal, validCount, expireTime, createTime, status |
| | | </sql> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.TYouTuiMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TYouTui"> |
| | | <id column="id" property="id" /> |
| | | <result column="name" property="name" /> |
| | | <result column="type" property="type" /> |
| | | <result column="number" property="number" /> |
| | | <result column="integral" property="integral" /> |
| | | <result column="effectiveTime" property="effectiveTime" /> |
| | | <result column="content" property="content" /> |
| | | <result column="status" property="status" /> |
| | | <result column="createTime" property="createTime" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, name, type, number, integral, effectiveTime, content, status, createTime |
| | | </sql> |
| | | |
| | | </mapper> |
| | |
| | | WAIT_EVALUATED(107, "待评价"), |
| | | FINISH(108, "已完成"), |
| | | TRANSFERRING(201, "转单中"), |
| | | CANCELED(301,"已取消"); |
| | | CANCELED(301,"已取消"), |
| | | WAITING(401,"等待中"); |
| | | |
| | | private String desc; |
| | | |
| | |
| | | @TableField(value = "remark") |
| | | private String remark; |
| | | |
| | | /** |
| | | * 取消订单次数,取消一次添加一次,若成功接单清零 |
| | | */ |
| | | @TableField(value = "cancelCount") |
| | | private Integer cancelCount; |
| | | |
| | | @ApiModelProperty(value = "是否拥有9折优惠 1是 0否") |
| | | @TableField(value = "havDiscount") |
| | | private Integer havDiscount; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "注册开始时间") |
| | |
| | | @ApiModelProperty(value = "注册结束时间") |
| | | private Date endTime; |
| | | |
| | | public Integer getHavDiscount() { |
| | | return havDiscount; |
| | | } |
| | | |
| | | public void setHavDiscount(Integer havDiscount) { |
| | | this.havDiscount = havDiscount; |
| | | } |
| | | |
| | | public Integer getCancelCount() { |
| | | return cancelCount; |
| | | } |
| | | |
| | | public void setCancelCount(Integer cancelCount) { |
| | | this.cancelCount = cancelCount; |
| | | } |
| | | |
| | | public Integer getIsException() { |
| | | return isException; |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import java.util.Date; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | |
| | | * 添加时间 |
| | | */ |
| | | private Date createTime; |
| | | /** |
| | | * 分公司名称 |
| | | */ |
| | | private String branchOfficeName; |
| | | /** |
| | | * 经营业务 1司机代驾 |
| | | */ |
| | | private Integer operatingBusiness; |
| | | |
| | | /** |
| | | * 开户银行 |
| | | */ |
| | | @TableField(value = "bankDeposit") |
| | | @ApiModelProperty(value = "开户银行") |
| | | private String bankDeposit; |
| | | |
| | | /** |
| | | * 银行账户 |
| | | */ |
| | | @TableField(value = "bankAccount") |
| | | @ApiModelProperty(value = "银行账户") |
| | | private String bankAccount; |
| | | |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "区域") |
| | | private String area; |
| | | |
| | | @TableField(exist = false) |
| | | @ApiModelProperty(value = "区域id") |
| | | private String areaId; |
| | | |
| | | public String getBankDeposit() { |
| | | return bankDeposit; |
| | | } |
| | | |
| | | public void setBankDeposit(String bankDeposit) { |
| | | this.bankDeposit = bankDeposit; |
| | | } |
| | | |
| | | public String getBankAccount() { |
| | | return bankAccount; |
| | | } |
| | | |
| | | public void setBankAccount(String bankAccount) { |
| | | this.bankAccount = bankAccount; |
| | | } |
| | | |
| | | public String getArea() { |
| | | return area; |
| | | } |
| | | |
| | | public void setArea(String area) { |
| | | this.area = area; |
| | | } |
| | | |
| | | public String getAreaId() { |
| | | return areaId; |
| | | } |
| | | |
| | | public void setAreaId(String areaId) { |
| | | this.areaId = areaId; |
| | | } |
| | | |
| | | public String getBranchOfficeName() { |
| | | return branchOfficeName; |
| | | } |
| | | |
| | | public void setBranchOfficeName(String branchOfficeName) { |
| | | this.branchOfficeName = branchOfficeName; |
| | | } |
| | | |
| | | public Integer getOperatingBusiness() { |
| | | return operatingBusiness; |
| | | } |
| | | |
| | | public void setOperatingBusiness(Integer operatingBusiness) { |
| | | this.operatingBusiness = operatingBusiness; |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import java.util.Date; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单取消记录 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | @TableName("t_cancel_order") |
| | | public class TCancelOrder extends Model<TCancelOrder> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 订单id |
| | | */ |
| | | private Integer orderId; |
| | | /** |
| | | * 用户类型(1=用户,2=司机) |
| | | */ |
| | | private Integer userType; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | private Integer userId; |
| | | /** |
| | | * 转单原因 |
| | | */ |
| | | private String cause; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | private Integer status; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | private Date createTime; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getOrderId() { |
| | | return orderId; |
| | | } |
| | | |
| | | public void setOrderId(Integer orderId) { |
| | | this.orderId = orderId; |
| | | } |
| | | |
| | | public Integer getUserType() { |
| | | return userType; |
| | | } |
| | | |
| | | public void setUserType(Integer userType) { |
| | | this.userType = userType; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public String getCause() { |
| | | return cause; |
| | | } |
| | | |
| | | public void setCause(String cause) { |
| | | this.cause = cause; |
| | | } |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "TCancelOrder{" + |
| | | "id=" + id + |
| | | ", orderId=" + orderId + |
| | | ", userType=" + userType + |
| | | ", userId=" + userId + |
| | | ", cause=" + cause + |
| | | ", status=" + status + |
| | | ", createTime=" + createTime + |
| | | "}"; |
| | | } |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import java.util.Date; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 投诉管理 |
| | | * 投诉 |
| | | * </p> |
| | | * |
| | | * @author 吕雪 |
| | | * @since 2020-06-09 |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | @TableName("t_complaint") |
| | | public class TComplaint extends Model<TComplaint> { |
| | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 用户Id |
| | | * 用户id |
| | | */ |
| | | private Integer userId; |
| | | /** |
| | | * 投诉司机id |
| | | */ |
| | | private Integer driverId; |
| | | /** |
| | | * 投诉原因 |
| | | */ |
| | | private String reason; |
| | | /** |
| | | * 被投诉人Id |
| | | * 注释 |
| | | */ |
| | | private Long driverId; |
| | | private String notes; |
| | | /** |
| | | * 描述 |
| | | * 处理状态(1=待处理,2=已处理) |
| | | */ |
| | | private String description; |
| | | private Integer state; |
| | | /** |
| | | * 是否处理(0:未处理,1:已处理) |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | private Integer isHandle; |
| | | private Integer status; |
| | | /** |
| | | * 投诉时间 |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insert_time") |
| | | private Date insertTime; |
| | | /** |
| | | * 处理结果 |
| | | */ |
| | | private String handleResult; |
| | | private Date createTime; |
| | | /** |
| | | * 处理人id |
| | | */ |
| | | private Integer handleUserId; |
| | | private Integer auditId; |
| | | /** |
| | | * 处理人名称 |
| | | */ |
| | | private String auditPersonName; |
| | | /** |
| | | * 处理时间 |
| | | */ |
| | | private Date handleTime; |
| | | private Date auditTime; |
| | | |
| | | public Date getHandleTime() { |
| | | return handleTime; |
| | | public Date getAuditTime() { |
| | | return auditTime; |
| | | } |
| | | |
| | | public void setHandleTime(Date handleTime) { |
| | | this.handleTime = handleTime; |
| | | public void setAuditTime(Date auditTime) { |
| | | this.auditTime = auditTime; |
| | | } |
| | | |
| | | public Integer getAuditId() { |
| | | return auditId; |
| | | } |
| | | |
| | | public void setAuditId(Integer auditId) { |
| | | this.auditId = auditId; |
| | | } |
| | | |
| | | public String getAuditPersonName() { |
| | | return auditPersonName; |
| | | } |
| | | |
| | | public void setAuditPersonName(String auditPersonName) { |
| | | this.auditPersonName = auditPersonName; |
| | | } |
| | | |
| | | public Integer getId() { |
| | |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public String getReason() { |
| | | return reason; |
| | | } |
| | |
| | | this.reason = reason; |
| | | } |
| | | |
| | | public Long getDriverId() { |
| | | return driverId; |
| | | public String getNotes() { |
| | | return notes; |
| | | } |
| | | |
| | | public void setDriverId(Long driverId) { |
| | | this.driverId = driverId; |
| | | public void setNotes(String notes) { |
| | | this.notes = notes; |
| | | } |
| | | |
| | | public String getDescription() { |
| | | return description; |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setDescription(String description) { |
| | | this.description = description; |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Integer getIsHandle() { |
| | | return isHandle; |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setIsHandle(Integer isHandle) { |
| | | this.isHandle = isHandle; |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public String getHandleResult() { |
| | | return handleResult; |
| | | } |
| | | |
| | | public void setHandleResult(String handleResult) { |
| | | this.handleResult = handleResult; |
| | | } |
| | | |
| | | public Integer getHandleUserId() { |
| | | return handleUserId; |
| | | } |
| | | |
| | | public void setHandleUserId(Integer handleUserId) { |
| | | this.handleUserId = handleUserId; |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | @Override |
| | |
| | | return "TComplaint{" + |
| | | "id=" + id + |
| | | ", userId=" + userId + |
| | | ", reason=" + reason + |
| | | ", driverId=" + driverId + |
| | | ", description=" + description + |
| | | ", isHandle=" + isHandle + |
| | | ", insertTime=" + insertTime + |
| | | ", handleResult=" + handleResult + |
| | | ", handleUserId=" + handleUserId + |
| | | ", reason=" + reason + |
| | | ", notes=" + notes + |
| | | ", state=" + state + |
| | | ", status=" + status + |
| | | ", createTime=" + createTime + |
| | | "}"; |
| | | } |
| | | } |
| | |
| | | @TableField("coupon_state") |
| | | private Integer couponState; |
| | | |
| | | @ApiModelProperty(value = "优惠券数量") |
| | | @TableField("coupon_count") |
| | | private Integer couponCount; |
| | | |
| | | @ApiModelProperty(value = "剩余数量") |
| | | @TableField("remaining_quantity") |
| | | private Integer remainingQuantity; |
| | | |
| | | public Integer getRemainingQuantity() { |
| | | return remainingQuantity; |
| | | } |
| | | |
| | | public void setRemainingQuantity(Integer remainingQuantity) { |
| | | this.remainingQuantity = remainingQuantity; |
| | | } |
| | | |
| | | public Integer getCouponCount() { |
| | | return couponCount; |
| | | } |
| | | |
| | | public void setCouponCount(Integer couponCount) { |
| | | this.couponCount = couponCount; |
| | | } |
| | | |
| | | public Integer getAgentId() { |
| | | return agentId; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import java.util.Date; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单评价 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | @TableName("t_evaluate") |
| | | public class TEvaluate extends Model<TEvaluate> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 订单id |
| | | */ |
| | | private Integer orderId; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | private Integer userId; |
| | | /** |
| | | * 评分 |
| | | */ |
| | | private Integer score; |
| | | /** |
| | | * 评价内容 |
| | | */ |
| | | private String evaluate; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | private Integer status; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | private Date createTime; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getOrderId() { |
| | | return orderId; |
| | | } |
| | | |
| | | public void setOrderId(Integer orderId) { |
| | | this.orderId = orderId; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Integer getScore() { |
| | | return score; |
| | | } |
| | | |
| | | public void setScore(Integer score) { |
| | | this.score = score; |
| | | } |
| | | |
| | | public String getEvaluate() { |
| | | return evaluate; |
| | | } |
| | | |
| | | public void setEvaluate(String evaluate) { |
| | | this.evaluate = evaluate; |
| | | } |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "TEvaluate{" + |
| | | "id=" + id + |
| | | ", orderId=" + orderId + |
| | | ", userId=" + userId + |
| | | ", score=" + score + |
| | | ", evaluate=" + evaluate + |
| | | ", status=" + status + |
| | | ", createTime=" + createTime + |
| | | "}"; |
| | | } |
| | | } |
| | |
| | | @ApiModelProperty(value = "恶劣天气超出费") |
| | | private BigDecimal overBadWeatherPrice; |
| | | |
| | | @ApiModelProperty(value = "折扣优惠金额") |
| | | private BigDecimal discountAmount; |
| | | |
| | | public BigDecimal getDiscountAmount() { |
| | | return discountAmount; |
| | | } |
| | | |
| | | public void setDiscountAmount(BigDecimal discountAmount) { |
| | | this.discountAmount = discountAmount; |
| | | } |
| | | |
| | | public Double getStartDistance() { |
| | | return startDistance; |
| | | } |
| | |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-20 |
| | | * @since 2023-03-10 |
| | | */ |
| | | @TableName("t_recharge_record") |
| | | public class TRechargeRecord extends Model<TRechargeRecord> { |
| | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 数据类型(1=用户,2=司机) |
| | | * 数据类型(1=用户,2=司机,3 = 代理商) |
| | | */ |
| | | private Integer type; |
| | | /** |
| | |
| | | */ |
| | | private BigDecimal amount; |
| | | /** |
| | | * 支付方式(1=微信) |
| | | * 支付方式(1=微信 2 = 系统充值) |
| | | */ |
| | | private Integer payType; |
| | | /** |
| | |
| | | * 添加时间 |
| | | */ |
| | | private Date createTime; |
| | | /** |
| | | * 代理商id |
| | | */ |
| | | private Integer agentId; |
| | | |
| | | public Integer getAgentId() { |
| | | return agentId; |
| | | } |
| | | |
| | | public void setAgentId(Integer agentId) { |
| | | this.agentId = agentId; |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 系统配置 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | @TableName("t_system_config") |
| | | public class TSystemConfig extends Model<TSystemConfig> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 类型(1=派单规则,2=佣金分成规则,3=抽成规则,4=积分规则,5=价格规则,6=余额规则,7=客服管理) |
| | | */ |
| | | private Integer type; |
| | | /** |
| | | * 内容 |
| | | */ |
| | | private String content; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getContent() { |
| | | return content; |
| | | } |
| | | |
| | | public void setContent(String content) { |
| | | this.content = content; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "TSystemConfig{" + |
| | | "id=" + id + |
| | | ", type=" + type + |
| | | ", content=" + content + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import java.util.Date; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 用户优惠券中间表 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-28 |
| | | */ |
| | | @TableName("t_user_to_coupon") |
| | | public class TUserToCoupon extends Model<TUserToCoupon> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | private Integer userId; |
| | | /** |
| | | * 优惠券id |
| | | */ |
| | | private Integer couponId; |
| | | /** |
| | | * 领取总数量 |
| | | */ |
| | | private Integer couponTotal; |
| | | /** |
| | | * 有效数量 |
| | | */ |
| | | private Integer validCount; |
| | | /** |
| | | * 过期时间 |
| | | */ |
| | | private Date expireTime; |
| | | /** |
| | | * 创建时间-领取时间 |
| | | */ |
| | | private Date createTime; |
| | | /** |
| | | * 状态 1正常 2冻结 3删除 |
| | | */ |
| | | private Integer status; |
| | | |
| | | /** |
| | | * 过期数量 |
| | | */ |
| | | private Integer expireCount; |
| | | |
| | | public Integer getExpireCount() { |
| | | return expireCount; |
| | | } |
| | | |
| | | public void setExpireCount(Integer expireCount) { |
| | | this.expireCount = expireCount; |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Integer getCouponId() { |
| | | return couponId; |
| | | } |
| | | |
| | | public void setCouponId(Integer couponId) { |
| | | this.couponId = couponId; |
| | | } |
| | | |
| | | public Integer getCouponTotal() { |
| | | return couponTotal; |
| | | } |
| | | |
| | | public void setCouponTotal(Integer couponTotal) { |
| | | this.couponTotal = couponTotal; |
| | | } |
| | | |
| | | public Integer getValidCount() { |
| | | return validCount; |
| | | } |
| | | |
| | | public void setValidCount(Integer validCount) { |
| | | this.validCount = validCount; |
| | | } |
| | | |
| | | public Date getExpireTime() { |
| | | return expireTime; |
| | | } |
| | | |
| | | public void setExpireTime(Date expireTime) { |
| | | this.expireTime = expireTime; |
| | | } |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "TUserToCoupon{" + |
| | | "id=" + id + |
| | | ", userId=" + userId + |
| | | ", couponId=" + couponId + |
| | | ", couponTotal=" + couponTotal + |
| | | ", validCount=" + validCount + |
| | | ", expireTime=" + expireTime + |
| | | ", createTime=" + createTime + |
| | | ", status=" + status + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import java.util.Date; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 优推 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-01 |
| | | */ |
| | | @TableName("t_you_tui") |
| | | public class TYouTui extends Model<TYouTui> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 名称 |
| | | */ |
| | | private String name; |
| | | /** |
| | | * 优推类型(1=次数,2=小时) |
| | | */ |
| | | private Integer type; |
| | | /** |
| | | * 优推值 |
| | | */ |
| | | private Integer number; |
| | | /** |
| | | * 所需积分 |
| | | */ |
| | | private Integer integral; |
| | | /** |
| | | * 有效天数 |
| | | */ |
| | | private Integer effectiveTime; |
| | | /** |
| | | * 服务内容 |
| | | */ |
| | | private String content; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | private Integer status; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | private Date createTime; |
| | | @ApiModelProperty(value = "优推距离") |
| | | private Integer distance; |
| | | |
| | | @TableField(exist = false) |
| | | private String serviceContent; |
| | | |
| | | public String getServiceContent() { |
| | | return serviceContent; |
| | | } |
| | | |
| | | public void setServiceContent(String serviceContent) { |
| | | this.serviceContent = serviceContent; |
| | | } |
| | | |
| | | public Integer getDistance() { |
| | | return distance; |
| | | } |
| | | |
| | | public void setDistance(Integer distance) { |
| | | this.distance = distance; |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public Integer getNumber() { |
| | | return number; |
| | | } |
| | | |
| | | public void setNumber(Integer number) { |
| | | this.number = number; |
| | | } |
| | | |
| | | public Integer getIntegral() { |
| | | return integral; |
| | | } |
| | | |
| | | public void setIntegral(Integer integral) { |
| | | this.integral = integral; |
| | | } |
| | | |
| | | public Integer getEffectiveTime() { |
| | | return effectiveTime; |
| | | } |
| | | |
| | | public void setEffectiveTime(Integer effectiveTime) { |
| | | this.effectiveTime = effectiveTime; |
| | | } |
| | | |
| | | public String getContent() { |
| | | return content; |
| | | } |
| | | |
| | | public void setContent(String content) { |
| | | this.content = content; |
| | | } |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "TYouTui{" + |
| | | "id=" + id + |
| | | ", name=" + name + |
| | | ", type=" + type + |
| | | ", number=" + number + |
| | | ", integral=" + integral + |
| | | ", effectiveTime=" + effectiveTime + |
| | | ", content=" + content + |
| | | ", status=" + status + |
| | | ", createTime=" + createTime + |
| | | "}"; |
| | | } |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TBranchOfficeResp; |
| | | import com.stylefeng.guns.modular.system.model.TBranchOffice; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.springframework.ui.Model; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface ITBranchOfficeService extends IService<TBranchOffice> { |
| | | |
| | | /** |
| | | * 跳转到详情 |
| | | * @param tBranchOfficeId |
| | | * @param model |
| | | */ |
| | | void tBranchOfficeDetail(Integer tBranchOfficeId, Model model); |
| | | |
| | | /** |
| | | * 分公司获取列表 |
| | | * @param branchOfficeName |
| | | * @param principal |
| | | * @param principalPhone |
| | | * @param operatingBusiness |
| | | * @param status |
| | | * @return |
| | | */ |
| | | List<TBranchOfficeResp> getPageList(String branchOfficeName, String principal, String principalPhone, Integer operatingBusiness, Integer status); |
| | | |
| | | /** |
| | | * 分公司查询优惠券,订单,司机等信息 |
| | | * @param tBranchOfficeRespList |
| | | */ |
| | | void queryOtherInfo(List<TBranchOfficeResp> tBranchOfficeRespList); |
| | | |
| | | /** |
| | | * 匹配代理商信息 |
| | | * @param tBranchOffice |
| | | * @return |
| | | */ |
| | | Object addOrUpdate(TBranchOffice tBranchOffice); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.model.TCancelOrder; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.springframework.ui.Model; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单取消记录 服务类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | public interface ITCancelOrderService extends IService<TCancelOrder> { |
| | | |
| | | |
| | | /** |
| | | * 查询取消订单列表 |
| | | * @param createTime |
| | | * @param code |
| | | * @param source |
| | | * @param userName |
| | | * @param userPhone |
| | | * @param state |
| | | * @param driverName |
| | | * @return |
| | | */ |
| | | List<TOrderResp> getCancelOrderList(String createTime, String code, Integer source, String userName, String userPhone, Integer state, String driverName); |
| | | |
| | | /** |
| | | * 跳转详情页面 |
| | | * @param cancelOrderId |
| | | * @param model |
| | | */ |
| | | void cancelOrderDetail(Integer cancelOrderId, Model model); |
| | | |
| | | /** |
| | | * |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | List<TOrderResp> userCancelOrderList(Integer userId,Integer orderId); |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TComplaintResp; |
| | | import com.stylefeng.guns.modular.system.model.TComplaint; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 投诉管理 服务类 |
| | | * 投诉 服务类 |
| | | * </p> |
| | | * |
| | | * @author 吕雪 |
| | | * @since 2020-06-09 |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | public interface ITComplaintService extends IService<TComplaint> { |
| | | |
| | | /** |
| | | * 根据条件查询投诉列表 |
| | | * 获取列表 |
| | | * @param createTime |
| | | * @param userName |
| | | * @param userPhone |
| | | * @param driverPhone |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<Map<String,Object>> getComplaintList(@Param("page") Page<Map<String, Object>> page, |
| | | @Param("roleType") Integer roleType, |
| | | @Param("nowUserId") Integer nowUserId, |
| | | @Param("beginTime") String beginTime, |
| | | @Param("endTime") String endTime, |
| | | @Param("userName") String userName, |
| | | @Param("userPhone") String userPhone, |
| | | @Param("driverPhone") String driverPhone, |
| | | @Param("isHandle") Integer isHandle); |
| | | List<TComplaintResp> getPageList(String createTime, String userName, String userPhone, String driverPhone, Integer state); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TEvaluateResp; |
| | | import com.stylefeng.guns.modular.system.model.TEvaluate; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.springframework.ui.Model; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单评价 服务类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | public interface ITEvaluateService extends IService<TEvaluate> { |
| | | |
| | | /** |
| | | * 查询分页列表 |
| | | * @param createTime 评价时间 |
| | | * @param userName 评论用户名 |
| | | * @param driverName 评论司机名 |
| | | * @param orderType 订单类型 |
| | | * @param score 评价分数 |
| | | * @return |
| | | */ |
| | | List<TEvaluateResp> selectPageList(String createTime, String userName, String driverName, Integer orderType, Integer score); |
| | | |
| | | /** |
| | | * 跳转详情页面 |
| | | * @param evaluateId |
| | | * @param model |
| | | */ |
| | | void evaluateDetail(Integer evaluateId, Model model); |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import org.springframework.ui.Model; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface ITOrderService extends IService<TOrder> { |
| | | |
| | | /** |
| | | * 获取订单列表 |
| | | * @param createTime |
| | | * @param code |
| | | * @param source |
| | | * @param userName |
| | | * @param userPhone |
| | | * @param state |
| | | * @param driverName |
| | | * @return |
| | | */ |
| | | List<TOrderResp> getOrderList(String createTime, String code, Integer source, String userName, String userPhone, Integer state, String driverName,Integer isException); |
| | | |
| | | /** |
| | | * 跳转详情页面 |
| | | * @param orderId |
| | | * @param model |
| | | */ |
| | | void orderDetail(Integer orderId, Model model); |
| | | |
| | | /** |
| | | * 跳转异常详情页面 |
| | | * @param orderId |
| | | * @param model |
| | | */ |
| | | void orderExceptionDetail(Integer orderId, Model model); |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordAgentResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordUserResp; |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-20 |
| | | * @since 2023-03-10 |
| | | */ |
| | | public interface ITRechargeRecordService extends IService<TRechargeRecord> { |
| | | |
| | | /** |
| | | * 用户充值记录查询 |
| | | * @param userName 用户名 |
| | | * @param userPhone 用户手机号 |
| | | * @param code 流水号 |
| | | * @param createTime 充值时间 |
| | | * @return List<TRechargeRecordUserResp> |
| | | */ |
| | | List<TRechargeRecordUserResp> userRecharge(String userName, String userPhone, String code, String createTime); |
| | | |
| | | /** |
| | | * |
| | | * @param driverName 司机姓名 |
| | | * @param driverPhone 司机手机号 |
| | | * @param createTime 充值时间 |
| | | * @return List<TRechargeRecordAgentResp> |
| | | */ |
| | | List<TRechargeRecordAgentResp> agentRechargeList(String driverName, String driverPhone, String createTime); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TSystemConfig; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * 系统配置 服务类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | public interface ITSystemConfigService extends IService<TSystemConfig> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * 用户优惠券中间表 服务类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-28 |
| | | */ |
| | | public interface ITUserToCouponService extends IService<TUserToCoupon> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TYouTui; |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * 优推 服务类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-01 |
| | | */ |
| | | public interface ITYouTuiService extends IService<TYouTui> { |
| | | |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | 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.dao.*; |
| | |
| | | Date endTime = DateUtil.getDate_str4(split[1]); |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | // 判断是否为代理商 |
| | | if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 3){ |
| | | wrapper.eq("id",ShiroKit.getUser().getObjectId()); |
| | | } |
| | | return wrapper; |
| | | } |
| | | |
| | |
| | | } |
| | | // 优惠券信息 |
| | | // 过滤代理商发放的优惠券 |
| | | List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>().eq("agentId", tAgent.getId())); |
| | | List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>()); |
| | | model.addAttribute("issuedCoupon",tCoupons.size()); |
| | | // 司机信息 |
| | | // 司机数 |
| | |
| | | |
| | | if(!CollectionUtils.isEmpty(tOrders)){ |
| | | // 订单总量 |
| | | List<TOrder> orderList = tOrders.stream().filter(order -> order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList()); |
| | | List<TOrder> orderList = tOrders.stream().filter(order -> tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList()); |
| | | tAgentResp.setOrderSum(orderList.size()); |
| | | // 过滤已完成和待评价订单,且支付金额在14元以上 |
| | | List<TOrder> orders = tOrders.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode())) |
| | | && 0 < order.getPayMoney().compareTo(new BigDecimal("14")) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList()); |
| | | && 0 < order.getPayMoney().compareTo(new BigDecimal("14")) && tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList()); |
| | | tAgentResp.setValidOrder(orders.size()); |
| | | // 过滤已使用优惠券 |
| | | List<TOrder> usedCoupon = tOrders.stream().filter(order -> (order.getState().equals(OrderStateEnum.FINISH.getCode()) || order.getState().equals(OrderStateEnum.WAIT_EVALUATED.getCode())) |
| | | && Objects.nonNull(order.getCouponId()) && order.getAgentId().equals(tAgent.getId())).collect(Collectors.toList()); |
| | | && Objects.nonNull(order.getCouponId()) && tAgent.getId().equals(order.getAgentId())).collect(Collectors.toList()); |
| | | tAgentResp.setUsedCoupon(usedCoupon.size()); |
| | | // 已使用优惠券金额求和,已使用优惠券id |
| | | List<Integer> usedCouponId = usedCoupon.stream().map(TOrder::getCouponId).collect(Collectors.toList()); |
| | |
| | | |
| | | if(!CollectionUtils.isEmpty(tCoupons)){ |
| | | // 过滤代理商发放的优惠券 |
| | | List<TCoupon> coupons = tCoupons.stream().filter(coupon -> coupon.getAgentId().equals(tAgent.getId())).collect(Collectors.toList()); |
| | | List<TCoupon> coupons = tCoupons.stream().filter(coupon -> tAgent.getId().equals(coupon.getAgentId())).collect(Collectors.toList()); |
| | | tAgentResp.setIssuedCoupon(coupons.size()); |
| | | } |
| | | |
| | |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.dao.TCouponMapper; |
| | | import com.stylefeng.guns.modular.system.dao.TOrderMapper; |
| | | import com.stylefeng.guns.modular.system.dao.TUserToCouponMapper; |
| | | import com.stylefeng.guns.modular.system.enums.CouponStatusEnum; |
| | | import com.stylefeng.guns.modular.system.enums.OrderStateEnum; |
| | | import com.stylefeng.guns.modular.system.model.TAppUser; |
| | | import com.stylefeng.guns.modular.system.dao.TAppUserMapper; |
| | | import com.stylefeng.guns.modular.system.model.TCoupon; |
| | | import com.stylefeng.guns.modular.system.model.TOrder; |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.stylefeng.guns.modular.system.service.ITAppUserService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private TCouponMapper tCouponMapper; |
| | | @Autowired |
| | | private TOrderMapper tOrderMapper; |
| | | @Autowired |
| | | private TUserToCouponMapper tUserToCouponMapper; |
| | | |
| | | @Override |
| | | public void detail(Integer tAppUserId, Model model) { |
| | |
| | | model.addAttribute("customerChannel",""); |
| | | |
| | | // 消费信息:优惠券数据 |
| | | List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>().eq("user_id", tAppUserId)); |
| | | List<TCoupon> notUsedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.NOT_USED.getCode())).collect(Collectors.toList()); |
| | | List<TCoupon> usedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.USED.getCode())).collect(Collectors.toList()); |
| | | List<TCoupon> expiredList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.EXPIRED.getCode())).collect(Collectors.toList()); |
| | | model.addAttribute("couponSum",tCoupons.size()); |
| | | model.addAttribute("notUsedCount",notUsedList.size()); |
| | | model.addAttribute("usedCount",usedList.size()); |
| | | model.addAttribute("expiredCount",expiredList.size()); |
| | | // List<TCoupon> tCoupons = tCouponMapper.selectList(new EntityWrapper<TCoupon>().eq("user_id", tAppUserId)); |
| | | // List<TCoupon> notUsedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.NOT_USED.getCode())).collect(Collectors.toList()); |
| | | // List<TCoupon> usedList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.USED.getCode())).collect(Collectors.toList()); |
| | | // List<TCoupon> expiredList = tCoupons.stream().filter(coupon -> coupon.getCouponStatus().equals(CouponStatusEnum.EXPIRED.getCode())).collect(Collectors.toList()); |
| | | // 查询当前用户优惠券数量 |
| | | List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().eq("userId", tAppUser.getId())); |
| | | |
| | | int couponTotal = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); |
| | | int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum(); |
| | | int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum(); |
| | | model.addAttribute("couponSum",couponTotal); |
| | | model.addAttribute("notUsedCount",validCount); |
| | | model.addAttribute("usedCount",couponTotal-validCount-expireCount); |
| | | model.addAttribute("expiredCount",expireCount); |
| | | // 查询订单数据 |
| | | List<TOrder> orders = tOrderMapper.selectList(new EntityWrapper<TOrder>().eq("userId", tAppUserId).orderBy(true,"createTime",false)); |
| | | if(!CollectionUtils.isEmpty(orders)){ |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TBranchOffice; |
| | | import com.stylefeng.guns.modular.system.dao.TBranchOfficeMapper; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TBranchOfficeResp; |
| | | import com.stylefeng.guns.modular.system.dao.*; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.ITBranchOfficeService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.stylefeng.guns.modular.system.service.ITRegionService; |
| | | import org.apache.poi.hdf.extractor.TC; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class TBranchOfficeServiceImpl extends ServiceImpl<TBranchOfficeMapper, TBranchOffice> implements ITBranchOfficeService { |
| | | |
| | | @Autowired |
| | | private TBranchOfficeMapper tBranchOfficeMapper; |
| | | |
| | | @Autowired |
| | | private TCouponMapper tCouponMapper; |
| | | @Autowired |
| | | private TUserToCouponMapper tUserToCouponMapper; |
| | | |
| | | @Autowired |
| | | private TOrderMapper tOrderMapper; |
| | | @Autowired |
| | | private TDriverMapper tDriverMapper; |
| | | @Autowired |
| | | private ITRegionService tRegionService; |
| | | @Autowired |
| | | private TAgentMapper tAgentMapper; |
| | | |
| | | @Override |
| | | public void tBranchOfficeDetail(Integer tBranchOfficeId, Model model) { |
| | | // 分公司信息 |
| | | TBranchOffice tBranchOffice = tBranchOfficeMapper.selectById(tBranchOfficeId); |
| | | model.addAttribute("principal",tBranchOffice.getPrincipal()); |
| | | model.addAttribute("createTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tBranchOffice.getCreateTime())); |
| | | model.addAttribute("email",tBranchOffice.getEmail()); |
| | | model.addAttribute("area",tBranchOffice.getProvinceName()+tBranchOffice.getCityName()+tBranchOffice.getDistrictName()); |
| | | |
| | | // 统计时间 |
| | | model.addAttribute("startToEndTime",new SimpleDateFormat("yyyy.MM.dd").format(tBranchOffice.getCreateTime())+"-"+ |
| | | new SimpleDateFormat("yyyy.MM.dd").format(new Date())); |
| | | |
| | | // 订单数据 |
| | | List<TOrder> orders = tOrderMapper.selectList(new EntityWrapper<TOrder>().eq("branchOfficeId", tBranchOfficeId)); |
| | | model.addAttribute("orderCount",orders.size());// 订单数量 |
| | | List<TOrder> effectiveOrder = orders.stream().filter(order -> order.getPayMoney().compareTo(new BigDecimal("15")) > 0).collect(Collectors.toList()); |
| | | model.addAttribute("effectiveOrderCount",effectiveOrder.size());// 有效订单 |
| | | |
| | | // 优惠券数据,,,通过订单找到该区域的下单人,找出优惠券信息 |
| | | List<Integer> userIds = orders.stream().map(TOrder::getUserId).collect(Collectors.toList()); |
| | | List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().in("userId", userIds)); |
| | | // 优惠券有效数量 |
| | | int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum(); |
| | | // 过期数量 |
| | | int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum(); |
| | | // 总数量 |
| | | int totalCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); |
| | | // 已使用优惠券;总数量减去有效数量 |
| | | model.addAttribute("usedCount",totalCount-validCount-expireCount); |
| | | |
| | | // 已发放优惠券 |
| | | model.addAttribute("totalCount",totalCount); |
| | | |
| | | BigDecimal orderPriceCount = new BigDecimal("0"); |
| | | |
| | | // 累计优惠券金额 |
| | | for (TUserToCoupon tUserToCoupon : tUserToCoupons) { |
| | | TCoupon tCoupon = tCouponMapper.selectById(tUserToCoupon.getCouponId()); |
| | | BigDecimal price = tCoupon.getCouponPreferentialAmount().multiply(new BigDecimal(tUserToCoupon.getCouponTotal())); |
| | | orderPriceCount = orderPriceCount.add(price); |
| | | } |
| | | model.addAttribute("orderPriceCount",orderPriceCount); |
| | | // 司机数量 |
| | | Integer driverCount = tDriverMapper.selectCount(new EntityWrapper<TDriver>().eq("branchOfficeId", tBranchOfficeId)); |
| | | model.addAttribute("driverCount",driverCount); |
| | | } |
| | | |
| | | @Override |
| | | public List<TBranchOfficeResp> getPageList(String branchOfficeName, String principal, String principalPhone, Integer operatingBusiness, Integer status) { |
| | | EntityWrapper<TBranchOffice> wrapper = new EntityWrapper<>(); |
| | | // 分公司名称 |
| | | if(StringUtils.hasLength(branchOfficeName)){ |
| | | wrapper.like("branchOfficeName",branchOfficeName); |
| | | } |
| | | // 负责人 |
| | | if(StringUtils.hasLength(principal)){ |
| | | wrapper.like("principal",principal); |
| | | } |
| | | // 负责人电话 |
| | | if(StringUtils.hasLength(principalPhone)){ |
| | | wrapper.like("principalPhone",principalPhone); |
| | | } |
| | | // 经营业务 |
| | | if(Objects.nonNull(operatingBusiness)){ |
| | | wrapper.eq("operatingBusiness",operatingBusiness); |
| | | } |
| | | // 状态 |
| | | if(Objects.nonNull(status)){ |
| | | wrapper.eq("status",status); |
| | | } |
| | | // 判断代理商 分公司 |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | | if(2 == roleType){ |
| | | // 分公司 |
| | | wrapper.eq("id",objectId); |
| | | } |
| | | if(3 == roleType){ |
| | | // 代理商 |
| | | wrapper.eq("agentId",objectId); |
| | | } |
| | | List<TBranchOffice> tBranchOffices = tBranchOfficeMapper.selectList(wrapper); |
| | | List<TBranchOfficeResp> tBranchOfficeRespList = new ArrayList<>(tBranchOffices.size()); |
| | | for (TBranchOffice tBranchOffice : tBranchOffices) { |
| | | TBranchOfficeResp tBranchOfficeResp = new TBranchOfficeResp(); |
| | | BeanUtils.copyProperties(tBranchOffice,tBranchOfficeResp); |
| | | tBranchOfficeRespList.add(tBranchOfficeResp); |
| | | } |
| | | return tBranchOfficeRespList; |
| | | } |
| | | |
| | | @Override |
| | | public void queryOtherInfo(List<TBranchOfficeResp> tBranchOfficeRespList) { |
| | | List<TOrder> orders = tOrderMapper.selectList(new EntityWrapper<TOrder>()); |
| | | |
| | | for (TBranchOfficeResp tBranchOfficeResp : tBranchOfficeRespList) { |
| | | |
| | | List<TOrder> orderList = orders.stream().filter(t -> tBranchOfficeResp.getId().equals(t.getBranchOfficeId())).collect(Collectors.toList()); |
| | | |
| | | if(!CollectionUtils.isEmpty(orderList)){ |
| | | |
| | | // 订单数据 |
| | | tBranchOfficeResp.setOrderCount(orderList.size());// 订单数量 |
| | | List<TOrder> effectiveOrder = orderList.stream().filter(order -> Objects.nonNull(order.getPayMoney()) && order.getPayMoney().compareTo(new BigDecimal("15")) > 0).collect(Collectors.toList()); |
| | | tBranchOfficeResp.setEffectiveOrderCount(effectiveOrder.size());// 有效订单 |
| | | |
| | | // 优惠券数据,,,通过订单找到该区域的下单人,找出优惠券信息 |
| | | List<Integer> userIds = orderList.stream().map(TOrder::getUserId).collect(Collectors.toList()); |
| | | List<TUserToCoupon> tUserToCoupons = tUserToCouponMapper.selectList(new EntityWrapper<TUserToCoupon>().in("userId", userIds)); |
| | | // 优惠券有效数量 |
| | | int validCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getValidCount).sum(); |
| | | // 过期数量 |
| | | int expireCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getExpireCount).sum(); |
| | | // 总数量 |
| | | int totalCount = tUserToCoupons.stream().mapToInt(TUserToCoupon::getCouponTotal).sum(); |
| | | // 已使用优惠券;总数量减去有效数量 |
| | | tBranchOfficeResp.setUsedCount(totalCount-validCount-expireCount); |
| | | |
| | | // 已发放优惠券 |
| | | tBranchOfficeResp.setTotalCount(totalCount); |
| | | |
| | | BigDecimal orderPriceCount = new BigDecimal("0"); |
| | | |
| | | // 累计优惠券金额 |
| | | for (TUserToCoupon tUserToCoupon : tUserToCoupons) { |
| | | TCoupon tCoupon = tCouponMapper.selectById(tUserToCoupon.getCouponId()); |
| | | BigDecimal price = tCoupon.getCouponPreferentialAmount().multiply(new BigDecimal(tUserToCoupon.getCouponTotal())); |
| | | orderPriceCount = orderPriceCount.add(price); |
| | | } |
| | | tBranchOfficeResp.setOrderPriceCount(orderPriceCount); |
| | | } |
| | | // 司机数量 |
| | | Integer driverCount = tDriverMapper.selectCount(new EntityWrapper<TDriver>().eq("branchOfficeId", tBranchOfficeResp.getId())); |
| | | tBranchOfficeResp.setDriverCount(driverCount); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Object addOrUpdate(TBranchOffice tBranchOffice) { |
| | | // 对省市区做处理 |
| | | String[] split = tBranchOffice.getAreaId().split("/"); |
| | | // 查询省市 |
| | | // 黑龙江省/大兴安岭地区 |
| | | // 702/852 |
| | | TRegion province = tRegionService.selectById(split[0]); |
| | | tBranchOffice.setProvinceName(province.getName()); |
| | | tBranchOffice.setProvinceCode(province.getCode()); |
| | | |
| | | TRegion city = tRegionService.selectById(split[1]); |
| | | if(Objects.isNull(city)){ |
| | | city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("name",split[1])); |
| | | } |
| | | tBranchOffice.setCityName(city.getName()); |
| | | tBranchOffice.setCityCode(city.getCode()); |
| | | |
| | | if(split.length>2){ |
| | | TRegion area = tRegionService.selectById(split[2]); |
| | | if(Objects.isNull(area)){ |
| | | area = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("name",split[2])); |
| | | } |
| | | tBranchOffice.setDistrictName(area.getName()); |
| | | tBranchOffice.setDistrictCode(area.getCode()); |
| | | }else { |
| | | tBranchOffice.setDistrictName(""); |
| | | tBranchOffice.setDistrictCode(""); |
| | | } |
| | | |
| | | // 通过省市查询代理商 |
| | | List<TAgent> tAgent = tAgentMapper.selectList(new EntityWrapper<TAgent>().eq("provinceCode", province.getCode()) |
| | | .eq("cityCode", city.getCode()) |
| | | .eq("status", 1) |
| | | .last("LIMIT 1")); |
| | | if(!CollectionUtils.isEmpty(tAgent)){ |
| | | tBranchOffice.setAgentId(tAgent.get(0).getId()); |
| | | }else { |
| | | return new SuccessTip(500, "该区域代理商被冻结或不存在"); |
| | | } |
| | | return null; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | import com.stylefeng.guns.modular.system.model.TCancelOrder; |
| | | import com.stylefeng.guns.modular.system.dao.TCancelOrderMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITCancelOrderService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.stylefeng.guns.modular.system.service.ITOrderService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单取消记录 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | @Service |
| | | public class TCancelOrderServiceImpl extends ServiceImpl<TCancelOrderMapper, TCancelOrder> implements ITCancelOrderService { |
| | | |
| | | @Autowired |
| | | private TCancelOrderMapper tCancelOrderMapper; |
| | | @Autowired |
| | | private ITOrderService tOrderService; |
| | | |
| | | @Override |
| | | public List<TOrderResp> getCancelOrderList(String createTime, String code, Integer source, String userName, String userPhone, Integer state, String driverName) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | | return tCancelOrderMapper.getCancelOrderList(startTime,endTime,code,source,userName,userPhone,state,driverName,roleType,objectId); |
| | | } |
| | | |
| | | @Override |
| | | public void cancelOrderDetail(Integer cancelOrderId, Model model) { |
| | | |
| | | // 查询取消订单记录 |
| | | TCancelOrder tCancelOrder = tCancelOrderMapper.selectById(cancelOrderId); |
| | | |
| | | model.addAttribute("cancelTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tCancelOrder.getCreateTime())); |
| | | model.addAttribute("cause",tCancelOrder.getCause()); |
| | | |
| | | tOrderService.orderDetail(tCancelOrder.getOrderId(),model); |
| | | } |
| | | |
| | | @Override |
| | | public List<TOrderResp> userCancelOrderList(Integer userId,Integer orderId) { |
| | | return tCancelOrderMapper.userCancelOrderList(userId,orderId); |
| | | } |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TComplaintResp; |
| | | import com.stylefeng.guns.modular.system.dao.TAppUserMapper; |
| | | import com.stylefeng.guns.modular.system.dao.TDriverMapper; |
| | | import com.stylefeng.guns.modular.system.model.TComplaint; |
| | | import com.stylefeng.guns.modular.system.dao.TComplaintMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITComplaintService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 投诉管理 服务实现类 |
| | | * 投诉 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author 吕雪 |
| | | * @since 2020-06-09 |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | @Service |
| | | public class TComplaintServiceImpl extends ServiceImpl<TComplaintMapper, TComplaint> implements ITComplaintService { |
| | | |
| | | @Autowired |
| | | private TComplaintMapper tComplaintMapper; |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getComplaintList(Page<Map<String, Object>> page, Integer roleType, Integer nowUserId, String beginTime, String endTime, String userName, String userPhone, String driverPhone, Integer isHandle) { |
| | | return this.baseMapper.getComplaintList(page, roleType, nowUserId, beginTime, endTime, userName, userPhone, driverPhone, isHandle); |
| | | public List<TComplaintResp> getPageList(String createTime, String userName, String userPhone, String driverPhone, Integer state) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | return tComplaintMapper.getPageList(startTime,endTime,userName,userPhone,driverPhone,state); |
| | | } |
| | | } |
| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.tips.SuccessTip; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TDriverResp; |
| | |
| | | wrapper.between("createTime",startTime,endTime); |
| | | } |
| | | wrapper.orderBy(true,"approvalStatus"); |
| | | // 判断是否为代理商或者分公司 |
| | | if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 2){ |
| | | // 分公司 |
| | | wrapper.eq("branchOfficeId",ShiroKit.getUser().getObjectId()); |
| | | } |
| | | if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 3){ |
| | | // 代理商 |
| | | wrapper.eq("agentId",ShiroKit.getUser().getObjectId()); |
| | | } |
| | | return wrapper; |
| | | } |
| | | |
| | |
| | | TDriverResp tDriverResp = new TDriverResp(); |
| | | BeanUtils.copyProperties(tDriver,tDriverResp); |
| | | |
| | | // 设置余额 |
| | | tDriverResp.setBalance(tDriver.getBackgroundBalance().add(tDriver.getBalance())); |
| | | if(Objects.nonNull(tDriver.getBackgroundBalance()) && Objects.nonNull(tDriver.getBalance())){ |
| | | // 设置余额 |
| | | tDriverResp.setBalance(tDriver.getBackgroundBalance().add(tDriver.getBalance())); |
| | | } |
| | | |
| | | // 所属代理商 |
| | | TAgent tAgent = tAgentMapper.selectById(tDriver.getAgentId()); |
| | |
| | | tDriverResp.setBranchName(tBranchOffice.getPrincipal()); |
| | | } |
| | | //累计订单量 |
| | | List<TOrder> cumulativeOrderCount = tOrders.stream().filter(order -> order.getDriverId().equals(tDriver.getId()) |
| | | 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()); |
| | | tDriverResp.setCumulativeOrderCount(cumulativeOrderCount.size()); |
| | | //当月订单量 |
| | | List<TOrder> monthOrderCount = tOrders.stream().filter(order -> order.getDriverId().equals(tDriver.getId()) |
| | | 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()) |
| | | && new SimpleDateFormat("yyyyMM").format(order.getCreateTime()).equals(monthDate)).collect(Collectors.toList()); |
| | | tDriverResp.setMonthOrderCount(monthOrderCount.size()); |
| | |
| | | wrapper.like("name",name); |
| | | } |
| | | wrapper.orderBy(true,"approvalStatus"); |
| | | // 判断是否为代理商或者分公司 |
| | | if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 2){ |
| | | // 分公司 |
| | | wrapper.eq("branchOfficeId",ShiroKit.getUser().getObjectId()); |
| | | } |
| | | if(Objects.requireNonNull(ShiroKit.getUser()).getRoleType() == 3){ |
| | | // 代理商 |
| | | wrapper.eq("agentId",ShiroKit.getUser().getObjectId()); |
| | | } |
| | | return wrapper; |
| | | } |
| | | |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TEvaluateResp; |
| | | import com.stylefeng.guns.modular.system.dao.*; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.modular.system.service.ITEvaluateService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | | * 订单评价 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-27 |
| | | */ |
| | | @Service |
| | | public class TEvaluateServiceImpl extends ServiceImpl<TEvaluateMapper, TEvaluate> implements ITEvaluateService { |
| | | |
| | | @Autowired |
| | | private TEvaluateMapper tEvaluateMapper; |
| | | @Autowired |
| | | private TAppUserMapper tAppUserMapper; |
| | | |
| | | @Autowired |
| | | private TOrderMapper tOrderMapper; |
| | | @Autowired |
| | | private TDriverMapper tDriverMapper; |
| | | @Autowired |
| | | private TBranchOfficeMapper tBranchOfficeMapper; |
| | | |
| | | @Override |
| | | public List<TEvaluateResp> selectPageList(String createTime, String userName, String driverName, Integer orderType, Integer score) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | List<TEvaluateResp> list = tEvaluateMapper.selectPageList(startTime, endTime, userName, driverName, orderType, score); |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | | if(3 == roleType){ |
| | | list = list.stream().filter(tEvaluate -> tEvaluate.getAgentId().equals(objectId)).collect(Collectors.toList()); |
| | | } |
| | | if(2 == roleType){ |
| | | list = list.stream().filter(tEvaluate -> tEvaluate.getBranchOfficeId().equals(objectId)).collect(Collectors.toList()); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public void evaluateDetail(Integer evaluateId, Model model) { |
| | | // 查询评价 |
| | | TEvaluate tEvaluate = tEvaluateMapper.selectById(evaluateId); |
| | | |
| | | model.addAttribute("score",tEvaluate.getScore()); |
| | | model.addAttribute("evaluate",tEvaluate.getEvaluate()); |
| | | |
| | | // 查询用户 |
| | | TAppUser tAppUser = tAppUserMapper.selectById(tEvaluate.getUserId()); |
| | | if(Objects.nonNull(tAppUser)){ |
| | | model.addAttribute("userName",tAppUser.getNickname()); |
| | | model.addAttribute("userPhone",tAppUser.getPhone()); |
| | | }else { |
| | | model.addAttribute("userName",""); |
| | | model.addAttribute("userPhone",""); |
| | | } |
| | | |
| | | // 查询订单 |
| | | TOrder tOrder = tOrderMapper.selectById(tEvaluate.getOrderId()); |
| | | |
| | | model.addAttribute("createTime",new SimpleDateFormat("yyyy-MM-dd HH:mm").format(tOrder.getCreateTime())); |
| | | model.addAttribute("code",tOrder.getCode()); |
| | | model.addAttribute("source",tOrder.getSource()); |
| | | model.addAttribute("startTime",new SimpleDateFormat("yyyy-MM-dd HH:mm").format(tOrder.getStartTime())); |
| | | model.addAttribute("boardingTime",new SimpleDateFormat("yyyy-MM-dd HH:mm").format(tOrder.getBoardingTime())); |
| | | model.addAttribute("getoffTime",new SimpleDateFormat("yyyy-MM-dd HH:mm").format(tOrder.getGetoffTime())); |
| | | model.addAttribute("startAddress",tOrder.getStartAddress()); |
| | | model.addAttribute("endAddress",tOrder.getEndAddress()); |
| | | |
| | | // 查询司机 |
| | | TDriver tDriver = tDriverMapper.selectById(tOrder.getDriverId()); |
| | | if(Objects.nonNull(tDriver)){ |
| | | model.addAttribute("driverName",tDriver.getName()); |
| | | // 查询分公司 |
| | | TBranchOffice tBranchOffice = tBranchOfficeMapper.selectById(tDriver.getBranchOfficeId()); |
| | | if(Objects.nonNull(tBranchOffice)){ |
| | | model.addAttribute("branchOfficeName",tBranchOffice.getPrincipal()); |
| | | }else { |
| | | model.addAttribute("branchOfficeName",""); |
| | | } |
| | | }else { |
| | | model.addAttribute("driverName",""); |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TOrderResp; |
| | | 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.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 org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> implements ITOrderService { |
| | | |
| | | @Autowired |
| | | private TOrderMapper tOrderMapper; |
| | | @Autowired |
| | | private TAppUserMapper tAppUserMapper; |
| | | @Autowired |
| | | private TDriverMapper tDriverMapper; |
| | | @Autowired |
| | | private TBranchOfficeMapper tBranchOfficeMapper; |
| | | |
| | | @Override |
| | | public List<TOrderResp> getOrderList(String createTime, String code, Integer source, String userName, String userPhone, Integer state, String driverName,Integer isException) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | | return tOrderMapper.getOrderList(startTime,endTime,code,source,userName,userPhone,state,driverName,isException,roleType,objectId); |
| | | } |
| | | |
| | | @Override |
| | | public void orderDetail(Integer orderId, Model model) { |
| | | // 订单信息 |
| | | TOrder tOrder = tOrderMapper.selectById(orderId); |
| | | model.addAttribute("createTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getCreateTime()));//下单时间 |
| | | model.addAttribute("code",tOrder.getCode());//订单编号 |
| | | model.addAttribute("source",tOrder.getSource());//订单来源 |
| | | model.addAttribute("startAddress",tOrder.getStartAddress());//起点 |
| | | model.addAttribute("endAddress",tOrder.getEndAddress());//终点 |
| | | model.addAttribute("startTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getStartTime()));//乘车时间 |
| | | model.addAttribute("boardingTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getBoardingTime()));//上车时间 |
| | | model.addAttribute("getoffTime",new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tOrder.getGetoffTime()));//下车时间 |
| | | model.addAttribute("startPrice",tOrder.getStartPrice());//起步价 |
| | | model.addAttribute("overDrivePrice",tOrder.getOverDrivePrice());//里程费 |
| | | model.addAttribute("waitTimePrice",tOrder.getWaitTimePrice());//等待费 |
| | | model.addAttribute("badWeatherPrice",tOrder.getBadWeatherPrice());//恶劣天气费用 |
| | | model.addAttribute("orderMoney",tOrder.getOrderMoney());//实际费用 |
| | | model.addAttribute("payMoney",tOrder.getPayMoney());//实际支付费用 |
| | | model.addAttribute("discountedPrice",tOrder.getDiscountedPrice());//优惠券抵扣费用 |
| | | model.addAttribute("payType",tOrder.getPayType());//支付方式 |
| | | model.addAttribute("discountAmount",tOrder.getDiscountAmount());//折扣金额 |
| | | model.addAttribute("userId",tOrder.getUserId());//用户id |
| | | |
| | | // 查询用户 |
| | | TAppUser tAppUser = tAppUserMapper.selectById(tOrder.getUserId()); |
| | | model.addAttribute("userName",tAppUser.getNickname()); |
| | | model.addAttribute("userPhone",tAppUser.getPhone()); |
| | | model.addAttribute("havDiscount",tAppUser.getHavDiscount()); |
| | | if(1 == tAppUser.getHavDiscount()){ |
| | | // 计算9折优惠金额 |
| | | BigDecimal multiply = tOrder.getOrderMoney().multiply(new BigDecimal("0.1")).setScale(2); |
| | | model.addAttribute("multiply",multiply); |
| | | } |
| | | |
| | | // 查询司机 |
| | | TDriver tDriver = tDriverMapper.selectById(tOrder.getDriverId()); |
| | | model.addAttribute("driverName",tDriver.getName()); |
| | | |
| | | // 查询司机所属分公司 |
| | | TBranchOffice tBranchOffice = tBranchOfficeMapper.selectById(tDriver.getBranchOfficeId()); |
| | | if(Objects.nonNull(tBranchOffice)){ |
| | | model.addAttribute("branchOfficeName",tBranchOffice.getPrincipal()); |
| | | }else { |
| | | model.addAttribute("branchOfficeName",""); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void orderExceptionDetail(Integer orderId, Model model) { |
| | | this.orderDetail(orderId,model); |
| | | model.addAttribute("orderId",orderId); |
| | | } |
| | | } |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordAgentResp; |
| | | import com.stylefeng.guns.modular.system.controller.resp.TRechargeRecordUserResp; |
| | | import com.stylefeng.guns.modular.system.model.TRechargeRecord; |
| | | import com.stylefeng.guns.modular.system.dao.TRechargeRecordMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITRechargeRecordService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-20 |
| | | * @since 2023-03-10 |
| | | */ |
| | | @Service |
| | | public class TRechargeRecordServiceImpl extends ServiceImpl<TRechargeRecordMapper, TRechargeRecord> implements ITRechargeRecordService { |
| | | |
| | | @Autowired |
| | | private TRechargeRecordMapper tRechargeRecordMapper; |
| | | |
| | | @Override |
| | | public List<TRechargeRecordUserResp> userRecharge(String userName, String userPhone, String code, String createTime) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | return tRechargeRecordMapper.userRecharge(startTime,endTime,userName,userPhone,code); |
| | | } |
| | | |
| | | @Override |
| | | public List<TRechargeRecordAgentResp> agentRechargeList(String driverName, String driverPhone, String createTime) { |
| | | String startTime = null; |
| | | String endTime = null; |
| | | // 开始,结束时间 |
| | | if(StringUtils.hasLength(createTime)){ |
| | | String[] split = createTime.split(" - "); |
| | | startTime = split[0]; |
| | | endTime = split[1]; |
| | | } |
| | | Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType(); |
| | | Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId(); |
| | | List<TRechargeRecordAgentResp> tRechargeRecordAgentRespList = tRechargeRecordMapper.agentRechargeList(startTime, endTime, driverName, driverPhone, roleType, objectId); |
| | | for (TRechargeRecordAgentResp tRechargeRecordAgentResp : tRechargeRecordAgentRespList) { |
| | | tRechargeRecordAgentResp.setArea(tRechargeRecordAgentResp.getProvinceName()+tRechargeRecordAgentResp.getCityName()); |
| | | } |
| | | return tRechargeRecordAgentRespList; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TSystemConfig; |
| | | import com.stylefeng.guns.modular.system.dao.TSystemConfigMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITSystemConfigService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * 系统配置 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-02 |
| | | */ |
| | | @Service |
| | | public class TSystemConfigServiceImpl extends ServiceImpl<TSystemConfigMapper, TSystemConfig> implements ITSystemConfigService { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TUserToCoupon; |
| | | import com.stylefeng.guns.modular.system.dao.TUserToCouponMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITUserToCouponService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * 用户优惠券中间表 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-02-28 |
| | | */ |
| | | @Service |
| | | public class TUserToCouponServiceImpl extends ServiceImpl<TUserToCouponMapper, TUserToCoupon> implements ITUserToCouponService { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.TYouTui; |
| | | import com.stylefeng.guns.modular.system.dao.TYouTuiMapper; |
| | | import com.stylefeng.guns.modular.system.service.ITYouTuiService; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * 优推 服务实现类 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2023-03-01 |
| | | */ |
| | | @Service |
| | | public class TYouTuiServiceImpl extends ServiceImpl<TYouTuiMapper, TYouTui> implements ITYouTuiService { |
| | | |
| | | } |
| | |
| | | * 乘客投诉信息 |
| | | * @param id |
| | | */ |
| | | public void ratedPassengerComplaint(Integer id){ |
| | | /*public void ratedPassengerComplaint(Integer id){ |
| | | TComplaint tComplaint = complaintService.selectById(id); |
| | | JSONObject jsonObject = new JSONObject(); |
| | | jsonObject.put("OrderId", "");//订单号 |
| | |
| | | map.put("ratedPassengerComplaint", jsonObject.toJSONString()); |
| | | String result = HttpRequestUtil.postRequest(PushURL.ministry_of_transport_data + "/ratedPassengerComplaint", map); |
| | | System.out.println("乘客投诉信息:" + result); |
| | | } |
| | | }*/ |
| | | |
| | | |
| | | /** |
| | |
| | | <div class="col-sm-6 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">省:</label> |
| | | <select class="input-group col-sm-2 " onclick="TAgent.areaProvince()" id="province" style="width: 200px;height: 33px" name="province"> |
| | | <option value="">请选择省</option> |
| | | <option value="">请选择</option> |
| | | @for(i in province){ |
| | | <option id="${i.id}" value="${i.name}">${i.name}</option> |
| | | <option id="${i.id}" value="${i.name}"${i.name == provinceName ? 'selected=selected' : ''}>${i.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-6 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">市:</label> |
| | | <select class="input-group col-sm-2" id="city" style="width: 200px;height: 33px" name="city"> |
| | | <option value="">请选择</option> |
| | | @for(city in cityList){ |
| | | <option id="${city.id}" value="${city.name}"${city.name == cityName ? 'selected=selected' : ''}>${city.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row" > |
| | | <div class="row" id="tAgentInfoForm"> |
| | | <div class="col-sm-12" style="text-align: center"> |
| | | <input hidden id="areaId" value="areaId"> |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: center"> |
| | |
| | | <input id="principal" name="principal" type="text" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | <!--<div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <span style="color:red">*</span> |
| | | <label class="col-sm-3 control-label">负责人姓名:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="principal" name="principal" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div>--> |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <div class="initialLevel col-sm-6 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <div class="initialLevel col-sm-6 control-label form-group" > |
| | | <label class="control-label" >邮箱:</label> |
| | | <input id="email" name="email" type="email" style="height: 30px" required> |
| | | <input id="email" name="email" type="email" style="height: 30px"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="initialLevel col-sm-6 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >代理区域:</label> |
| | | <input id="area" onclick="TAgent.area()" name="area" placeholder="请选择" style="height: 30px" readonly> |
| | | <input id="area" onclick="TAgent.area()" name="area" placeholder="请选择" style="height: 30px" readonly required> |
| | | </div> |
| | | </div> |
| | | |
| | | <!--<div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <span style="color:red">*</span> |
| | | <label class="col-sm-3 control-label">代理区域:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="area" onclick="TAgent.area()" name="area" type="text" placeholder="请选择"> |
| | | </div> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div>--> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <div class="initialLevel col-sm-6 control-label form-group" > |
| | | <label class="control-label" >开户银行:</label> |
| | | <input id="bankDeposit" name="bankDeposit" type="text" style="height: 30px" required> |
| | | <input id="bankDeposit" name="bankDeposit" type="text" style="height: 30px"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <div class="initialLevel col-sm-6 control-label form-group" > |
| | | <label class="control-label" >银行账户:</label> |
| | | <input id="bankAccount" name="bankAccount" type="number" style="height: 30px" required> |
| | | <input id="bankAccount" name="bankAccount" type="number" style="height: 30px"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <input hidden id="userIds" value="${userIds}"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="condition" name="优惠券名称" placeholder="请输入优惠券名称"/> |
| | | <#NameCon id="couponName" name="优惠券名称" placeholder="请输入优惠券名称"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tAppUser/tCoupon.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tAppUser/tAppUser_info.js"></script> |
| | | @} |
| | |
| | | <input hidden id="userIds" value="${userIds}"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="condition" name="优惠券名称" placeholder="请输入优惠券名称"/> |
| | | <#NameCon id="couponName" name="优惠券名称" placeholder="请输入优惠券名称"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tAppUser/tCoupon.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tAppUser/tAppUserException.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tAppUser/tAppUser_info.js"></script> |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="condition" name="名称" /> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="branchOfficeName" name="分公司名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="principal" name="负责人名称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="principalPhone" name="负责人电话" /> |
| | | </div> |
| | | <!--<div class="col-sm-2"> |
| | | <#NameCon id="condition" name="管理人名称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="condition" name="管理人电话" /> |
| | | </div>--> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="operatingBusiness" style="width: 180px;height: 33px" name="operatingBusiness"> |
| | | <option value="">选择经营业务</option> |
| | | <option value="1">司机代驾</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="status" style="width: 180px;height: 33px" name="status"> |
| | | <option value="">选择状态</option> |
| | | <option value="1">正常</option> |
| | | <option value="2">冻结</option> |
| | | <option value="3">已删除</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TBranchOffice.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TBranchOffice.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | @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"/> |
| | | @} |
| | | <#button name="冻结" icon="fa-edit" clickFun="TBranchOffice.stop()" space="true"/> |
| | | <#button name="启动" icon="fa-edit" clickFun="TBranchOffice.start()" space="true"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TBranchOfficeTableToolbar" role="group"> |
| | | <!--<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"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tBranchOffice/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TBranchOffice.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | </div>--> |
| | | <#table id="TBranchOfficeTable"/> |
| | | </div> |
| | | </div> |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12" style="height: 100px;"> |
| | | |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">省:</label> |
| | | <select class="input-group col-sm-2 " onclick="TBranchOffice.areaCity()" id="province" style="width: 200px;height: 33px" name="province"> |
| | | <option value="">请选择</option> |
| | | @for(i in provinceList){ |
| | | <option id="${i.id}" value="${i.name}"${i.name == provinceName ? 'selected=selected' : ''}>${i.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">市:</label> |
| | | <select class="input-group col-sm-2" onclick="TBranchOffice.areaDistrict()" id="city" style="width: 200px;height: 33px" name="city"> |
| | | <option value="">请选择</option> |
| | | @for(city in cityList){ |
| | | <option id="${city.id}" value="${city.name}"${city.name == cityName ? 'selected=selected' : ''}>${city.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-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){ |
| | | <option id="${district.id}" value="${district.name}"${district.name == districtName ? 'selected=selected' : ''}>${district.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="text-align:center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TBranchOfficeInfoDlg.close()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TBranchOffice.submitArea()"/> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice_info.js"></script> |
| | | <script type="text/javascript"> |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12" style="height: 100px;"> |
| | | <!--<input hidden id="provinceName" value="${provinceName}"> |
| | | <input hidden id="cityName" value="${cityName}"> |
| | | <input hidden id="districtName" value="${districtName}"> |
| | | <input hidden id="provinceId" value="${provinceId}"> |
| | | <input hidden id="cityId" value="${cityId}"> |
| | | <input hidden id="districtId" value="${districtId}">--> |
| | | |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">省:</label> |
| | | <select class="input-group col-sm-2 " onclick="TBranchOffice.areaCity()" id="province" style="width: 200px;height: 33px" name="province"> |
| | | <option value="">请选择</option> |
| | | @for(i in provinceList){ |
| | | <option id="${i.id}" value="${i.name}"${i.name == provinceName ? 'selected=selected' : ''}>${i.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">市:</label> |
| | | <select class="input-group col-sm-2" onclick="TBranchOffice.areaDistrict()" id="city" style="width: 200px;height: 33px" name="city"> |
| | | <option>请选择</option> |
| | | @for(city in cityList){ |
| | | <option id="${city.id}" value="${city.name}"${city.name == cityName ? 'selected=selected' : ''}>${city.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-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){ |
| | | <option id="${district.id}" value="${district.name}"${district.name == districtName ? 'selected=selected' : ''}>${district.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="text-align:center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TBranchOfficeInfoDlg.close()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TBranchOffice.submitArea()"/> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice_info.js"></script> |
| | | <script type="text/javascript"> |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <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-3 control-label form-group" > |
| | | <label class="control-label" >负责人姓名:</label> |
| | | <label>${principal}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">添加时间:</label> |
| | | <label>${createTime}</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>${email}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">抽成规则:</label> |
| | | <label>每笔订单满</label> |
| | | <label>${num2}</label> |
| | | <label>元/单,抽取</label> |
| | | <label>${num3}</label> |
| | | <label>元</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>${area}</label> |
| | | </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-3 control-label form-group" > |
| | | <label class="control-label" >统计时间:</label> |
| | | <span>${startToEndTime}</span> |
| | | </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>${orderCount}</label>单 |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">已使用优惠券:</label> |
| | | <label>${usedCount}</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>${effectiveOrderCount}</label>单 |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">累计优惠券金额:</label> |
| | | <label>${orderPriceCount}</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>${totalCount}</label>张 |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">司机数量:</label> |
| | | <label>${driverCount}</label>人 |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tAgent/tAgent.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>添加</h5> |
| | | </div> |
| | | <div class="ibox-content" id="branchOfficeInfoForm"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="areaId" value="areaId"> |
| | | |
| | | <div class="col-sm-12" style="cursor: pointer;text-align: right;"> |
| | | <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> |
| | | <input id="branchOfficeName" name="branchOfficeName" type="text" style="height: 30px" required="required"> |
| | | </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> |
| | | <input id="principal" name="principal" type="text" style="height: 30px" required="required"> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >联系电话:</label> |
| | | <input id="principalPhone" name="principalPhone" type="number" style="height: 30px" required="required"> |
| | | </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="email" type="email" style="height: 30px"> |
| | | </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> |
| | | <input id="area" onclick="TBranchOffice.areaAdd()" name="area" placeholder="请选择" style="height: 30px" readonly required> |
| | | </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="bankDeposit" type="text" style="height: 30px"> |
| | | </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="bankAccount" type="text" style="height: 30px"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TBranchOfficeInfoDlg.close()"/> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TBranchOfficeInfoDlg.addSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!--<div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice_info.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice.js"></script> |
| | | @} |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>添加</h5> |
| | | </div> |
| | | <div class="ibox-content" id="branchOfficeInfoForm"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${item.id}"/> |
| | | <input hidden id="areaId" value="${item.areaId}"> |
| | | |
| | | <div class="col-sm-12" style="cursor: pointer;text-align: right;"> |
| | | |
| | | <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> |
| | | <input id="branchOfficeName" value="${item.branchOfficeName}" name="branchOfficeName" type="text" style="height: 30px" required="required"> |
| | | </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> |
| | | <input id="principal" value="${item.principal}" name="principal" type="text" style="height: 30px" required="required"> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >联系电话:</label> |
| | | <input id="principalPhone" value="${item.principalPhone}" name="principalPhone" type="number" style="height: 30px" required="required"> |
| | | </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="email" value="${item.email}" type="email" style="height: 30px"> |
| | | </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> |
| | | <input id="area" value="${item.area}" onclick="TBranchOffice.areaUpdate()" name="area" placeholder="请选择" style="height: 30px" readonly required> |
| | | </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="bankDeposit" value="${item.bankDeposit}" type="text" style="height: 30px"> |
| | | </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="bankAccount" value="${item.bankAccount}" type="text" style="height: 30px"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TBranchOfficeInfoDlg.close()"/> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TBranchOfficeInfoDlg.editSubmit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!--<div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div>--> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice_info.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tBranchOffice/tBranchOffice.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCancelOrder.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TCancelOrderTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tCancelOrder/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TCancelOrder.openAddTCancelOrder()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tCancelOrder/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TCancelOrder.openTCancelOrderDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tCancelOrder/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TCancelOrder.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="TCancelOrderTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCancelOrder/tCancelOrder.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>详情</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <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-3 control-label form-group" > |
| | | <label class="control-label" >下单时间:</label> |
| | | <label>${createTime}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >订单编号:</label> |
| | | <label>${code}</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> |
| | | @if(source==1){ |
| | | <label>小程序</label> |
| | | @} |
| | | @if(source==2){ |
| | | <label>APP</label> |
| | | @} |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >乘车时间:</label> |
| | | <label>${startTime}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color: green" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">下单用户昵称:</label> |
| | | <label>${userName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">下单用户手机号:</label> |
| | | <label>${userPhone}</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>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">终点:</label> |
| | | <label>${endAddress}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color: red" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">接单司机:</label> |
| | | <label>${driverName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">所属机构:</label> |
| | | <label>${branchOfficeName}</label> |
| | | </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-3 control-label form-group" > |
| | | <label class="control-label" >上车地点:</label> |
| | | <label>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">上车时间:</label> |
| | | <label>${boardingTime}</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>${endAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >下车时间:</label> |
| | | <label>${getoffTime}</label> |
| | | </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> |
| | | |
| | | <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>${startPrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >等待费:</label> |
| | | <label>${waitTimePrice}</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>${overDrivePrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >恶劣天气:</label> |
| | | <label>${badWeatherPrice}</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>${orderMoney}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >实际支付费用:</label> |
| | | <label>${payMoney}</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>${discountedPrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >支付方式:</label> |
| | | @if(payType==1){ |
| | | <label>微信支付</label> |
| | | @} |
| | | @if(payType==2){ |
| | | <label>余额支付</label> |
| | | @} |
| | | @if(payType==3){ |
| | | <label>线下收款</label> |
| | | @} |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TCancelOrderInfoDlg.close()" /> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tCancelOrder.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tCancelOrder/tCancelOrder_info.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" underline="true"/> |
| | | <#input id="orderId" name="订单id" underline="true"/> |
| | | <#input id="userType" name="用户类型(1=用户,2=司机)" underline="true"/> |
| | | <#input id="userId" name="用户id"/> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="cause" name="转单原因" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" underline="true"/> |
| | | <#input id="createTime" name="添加时间" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCancelOrderInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCancelOrderInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCancelOrder/tCancelOrder_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" value="${item.id}" underline="true"/> |
| | | <#input id="orderId" name="订单id" value="${item.orderId}" underline="true"/> |
| | | <#input id="userType" name="用户类型(1=用户,2=司机)" value="${item.userType}" underline="true"/> |
| | | <#input id="userId" name="用户id" value="${item.userId}" /> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="cause" name="转单原因" value="${item.cause}" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" value="${item.status}" underline="true"/> |
| | | <#input id="createTime" name="添加时间" value="${item.createTime}" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCancelOrderInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCancelOrderInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tCancelOrder/tCancelOrder_info.js"></script> |
| | | @} |
| | |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>投诉列表管理</h5> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#TimeCon id="insertTime" name="投诉时间" isTime="false"/> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="投诉时间" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userName" name="投诉人昵称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="投诉人电话" /> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userPhone" name="投诉人手机号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="driverPhone" name="投诉司机电话" /> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverPhone" name="司机手机号" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#SelectCon id="isHandle" name="状态" > |
| | | <option value="">全部</option> |
| | | <option value="2">未处理</option> |
| | | <option value="1">已处理</option> |
| | | </#SelectCon> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="state" style="width: 180px;height: 33px" name="state"> |
| | | <option value="">选择状态</option> |
| | | <option value="1">待处理</option> |
| | | <option value="2">已处理</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TComplaint.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TComplaint.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="立即处理" icon="" clickFun="TComplaint.immediatelyAudit()"/> |
| | | @if(shiro.hasPermission("/tComplaint/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TComplaint.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TComplaintTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tComplaint/immediately")){ |
| | | <#button name="立即处理" icon="fa-edit" clickFun="TComplaint.immediately()"/> |
| | | <!--<div class="hidden-xs" id="TComplaintTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tComplaint/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TComplaint.openAddTComplaint()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tComplaint/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TComplaint.openTComplaintDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tComplaint/delete")){ |
| | | <#button name="删除记录" icon="fa-remove" clickFun="TComplaint.delete()" space="true"/> |
| | | <#button name="删除" icon="fa-remove" clickFun="TComplaint.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | </div>--> |
| | | <#table id="TComplaintTable"/> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tComplaint/tComplaint.js"></script> |
| | | <script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#insertTime' |
| | | ,range: true |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="tComplaintId" value="${tComplaintId}"> |
| | | <div class="col-lg-3"> |
| | | 备注:<textarea id="notes" placeholder="请输入备注" style="width: 681px; height: 249px;"></textarea> |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="margin-left:300px"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TComplaintInfoDlg.close()" /> |
| | | <#button name="提交" icon="fa-plus" clickFun="TComplaint.audit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tComplaint/tComplaint.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tComplaint/tComplaint_info.js"></script> |
| | | @} |
| | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" underline="true"/> |
| | | <#input id="userId" name="用户Id" underline="true"/> |
| | | <#input id="reason" name="投诉原因" underline="true"/> |
| | | <#input id="driverId" name="被投诉人Id" underline="true"/> |
| | | <#input id="description" name="描述"/> |
| | | <#input id="userId" name="用户id" underline="true"/> |
| | | <#input id="driverId" name="投诉司机id" underline="true"/> |
| | | <#input id="reason" name="投诉原因"/> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="isHandle" name="是否处理(0:未处理,1:已处理)" underline="true"/> |
| | | <#input id="insertTime" name="投诉时间" underline="true"/> |
| | | <#input id="handleResult" name="处理结果" underline="true"/> |
| | | <#input id="handleUserId" name="处理人id" underline="true"/> |
| | | <#input id="notes" name="注释" underline="true"/> |
| | | <#input id="state" name="处理状态(1=待处理,2=已处理)" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" underline="true"/> |
| | | <#input id="createTime" name="添加时间" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" value="${item.id}" underline="true"/> |
| | | <#input id="userId" name="用户Id" value="${item.userId}" underline="true"/> |
| | | <#input id="reason" name="投诉原因" value="${item.reason}" underline="true"/> |
| | | <#input id="driverId" name="被投诉人Id" value="${item.driverId}" underline="true"/> |
| | | <#input id="description" name="描述" value="${item.description}" /> |
| | | <#input id="userId" name="用户id" value="${item.userId}" underline="true"/> |
| | | <#input id="driverId" name="投诉司机id" value="${item.driverId}" underline="true"/> |
| | | <#input id="reason" name="投诉原因" value="${item.reason}" /> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="isHandle" name="是否处理(0:未处理,1:已处理)" value="${item.isHandle}" underline="true"/> |
| | | <#input id="insertTime" name="投诉时间" value="${item.insertTime}" underline="true"/> |
| | | <#input id="handleResult" name="处理结果" value="${item.handleResult}" underline="true"/> |
| | | <#input id="handleUserId" name="处理人id" value="${item.handleUserId}" /> |
| | | <#input id="notes" name="注释" value="${item.notes}" underline="true"/> |
| | | <#input id="state" name="处理状态(1=待处理,2=已处理)" value="${item.state}" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" value="${item.status}" underline="true"/> |
| | | <#input id="createTime" name="添加时间" value="${item.createTime}" /> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <option value="1">通用券</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCoupon.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCoupon.resetSearch()" space="true"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TCouponTableToolbar" role="group"> |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">优惠券名称:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="couponName" name="couponName" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">优惠券类型:</label> |
| | | <select class="input-group col-sm-6" id="couponType" style="width: 180px;height: 33px" name="couponType"> |
| | | <option value="1">活动券</option> |
| | | <option value="2">优惠券</option> |
| | | </select> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">服务类类型:</label> |
| | | <select class="input-group col-sm-6" id="couponServiceType" style="width: 180px;height: 33px" name="couponType"> |
| | | <option value="1">通用型</option> |
| | | </select> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">优惠券数量:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="couponCount" name="couponCount" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">条件金额:订单满</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="couponConditionalAmount" name="couponConditionalAmount" type="text"> |
| | | </div> |
| | | <label class="col-sm-2 control-label">可使用</label> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">优惠金额:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="couponPreferentialAmount" name="couponPreferentialAmount" type="text"> |
| | | </div> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">有效期:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="couponValidity" name="couponValidity" type="text"> |
| | | </div> |
| | | <label class="col-sm-1 control-label">天</label> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">赠送数量:</label> |
| | | <div class="col-sm-6"> |
| | | <input class="form-control" id="couponSendQuantity" name="couponSendQuantity" type="text"> |
| | | </div> |
| | | <label class="col-sm-1 control-label">张</label> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>添加</h5> |
| | | </div> |
| | | <div class="ibox-content" id="couponInfoForm"> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCouponInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCouponInfoDlg.close()"/> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12" style="cursor: pointer;text-align: right;"> |
| | | |
| | | <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> |
| | | <input id="couponName" name="couponName" type="text" style="height: 30px" required="required"> |
| | | </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> |
| | | <select id="couponType" name="couponType" onclick="TCoupon.changeCouponType()" style="height: 30px" required> |
| | | <option value="">请选择优惠券类型</option> |
| | | <option value="1">活动券</option> |
| | | <option value="2">新人券</option> |
| | | </select> |
| | | </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> |
| | | <select id="couponServiceType" name="couponServiceType" style="height: 30px" 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-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label">优惠券限制数量:</label> |
| | | <input id="couponCount" name="couponCount" type="number" style="height: 30px" required> |
| | | </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> |
| | | <input id="couponConditionalAmount" name="couponConditionalAmount" type="number" 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> |
| | | <label class="control-label">优惠金额:</label> |
| | | <input id="couponPreferentialAmount" name="couponPreferentialAmount" type="number" style="height: 30px" required> |
| | | </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> |
| | | <input id="couponValidity" name="couponValidity" type="number" 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> |
| | | <label class="control-label">优惠券总量:</label> |
| | | <input id="remainingQuantity" name="remainingQuantity" type="number" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" hidden id="changeCouponSendQuantity" > |
| | | <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" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" style="text-align: left" > |
| | | <label>张</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCouponInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCouponInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <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"> |
| | | </script> |
| | | @} |
| | |
| | | <#button name="搜索" icon="fa-search" clickFun="TDriver.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TDriver.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TDriver.auditPage()" id="audit"> |
| | | <i class="fa "></i> 立即审核 |
| | | </button> |
| | |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">省:</label> |
| | | <select class="input-group col-sm-2 " onclick="TDriver.areaCity()" id="province" style="width: 200px;height: 33px" name="province"> |
| | | <option value="">请选择省</option> |
| | | <option value="">请选择</option> |
| | | @for(i in provinceList){ |
| | | <option id="${i.id}" value="${i.name}"}>${i.name}</option> |
| | | <option id="${i.id}" value="${i.name}"${i.name == provinceName ? 'selected=selected' : ''}>${i.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">市:</label> |
| | | <select class="input-group col-sm-2" onclick="TDriver.areaDistrict()" id="city" style="width: 200px;height: 33px" name="city"> |
| | | <option>请选择市</option> |
| | | <option>请选择</option> |
| | | @for(city in cityList){ |
| | | <option id="${city.id}" value="${city.name}"${city.name == cityName ? 'selected=selected' : ''}>${city.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-4 control-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> |
| | | <option>请选择</option> |
| | | @for(district in districtList){ |
| | | <option id="${district.id}" value="${district.name}"${district.name == districtName ? 'selected=selected' : ''}>${district.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12" style="height: 100px;"> |
| | | <input hidden id="provinceName" value="${provinceName}"> |
| | | <!--<input hidden id="provinceName" value="${provinceName}"> |
| | | <input hidden id="cityName" value="${cityName}"> |
| | | <input hidden id="districtName" value="${districtName}"> |
| | | <input hidden id="provinceId" value="${provinceId}"> |
| | | <input hidden id="cityId" value="${cityId}"> |
| | | <input hidden id="districtId" value="${districtId}"> |
| | | <input hidden id="districtId" value="${districtId}">--> |
| | | |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">省:</label> |
| | | <select class="input-group col-sm-2 " onclick="TDriver.areaCity()" id="province" style="width: 200px;height: 33px" name="province"> |
| | | <option value="">请选择省</option> |
| | | <option value="">请选择</option> |
| | | @for(i in provinceList){ |
| | | <option id="${i.id}" value="${i.name}"${i.name == provinceName ? 'selected=selected' : ''}>${i.name}</option> |
| | | @} |
| | |
| | | <div class="col-sm-4 control-label"> |
| | | <label class="col-sm-1" style="width: 20px;">市:</label> |
| | | <select class="input-group col-sm-2" onclick="TDriver.areaDistrict()" id="city" style="width: 200px;height: 33px" name="city"> |
| | | <option>请选择市</option> |
| | | <option>请选择</option> |
| | | @for(city in cityList){ |
| | | <option id="${city.id}" value="${city.name}"${city.name == cityName ? 'selected=selected' : ''}>${city.name}</option> |
| | | @} |
| | |
| | | <div class="col-sm-4 control-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> |
| | | <option>请选择</option> |
| | | @for(district in districtList){ |
| | | <option id="${district.id}" value="${district.name}"${district.name == districtName ? 'selected=selected' : ''}>${district.name}</option> |
| | | @} |
| | |
| | | <div class="ibox-title"> |
| | | <h5>添加</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="ibox-content" id="driverInfoForm"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="areaId"> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >姓名:</label> |
| | | <input id="name" type="text" style="height: 30px" required> |
| | | <input id="name" name="name" type="text" style="height: 30px" required="required"> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >手机号:</label> |
| | | <input id="phone" type="number" style="height: 30px" required> |
| | | <input id="phone" name="phone" type="number" style="height: 30px" required="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="emergencyContact" type="text" style="height: 30px" required> |
| | | <input id="emergencyContact" name="emergencyContact" type="text" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >紧急联系人电话:</label> |
| | | <input id="emergencyPhone" type="number" style="height: 30px" required> |
| | | <input id="emergencyPhone" name="emergencyPhone" type="number" 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="idcard" type="text" style="height: 30px" required> |
| | | <input id="idcard" name="idcard" type="text" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="ibox-title"> |
| | | <h5>添加</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="ibox-content" id="driverInfoForm"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${item.id}"/> |
| | |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >姓名:</label> |
| | | <input id="name" value="${item.name}" type="text" style="height: 30px" required> |
| | | <input id="name" name="name" value="${item.name}" type="text" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >手机号:</label> |
| | | <input id="phone" value="${item.phone}" type="number" style="height: 30px" required> |
| | | <input id="phone" name="phone" value="${item.phone}" type="number" 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="emergencyContact" value="${item.emergencyContact}" type="text" style="height: 30px" required> |
| | | <input id="emergencyContact" name="emergencyContact" value="${item.emergencyContact}" type="text" style="height: 30px" required> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span style="color:red">*</span> |
| | | <label class="control-label" >紧急联系人电话:</label> |
| | | <input id="emergencyPhone" value="${item.emergencyPhone}" type="number" style="height: 30px" required> |
| | | <input id="emergencyPhone" name="emergencyPhone" value="${item.emergencyPhone}" type="number" 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="idcard" value="${item.idcard}" type="text" style="height: 30px" required> |
| | | <input id="idcard" name="idcard" value="${item.idcard}" type="text" style="height: 30px" required> |
| | | </div> |
| | | </div> |
| | | |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="评论时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userName" name="用户名" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverName" name="司机名" /> |
| | | </div> |
| | | <!--<div class="col-sm-1"> |
| | | <select class="input-group" id="orderType" style="width: 120px;height: 33px" name="orderType"> |
| | | <option value="">选择订单类型</option> |
| | | </select> |
| | | </div>--> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="score" style="width: 120px;height: 33px" name="score"> |
| | | <option value="">选择分数</option> |
| | | <option value="1">非常差</option> |
| | | <option value="2">差</option> |
| | | <option value="3">一般</option> |
| | | <option value="4">满意</option> |
| | | <option value="5">非常满意</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TEvaluate.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TEvaluate.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TEvaluate.export()" id="export"> |
| | | <i class="fa "></i> 导出 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TEvaluateTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tEvaluate/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TEvaluate.openAddTEvaluate()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tEvaluate/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TEvaluate.openTEvaluateDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tEvaluate/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TEvaluate.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="TEvaluateTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tEvaluate/tEvaluate.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>详情</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <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-3 control-label form-group" > |
| | | <label class="control-label" >下单时间:</label> |
| | | <label>${createTime}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >订单编号:</label> |
| | | <label>${code}</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>${source}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >乘车时间:</label> |
| | | <label>${startTime}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color: green" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">下单用户昵称:</label> |
| | | <label>${userName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">下单用户手机号:</label> |
| | | <label>${userPhone}</label> |
| | | </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-3 control-label form-group" > |
| | | <label class="control-label" >起点:</label> |
| | | <label>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">终点:</label> |
| | | <label>${endAddress}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color: red" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >接单司机:</label> |
| | | <label>${driverName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >所属机构:</label> |
| | | <label>${branchOfficeName}</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>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">上车时间:</label> |
| | | <label>${boardingTime}</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>${endAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">下车时间:</label> |
| | | <label>${getoffTime}</label> |
| | | </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> |
| | | @if(score==1){ |
| | | <label>非常差</label> |
| | | @} |
| | | @if(score==2){ |
| | | <label>差</label> |
| | | @} |
| | | @if(score==3){ |
| | | <label>一般</label> |
| | | @} |
| | | @if(score==4){ |
| | | <label>满意</label> |
| | | @} |
| | | @if(score==5){ |
| | | <label>非常满意</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="evaluate" style="width: 681px; height: 249px;" readonly>${evaluate}</textarea> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TEvaluateInfoDlg.close()" /> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tEvaluate/tEvaluate.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tEvaluate/tEvaluate_info.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" underline="true"/> |
| | | <#input id="orderId" name="订单id" underline="true"/> |
| | | <#input id="userId" name="用户id" underline="true"/> |
| | | <#input id="score" name="评分"/> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="evaluate" name="评价内容" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" underline="true"/> |
| | | <#input id="createTime" name="添加时间" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TEvaluateInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TEvaluateInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tEvaluate/tEvaluate_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" value="${item.id}" underline="true"/> |
| | | <#input id="orderId" name="订单id" value="${item.orderId}" underline="true"/> |
| | | <#input id="userId" name="用户id" value="${item.userId}" underline="true"/> |
| | | <#input id="score" name="评分" value="${item.score}" /> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="evaluate" name="评价内容" value="${item.evaluate}" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" value="${item.status}" underline="true"/> |
| | | <#input id="createTime" name="添加时间" value="${item.createTime}" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TEvaluateInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TEvaluateInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tEvaluate/tEvaluate_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="取消订单时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="code" name="订单编号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="source" style="width: 120px;height: 33px" name="source"> |
| | | <option value="">请选择订单来源</option> |
| | | <option value="1">小程序</option> |
| | | <option value="2">司机创建</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="state" style="width: 120px;height: 33px" name="state"> |
| | | <option value="">请选择订单状态</option> |
| | | <option value="101">待接单</option> |
| | | <option value="102">已接单</option> |
| | | <option value="103">前往预约点</option> |
| | | <option value="104">到达预约点</option> |
| | | <option value="105">开始服务</option> |
| | | <option value="106">到达目的地</option> |
| | | <option value="107">待支付</option> |
| | | <option value="108">待评价</option> |
| | | <option value="109">已完成</option> |
| | | <option value="201">转单中</option> |
| | | <option value="301">已取消</option> |
| | | <option value="401">等待中</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverName" name="司机姓名" /> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCancelOrder.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TCancelOrder.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TCancelOrder.export()" id="export"> |
| | | <i class="fa "></i> 导出 |
| | | </button> |
| | | </div> |
| | | <div class="hidden-xs" id="TCancelOrderTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tCancelOrder/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TCancelOrder.openAddTCancelOrder()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tCancelOrder/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TCancelOrder.openTCancelOrderDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tCancelOrder/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TCancelOrder.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="TCancelOrderTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tCancelOrder.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
| | |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="condition" name="名称" /> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="订单时间" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrder.search()"/> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="code" name="订单编号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="source" style="width: 120px;height: 33px" name="source"> |
| | | <option value="">请选择订单来源</option> |
| | | <option value="1">小程序</option> |
| | | <option value="2">司机创建</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="state" style="width: 120px;height: 33px" name="state"> |
| | | <option value="">请选择订单状态</option> |
| | | <option value="101">待接单</option> |
| | | <option value="102">已接单</option> |
| | | <option value="103">前往预约点</option> |
| | | <option value="104">到达预约点</option> |
| | | <option value="105">开始服务</option> |
| | | <option value="106">到达目的地</option> |
| | | <option value="107">待支付</option> |
| | | <option value="108">待评价</option> |
| | | <option value="109">已完成</option> |
| | | <option value="201">转单中</option> |
| | | <option value="301">已取消</option> |
| | | <option value="401">等待中</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverName" name="司机姓名" /> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrder.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TOrder.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TOrder.cancelOrder()" id="cancelOrder"> |
| | | <i class="fa "></i> 取消订单 |
| | | </button> |
| | | <button type="button" class="btn btn-primary " onclick="TOrder.tOrderException()" id="orderException"> |
| | | <i class="fa "></i> 异常 |
| | | </button> |
| | | <button type="button" class="btn btn-primary " onclick="TOrder.export()" id="export"> |
| | | <i class="fa "></i> 导出 |
| | | </button> |
| | | </div> |
| | | <div class="hidden-xs" id="TOrderTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tOrder/add")){ |
| | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrderException.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>详情</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <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-3 control-label form-group" > |
| | | <label class="control-label" >下单时间:</label> |
| | | <label>${createTime}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >订单编号:</label> |
| | | <label>${code}</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> |
| | | @if(source==1){ |
| | | <label>小程序</label> |
| | | @} |
| | | @if(source==2){ |
| | | <label>APP</label> |
| | | @} |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >乘车时间:</label> |
| | | <label>${startTime}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color:green;" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">下单用户昵称:</label> |
| | | <label>${userName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">下单用户手机号:</label> |
| | | <label>${userPhone}</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>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">终点:</label> |
| | | <label>${endAddress}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color:red;" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">接单司机:</label> |
| | | <label>${driverName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">所属机构:</label> |
| | | <label>${branchOfficeName}</label> |
| | | </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-3 control-label form-group" > |
| | | <label class="control-label" >上车地点:</label> |
| | | <label>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">上车时间:</label> |
| | | <label>${boardingTime}</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>${endAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >下车时间:</label> |
| | | <label>${getoffTime}</label> |
| | | </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>${startPrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >等待费:</label> |
| | | <label>${waitTimePrice}</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>${overDrivePrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >恶劣天气:</label> |
| | | <label>${badWeatherPrice}</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>${orderMoney}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >实际支付费用:</label> |
| | | <label>${payMoney}</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>${discountedPrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >支付方式:</label> |
| | | @if(payType==1){ |
| | | <label>微信支付</label> |
| | | @} |
| | | @if(payType==2){ |
| | | <label>余额支付</label> |
| | | @} |
| | | @if(payType==3){ |
| | | <label>线下收款</label> |
| | | @} |
| | | </div> |
| | | </div> |
| | | |
| | | @if(havDiscount == 1){ |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label" >9折优惠:</label> |
| | | <label>${multiply}</label> |
| | | <label>元</label> |
| | | </div> |
| | | </div> |
| | | @} |
| | | |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TOrderInfoDlg.close()" /> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>异常</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="订单时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="code" name="订单编号" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="source" style="width: 120px;height: 33px" name="source"> |
| | | <option value="">请选择订单来源</option> |
| | | <option value="1">小程序</option> |
| | | <option value="2">司机创建</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userName" name="下单用户昵称" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userPhone" name="下单用户手机" /> |
| | | </div> |
| | | <div class="col-sm-1"> |
| | | <select class="input-group" id="state" style="width: 120px;height: 33px" name="state"> |
| | | <option value="">请选择订单状态</option> |
| | | <option value="101">待接单</option> |
| | | <option value="102">已接单</option> |
| | | <option value="103">前往预约点</option> |
| | | <option value="104">到达预约点</option> |
| | | <option value="105">开始服务</option> |
| | | <option value="106">到达目的地</option> |
| | | <option value="107">待支付</option> |
| | | <option value="108">待评价</option> |
| | | <option value="109">已完成</option> |
| | | <option value="201">转单中</option> |
| | | <option value="301">已取消</option> |
| | | <option value="401">等待中</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverName" name="司机姓名" /> |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TOrderException.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TOrderException.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TOrderException.cancelOrder()" id="cancelOrder"> |
| | | <i class="fa "></i> 取消订单 |
| | | </button> |
| | | <button type="button" class="btn btn-primary " onclick="TOrderException.export()" id="export"> |
| | | <i class="fa "></i> 导出 |
| | | </button> |
| | | </div> |
| | | <#table id="TOrderExceptionTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrderException.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>详情</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <input hidden id="userId" value="${userId}"> |
| | | <input hidden id="orderId" value="${orderId}"> |
| | | |
| | | <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-3 control-label form-group" > |
| | | <label class="control-label" >下单时间:</label> |
| | | <label>${createTime}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >订单编号:</label> |
| | | <label>${code}</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> |
| | | @if(source==1){ |
| | | <label>小程序</label> |
| | | @} |
| | | @if(source==2){ |
| | | <label>APP</label> |
| | | @} |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >乘车时间:</label> |
| | | <label>${startTime}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color: green" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">下单用户昵称:</label> |
| | | <label>${userName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">下单用户手机号:</label> |
| | | <label>${userPhone}</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>${startAddress}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">终点:</label> |
| | | <label>${endAddress}</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="color: red" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label">接单司机:</label> |
| | | <label>${driverName}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <label class="control-label">所属机构:</label> |
| | | <label>${branchOfficeName}</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>${startAddress}</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>${endAddress}</label> |
| | | </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>${startPrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >等待费:</label> |
| | | <label>${waitTimePrice}</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>${overDrivePrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >恶劣天气:</label> |
| | | <label>${badWeatherPrice}</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>${orderMoney}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >实际支付费用:</label> |
| | | <label>${payMoney}</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>${discountedPrice}</label> |
| | | </div> |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >支付方式:</label> |
| | | @if(payType==1){ |
| | | <label>微信支付</label> |
| | | @} |
| | | @if(payType==2){ |
| | | <label>余额支付</label> |
| | | @} |
| | | @if(payType==3){ |
| | | <label>线下收款</label> |
| | | @} |
| | | </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/> |
| | | |
| | | <#table id="TOrderExceptionDetailCancelOrderTable"/> |
| | | |
| | | <div class="hidden-xs" id="TDriverTableToolbar" role="group" style="text-align: center"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TOrderInfoDlg.closeException()" /> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrderException.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrderExceptionDetailCancelOrder.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script> |
| | | <script type="text/javascript"> |
| | | $(function (){ |
| | | var queryData = {}; |
| | | queryData['userId'] = $("#userId").val(); |
| | | queryData['orderId'] = $("#orderId").val(); |
| | | TOrderExceptionDetailCancelOrder.table.refresh({query: queryData}); |
| | | }) |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="id" value="${id}"> |
| | | <input hidden id="status" value="${status}"> |
| | | <div class="col-lg-3"> |
| | | @if(status==1){ |
| | | 冻结理由:<textarea id="stopRemark" placeholder="请输入冻结理由" style="width: 681px; height: 249px;"></textarea> |
| | | @} |
| | | @if(status==2){ |
| | | 启用理由:<textarea id="startRemark" placeholder="请输入启用理由" style="width: 681px; height: 249px;"></textarea> |
| | | @} |
| | | </div> |
| | | <div class="hidden-xs" id="TAppUserTableToolbar" role="group" style="margin-left:300px"> |
| | | <#button name="取消" icon="fa-plus" clickFun="TOrderInfoDlg.closeException()" /> |
| | | <#button name="确定" icon="fa-plus" clickFun="TOrderException.updateStatus()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrderException.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tOrder/tOrder_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>代理商充值记录</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverName" name="司机姓名" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="driverPhone" name="司机手机号" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="充值时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRechargeRecordAgent.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TRechargeRecordAgent.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TRechargeRecordAgent.export()" id="export"> |
| | | <i class="fa "></i> 导出 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | <!--<div class="hidden-xs" id="TRechargeRecordTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tRechargeRecord/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TRechargeRecord.openAddTRechargeRecord()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tRechargeRecord/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TRechargeRecord.openTRechargeRecordDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tRechargeRecord/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TRechargeRecord.delete()" space="true"/> |
| | | @} |
| | | </div>--> |
| | | <#table id="TRechargeRecordAgentTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tRechargeRecord/tRechargeRecordAgent.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>用户充值记录</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userName" name="用户姓名" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="userPhone" name="用户手机号" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#NameCon id="code" name="流水ID" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#TimeCon id="createTime" name="充值时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TRechargeRecordUser.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TRechargeRecordUser.resetSearch()" space="true"/> |
| | | </div> |
| | | <div class="col-sm-12"> |
| | | <button type="button" class="btn btn-primary " onclick="TRechargeRecordUser.export()" id="export"> |
| | | <i class="fa "></i> 导出 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TRechargeRecordTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tRechargeRecord/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TRechargeRecord.openAddTRechargeRecord()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tRechargeRecord/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TRechargeRecord.openTRechargeRecordDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tRechargeRecord/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TRechargeRecord.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="TRechargeRecordUserTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tRechargeRecord/tRechargeRecordUser.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="condition" name="名称" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TSystemConfig.search()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TSystemConfigTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tSystemConfig/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TSystemConfig.openAddTSystemConfig()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tSystemConfig/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TSystemConfig.openTSystemConfigDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tSystemConfig/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TSystemConfig.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="TSystemConfigTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>余额规则</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >司机余额规则:</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <span class="control-label" >余额低于</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元,停止接单</span> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span class="control-label" >余额充值满</span> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元,获得9折优惠权限</span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.balanceRulesSubmit()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>佣金</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <label class="control-label" >佣金分成规则:</label> |
| | | </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" >司机邀请1名用户,下单后完成订单后获得</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="number" 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" >司机A邀请1名司机B,完成有效单后获得</span> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="number" 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" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单 司机A获得</span> |
| | | <input class="control-label" id="num4" name="num4" value="${num4}" type="number" 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" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单 司机B获得</span> |
| | | <input class="control-label" id="num6" name="num6" value="${num6}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单 司机A获得</span> |
| | | <input class="control-label" id="num7" name="num7" value="${num7}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单</span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.commissionShareRules()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>派单规则</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >派单设置:</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <span class="control-label" >派单距离第一轮</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="number" 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-2 control-label form-group" > |
| | | <span class="control-label" >派单距离第二轮</span> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="number" 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-2 control-label form-group" > |
| | | <span class="control-label" >派单距离第三轮</span> |
| | | <input class="control-label" id="num3" name="num3" value="${num3}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >米</span> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <span class="control-label" >接单时间</span> |
| | | <input class="control-label" id="num4" name="num4" value="${num4}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >秒</span> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <span class="control-label" >改派后暂停接单</span> |
| | | <input class="control-label" id="num5" name="num5" value="${num5}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >分钟</span> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.dispatchRulesSubmit()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>抽成规则</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >平台抽成:</label> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span class="control-label" >司机订单保险费,每天固定抽取</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/天</span> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span class="control-label" >抽成,每笔订单满</span> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/单,抽取</span> |
| | | <input class="control-label" id="num3" name="num3" value="${num3}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元</span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.extractionRulesSubmit()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>积分规则</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <label class="control-label" >积分获取:</label> |
| | | </div> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-4 control-label form-group" > |
| | | <span class="control-label" >有效时长</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="text" style="height: 30px;width: 80px" placeholder="12:00"> |
| | | <span class="control-label" >——</span> |
| | | <input class="control-label" id="num2" name="num2" value="${num2}" type="text" style="height: 30px;width: 80px" placeholder="23:00"> |
| | | <span class="control-label" >每小时增加</span> |
| | | <input class="control-label" id="num3" name="num3" value="${num3}" type="number" 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-3 control-label form-group" > |
| | | <span class="control-label" >推荐用户首次下单,完成订单后</span> |
| | | <input class="control-label" id="num4" name="num4" value="${num4}" type="number" 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-3 control-label form-group" > |
| | | <span class="control-label" >司机完成订单,获得</span> |
| | | <input class="control-label" id="num5" name="num5" value="${num5}" type="number" 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-3 control-label form-group" > |
| | | <span class="control-label" >获得5星好评,获得</span> |
| | | <input class="control-label" id="num6" name="num6" value="${num6}" type="number" 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-3 control-label form-group" > |
| | | <span class="control-label" >邀请司机注册成功获得</span> |
| | | <input class="control-label" id="num7" name="num7" value="${num7}" type="number" 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-3 control-label form-group" > |
| | | <span class="control-label" >恶劣天气完成订单获得</span> |
| | | <input class="control-label" id="num8" name="num8" value="${num8}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >积分</span> |
| | | </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> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-2 control-label form-group" > |
| | | <span class="control-label" >差评扣除</span> |
| | | <input class="control-label" id="num9" name="num9" value="${num9}" type="number" 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-2 control-label form-group" > |
| | | <span class="control-label" >拒绝订单扣除</span> |
| | | <input class="control-label" id="num10" name="num10" value="${num10}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >积分</span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.integralRulesSubmit()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>价格规则</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | <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/> |
| | | |
| | | <input hidden id="array" value="${array}"> |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" id="rules" style="text-align: left" > |
| | | @for(ChargeStandard in array){ |
| | | <div name="rulesForm"> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >时间段</span> |
| | | <input class="control-label" id="num1" name="num1" value="${ChargeStandard.num1}" type="text" placeholder="00:00" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >——</span> |
| | | <input class="control-label" id="num2" name="num2" value="${ChargeStandard.num2}" type="text" placeholder="00:00" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >代驾里程</span> |
| | | <input class="control-label" id="num3" name="num3" value="${ChargeStandard.num3}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >——</span> |
| | | <input class="control-label" id="num4" name="num4" value="${ChargeStandard.num4}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >公里,起步价</span> |
| | | <input class="control-label" id="num5" name="num5" value="${ChargeStandard.num5}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元,超出里程每</span> |
| | | <input class="control-label" id="num6" name="num6" value="${ChargeStandard.num6}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >公里,收费</span> |
| | | <input class="control-label" id="num7" name="num7" value="${ChargeStandard.num7}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元</span> |
| | | |
| | | @if(ChargeStandard.key == 0){ |
| | | <span class="fa fa-plus" onclick="TSystemConfig.addBox()"></span> |
| | | @} |
| | | @if(ChargeStandard.key == 1){ |
| | | <span class="fa fa-remove" onclick="TSystemConfig.delBox(this)"></span> |
| | | @} |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >代驾里程</span> |
| | | <input class="control-label" id="num8" name="num8" value="${ChargeStandard.num8}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >——</span> |
| | | <input class="control-label" id="num9" name="num9" value="${ChargeStandard.num9}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >公里,起步价</span> |
| | | <input class="control-label" id="num10" name="num10" value="${ChargeStandard.num10}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元,超出里程每</span> |
| | | <input class="control-label" id="num11" name="num11" value="${ChargeStandard.num11}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >公里,收费</span> |
| | | <input class="control-label" id="num12" name="num12" value="${ChargeStandard.num12}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元</span> |
| | | </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" style="text-align: left" > |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >等待</span> |
| | | <input class="control-label" id="num13" name="num13" value="${ExtraCost.num1}" type="text" placeholder="00:00" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >分钟,收取</span> |
| | | <input class="control-label" id="num14" name="num14" value="${ExtraCost.num2}" type="text" placeholder="00:00" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元,超出</span> |
| | | <input class="control-label" id="num15" name="num15" value="${ExtraCost.num3}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >分钟,收取</span> |
| | | <input class="control-label" id="num16" name="num16" value="${ExtraCost.num4}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元/分钟</span> |
| | | </div> |
| | | <div class="initialLevel col-sm-12 control-label form-group" > |
| | | <span class="control-label" >恶劣天气</span> |
| | | <input class="control-label" id="num17" name="num17" value="${ExtraCost.num5}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >公里以内,加收</span> |
| | | <input class="control-label" id="num18" name="num18" value="${ExtraCost.num6}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元,超出</span> |
| | | <input class="control-label" id="num19" name="num19" value="${ExtraCost.num7}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >公里,收取订单的</span> |
| | | <input class="control-label" id="num20" name="num20" value="${ExtraCost.num8}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >倍计费,最高收取</span> |
| | | <input class="control-label" id="num21" name="num21" value="${ExtraCost.num9}" type="number" style="height: 30px;width: 80px"> |
| | | <span class="control-label" >元</span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.priceRulesSubmit()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>客服管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | |
| | | |
| | | <div class="initialLevel col-sm-12 control-label form-group" style="text-align: left" > |
| | | <div class="initialLevel col-sm-3 control-label form-group" > |
| | | <span class="control-label" >客服电话</span> |
| | | <input class="control-label" id="num1" name="num1" value="${num1}" type="number" style="height: 30px;width: 160px"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfig.serviceMgmtSubmit()"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig.js"></script> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" underline="true"/> |
| | | <#input id="type" name="类型(1=派单规则,2=佣金分成规则,3=抽成规则,4=积分规则,5=价格规则,6=余额规则,7=客服管理)"/> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="content" name="内容" underline="true"/> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfigInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSystemConfigInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" value="${item.id}" underline="true"/> |
| | | <#input id="type" name="类型(1=派单规则,2=佣金分成规则,3=抽成规则,4=积分规则,5=价格规则,6=余额规则,7=客服管理)" value="${item.type}" /> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="content" name="内容" value="${item.content}" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSystemConfigInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TSystemConfigInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tSystemConfig/tSystemConfig_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#TimeCon id="createTime" name="发布时间" /> |
| | | </div> |
| | | <div class="col-sm-2"> |
| | | <select class="input-group" id="type" style="width: 180px;height: 33px" name="type"> |
| | | <option value="">服务类类型</option> |
| | | <option value="1">次数</option> |
| | | <option value="2">小时</option> |
| | | </select> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TYouTui.search()"/> |
| | | <#button name="重置" icon="fa-trash" clickFun="TYouTui.resetSearch()"/> |
| | | </div> |
| | | </div> |
| | | <div class="hidden-xs" id="TYouTuiTableToolbar" role="group"> |
| | | @if(shiro.hasPermission("/tYouTui/add")){ |
| | | <#button name="添加" icon="fa-plus" clickFun="TYouTui.openAddTYouTui()"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tYouTui/update")){ |
| | | <#button name="修改" icon="fa-edit" clickFun="TYouTui.openTYouTuiDetail()" space="true"/> |
| | | @} |
| | | @if(shiro.hasPermission("/tYouTui/delete")){ |
| | | <#button name="删除" icon="fa-remove" clickFun="TYouTui.delete()" space="true"/> |
| | | @} |
| | | </div> |
| | | <#table id="TYouTuiTable"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tYouTui/tYouTui.js"></script> |
| | | <script type="text/javascript"> |
| | | laydate.render({ |
| | | elem: '#createTime', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | </script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>添加</h5> |
| | | </div> |
| | | <div class="ibox-content" id="youTuiInfoForm"> |
| | | <div class="row row-lg"> |
| | | <div class="col-sm-12"> |
| | | <input hidden id="areaId" value="areaId"> |
| | | <div class="col-sm-12" style="cursor: pointer;text-align: right;"> |
| | | |
| | | <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> |
| | | <input id="name" name="name" type="text" placeholder="最多20个字" maxlength="20" style="height: 30px" required> |
| | | </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> |
| | | <input id="number" name="number" type="number" placeholder="请输入0以上的数字" min="0" 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> |
| | | </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> |
| | | <input id="integral" name="integral" type="number" max="9999" 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> |
| | | <label class="control-label" >优推距离:</label> |
| | | <input id="distance" name="distance" type="number" placeholder="最多2000米" max="2000" 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> |
| | | <label class="control-label" >有效期:</label> |
| | | <input id="effectiveTime" name="effectiveTime" 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> |
| | | </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> |
| | | <textarea id="serviceContent" name="serviceContent" placeholder="请输入" style="height: 80px" required></textarea> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="text-align: center"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TYouTuiInfoDlg.addSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TYouTuiInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tYouTui/tYouTui_info.js"></script> |
| | | @} |
New file |
| | |
| | | @layout("/common/_container.html"){ |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6 b-r"> |
| | | <#input id="id" name="主键" value="${item.id}" underline="true"/> |
| | | <#input id="name" name="名称" value="${item.name}" underline="true"/> |
| | | <#input id="type" name="优推类型(1=次数,2=小时)" value="${item.type}" underline="true"/> |
| | | <#input id="number" name="优推值" value="${item.number}" underline="true"/> |
| | | <#input id="integral" name="所需积分" value="${item.integral}" /> |
| | | </div> |
| | | |
| | | <div class="col-sm-6"> |
| | | <#input id="effectiveTime" name="有效天数" value="${item.effectiveTime}" underline="true"/> |
| | | <#input id="content" name="服务内容" value="${item.content}" underline="true"/> |
| | | <#input id="status" name="状态(1=正常,2=冻结,3=删除)" value="${item.status}" underline="true"/> |
| | | <#input id="createTime" name="添加时间" value="${item.createTime}" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TYouTuiInfoDlg.editSubmit()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TYouTuiInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/tYouTui/tYouTui_info.js"></script> |
| | | @} |
| | |
| | | * 打开区域选择页面 |
| | | */ |
| | | TAgent.area = function () { |
| | | |
| | | var area = $('#area').val(); |
| | | var areaId = $('#areaId').val(); |
| | | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '区域选择', |
| | | area: ['800px', '270px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAgent/areaDetail' |
| | | content: Feng.ctxPath + '/tAgent/areaDetail?area='+area+"&areaId="+areaId |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | |
| | | * 查询市区 |
| | | */ |
| | | TAgent.areaProvince = function () { |
| | | var province = document.getElementById('province'); |
| | | |
| | | //监听第一个下拉菜单的变动操作 |
| | | $("#province").change(function(){ |
| | | //当第一级下拉列表没选择值时,将二级下拉列表和三级同时设置为空 |
| | | if(this.value==""){ |
| | | $("#city").empty();//二级联动设为空设为空 |
| | | $("#city").append('<option value="">请选择</option>'); |
| | | } |
| | | if(this.value!=""){//第一级下拉菜单选择了值 |
| | | $("#city").empty();//先行置空,防止上次选择留下的元素影响效果 |
| | | $("#city").append('<option value="">请选择</option>')//设置初始选项 |
| | | var province = document.getElementById('province'); |
| | | var index= province.selectedIndex ; |
| | | var id = province.options[index].id; |
| | | var ajax = new $ax(Feng.ctxPath + "/tAgent/areaCity?parentId="+id, function (data) { |
| | | for(var i=0,n=data.length;i<n;i++){//遍历 |
| | | $("#city").append('<option value="'+data[i].id+'">'+data[i].name+'</option>');//创造元素 |
| | | } |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | } |
| | | }); |
| | | |
| | | /*var province = document.getElementById('province'); |
| | | var index= province.selectedIndex ; |
| | | var id = province.options[index].id; |
| | | var ajax = new $ax(Feng.ctxPath + "/tAgent/areaCity?parentId="+id, function (data) { |
| | |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | ajax.start();*/ |
| | | } |
| | | /** |
| | | * 选择省市 |
| | |
| | | var provinceIndex= province.selectedIndex ; |
| | | var provinceName = province.options[provinceIndex].value; |
| | | var provinceId = province.options[provinceIndex].id; |
| | | |
| | | if(provinceName == null || provinceName == ''){ |
| | | Feng.error("请选择省份!") |
| | | return; |
| | | } |
| | | |
| | | var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var cityId = city.options[cityIndex].value; |
| | | var cityName = city.options[cityIndex].innerText; |
| | | |
| | | if(cityName == null || cityName == '' || cityName =='请选择'){ |
| | | Feng.error("请选择市区!") |
| | | return; |
| | | } |
| | | |
| | | parent.$("#area").val(provinceName+'/'+cityName) |
| | | parent.$("#areaId").val(provinceId+'/'+cityId) |
| | | TAgentInfoDlg.close(); |
| | |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TAgentInfoDlg = { |
| | | tAgentInfoData : {} |
| | | tAgentInfoData : {}, |
| | | validateFields: { |
| | | principal: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '负责人姓名不能为空' |
| | | } |
| | | } |
| | | }, |
| | | principalPhone: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '联系电话不能为空' |
| | | } |
| | | } |
| | | }, |
| | | area: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '请选择代理区域' |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 验证数据是否为空 |
| | | */ |
| | | TAgentInfoDlg.validate = function () { |
| | | $('#tAgentInfoForm').data("bootstrapValidator").resetForm(); |
| | | $('#tAgentInfoForm').bootstrapValidator('validate'); |
| | | return $("#tAgentInfoForm").data('bootstrapValidator').isValid(); |
| | | }; |
| | | |
| | | /** |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tAgent/add", function(data){ |
| | | if(data.code == 500){ |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tAgent/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | Feng.initValidator("tAgentInfoForm", TAgentInfoDlg.validateFields); |
| | | }); |
| | |
| | | }); |
| | | ajax.setData({ |
| | | userIds:$("#userIds").val(), |
| | | couponId:TCoupon.seItem.id, |
| | | couponName:TCoupon.seItem.couponName |
| | | }) |
| | | ajax.start(); |
| | |
| | | TCoupon.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '创建时间', field: 'createtime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券名称', field: 'couponName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券类型', field: 'couponType', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券码', field: 'couponCode', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券状态', field: 'couponStatus', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '服务类型', field: 'couponServiceType', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '服务类型', field: 'couponServiceType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponServiceType === 1){ |
| | | return '<span>通用型</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '优惠券类型', field: 'couponType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponType === 1){ |
| | | return '<span>活动券</span>' |
| | | }else if (row.couponType === 2){ |
| | | return '<span>新人券</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '优惠券码', field: 'couponCode', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券状态', field: 'couponStatus', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '条件金额', field: 'couponConditionalAmount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠金额', field: 'couponPreferentialAmount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '有效期', field: 'couponValidity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '赠送数量', field: 'couponSendQuantity', visible: true, align: 'center', valign: 'middle'} |
| | | {title: '有效期', field: 'couponValidity', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '赠送数量', field: 'couponSendQuantity', visible: false, align: 'center', valign: 'middle'} |
| | | ]; |
| | | }; |
| | | |
| | |
| | | }); |
| | | ajax.setData({ |
| | | userIds:$("#userIds").val(), |
| | | couponId:this.seItem.id, |
| | | couponName:this.seItem.couponName |
| | | }) |
| | | ajax.start(); |
| | |
| | | */ |
| | | TCoupon.search = function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | queryData['couponName'] = $("#couponName").val(); |
| | | TCoupon.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TCoupon.initColumn(); |
| | | var table = new BSTable(TCoupon.id, "/tCoupon/list", defaultColunms); |
| | | var table = new BSTable(TCoupon.id, "/tCoupon/activityCouponList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TCoupon.table = table.init(); |
| | | }); |
| | |
| | | TBranchOffice.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理商id', field: 'agentId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '负责人姓名', field: 'principal', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '负责人电话', field: 'principalPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '邮箱', field: 'email', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域省编号', field: 'provinceCode', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域省名称', field: 'provinceName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域市编号', field: 'cityCode', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域市名称', field: 'cityName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域区编号', field: 'districtCode', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域区名称', field: 'districtName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'} |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理商id', field: 'agentId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '分公司名称', field: 'branchOfficeName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '负责人姓名', field: 'principal', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '负责人电话', field: 'principalPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '邮箱', field: 'email', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域省编号', field: 'provinceCode', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域省名称', field: 'provinceName', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域市编号', field: 'cityCode', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域市名称', field: 'cityName', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域区编号', field: 'districtCode', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域区名称', field: 'districtName', visible: false, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '订单数量', field: 'orderCount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '有效订单', field: 'effectiveOrderCount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '已发放优惠券', field: 'totalCount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '已使用优惠券', field: 'usedCount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '累计优惠券金额', field: 'orderPriceCount', visible: true, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '经营业务', field: 'operatingBusiness', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.operatingBusiness === 1){ |
| | | return '<span>司机代驾</span>' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {title: '司机数', field: 'driverCount', 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>' |
| | | }else if(row.status === 2){ |
| | | return '<span>冻结</span>' |
| | | }else if (row.status === 3){ |
| | | return '<span>已删除</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | return '<a href="#" onclick="TBranchOffice.searchTBranchOfficeDetail('+row.id+')" style="color:blue">详情</a>' +' ' + |
| | | '<a href="#" onclick="TBranchOffice.delete('+row.id+')" style="color:red">删除</a>' |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tBranchOffice/tBranchOffice_add' |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tBranchOffice/tBranchOffice_update/' + TBranchOffice.seItem.id |
| | |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TBranchOffice.searchTBranchOfficeDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tBranchOffice/tBranchOfficeDetail?tBranchOfficeId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TBranchOffice.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TBranchOffice.table.refresh(); |
| | | TBranchOffice.delete = function (id) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TBranchOffice.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tBranchOfficeId",id); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 提交冻结 |
| | | */ |
| | | TBranchOffice.stop = function () { |
| | | if(this.check()){ |
| | | if(2 == this.seItem.status){ |
| | | Feng.error("该条数据已冻结!"); |
| | | return; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/stop?id="+this.seItem.id, function (data) { |
| | | if(500 == data.code){ |
| | | Feng.error(data.message); |
| | | return; |
| | | }else { |
| | | Feng.success("冻结成功!"); |
| | | TBranchOffice.table.refresh(); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | Feng.error("冻结失败!" + data.message + "!"); |
| | | }); |
| | | ajax.set("tBranchOfficeId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 提交启用 |
| | | */ |
| | | TBranchOffice.start = function () { |
| | | if(this.check()){ |
| | | if(1 == this.seItem.status){ |
| | | Feng.error("该条数据已启用!"); |
| | | return; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/start?id="+this.seItem.id, function (data) { |
| | | if(500 == data.code){ |
| | | Feng.error(data.message); |
| | | return; |
| | | }else { |
| | | Feng.success("启用成功!"); |
| | | TBranchOffice.table.refresh(); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("启用失败!" + data.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 打开区域选择页面新增 |
| | | */ |
| | | TBranchOffice.areaAdd = function () { |
| | | |
| | | var area = $("#area").val(); |
| | | var areaId = $("#areaId").val(); |
| | | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '区域选择', |
| | | area: ['1000px', '270px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tBranchOffice/areaPageAdd?area='+area+'&areaId='+areaId |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | |
| | | /** |
| | | * 打开区域选择页面编辑 |
| | | */ |
| | | TBranchOffice.areaUpdate = function () { |
| | | |
| | | var area = $("#area").val(); |
| | | var areaId = $("#areaId").val(); |
| | | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '区域选择', |
| | | area: ['1000px', '270px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tBranchOffice/areaPageUpdate?area='+area+'&areaId='+areaId |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | |
| | | /** |
| | | * 查询市 |
| | | */ |
| | | TBranchOffice.areaCity = function () { |
| | | |
| | | //监听第一个下拉菜单的变动操作 |
| | | $("#province").change(function(){ |
| | | //当第一级下拉列表没选择值时,将二级下拉列表和三级同时设置为空 |
| | | if(this.value==""){ |
| | | $("#city").empty();//二级联动设为空设为空 |
| | | $("#city").append('<option value="">请选择</option>'); |
| | | //region |
| | | $("#district").empty();//三级联动设为空设为空 |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | |
| | | } |
| | | if(this.value!=""){//第一级下拉菜单选择了值 |
| | | $("#city").empty();//先行置空,防止上次选择留下的元素影响效果 |
| | | $("#city").append('<option value="">请选择</option>')//设置初始选项 |
| | | $("#district").empty();//三级联动设为空设为空 |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | var province = document.getElementById('province'); |
| | | var index= province.selectedIndex ; |
| | | var id = province.options[index].id; |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/areaCity?parentId="+id, function (data) { |
| | | for(var i=0,n=data.length;i<n;i++){//遍历 |
| | | $("#city").append('<option value="'+data[i].id+'">'+data[i].name+'</option>');//创造元素 |
| | | } |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | } |
| | | }); |
| | | |
| | | /*var province = document.getElementById('province'); |
| | | var index= province.selectedIndex ; |
| | | var id = province.options[index].id; |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/areaCity?parentId="+id, function (data) { |
| | | /!*var opts=document.getElementById('city').options; |
| | | opts.length=0;// 这一句是清空原有列表项 |
| | | for(var i=0,n=data.length;i<n;i++){ |
| | | var data1=data[i]; |
| | | var opt=new Option(data1.name,data1.id,true,true); |
| | | opts.add(opt); |
| | | }*!/ |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start();*/ |
| | | } |
| | | |
| | | /** |
| | | * 查询区 |
| | | */ |
| | | TBranchOffice.areaDistrict = function () { |
| | | //监听第二个下拉菜单的变动操作 |
| | | $("#city").change(function(){ |
| | | if(this.value==""){//第二级菜单为空,则将第三级菜单也置为空 |
| | | $("#district").empty(); |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | } |
| | | if(this.value!=""){//第二级菜单不为空,则将第三级菜单动态生成 |
| | | $("#district").empty(); |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | |
| | | var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var id = city.options[cityIndex].id; |
| | | if(id == ""){ |
| | | id = city.options[cityIndex].value; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/areaCity?parentId="+id, function (data) { |
| | | for(var i=0,n=data.length;i<n;i++){//对区数据进行遍历,动态生成 |
| | | $("#district").append('<option value="'+data[i].id+'">'+data[i].name+'</option>'); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | } |
| | | }) |
| | | |
| | | /*var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var id = city.options[cityIndex].value; |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/areaCity?parentId="+id, function (data) { |
| | | var opts=document.getElementById('district').options; |
| | | opts.length=0;// 这一句是清空原有列表项 |
| | | for(var i=0,n=data.length;i<n;i++){ |
| | | var data1=data[i]; |
| | | var opt=new Option(data1.name,data1.id,true,true); |
| | | opts.add(opt); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start();*/ |
| | | } |
| | | |
| | | /** |
| | | * 选择省市 |
| | | */ |
| | | TBranchOffice.submitArea = function () { |
| | | var province = document.getElementById('province'); |
| | | var provinceIndex= province.selectedIndex ; |
| | | var provinceName = province.options[provinceIndex].value; |
| | | var provinceId = province.options[provinceIndex].id; |
| | | |
| | | if(provinceName == null || provinceName == ''){ |
| | | Feng.error("请选择省份!") |
| | | return; |
| | | } |
| | | |
| | | var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var cityId = city.options[cityIndex].value; |
| | | var cityName = city.options[cityIndex].innerText; |
| | | |
| | | if(cityName == null || cityName == '' || cityName =='请选择'){ |
| | | Feng.error("请选择市区!") |
| | | return; |
| | | } |
| | | |
| | | var district = document.getElementById('district'); |
| | | var districtIndex= district.selectedIndex ; |
| | | var districtId = district.options[districtIndex].value; |
| | | var districtName = district.options[districtIndex].innerText; |
| | | |
| | | if(districtName == '' || districtName == null || districtName == '请选择'){ |
| | | parent.$("#area").val(provinceName+'/'+cityName) |
| | | parent.$("#areaId").val(provinceId+'/'+cityId) |
| | | }else { |
| | | parent.$("#area").val(provinceName+'/'+cityName+'/'+districtName) |
| | | parent.$("#areaId").val(provinceId+'/'+cityId+'/'+districtId) |
| | | } |
| | | TBranchOfficeInfoDlg.close(); |
| | | } |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TBranchOffice.search = function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | queryData['branchOfficeName'] = $("#branchOfficeName").val(); |
| | | queryData['principal'] = $("#principal").val(); |
| | | queryData['principalPhone'] = $("#principalPhone").val(); |
| | | queryData['operatingBusiness'] = $("#operatingBusiness").val(); |
| | | queryData['status'] = $("#status").val(); |
| | | TBranchOffice.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TBranchOffice.resetSearch = function (){ |
| | | $("#branchOfficeName").val(''); |
| | | $("#principal").val(''); |
| | | $("#principalPhone").val(''); |
| | | $("#operatingBusiness").val(''); |
| | | $("#status").val(''); |
| | | TBranchOffice.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TBranchOffice.initColumn(); |
| | | var table = new BSTable(TBranchOffice.id, "/tBranchOffice/list", defaultColunms); |
| | |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TBranchOfficeInfoDlg = { |
| | | tBranchOfficeInfoData : {} |
| | | tBranchOfficeInfoData : {}, |
| | | validateFields: { |
| | | branchOfficeName: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '分公司名称不能为空' |
| | | } |
| | | } |
| | | }, |
| | | name: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '负责人姓名不能为空' |
| | | } |
| | | } |
| | | }, |
| | | phone: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '联系电话不能为空' |
| | | } |
| | | } |
| | | }, |
| | | area: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '请选择服务区域' |
| | | } |
| | | } |
| | | }, |
| | | emergencyPhone: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '代理商抽成不能为空' |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 验证数据是否为空 |
| | | */ |
| | | TBranchOfficeInfoDlg.validate = function () { |
| | | $('#branchOfficeInfoForm').data("bootstrapValidator").resetForm(); |
| | | $('#branchOfficeInfoForm').bootstrapValidator('validate'); |
| | | return $("#branchOfficeInfoForm").data('bootstrapValidator').isValid(); |
| | | }; |
| | | |
| | | /** |
| | |
| | | .set('cityName') |
| | | .set('districtCode') |
| | | .set('districtName') |
| | | .set('branchOfficeName') |
| | | .set('operatingBusiness') |
| | | .set('bankDeposit') |
| | | .set('bankAccount') |
| | | .set('area') |
| | | .set('areaId') |
| | | .set('status') |
| | | .set('createTime'); |
| | | } |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/add", function(data){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TBranchOffice.table.refresh(); |
| | | TBranchOfficeInfoDlg.close(); |
| | | if(data.code == 500){ |
| | | Feng.error("添加失败!" + data.message + "!"); |
| | | return false; |
| | | }else { |
| | | Feng.success("添加成功!"); |
| | | window.parent.TBranchOffice.table.refresh(); |
| | | TBranchOfficeInfoDlg.close(); |
| | | } |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tBranchOffice/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | | window.parent.TBranchOffice.table.refresh(); |
| | | TBranchOfficeInfoDlg.close(); |
| | | if(data.code == 500){ |
| | | Feng.error("修改失败!" + data.message + "!"); |
| | | return false; |
| | | }else { |
| | | Feng.success("修改成功!"); |
| | | window.parent.TBranchOffice.table.refresh(); |
| | | TBranchOfficeInfoDlg.close(); |
| | | } |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | Feng.initValidator("branchOfficeInfoForm", TBranchOfficeInfoDlg.validateFields); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TCancelOrder = { |
| | | id: "TCancelOrderTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TCancelOrder.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单id', field: 'orderId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户类型(1=用户,2=司机)', field: 'userType', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '转单原因', field: 'cause', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'} |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TCancelOrder.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TCancelOrder.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TCancelOrder.openAddTCancelOrder = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/tCancelOrder_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TCancelOrder.openTCancelOrderDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/tCancelOrder_update/' + TCancelOrder.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TCancelOrder.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCancelOrder/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCancelOrder.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tCancelOrderId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TCancelOrder.search = function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | TCancelOrder.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TCancelOrder.initColumn(); |
| | | var table = new BSTable(TCancelOrder.id, "/tCancelOrder/list", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TCancelOrder.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TCancelOrderInfoDlg = { |
| | | tCancelOrderInfoData : {} |
| | | }; |
| | | |
| | | /** |
| | | * 清除数据 |
| | | */ |
| | | TCancelOrderInfoDlg.clearData = function() { |
| | | this.tCancelOrderInfoData = {}; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TCancelOrderInfoDlg.set = function(key, val) { |
| | | this.tCancelOrderInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TCancelOrderInfoDlg.get = function(key) { |
| | | return $("#" + key).val(); |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | | TCancelOrderInfoDlg.close = function() { |
| | | parent.layer.close(window.parent.TCancelOrder.layerIndex); |
| | | } |
| | | |
| | | /** |
| | | * 收集数据 |
| | | */ |
| | | TCancelOrderInfoDlg.collectData = function() { |
| | | this |
| | | .set('id') |
| | | .set('orderId') |
| | | .set('userType') |
| | | .set('userId') |
| | | .set('cause') |
| | | .set('status') |
| | | .set('createTime'); |
| | | } |
| | | |
| | | /** |
| | | * 提交添加 |
| | | */ |
| | | TCancelOrderInfoDlg.addSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCancelOrder/add", function(data){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TCancelOrder.table.refresh(); |
| | | TCancelOrderInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tCancelOrderInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | | TCancelOrderInfoDlg.editSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCancelOrder/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | | window.parent.TCancelOrder.table.refresh(); |
| | | TCancelOrderInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tCancelOrderInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | }); |
| | |
| | | /** |
| | | * 投诉列表管理初始化 |
| | | * 管理初始化 |
| | | */ |
| | | var TComplaint = { |
| | | id: "TComplaintTable", //表格id |
| | |
| | | TComplaint.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '投诉时间', field: 'insert_time', visible: true, align: 'center', valign: 'middle',width:'10%', |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '投诉司机id', field: 'driverId', visible: false, align: 'center', valign: 'middle'}, |
| | | {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: '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', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.insert_time != '' && row.insert_time != null) { |
| | | var time = row.insert_time.replace(" ",'<br>'); |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.insert_time + '" onfocus="TUser.tooltip()">' + time + '</p>'] |
| | | if (row.state === 1){ |
| | | return '<span>待处理</span>' |
| | | }else if (row.state === 2){ |
| | | return '<span>已处理</span>' |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '投诉人昵称', field: 'userName', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.userName != '' && row.userName != null) { |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.userName + '" onfocus="TUser.tooltip()">' + row.userName + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '投诉人<br/>电话', field: 'userPhone', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.userPhone != '' && row.userPhone != null) { |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.userPhone + '" onfocus="TUser.tooltip()">' + row.userPhone + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '投诉司机<br/>电话', field: 'driverPhone', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.driverPhone != '' && row.driverPhone != null) { |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.driverPhone + '" onfocus="TUser.tooltip()">' + row.driverPhone + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '投诉<br/>原因', field: 'reason', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.reason != '' && row.reason != null) { |
| | | var str = row.reason; |
| | | if (str.length > 20){ |
| | | str = str.substring(0,20)+'...<br><button class="btn btn-outline btn-primary" onclick="TComplaint.buttonClick(' + row.id+','+ 1+ ')">查看更多</button>'; |
| | | } |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.reason + '" onfocus="TUser.tooltip()">' + str + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '描述', field: 'description', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.description != '' && row.description != null) { |
| | | var str = row.description; |
| | | if (str.length > 20){ |
| | | str = str.substring(0,20)+'...<br><button class="btn btn-outline btn-primary" onclick="TComplaint.buttonClick(' + row.id+','+ 2+ ')">查看更多</button>'; |
| | | } |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.description + '" onfocus="TUser.tooltip()">' + str + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '备注', field: 'handleResult', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.handleResult != '' && row.handleResult != null) { |
| | | var str = row.handleResult; |
| | | if (str.length > 20){ |
| | | str = str.substring(0,20)+'...<br><button class="btn btn-outline btn-primary" onclick="TComplaint.buttonClick(' + row.id+','+ 3+ ')">查看更多</button>'; |
| | | } |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.handleResult + '" onfocus="TUser.tooltip()">' + str + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '状态', field: 'isHandle', visible: true, align: 'center', valign: 'middle',width:'10%', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.isHandle != '' && row.isHandle != null) { |
| | | if (row.isHandle == 1){ |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="已处理" onfocus="TUser.tooltip()">已处理</p>'] |
| | | } |
| | | }else{ |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="未处理" onfocus="TUser.tooltip()">未处理</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '处理时间', field: 'handleTime', visible: true, align: 'center', valign: 'middle',width:'10%', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.handleTime != '' && row.handleTime != null) { |
| | | var time = row.handleTime.replace(" ",'<br>'); |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.handleTime + '" onfocus="TUser.tooltip()">' + time + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | }, |
| | | {title: '处理人', field: 'handleUserName', visible: true, align: 'center', valign: 'middle',width:'10%', |
| | | formatter: function (value, row) { |
| | | var btn = ""; |
| | | if(row.handleUserName != '' && row.handleUserName != null) { |
| | | btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.handleUserName + '" onfocus="TUser.tooltip()">' + row.handleUserName + '</p>'] |
| | | } |
| | | return btn; |
| | | } |
| | | } |
| | | {title: '处理时间', field: 'auditTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '处理人', field: 'auditPersonName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', visible: false, align: 'center', valign: 'middle'} |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 查看更多按钮 |
| | | * @param con |
| | | */ |
| | | TComplaint.buttonClick = function (id,type) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '查看详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tComplaint/lookDetail/'+id+"/"+type |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | |
| | | }; |
| | | |
| | | /** |
| | | * 立即处理 |
| | | * 点击添加 |
| | | */ |
| | | TComplaint.immediately = function(){ |
| | | TComplaint.openAddTComplaint = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tComplaint/tComplaint_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TComplaint.openTComplaintDetail = function () { |
| | | if (this.check()) { |
| | | if (TComplaint.seItem.isHandle == 1) { |
| | | swal("处理失败", "【未处理】状态下才能执行此操作", "warning"); |
| | | return; |
| | | } |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '立即处理', |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tComplaint/tComplaint_immediately/' + TComplaint.seItem.id |
| | | content: Feng.ctxPath + '/tComplaint/tComplaint_update/' + TComplaint.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除投诉列表 |
| | | * 删除 |
| | | */ |
| | | TComplaint.delete = function () { |
| | | if (this.check()) { |
| | | if (TComplaint.seItem.isHandle != 1) { |
| | | swal("删除失败", "【已处理】状态下才能执行此操作", "warning"); |
| | | return; |
| | | } |
| | | swal({ |
| | | title: "您是否确认删除该投诉记录?", |
| | | text: "请谨慎操作,删除后数据无法恢复!", |
| | | type: "warning", |
| | | showCancelButton: true, |
| | | confirmButtonColor: "#DD6B55", |
| | | confirmButtonText: "删除", |
| | | closeOnConfirm: false |
| | | }, function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tComplaint/delete", function (data) { |
| | | swal("删除成功", "您已经删除了该投诉记录。", "success"); |
| | | TComplaint.table.refresh(); |
| | | }, function (data) { |
| | | swal("删除失败", data.responseJSON.message + "!", "warning"); |
| | | }); |
| | | ajax.set("tComplaintId", TComplaint.seItem.id); |
| | | ajax.start(); |
| | | var ajax = new $ax(Feng.ctxPath + "/tComplaint/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TComplaint.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tComplaintId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 查询投诉列表列表 |
| | | * 立即处理页面跳转 |
| | | */ |
| | | TComplaint.immediatelyAudit = function () { |
| | | if (this.check()) { |
| | | if(2 == TComplaint.seItem.state){ |
| | | Feng.error("该数据已处理!"); |
| | | return; |
| | | } |
| | | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '投诉处理', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tComplaint/immediatelyAudit?tComplaintId=' + TComplaint.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 提交审核 |
| | | */ |
| | | TComplaint.audit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tComplaint/audit", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TComplaintInfoDlg.close(); |
| | | parent.TComplaint.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tComplaintId",$("#tComplaintId").val()); |
| | | ajax.set("notes",$("#notes").val()); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TComplaint.search = function () { |
| | | var queryData = {}; |
| | | queryData['insertTime'] = $("#insertTime").val(); |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['userPhone'] = $("#userPhone").val(); |
| | | queryData['driverPhone'] = $("#driverPhone").val(); |
| | | queryData['isHandle'] = $("#isHandle").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | TComplaint.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | TComplaint.resetSearch = function () { |
| | | $("#insertTime").val(""); |
| | | $("#userName").val(""); |
| | | $("#userPhone").val(""); |
| | | $("#driverPhone").val(""); |
| | | $("#isHandle").val(""); |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TComplaint.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#userName").val(''); |
| | | $("#userPhone").val(''); |
| | | $("#driverPhone").val(''); |
| | | $("#state").val(''); |
| | | TComplaint.search(); |
| | | }; |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TComplaint.initColumn(); |
| | | var table = new BSTable(TComplaint.id, "/tComplaint/list", defaultColunms); |
| | | table.setPaginationType("server"); |
| | | table.setPaginationType("client"); |
| | | TComplaint.table = table.init(); |
| | | }); |
| | |
| | | /** |
| | | * 初始化投诉列表详情对话框 |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TComplaintInfoDlg = { |
| | | tComplaintInfoData : {}, |
| | | validateFields: { |
| | | handleResult: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '备注不能为空' |
| | | }/*, |
| | | regexp: { |
| | | regexp: /^.{1,500}$/, |
| | | message: '备注不能超过500个长度' |
| | | }*/ |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 验证数据是否为空 |
| | | */ |
| | | TComplaintInfoDlg.validate = function () { |
| | | $('#complaintFormInfo').data("bootstrapValidator").resetForm(); |
| | | $('#complaintFormInfo').bootstrapValidator('validate'); |
| | | return $("#complaintFormInfo").data('bootstrapValidator').isValid(); |
| | | tComplaintInfoData : {} |
| | | }; |
| | | |
| | | /** |
| | |
| | | this |
| | | .set('id') |
| | | .set('userId') |
| | | .set('reason') |
| | | .set('driverId') |
| | | .set('description') |
| | | .set('isHandle') |
| | | .set('insertTime') |
| | | .set('handleResult') |
| | | .set('handleUserId'); |
| | | .set('reason') |
| | | .set('notes') |
| | | .set('state') |
| | | .set('status') |
| | | .set('createTime'); |
| | | } |
| | | |
| | | /** |
| | | * 立即处理 |
| | | * 提交添加 |
| | | */ |
| | | TComplaintInfoDlg.immediately = function() { |
| | | TComplaintInfoDlg.addSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | var handleResult = $("#handleResult").val(); |
| | | if (handleResult.length > 500){ |
| | | Feng.info("备注不能超过500个字"); |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tComplaint/immediately", function(data){ |
| | | Feng.success("处理成功!"); |
| | | var ajax = new $ax(Feng.ctxPath + "/tComplaint/add", function(data){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TComplaint.table.refresh(); |
| | | TComplaintInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("处理失败!" + data.responseJSON.message + "!"); |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.set("handleResult",$("#handleResult").val()); |
| | | ajax.set(this.tComplaintInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | | TComplaintInfoDlg.editSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tComplaint/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | | window.parent.TComplaint.table.refresh(); |
| | | TComplaintInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tComplaintInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | $(function() { |
| | | Feng.initValidator("complaintFormInfo", TComplaintInfoDlg.validateFields); |
| | | |
| | | }); |
| | |
| | | TCoupon.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '创建时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券名称', field: 'couponName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '服务类型', field: 'couponServiceType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponServiceType === 1){ |
| | | return '<span>通用型</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '优惠券类型', field: 'couponType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponType === 1){ |
| | |
| | | } |
| | | } |
| | | }, |
| | | {title: '优惠券码', field: 'couponCode', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券状态', field: 'couponStatus', visible: true, align: 'center', valign: 'middle', |
| | | {title: '优惠券码', field: 'couponCode', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券状态', field: 'couponStatus', visible: false, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponStatus === 1){ |
| | | return '<span>未发放</span>' |
| | |
| | | } |
| | | } |
| | | }, |
| | | {title: '服务类型', field: 'couponServiceType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponServiceType === 1){ |
| | | return '<span>通用型</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '条件金额', field: 'couponConditionalAmount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠金额', field: 'couponPreferentialAmount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '有效期', field: 'couponValidity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '赠送数量', field: 'couponSendQuantity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '数量', field: 'couponCount', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponCount === 0){ |
| | | return '<span>无限制</span>' |
| | | }else{ |
| | | return row.couponCount |
| | | } |
| | | } |
| | | }, |
| | | {title: '有效期', field: 'couponValidity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态', field: 'couponState', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.couponState === 1){ |
| | |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | if (row.couponState === 1){ |
| | | return '<a href="#" onclick="TCoupon.stop('+row.id+','+row.couponState+')" style="color:red">停用</a>' +' ' + |
| | | return '<a href="#" onclick="TCoupon.updateStatus('+row.id+','+row.couponState+')" style="color:red">停用</a>' +' ' + |
| | | '<a href="#" onclick="TCoupon.delete('+row.id+')" style="color:red">删除</a>' |
| | | }else if (row.couponState === 2){ |
| | | return '<a href="#" onclick="TCoupon.start('+row.id+','+row.couponState+')" style="color:green">启用</a>' +' ' + |
| | | return '<a href="#" onclick="TCoupon.updateStatus('+row.id+','+row.couponState+')" style="color:green">启用</a>' +' ' + |
| | | '<a href="#" onclick="TCoupon.delete('+row.id+')" style="color:red">删除</a>' |
| | | } |
| | | } |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCoupon/tCoupon_add' |
| | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TCoupon.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCoupon/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCoupon.delete = function (id) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCoupon/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCoupon.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tCouponId",id); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 提交启用冻结 |
| | | */ |
| | | TCoupon.updateStatus = function (id,couponState) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCoupon/update-status?id="+id+'&status='+couponState, function (data) { |
| | | if(500 == data.code){ |
| | | Feng.error(data.message); |
| | | return; |
| | | }else { |
| | | Feng.success("修改成功!"); |
| | | TCoupon.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tCouponId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | } |
| | | }, function (data) { |
| | | Feng.error("修改失败!" + data.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 选择新人券或者活动券时 |
| | | */ |
| | | TCoupon.changeCouponType = function (id,couponState) { |
| | | |
| | | //监听下拉菜单的变动操作 |
| | | $("#couponType").change(function(){ |
| | | // 如果选择活动券,将赠送数量隐藏 |
| | | if(this.value == 1){ |
| | | $("#changeCouponSendQuantity").hide() |
| | | } |
| | | if(this.value == ""){ |
| | | $("#changeCouponSendQuantity").hide() |
| | | } |
| | | if(this.value == 2){ |
| | | $("#changeCouponSendQuantity").show() |
| | | } |
| | | |
| | | }) |
| | | |
| | | }; |
| | | |
| | | /** |
| | |
| | | TCoupon.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TCoupon.resetSearch = function (){ |
| | | $("#couponType").val(''); |
| | | $("#couponServiceType").val(''); |
| | | $("#createTime").val(''); |
| | | TCoupon.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TCoupon.initColumn(); |
| | | var table = new BSTable(TCoupon.id, "/tCoupon/list", defaultColunms); |
| | |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TCouponInfoDlg = { |
| | | tCouponInfoData : {} |
| | | tCouponInfoData : {}, |
| | | validateFields: { |
| | | couponName: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优惠券名称不能为空' |
| | | } |
| | | } |
| | | }, |
| | | couponType: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '请选择优惠券类型' |
| | | } |
| | | } |
| | | }, |
| | | couponServiceType: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '请选择服务类类型' |
| | | } |
| | | } |
| | | }, |
| | | couponCount: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优惠券数量不能为空' |
| | | } |
| | | } |
| | | }, |
| | | couponConditionalAmount: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '条件金额不能为空' |
| | | } |
| | | } |
| | | }, |
| | | couponPreferentialAmount: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优惠金额不能为空' |
| | | } |
| | | } |
| | | }, |
| | | couponValidity: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '有效期不能为空' |
| | | } |
| | | } |
| | | }, |
| | | remainingQuantity: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优惠券总量不能为空' |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 验证数据是否为空 |
| | | */ |
| | | TCouponInfoDlg.validate = function () { |
| | | $('#couponInfoForm').data("bootstrapValidator").resetForm(); |
| | | $('#couponInfoForm').bootstrapValidator('validate'); |
| | | return $("#couponInfoForm").data('bootstrapValidator').isValid(); |
| | | }; |
| | | |
| | | /** |
| | |
| | | TCouponInfoDlg.collectData = function() { |
| | | this |
| | | .set('id') |
| | | .set('createtime') |
| | | .set('createTime') |
| | | .set('couponType') |
| | | .set('couponServiceType') |
| | | .set('couponCount') |
| | |
| | | .set('couponPreferentialAmount') |
| | | .set('couponValidity') |
| | | .set('couponSendQuantity') |
| | | .set('remainingQuantity') |
| | | .set('couponName'); |
| | | } |
| | | |
| | |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tCoupon/add", function(data){ |
| | |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | Feng.initValidator("couponInfoForm", TCouponInfoDlg.validateFields); |
| | | }); |
| | |
| | | * 打开区域选择页面新增 |
| | | */ |
| | | TDriver.areaAdd = function () { |
| | | |
| | | var area = $("#area").val(); |
| | | var areaId = $("#areaId").val(); |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '区域选择', |
| | | area: ['1000px', '270px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tDriver/areaPageAdd' |
| | | content: Feng.ctxPath + '/tDriver/areaPageAdd?area='+area+'&areaId='+areaId |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | |
| | | * 查询市 |
| | | */ |
| | | TDriver.areaCity = function () { |
| | | var province = document.getElementById('province'); |
| | | //监听第一个下拉菜单的变动操作 |
| | | $("#province").change(function(){ |
| | | //当第一级下拉列表没选择值时,将二级下拉列表和三级同时设置为空 |
| | | if(this.value==""){ |
| | | $("#city").empty();//二级联动设为空设为空 |
| | | $("#city").append('<option value="">请选择</option>'); |
| | | //region |
| | | $("#district").empty();//三级联动设为空设为空 |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | |
| | | } |
| | | if(this.value!=""){//第一级下拉菜单选择了值 |
| | | $("#city").empty();//先行置空,防止上次选择留下的元素影响效果 |
| | | $("#city").append('<option value="">请选择</option>')//设置初始选项 |
| | | $("#district").empty();//三级联动设为空设为空 |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | var province = document.getElementById('province'); |
| | | var index= province.selectedIndex ; |
| | | var id = province.options[index].id; |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/areaCity?parentId="+id, function (data) { |
| | | for(var i=0,n=data.length;i<n;i++){//遍历 |
| | | $("#city").append('<option value="'+data[i].id+'">'+data[i].name+'</option>');//创造元素 |
| | | } |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | } |
| | | }); |
| | | /*var province = document.getElementById('province'); |
| | | var index= province.selectedIndex ; |
| | | var id = province.options[index].id; |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/areaCity?parentId="+id, function (data) { |
| | |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | ajax.start();*/ |
| | | } |
| | | |
| | | /** |
| | | * 查询区 |
| | | */ |
| | | TDriver.areaDistrict = function () { |
| | | var city = document.getElementById('city'); |
| | | |
| | | //监听第二个下拉菜单的变动操作 |
| | | $("#city").change(function(){ |
| | | if(this.value==""){//第二级菜单为空,则将第三级菜单也置为空 |
| | | $("#district").empty(); |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | } |
| | | if(this.value!=""){//第二级菜单不为空,则将第三级菜单动态生成 |
| | | $("#district").empty(); |
| | | $("#district").append('<option value="">请选择</option>'); |
| | | |
| | | var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var id = city.options[cityIndex].id; |
| | | if(id == ""){ |
| | | id = city.options[cityIndex].value; |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/areaCity?parentId="+id, function (data) { |
| | | for(var i=0,n=data.length;i<n;i++){//对区数据进行遍历,动态生成 |
| | | $("#district").append('<option value="'+data[i].id+'">'+data[i].name+'</option>'); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | } |
| | | }) |
| | | |
| | | /*var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var id = city.options[cityIndex].value; |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/areaCity?parentId="+id, function (data) { |
| | |
| | | }, function (data) { |
| | | Feng.error("查询失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | ajax.start();*/ |
| | | } |
| | | |
| | | /** |
| | |
| | | var provinceName = province.options[provinceIndex].value; |
| | | var provinceId = province.options[provinceIndex].id; |
| | | |
| | | if(provinceName == null || provinceName == ''){ |
| | | Feng.error("请选择省份!") |
| | | return; |
| | | } |
| | | |
| | | var city = document.getElementById('city'); |
| | | var cityIndex= city.selectedIndex ; |
| | | var cityId = city.options[cityIndex].value; |
| | | var cityName = city.options[cityIndex].innerText; |
| | | |
| | | if(cityName == null || cityName == '' || cityName =='请选择'){ |
| | | Feng.error("请选择市区!") |
| | | return; |
| | | } |
| | | |
| | | var district = document.getElementById('district'); |
| | | var districtIndex= district.selectedIndex ; |
| | | var districtId = district.options[districtIndex].value; |
| | | var districtName = district.options[districtIndex].innerText; |
| | | |
| | | if(districtName == null || districtName == '' || districtName =='请选择'){ |
| | | Feng.error("请选择区县!") |
| | | return; |
| | | } |
| | | |
| | | parent.$("#area").val(provinceName+'/'+cityName+'/'+districtName) |
| | | parent.$("#areaId").val(provinceId+'/'+cityId+'/'+districtId) |
| | | console.log() |
| | | TDriverInfoDlg.close(); |
| | | } |
| | | |
| | |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TDriverInfoDlg = { |
| | | tDriverInfoData : {} |
| | | tDriverInfoData : {}, |
| | | validateFields: { |
| | | name: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '姓名不能为空' |
| | | } |
| | | } |
| | | }, |
| | | phone: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '手机号不能为空' |
| | | } |
| | | } |
| | | }, |
| | | emergencyContact: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '紧急联系人姓名不能为空' |
| | | } |
| | | } |
| | | }, |
| | | emergencyPhone: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '紧急联系人电话不能为空' |
| | | } |
| | | } |
| | | }, |
| | | area: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '请选择服务区域' |
| | | } |
| | | } |
| | | }, |
| | | idcard: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '身份证号码不能为空' |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 验证数据是否为空 |
| | | */ |
| | | TDriverInfoDlg.validate = function () { |
| | | $('#driverInfoForm').data("bootstrapValidator").resetForm(); |
| | | $('#driverInfoForm').bootstrapValidator('validate'); |
| | | return $("#driverInfoForm").data('bootstrapValidator').isValid(); |
| | | }; |
| | | |
| | | /** |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | var idcardFront = $("#idcardFront").val(); |
| | | if ("" == idcardFront){ |
| | | Feng.info("请上传身份证正面照"); |
| | | return; |
| | | } |
| | | |
| | | var idcardBack = $("#idcardBack").val(); |
| | | if ("" == idcardBack){ |
| | | Feng.info("请上传身份证背面照"); |
| | | return; |
| | | } |
| | | |
| | | var driverLicense = $("#driverLicense").val(); |
| | | if ("" == driverLicense){ |
| | | Feng.info("请上传驾驶证"); |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/add", function(data){ |
| | | if(data.code == 500){ |
| | | Feng.error("添加失败!" + data.message + "!"); |
| | | return false; |
| | | }else { |
| | | Feng.success("添加成功!"); |
| | | window.parent.TDriver.table.refresh(); |
| | | TDriverInfoDlg.close(); |
| | | } |
| | | Feng.success("添加成功!"); |
| | | window.parent.TDriver.table.refresh(); |
| | | TDriverInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | var idcardFront = $("#idcardFront").val(); |
| | | if ("" == idcardFront){ |
| | | Feng.info("请上传身份证正面照"); |
| | | return; |
| | | } |
| | | |
| | | var idcardBack = $("#idcardBack").val(); |
| | | if ("" == idcardBack){ |
| | | Feng.info("请上传身份证背面照"); |
| | | return; |
| | | } |
| | | |
| | | var driverLicense = $("#driverLicense").val(); |
| | | if ("" == driverLicense){ |
| | | Feng.info("请上传驾驶证"); |
| | | return; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tDriver/update", function(data){ |
| | | if(data.code == 500){ |
| | | Feng.error("修改失败!" + data.message + "!"); |
| | | return false; |
| | | }else { |
| | | Feng.success("修改成功!"); |
| | | window.parent.TDriver.table.refresh(); |
| | | TDriverInfoDlg.close(); |
| | | } |
| | | Feng.success("修改成功!"); |
| | | window.parent.TDriver.table.refresh(); |
| | | TDriverInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | Feng.initValidator("driverInfoForm", TDriverInfoDlg.validateFields); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TEvaluate = { |
| | | id: "TEvaluateTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TEvaluate.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '订单id', field: 'orderId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '评价时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '订单编号', field: 'code', 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: 'driverName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '司机手机号', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '评价分数', field: 'score', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.score === 1){ |
| | | return '<span>非常差</span>' |
| | | }else if (row.score === 2){ |
| | | return '<span>差</span>' |
| | | }else if (row.score === 3){ |
| | | return '<span>一般</span>' |
| | | }else if (row.score === 4){ |
| | | return '<span>满意</span>' |
| | | }else if (row.score === 5){ |
| | | return '<span>非常满意</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '评价内容', field: 'evaluate', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | return '<a href="#" onclick="TEvaluate.searchTAppUserDetail('+row.id+')" style="color:blue">详情</a>' |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TEvaluate.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TEvaluate.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TEvaluate.openAddTEvaluate = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tEvaluate/tEvaluate_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TEvaluate.openTEvaluateDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tEvaluate/tEvaluate_update/' + TEvaluate.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TEvaluate.searchTAppUserDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tEvaluate/evaluateDetail?evaluateId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TEvaluate.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tEvaluate/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TEvaluate.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tEvaluateId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 订单信息导出 |
| | | */ |
| | | TEvaluate.export=function(){ |
| | | var createTime=$("#createTime").val() |
| | | var userName=$("#userName").val() |
| | | var driverName=$("#driverName").val() |
| | | var orderType=$("#orderType").val() |
| | | var score=$("#score").val() |
| | | window.location.href=Feng.ctxPath + "/tEvaluate/export?createTime="+createTime |
| | | +"&userName="+userName |
| | | +"&driverName="+driverName |
| | | +"&orderType="+orderType |
| | | +"&score="+score |
| | | ; |
| | | } |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TEvaluate.search = function () { |
| | | var queryData = {}; |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['driverName'] = $("#driverName").val(); |
| | | queryData['orderType'] = $("#orderType").val(); |
| | | queryData['score'] = $("#score").val(); |
| | | TEvaluate.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TEvaluate.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#userName").val(''); |
| | | $("#driverName").val(''); |
| | | $("#orderType").val(''); |
| | | $("#score").val(''); |
| | | TEvaluate.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TEvaluate.initColumn(); |
| | | var table = new BSTable(TEvaluate.id, "/tEvaluate/list", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TEvaluate.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TEvaluateInfoDlg = { |
| | | tEvaluateInfoData : {} |
| | | }; |
| | | |
| | | /** |
| | | * 清除数据 |
| | | */ |
| | | TEvaluateInfoDlg.clearData = function() { |
| | | this.tEvaluateInfoData = {}; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TEvaluateInfoDlg.set = function(key, val) { |
| | | this.tEvaluateInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TEvaluateInfoDlg.get = function(key) { |
| | | return $("#" + key).val(); |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | | TEvaluateInfoDlg.close = function() { |
| | | parent.layer.close(window.parent.TEvaluate.layerIndex); |
| | | } |
| | | |
| | | /** |
| | | * 收集数据 |
| | | */ |
| | | TEvaluateInfoDlg.collectData = function() { |
| | | this |
| | | .set('id') |
| | | .set('orderId') |
| | | .set('userId') |
| | | .set('score') |
| | | .set('evaluate') |
| | | .set('status') |
| | | .set('createTime'); |
| | | } |
| | | |
| | | /** |
| | | * 提交添加 |
| | | */ |
| | | TEvaluateInfoDlg.addSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tEvaluate/add", function(data){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TEvaluate.table.refresh(); |
| | | TEvaluateInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tEvaluateInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | | TEvaluateInfoDlg.editSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tEvaluate/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | | window.parent.TEvaluate.table.refresh(); |
| | | TEvaluateInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tEvaluateInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TAppUser = { |
| | | id: "TAppUserTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TAppUser.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: false}, |
| | | {title: '用户ID', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户昵称', field: 'nickname', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '性别', field: 'sex', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.sex === 1){ |
| | | return '<span>男</span>' |
| | | }else if (row.sex === 2){ |
| | | return '<span>女</span>' |
| | | }else { |
| | | return '<span>未知</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '头像', field: 'avatar', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | return '<img src="'+row.avatar+'" style="height: 60px;width: 60px"/>' |
| | | } |
| | | }, |
| | | {title: '微信openid', field: 'openid', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '微信unionid', field: 'unionid', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '紧急联系人', field: 'emergencyContact', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '紧急联系电话', field: 'emergencyPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '账户余额', field: 'accountBalance', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户标签id', field: 'userTagId', 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>' |
| | | }else if (row.status === 2){ |
| | | return '<span>冻结</span>' |
| | | }else if (row.status === 3){ |
| | | return '<span>已删除</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | // {title: '是否异常', field: 'isException', hidden:true, visible: true, align: 'center', valign: 'middle'}, |
| | | // {title: '启用冻结理由', field: 'remark', hidden:true,visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | if (row.status === 1){ |
| | | return '<a href="#" onclick="TAppUser.stop('+row.id+','+row.status+')" style="color:red">停用</a>' +' ' + |
| | | '<a href="#" onclick="TAppUser.searchTAppUserDetail('+row.id+','+row.status+')" style="color:green">详情</a>' |
| | | }else if (row.status === 2){ |
| | | return '<a href="#" onclick="TAppUser.start('+row.id+','+row.status+')" style="color:green">启用</a>' +' ' + |
| | | '<a href="#" onclick="TAppUser.searchTAppUserDetail('+row.id+','+row.status+')" style="color:green">详情</a>' |
| | | } |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TAppUser.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TAppUser.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 用户信息导出 |
| | | */ |
| | | TAppUser.export=function(){ |
| | | var nickName=$("#nickName").val() |
| | | var status=$("#status").val() |
| | | var id=$("#id").val() |
| | | var createTime=$("#createTime").val() |
| | | var phone=$("#phone").val() |
| | | window.location.href=Feng.ctxPath + "/tAppUser/export-userInfo?nickname="+nickName |
| | | +"&status="+status |
| | | +"&id="+id |
| | | +"&createTime="+createTime |
| | | +"&phone="+phone |
| | | ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TAppUser.openAddTAppUser = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUser_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 停用 |
| | | */ |
| | | TAppUser.stop = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '停用', |
| | | area: ['45%', '50%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUser_start_and_stop?id='+id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 启动 |
| | | */ |
| | | TAppUser.start = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '启用', |
| | | area: ['45%', '50%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUser_start_and_stop?id='+id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 提交启用冻结 |
| | | */ |
| | | TAppUser.updateStatus = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tAppUser/update-status", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TAppUserInfoDlg.close(); |
| | | parent.TAppUser.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.set("status",$("#status").val()); |
| | | if($("#status").val() == 1){ |
| | | ajax.set("remark",$("#stopRemark").val()); |
| | | } |
| | | if($("#status").val() == 2){ |
| | | ajax.set("remark",$("#startRemark").val()); |
| | | } |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TAppUser.openTAppUserDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/tAppUser_update/' + TAppUser.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TAppUser.searchTAppUserDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/userDetail?tAppUserId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TAppUser.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tAppUser/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TAppUser.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tAppUserId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 查询异常列表 |
| | | */ |
| | | TAppUser.searchExceptionList = function () { |
| | | var queryData = {}; |
| | | queryData.status = 2; |
| | | TAppUser.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TAppUser.search = function () { |
| | | var queryData = {}; |
| | | queryData.nickname = $("#nickName").val(); |
| | | queryData.phone = $("#phone").val(); |
| | | queryData.createTime = $("#createTime").val(); |
| | | queryData.id = $("#id").val(); |
| | | queryData.status = $("#status").val(); |
| | | TAppUser.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 跳转优惠卷页面 |
| | | */ |
| | | TAppUser.searchCoupon = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | var data = []; |
| | | for (let i = 0; i < selected.length; i++) { |
| | | data[i] = selected[i].id; |
| | | } |
| | | if(this.check()){ |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '赠送优惠券', |
| | | area: ['80%', '80%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tAppUser/sendCoupon?userIds=' + data |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TAppUser.resetSearch = function (){ |
| | | $("#nickName").val(''); |
| | | $("#phone").val(''); |
| | | $("#createTime").val(''); |
| | | $("#id").val(''); |
| | | $("#status").val(''); |
| | | TAppUser.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TAppUser.initColumn(); |
| | | var table = new BSTable(TAppUser.id, "/tAppUser/list", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TAppUser.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TCancelOrder = { |
| | | id: "TCancelOrderTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TCancelOrder.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '下单时间', field: 'placeTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单编号', field: 'code', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单来源', field: 'source', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.source === 1){ |
| | | return '<span>小程序</span>' |
| | | }else if (row.source === 2){ |
| | | return '<span>司机创建</span>' |
| | | } |
| | | }}, |
| | | {title: '下单用户昵称', field: 'userName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '下单用户手机', field: 'userPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点地址', field: 'startAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点地址', field: 'endAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '接单司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '司机电话', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '订单id', field: 'orderId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户类型(1=用户,2=司机)', field: 'userType', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '转单原因', field: 'cause', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', 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="TCancelOrder.searchTCancelOrderDetail('+row.id+')" style="color:green">详情</a>' |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TCancelOrder.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TCancelOrder.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TCancelOrder.openAddTCancelOrder = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/tCancelOrder_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TCancelOrder.openTCancelOrderDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/tCancelOrder_update/' + TCancelOrder.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TCancelOrder.searchTCancelOrderDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/cancelOrderDetail?cancelOrderId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TCancelOrder.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCancelOrder/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCancelOrder.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tCancelOrderId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 取消订单信息导出 |
| | | */ |
| | | TCancelOrder.export=function(){ |
| | | var createTime=$("#createTime").val() |
| | | var code=$("#code").val() |
| | | var source=$("#source").val() |
| | | var userName=$("#userName").val() |
| | | var userPhone=$("#userPhone").val() |
| | | var state=$("#state").val() |
| | | var driverName=$("#driverName").val() |
| | | window.location.href=Feng.ctxPath + "/tCancelOrder/export?createTime="+createTime |
| | | +"&code="+code |
| | | +"&source="+source |
| | | +"&userName="+userName |
| | | +"&userPhone="+userPhone |
| | | +"&state="+state |
| | | +"&driverName="+driverName |
| | | ; |
| | | } |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TCancelOrder.search = function () { |
| | | var queryData = {}; |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['code'] = $("#code").val(); |
| | | queryData['source'] = $("#source").val(); |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['userPhone'] = $("#userPhone").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | queryData['driverName'] = $("#driverName").val(); |
| | | TCancelOrder.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TCancelOrder.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#code").val(''); |
| | | $("#source").val(''); |
| | | $("#userName").val(''); |
| | | $("#userPhone").val(''); |
| | | $("#state").val(''); |
| | | $("#driverName").val(''); |
| | | TCancelOrder.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TCancelOrder.initColumn(); |
| | | var table = new BSTable(TCancelOrder.id, "/tCancelOrder/cancelOrderList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TCancelOrder.table = table.init(); |
| | | }); |
| | |
| | | TOrder.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '编号', field: 'code', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '司机id', field: 'driverId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单来源(1=小程序)', field: 'source', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理商id', field: 'agentId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '分公司id', field: 'branchOfficeId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '开始服务时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点地址', field: 'startAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点纬度', field: 'startLat', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点经度', field: 'startLng', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点地址', field: 'endAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点纬度', field: 'endLat', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点经度', field: 'endLng', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '上车时间', field: 'boardingTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '下车时间', field: 'getoffTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '预估价', field: 'estimatedPrice', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单金额', field: 'orderMoney', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '支付金额', field: 'payMoney', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠金额', field: 'discountedPrice', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券id', field: 'couponId', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '支付类型(1=线上)', field: 'payType', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '支付时间', field: 'payTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单状态(1=待接单,2=已接单,3=)', field: 'state', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'} |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下单时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单编号', field: 'code', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单来源', field: 'source', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.source === 1){ |
| | | return '<span>小程序</span>' |
| | | }else if (row.source === 2){ |
| | | return '<span>司机创建</span>' |
| | | } |
| | | }}, |
| | | {title: '开始服务时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下单用户昵称', field: 'userName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '下单用户手机', field: 'userPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点地址', field: 'startAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点纬度', field: 'startLat', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '起点经度', field: 'startLng', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '终点地址', field: 'endAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点纬度', field: 'endLat', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '终点经度', field: 'endLng', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '司机id', field: 'driverId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '接单司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '司机电话', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '预估价', field: 'estimatedPrice', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理商id', field: 'agentId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '分公司id', field: 'branchOfficeId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '上车时间', field: 'boardingTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下车时间', field: 'getoffTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '订单金额', field: 'orderMoney', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '支付金额', field: 'payMoney', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠金额', field: 'discountedPrice', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券id', field: 'couponId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '支付类型', field: 'payType', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '支付时间', field: 'payTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '取消次数', field: 'cancelCount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.state === 101){ |
| | | return '<span>待接单</span>' |
| | | }else if (row.state === 102){ |
| | | return '<span>已接单</span>' |
| | | }else if (row.state === 103){ |
| | | return '<span>前往预约点</span>' |
| | | }else if (row.state === 104){ |
| | | return '<span>到达预约点</span>' |
| | | }else if (row.state === 105){ |
| | | return '<span>开始服务</span>' |
| | | }else if (row.state === 106){ |
| | | return '<span>到达目的地</span>' |
| | | }else if (row.state === 107){ |
| | | return '<span>待支付</span>' |
| | | }else if (row.state === 108){ |
| | | return '<span>待评价</span>' |
| | | }else if (row.state === 109){ |
| | | return '<span>已完成</span>' |
| | | }else if (row.state === 201){ |
| | | return '<span>转单中</span>' |
| | | }else if (row.state === 301){ |
| | | return '<span>已取消</span>' |
| | | }else if (row.state === 401){ |
| | | return '<span>等待中</span>' |
| | | } |
| | | }}, |
| | | {title: '状态', field: 'status', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | return '<a href="#" onclick="TOrder.searchTOrderDetail('+row.id+')" style="color:green">详情</a>' |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TOrder.searchTOrderDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/orderDetail?orderId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TOrder.delete = function () { |
| | |
| | | }; |
| | | |
| | | /** |
| | | * 订单信息导出 |
| | | */ |
| | | TOrder.export=function(){ |
| | | var createTime=$("#createTime").val() |
| | | var code=$("#code").val() |
| | | var source=$("#source").val() |
| | | var userName=$("#userName").val() |
| | | var userPhone=$("#userPhone").val() |
| | | var state=$("#state").val() |
| | | var driverName=$("#driverName").val() |
| | | window.location.href=Feng.ctxPath + "/tOrder/export?createTime="+createTime |
| | | +"&code="+code |
| | | +"&source="+source |
| | | +"&userName="+userName |
| | | +"&userPhone="+userPhone |
| | | +"&state="+state |
| | | +"&driverName="+driverName |
| | | ; |
| | | } |
| | | |
| | | /** |
| | | * 订单异常页面 |
| | | */ |
| | | TOrder.tOrderException = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '异常', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/tOrder-exception' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 取消订单页面 |
| | | */ |
| | | TOrder.cancelOrder = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '取消订单', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/cancelOrder' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TOrder.search = function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['code'] = $("#code").val(); |
| | | queryData['source'] = $("#source").val(); |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['userPhone'] = $("#userPhone").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | queryData['driverName'] = $("#driverName").val(); |
| | | TOrder.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TOrder.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#code").val(''); |
| | | $("#source").val(''); |
| | | $("#userName").val(''); |
| | | $("#userPhone").val(''); |
| | | $("#state").val(''); |
| | | $("#driverName").val(''); |
| | | TOrder.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TOrder.initColumn(); |
| | | var table = new BSTable(TOrder.id, "/tOrder/list", defaultColunms); |
| | | var table = new BSTable(TOrder.id, "/tOrder/orderList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TOrder.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TOrderException = { |
| | | id: "TOrderExceptionTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TOrderException.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下单时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单编号', field: 'code', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单来源', field: 'source', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.source === 1){ |
| | | return '<span>小程序</span>' |
| | | }else if (row.source === 2){ |
| | | return '<span>司机创建</span>' |
| | | } |
| | | }}, |
| | | {title: '开始服务时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下单用户昵称', field: 'userName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '下单用户手机', field: 'userPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点地址', field: 'startAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '起点纬度', field: 'startLat', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '起点经度', field: 'startLng', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '终点地址', field: 'endAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点纬度', field: 'endLat', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '终点经度', field: 'endLng', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '司机id', field: 'driverId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '接单司机', field: 'driverName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '司机电话', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '预估价', field: 'estimatedPrice', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理商id', field: 'agentId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '分公司id', field: 'branchOfficeId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '上车时间', field: 'boardingTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下车时间', field: 'getoffTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '订单金额', field: 'orderMoney', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '支付金额', field: 'payMoney', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠金额', field: 'discountedPrice', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券id', field: 'couponId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '支付类型', field: 'payType', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '支付时间', field: 'payTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '取消次数', field: 'cancelCount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.state === 101){ |
| | | return '<span>待接单</span>' |
| | | }else if (row.state === 102){ |
| | | return '<span>已接单</span>' |
| | | }else if (row.state === 103){ |
| | | return '<span>前往预约点</span>' |
| | | }else if (row.state === 104){ |
| | | return '<span>到达预约点</span>' |
| | | }else if (row.state === 105){ |
| | | return '<span>开始服务</span>' |
| | | }else if (row.state === 106){ |
| | | return '<span>到达目的地</span>' |
| | | }else if (row.state === 107){ |
| | | return '<span>待支付</span>' |
| | | }else if (row.state === 108){ |
| | | return '<span>待评价</span>' |
| | | }else if (row.state === 109){ |
| | | return '<span>已完成</span>' |
| | | }else if (row.state === 201){ |
| | | return '<span>转单中</span>' |
| | | }else if (row.state === 301){ |
| | | return '<span>已取消</span>' |
| | | }else if (row.state === 401){ |
| | | return '<span>等待中</span>' |
| | | } |
| | | }}, |
| | | {title: '状态', field: 'status', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, |
| | | formatter: function (value, row) { |
| | | if (row.userStatus === 1){ |
| | | return '<a href="#" onclick="TOrderException.searchTOrderExceptionDetail('+row.id+')" style="color:green">详情</a>' +' ' + |
| | | '<a href="#" onclick="TOrderException.stop('+row.id+','+row.status+')" style="color:red">冻结</a>' |
| | | }else if (row.userStatus === 2){ |
| | | return '<a href="#" onclick="TOrderException.searchTOrderExceptionDetail('+row.id+')" style="color:green">详情</a>' +' ' + |
| | | '<a href="#" onclick="TOrderException.start('+row.id+','+row.status+')" style="color:green">启用</a>' |
| | | } |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TOrderException.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TOrderException.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TOrderException.openAddTOrder = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/tOrder_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TOrderException.openTOrderDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/tOrder_update/' + TOrderException.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TOrderException.searchTOrderExceptionDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/orderExceptionDetail?orderId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TOrderException.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tOrder/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TOrderException.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tOrderId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 司机信息导出 |
| | | */ |
| | | TOrderException.export=function(){ |
| | | var createTime=$("#createTime").val() |
| | | var code=$("#code").val() |
| | | var source=$("#source").val() |
| | | var userName=$("#userName").val() |
| | | var userPhone=$("#userPhone").val() |
| | | var state=$("#state").val() |
| | | var driverName=$("#driverName").val() |
| | | window.location.href=Feng.ctxPath + "/tOrder/export-exception?createTime="+createTime |
| | | +"&code="+code |
| | | +"&source="+source |
| | | +"&userName="+userName |
| | | +"&userPhone="+userPhone |
| | | +"&state="+state |
| | | +"&driverName="+driverName |
| | | ; |
| | | } |
| | | |
| | | /** |
| | | * 停用 |
| | | */ |
| | | TOrderException.stop = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '停用', |
| | | area: ['45%', '50%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/tOrderException_start_and_stop?id='+id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 启动 |
| | | */ |
| | | TOrderException.start = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '启用', |
| | | area: ['45%', '50%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/tOrderException_start_and_stop?id='+id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 提交启用冻结 |
| | | */ |
| | | TOrderException.updateStatus = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tAppUser/update-status", function (data) { |
| | | Feng.success("修改成功!"); |
| | | TOrderInfoDlg.closeException(); |
| | | parent.TOrderException.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("id",$("#id").val()); |
| | | ajax.set("status",$("#status").val()); |
| | | if($("#status").val() == 1){ |
| | | ajax.set("remark",$("#stopRemark").val()); |
| | | } |
| | | if($("#status").val() == 2){ |
| | | ajax.set("remark",$("#startRemark").val()); |
| | | } |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 取消订单页面 |
| | | */ |
| | | TOrderException.cancelOrder = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '取消订单', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tOrder/cancelOrder' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TOrderException.search = function () { |
| | | var queryData = {}; |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['code'] = $("#code").val(); |
| | | queryData['source'] = $("#source").val(); |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['userPhone'] = $("#userPhone").val(); |
| | | queryData['state'] = $("#state").val(); |
| | | queryData['driverName'] = $("#driverName").val(); |
| | | TOrderException.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TOrderException.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#code").val(''); |
| | | $("#source").val(''); |
| | | $("#userName").val(''); |
| | | $("#userPhone").val(''); |
| | | $("#state").val(''); |
| | | $("#driverName").val(''); |
| | | TOrderException.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TOrderException.initColumn(); |
| | | var table = new BSTable(TOrderException.id, "/tOrder/orderExceptionList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TOrderException.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TOrderExceptionDetailCancelOrder = { |
| | | id: "TOrderExceptionDetailCancelOrderTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TOrderExceptionDetailCancelOrder.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '下单时间', field: 'placeTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '取消时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单编号', field: 'code', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '订单来源', field: 'source', visible: false, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.source === 1){ |
| | | return '<span>小程序</span>' |
| | | }else if (row.source === 2){ |
| | | return '<span>司机创建</span>' |
| | | } |
| | | }}, |
| | | {title: '下单用户昵称', field: 'userName', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '下单用户手机', field: 'userPhone', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '起点地址', field: 'startAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '终点地址', field: 'endAddress', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '接单司机', field: 'driverName', visible: false, align: 'center', valign: 'middle'}, |
| | | |
| | | {title: '司机电话', field: 'driverPhone', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '订单id', field: 'orderId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户类型(1=用户,2=司机)', field: 'userType', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '转单原因', field: 'cause', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '状态(1=正常,2=冻结,3=删除)', field: 'status', visible: false, align: 'center', valign: 'middle'}, |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TOrderExceptionDetailCancelOrder.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TOrderExceptionDetailCancelOrder.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TOrderExceptionDetailCancelOrder.openAddTCancelOrder = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/tCancelOrder_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TOrderExceptionDetailCancelOrder.openTCancelOrderDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/tCancelOrder_update/' + TCancelOrder.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情(使用中) |
| | | */ |
| | | TOrderExceptionDetailCancelOrder.searchTCancelOrderDetail = function (id) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tCancelOrder/cancelOrderDetail?cancelOrderId=' + id |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TOrderExceptionDetailCancelOrder.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tCancelOrder/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TCancelOrder.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tCancelOrderId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | /*TOrderExceptionDetailCancelOrder.search = function () { |
| | | var queryData = {}; |
| | | queryData['userId'] = $("#userId").val(); |
| | | queryData['orderId'] = $("#orderId").val(); |
| | | TOrderExceptionDetailCancelOrder.table.refresh({query: queryData}); |
| | | };*/ |
| | | |
| | | $(function () { |
| | | var defaultColunms = TOrderExceptionDetailCancelOrder.initColumn(); |
| | | var table = new BSTable(TOrderExceptionDetailCancelOrder.id, "/tCancelOrder/userCancelOrderList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TOrderExceptionDetailCancelOrder.table = table.init(); |
| | | }); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | | TOrderInfoDlg.closeException = function() { |
| | | parent.layer.close(window.parent.TOrderException.layerIndex); |
| | | } |
| | | |
| | | /** |
| | | * 收集数据 |
| | | */ |
| | | TOrderInfoDlg.collectData = function() { |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TRechargeRecordAgent = { |
| | | id: "TRechargeRecordAgentTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TRechargeRecordAgent.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '完成支付时间', field: 'payTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '充值时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理商姓名', field: 'principal', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '联系电话', field: 'principalPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '代理区域', field: 'area', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '三方流水号', field: 'orderNumber', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '数据类型(1=用户,2=司机)', field: 'type', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '司机id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '司机姓名', field: 'driverName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '司机手机号', field: 'driverPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '充值金额', field: 'amount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '充值方式', field: 'payType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.payType === 1){ |
| | | return '<span>微信</span>' |
| | | }else if (row.payType === 2){ |
| | | return '<span>系统充值</span>' |
| | | }else{ |
| | | return '<span>其他</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '状态', field: 'payStatus', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.payStatus === 1){ |
| | | return '<span>失败</span>' |
| | | }else if (row.payStatus === 2){ |
| | | return '<span>成功</span>' |
| | | } |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TRechargeRecordAgent.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TRechargeRecordAgent.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TRechargeRecordAgent.openAddTRechargeRecord = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tRechargeRecord/tRechargeRecord_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TRechargeRecordAgent.openTRechargeRecordDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tRechargeRecord/tRechargeRecord_update/' + TRechargeRecordAgent.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TRechargeRecordAgent.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tRechargeRecord/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TRechargeRecordAgent.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tRechargeRecordId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 司机信息导出 |
| | | */ |
| | | TRechargeRecordAgent.export=function(){ |
| | | var createTime=$("#createTime").val() |
| | | var driverName=$("#driverName").val() |
| | | var driverPhone=$("#driverPhone").val() |
| | | window.location.href=Feng.ctxPath + "/tRechargeRecord/exportAgentRecharge?createTime="+createTime |
| | | +"&driverName"+driverName |
| | | +"&driverPhone="+driverPhone |
| | | ; |
| | | } |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TRechargeRecordAgent.search = function () { |
| | | var queryData = {}; |
| | | queryData['driverName'] = $("#driverName").val(); |
| | | queryData['driverPhone'] = $("#driverPhone").val(); |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | TRechargeRecordAgent.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TRechargeRecordAgent.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#driverName").val(''); |
| | | $("#driverPhone").val(''); |
| | | TRechargeRecordAgent.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TRechargeRecordAgent.initColumn(); |
| | | var table = new BSTable(TRechargeRecordAgent.id, "/tRechargeRecord/agentRechargeList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TRechargeRecordAgent.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TRechargeRecordUser = { |
| | | id: "TRechargeRecordUserTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TRechargeRecordUser.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '完成支付时间', field: 'payTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '充值时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '流水ID', field: 'code', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '三方流水号', field: 'orderNumber', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '数据类型(1=用户,2=司机)', field: 'type', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户id', field: 'userId', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '用户姓名', field: 'userName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户手机号', field: 'userPhone', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '充值金额', field: 'amount', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '充值方式', field: 'payType', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.payType === 1){ |
| | | return '<span>微信</span>' |
| | | }else if (row.payType === 2){ |
| | | return '<span>系统充值</span>' |
| | | }else{ |
| | | return '<span>其他</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '状态', field: 'payStatus', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.payStatus === 1){ |
| | | return '<span>失败</span>' |
| | | }else if (row.payStatus === 2){ |
| | | return '<span>成功</span>' |
| | | } |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TRechargeRecordUser.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TRechargeRecordUser.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TRechargeRecordUser.openAddTRechargeRecord = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tRechargeRecord/tRechargeRecord_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TRechargeRecordUser.openTRechargeRecordDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tRechargeRecord/tRechargeRecord_update/' + TRechargeRecordUser.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TRechargeRecordUser.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tRechargeRecord/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TRechargeRecordUser.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tRechargeRecordId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 司机信息导出 |
| | | */ |
| | | TRechargeRecordUser.export=function(){ |
| | | var createTime=$("#createTime").val() |
| | | var userName=$("#userName").val() |
| | | var userPhone=$("#userPhone").val() |
| | | var code=$("#code").val() |
| | | window.location.href=Feng.ctxPath + "/tRechargeRecord/exportUserRecharge?createTime="+createTime |
| | | +"&userName="+userName |
| | | +"&userPhone="+userPhone |
| | | +"&code="+code |
| | | ; |
| | | } |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TRechargeRecordUser.search = function () { |
| | | var queryData = {}; |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['userPhone'] = $("#userPhone").val(); |
| | | queryData['code'] = $("#code").val(); |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | TRechargeRecordUser.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TRechargeRecordUser.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#userName").val(''); |
| | | $("#userPhone").val(''); |
| | | $("#code").val(''); |
| | | TRechargeRecordUser.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TRechargeRecordUser.initColumn(); |
| | | var table = new BSTable(TRechargeRecordUser.id, "/tRechargeRecord/userRechargeList", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TRechargeRecordUser.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TSystemConfig = { |
| | | id: "TSystemConfigTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TSystemConfig.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '类型(1=派单规则,2=佣金分成规则,3=抽成规则,4=积分规则,5=价格规则,6=余额规则,7=客服管理)', field: 'type', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '内容', field: 'content', visible: true, align: 'center', valign: 'middle'} |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TSystemConfig.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TSystemConfig.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TSystemConfig.openAddTSystemConfig = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tSystemConfig/tSystemConfig_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TSystemConfig.openTSystemConfigDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tSystemConfig/tSystemConfig_update/' + TSystemConfig.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TSystemConfig.delete = function () { |
| | | if (this.check()) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/delete", function (data) { |
| | | Feng.success("删除成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tSystemConfigId",this.seItem.id); |
| | | ajax.start(); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 派单规则 |
| | | */ |
| | | TSystemConfig.dispatchRulesSubmit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | 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()); |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",1); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 佣金分成规则 |
| | | */ |
| | | TSystemConfig.commissionShareRules = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | 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()); |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",2); |
| | | ajax.start(); |
| | | }; |
| | | /** |
| | | * 抽成规则 |
| | | */ |
| | | TSystemConfig.extractionRulesSubmit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | var reqData = {}; |
| | | reqData['num1'] = Number($("#num1").val()); |
| | | reqData['num2'] = Number($("#num2").val()); |
| | | reqData['num3'] = Number($("#num3").val()); |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",3); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 积分规则 |
| | | */ |
| | | TSystemConfig.integralRulesSubmit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | var reqData = {}; |
| | | reqData['num1'] = $("#num1").val(); |
| | | reqData['num2'] = $("#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['num8'] = Number($("#num8").val()); |
| | | reqData['num9'] = Number($("#num9").val()); |
| | | reqData['num10'] = Number($("#num10").val()); |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",4); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 价格规则 |
| | | */ |
| | | TSystemConfig.priceRulesSubmit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | |
| | | var json1=[]; |
| | | for (let i = 0; i < $('input[name="num1"]').length; i++) { |
| | | var arr = {} |
| | | arr['num1'] = $($('input[name="num1"]')[i]).val(); |
| | | arr['num2'] = $($('input[name="num2"]')[i]).val(); |
| | | arr['num3'] = Number($($('input[name="num3"]')[i]).val()); |
| | | arr['num4'] = Number($($('input[name="num4"]')[i]).val()); |
| | | arr['num5'] = Number($($('input[name="num5"]')[i]).val()); |
| | | arr['num6'] = Number($($('input[name="num6"]')[i]).val()); |
| | | arr['num7'] = Number($($('input[name="num7"]')[i]).val()); |
| | | arr['num8'] = Number($($('input[name="num8"]')[i]).val()); |
| | | arr['num9'] = Number($($('input[name="num9"]')[i]).val()); |
| | | arr['num10'] = Number($($('input[name="num10"]')[i]).val()); |
| | | arr['num11'] = Number($($('input[name="num11"]')[i]).val()); |
| | | arr['num12'] = Number($($('input[name="num12"]')[i]).val()); |
| | | json1.push(arr) |
| | | } |
| | | |
| | | var ExtraCost = {}; |
| | | ExtraCost['num1'] = Number($('#num13').val()); |
| | | ExtraCost['num2'] = Number($('#num14').val()); |
| | | ExtraCost['num3'] = Number($('#num15').val()); |
| | | ExtraCost['num4'] = Number($('#num16').val()); |
| | | ExtraCost['num5'] = Number($('#num17').val()); |
| | | ExtraCost['num6'] = Number($('#num18').val()); |
| | | ExtraCost['num7'] = Number($('#num19').val()); |
| | | ExtraCost['num8'] = Number($('#num20').val()); |
| | | ExtraCost['num9'] = Number($('#num21').val()); |
| | | |
| | | var reqData = {}; |
| | | reqData['ChargeStandard'] = json1; |
| | | reqData['ExtraCost'] = ExtraCost; |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",5); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 余额规则 |
| | | */ |
| | | TSystemConfig.balanceRulesSubmit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | var reqData = {}; |
| | | reqData['num1'] = Number($("#num1").val()); |
| | | reqData['num2'] = Number($("#num2").val()); |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",6); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 客服管理 |
| | | */ |
| | | TSystemConfig.serviceMgmtSubmit = function () { |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/systemConfigSubmit", function (data) { |
| | | Feng.success("保存成功!"); |
| | | TSystemConfig.table.refresh(); |
| | | }, function (data) { |
| | | Feng.error("保存失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | var reqData = {}; |
| | | reqData['num1'] = $("#num1").val(); |
| | | ajax.set("content",JSON.stringify(reqData)); |
| | | ajax.set("type",7); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | TSystemConfig.addBox = function (){ |
| | | var i = $('input[name="num1"]').length + 1; |
| | | var a ="<div>\n" + |
| | | " <div class=\"initialLevel col-sm-12 control-label form-group\" >\n" + |
| | | " <span class=\"control-label\" >时间段</span>\n" + |
| | | " <input class=\"control-label\" id=\"num1-"+i+"\" name=\"num1\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >——</span>\n" + |
| | | " <input class=\"control-label\" id=\"num2-"+i+"\" name=\"num2\" type=\"text\" placeholder=\"00:00\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >代驾里程</span>\n" + |
| | | " <input class=\"control-label\" id=\"num3-"+i+"\" name=\"num3\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >——</span>\n" + |
| | | " <input class=\"control-label\" id=\"num4-"+i+"\" name=\"num4\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >公里,起步价</span>\n" + |
| | | " <input class=\"control-label\" id=\"num5-"+i+"\" name=\"num5\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >元,超出里程每</span>\n" + |
| | | " <input class=\"control-label\" id=\"num6-"+i+"\" name=\"num6\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >公里,收费</span>\n" + |
| | | " <input class=\"control-label\" id=\"num7-"+i+"\" name=\"num7\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >元</span>\n" + |
| | | " <span class=\"fa fa-remove\" onclick=\"TSystemConfig.delBox(this)\"></span>\n" + |
| | | " </div>\n" + |
| | | " <div class=\"initialLevel col-sm-12 control-label form-group\" >\n" + |
| | | " <span class=\"control-label\" >代驾里程</span>\n" + |
| | | " <input class=\"control-label\" id=\"num8-"+i+"\" name=\"num8\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >——</span>\n" + |
| | | " <input class=\"control-label\" id=\"num9-"+i+"\" name=\"num9\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >公里,起步价</span>\n" + |
| | | " <input class=\"control-label\" id=\"num10-"+i+"\" name=\"num10\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >元,超出里程每</span>\n" + |
| | | " <input class=\"control-label\" id=\"num11-"+i+"\" name=\"num11\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >公里,收费</span>\n" + |
| | | " <input class=\"control-label\" id=\"num12-"+i+"\" name=\"num12\" type=\"number\" style=\"height: 30px;width: 80px\">\n" + |
| | | " <span class=\"control-label\" >元</span>\n" + |
| | | " </div>\n" + |
| | | " </div>" |
| | | |
| | | $("#rules").append($(a)) |
| | | } |
| | | |
| | | TSystemConfig.delBox = function (o) { |
| | | $(o).parent("div").parent("div").remove() |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TSystemConfig.search = function () { |
| | | var queryData = {}; |
| | | queryData['condition'] = $("#condition").val(); |
| | | TSystemConfig.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | $(function () { |
| | | var defaultColunms = TSystemConfig.initColumn(); |
| | | var table = new BSTable(TSystemConfig.id, "/tSystemConfig/list", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TSystemConfig.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TSystemConfigInfoDlg = { |
| | | tSystemConfigInfoData : {} |
| | | }; |
| | | |
| | | /** |
| | | * 清除数据 |
| | | */ |
| | | TSystemConfigInfoDlg.clearData = function() { |
| | | this.tSystemConfigInfoData = {}; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TSystemConfigInfoDlg.set = function(key, val) { |
| | | this.tSystemConfigInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TSystemConfigInfoDlg.get = function(key) { |
| | | return $("#" + key).val(); |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | | TSystemConfigInfoDlg.close = function() { |
| | | parent.layer.close(window.parent.TSystemConfig.layerIndex); |
| | | } |
| | | |
| | | /** |
| | | * 收集数据 |
| | | */ |
| | | TSystemConfigInfoDlg.collectData = function() { |
| | | this |
| | | .set('id') |
| | | .set('type') |
| | | .set('content'); |
| | | } |
| | | |
| | | /** |
| | | * 提交添加 |
| | | */ |
| | | TSystemConfigInfoDlg.addSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/add", function(data){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TSystemConfig.table.refresh(); |
| | | TSystemConfigInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tSystemConfigInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | | TSystemConfigInfoDlg.editSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tSystemConfig/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | | window.parent.TSystemConfig.table.refresh(); |
| | | TSystemConfigInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tSystemConfigInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | $(function() { |
| | | |
| | | }); |
New file |
| | |
| | | /** |
| | | * 管理初始化 |
| | | */ |
| | | var TYouTui = { |
| | | id: "TYouTuiTable", //表格id |
| | | seItem: null, //选中的条目 |
| | | table: null, |
| | | layerIndex: -1 |
| | | }; |
| | | |
| | | /** |
| | | * 初始化表格的列 |
| | | */ |
| | | TYouTui.initColumn = function () { |
| | | return [ |
| | | {field: 'selectItem', radio: true}, |
| | | {title: '主键', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '优推名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '服务类型', field: 'type', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.type === 1){ |
| | | return row.number+'<span>次</span>' |
| | | }else if (row.type === 2){ |
| | | return row.number+'<span>小时</span>' |
| | | } |
| | | } |
| | | }, |
| | | {title: '服务内容', field: 'content', visible: true, align: 'center', valign: 'middle'}, |
| | | {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: 'effectiveTime', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row) { |
| | | if (row.status === 1){ |
| | | return '<span>正常</span>' |
| | | }else if (row.status === 2){ |
| | | 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>' |
| | | }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>' |
| | | } |
| | | } |
| | | } |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 检查是否选中 |
| | | */ |
| | | TYouTui.check = function () { |
| | | var selected = $('#' + this.id).bootstrapTable('getSelections'); |
| | | if(selected.length == 0){ |
| | | Feng.info("请先选中表格中的某一记录!"); |
| | | return false; |
| | | }else{ |
| | | TYouTui.seItem = selected[0]; |
| | | return true; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 点击添加 |
| | | */ |
| | | TYouTui.openAddTYouTui = function () { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '添加', |
| | | area: ['100%', '100%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tYouTui/tYouTui_add' |
| | | }); |
| | | this.layerIndex = index; |
| | | }; |
| | | |
| | | /** |
| | | * 打开查看详情 |
| | | */ |
| | | TYouTui.openTYouTuiDetail = function () { |
| | | if (this.check()) { |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: '详情', |
| | | area: ['800px', '420px'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tYouTui/tYouTui_update/' + TYouTui.seItem.id |
| | | }); |
| | | this.layerIndex = index; |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | TYouTui.delete = function (id) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tYouTui/delete", function (data) { |
| | | if(500 == data.code){ |
| | | Feng.error(data.message); |
| | | return; |
| | | }else { |
| | | Feng.success("删除成功!"); |
| | | TYouTui.table.refresh(); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("删除失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set("tYouTuiId",id); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 提交启用冻结 |
| | | */ |
| | | TYouTui.updateStatus = function (id,status) { |
| | | var ajax = new $ax(Feng.ctxPath + "/tYouTui/update-status?id="+id+'&status='+status, function (data) { |
| | | if(500 == data.code){ |
| | | Feng.error(data.message); |
| | | return; |
| | | }else { |
| | | Feng.success("修改成功!"); |
| | | TYouTui.table.refresh(); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("修改失败!" + data.message + "!"); |
| | | }); |
| | | ajax.start(); |
| | | }; |
| | | |
| | | /** |
| | | * 查询列表 |
| | | */ |
| | | TYouTui.search = function () { |
| | | var queryData = {}; |
| | | queryData['createTime'] = $("#createTime").val(); |
| | | queryData['type'] = $("#type").val(); |
| | | TYouTui.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | /** |
| | | * 重置 |
| | | */ |
| | | TYouTui.resetSearch = function (){ |
| | | $("#createTime").val(''); |
| | | $("#type").val(''); |
| | | TYouTui.search(); |
| | | } |
| | | |
| | | $(function () { |
| | | var defaultColunms = TYouTui.initColumn(); |
| | | var table = new BSTable(TYouTui.id, "/tYouTui/list", defaultColunms); |
| | | table.setPaginationType("client"); |
| | | TYouTui.table = table.init(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * 初始化详情对话框 |
| | | */ |
| | | var TYouTuiInfoDlg = { |
| | | tYouTuiInfoData : {}, |
| | | validateFields: { |
| | | name: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优推名称不能为空' |
| | | } |
| | | } |
| | | }, |
| | | type: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优推类型不能为空' |
| | | } |
| | | } |
| | | }, |
| | | integral: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '兑换条件不能为空' |
| | | } |
| | | } |
| | | }, |
| | | distance: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '优推距离不能为空' |
| | | } |
| | | } |
| | | }, |
| | | effectiveTime: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '有效期不能为空' |
| | | } |
| | | } |
| | | }, |
| | | serviceContent: { |
| | | validators: { |
| | | notEmpty: { |
| | | message: '服务内容不能为空' |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * 验证数据是否为空 |
| | | */ |
| | | TYouTuiInfoDlg.validate = function () { |
| | | $('#youTuiInfoForm').data("bootstrapValidator").resetForm(); |
| | | $('#youTuiInfoForm').bootstrapValidator('validate'); |
| | | return $("#youTuiInfoForm").data('bootstrapValidator').isValid(); |
| | | }; |
| | | |
| | | /** |
| | | * 清除数据 |
| | | */ |
| | | TYouTuiInfoDlg.clearData = function() { |
| | | this.tYouTuiInfoData = {}; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TYouTuiInfoDlg.set = function(key, val) { |
| | | this.tYouTuiInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val; |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 设置对话框中的数据 |
| | | * |
| | | * @param key 数据的名称 |
| | | * @param val 数据的具体值 |
| | | */ |
| | | TYouTuiInfoDlg.get = function(key) { |
| | | return $("#" + key).val(); |
| | | } |
| | | |
| | | /** |
| | | * 关闭此对话框 |
| | | */ |
| | | TYouTuiInfoDlg.close = function() { |
| | | parent.layer.close(window.parent.TYouTui.layerIndex); |
| | | } |
| | | |
| | | /** |
| | | * 收集数据 |
| | | */ |
| | | TYouTuiInfoDlg.collectData = function() { |
| | | this |
| | | .set('id') |
| | | .set('name') |
| | | .set('type') |
| | | .set('number') |
| | | .set('integral') |
| | | .set('effectiveTime') |
| | | .set('content') |
| | | .set('status') |
| | | .set('distance') |
| | | .set('serviceContent') |
| | | .set('createTime'); |
| | | } |
| | | |
| | | /** |
| | | * 提交添加 |
| | | */ |
| | | TYouTuiInfoDlg.addSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | if(!this.validate()){ |
| | | return ; |
| | | } |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tYouTui/add", function(data){ |
| | | Feng.success("添加成功!"); |
| | | window.parent.TYouTui.table.refresh(); |
| | | TYouTuiInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("添加失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tYouTuiInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | | TYouTuiInfoDlg.editSubmit = function() { |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | //提交信息 |
| | | var ajax = new $ax(Feng.ctxPath + "/tYouTui/update", function(data){ |
| | | Feng.success("修改成功!"); |
| | | window.parent.TYouTui.table.refresh(); |
| | | TYouTuiInfoDlg.close(); |
| | | },function(data){ |
| | | Feng.error("修改失败!" + data.responseJSON.message + "!"); |
| | | }); |
| | | ajax.set(this.tYouTuiInfoData); |
| | | ajax.start(); |
| | | } |
| | | |
| | | $(function() { |
| | | Feng.initValidator("youTuiInfoForm", TYouTuiInfoDlg.validateFields); |
| | | }); |