From adb18caa714692ccabf111ae3ab3481bf04844d4 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 28 二月 2023 18:03:01 +0800 Subject: [PATCH] 订单管理,优惠券管理 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java | 47 ++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java | 12 management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tAppUserException.js | 1 management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluate.html | 40 ++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEvaluateMapper.java | 18 + management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html | 12 management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html | 12 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAppUserController.java | 19 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITEvaluateService.java | 21 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEvaluateServiceImpl.java | 83 +++++ management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tCoupon.js | 35 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEvaluateMapper.xml | 23 + management/guns-admin/src/main/webapp/static/modular/system/tEvaluate/tEvaluate.js | 89 +++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/req/CouponSendReq.java | 10 management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js | 101 ++++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TEvaluateController.java | 88 +++++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluateDetail.html | 161 ++++++++++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCouponException.html | 3 management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js | 26 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java | 26 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TEvaluateResp.java | 62 ++++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCoupon.html | 3 22 files changed, 821 insertions(+), 71 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAppUserController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAppUserController.java index 2e10b03..f707d54 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAppUserController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TAppUserController.java @@ -11,9 +11,11 @@ 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; @@ -54,6 +56,8 @@ private ITCouponService tCouponService; @Autowired private ITOrderService tOrderService; + @Autowired + private ITUserToCouponService tUserToCouponService; /** * 跳转到首页 @@ -176,10 +180,17 @@ 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())) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java index e1535ec..b0d0eac 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java @@ -6,6 +6,8 @@ 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.TUserToCoupon; +import com.stylefeng.guns.modular.system.service.ITUserToCouponService; import io.swagger.annotations.ApiOperation; import org.springframework.stereotype.Controller; import org.springframework.util.Assert; @@ -21,6 +23,8 @@ 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.*; /** @@ -37,6 +41,8 @@ @Autowired private ITCouponService tCouponService; + @Autowired + private ITUserToCouponService tUserToCouponService; /** * 跳转到首页 @@ -86,8 +92,22 @@ 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); } @@ -154,8 +174,27 @@ 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<>(); @@ -186,7 +225,7 @@ } if(!CollectionUtils.isEmpty(tCouponList)){ tCouponService.updateBatchById(tCouponList); - } + }*/ return SUCCESS_TIP; } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TEvaluateController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TEvaluateController.java index 0231b74..ce46553 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TEvaluateController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TEvaluateController.java @@ -1,6 +1,12 @@ 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; @@ -11,6 +17,16 @@ 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; /** * 控制器 @@ -55,11 +71,29 @@ } /** + * 跳转详情页面 + */ + @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 condition) { + 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); } @@ -101,4 +135,56 @@ 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(); + } + } } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/req/CouponSendReq.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/req/CouponSendReq.java index 8b1224e..f662389 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/req/CouponSendReq.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/req/CouponSendReq.java @@ -14,6 +14,16 @@ @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; diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TEvaluateResp.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TEvaluateResp.java new file mode 100644 index 0000000..4a72566 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/resp/TEvaluateResp.java @@ -0,0 +1,62 @@ +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; + + 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; + } +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEvaluateMapper.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEvaluateMapper.java index f5e2cef..a743632 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEvaluateMapper.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TEvaluateMapper.java @@ -1,7 +1,12 @@ 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> @@ -11,6 +16,19 @@ * @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); } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEvaluateMapper.xml b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEvaluateMapper.xml index 599ff44..30feff1 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEvaluateMapper.xml +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TEvaluateMapper.xml @@ -17,5 +17,28 @@ <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,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> diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java index d2b091b..18c8ffc 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCoupon.java @@ -89,6 +89,18 @@ @TableField("coupon_state") private Integer couponState; + @ApiModelProperty(value = "优惠券数量") + @TableField("coupon_count") + private Integer couponCount; + + public Integer getCouponCount() { + return couponCount; + } + + public void setCouponCount(Integer couponCount) { + this.couponCount = couponCount; + } + public Integer getAgentId() { return agentId; } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITEvaluateService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITEvaluateService.java index 0eb7ac5..3d49a25 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITEvaluateService.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITEvaluateService.java @@ -1,7 +1,11 @@ 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> @@ -13,4 +17,21 @@ */ 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); } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java index a151726..05ac136 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TAppUserServiceImpl.java @@ -4,12 +4,14 @@ 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; @@ -42,6 +44,8 @@ private TCouponMapper tCouponMapper; @Autowired private TOrderMapper tOrderMapper; + @Autowired + private TUserToCouponMapper tUserToCouponMapper; @Override public void detail(Integer tAppUserId, Model model) { @@ -57,14 +61,20 @@ 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)){ diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEvaluateServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEvaluateServiceImpl.java index 5dabc97..7aaa6bd 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEvaluateServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TEvaluateServiceImpl.java @@ -1,10 +1,18 @@ package com.stylefeng.guns.modular.system.service.impl; -import com.stylefeng.guns.modular.system.model.TEvaluate; -import com.stylefeng.guns.modular.system.dao.TEvaluateMapper; +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; /** * <p> @@ -17,4 +25,75 @@ @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]; + } + return tEvaluateMapper.selectPageList(startTime,endTime,userName,driverName,orderType,score); + } + + @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",""); + } + + } } diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCoupon.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCoupon.html index 2146c3f..ced25a0 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCoupon.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCoupon.html @@ -11,7 +11,7 @@ <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()"/> @@ -28,7 +28,6 @@ </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> @} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCouponException.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCouponException.html index 108d236..bc1891e 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCouponException.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tAppUser/tCouponException.html @@ -11,7 +11,7 @@ <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()"/> @@ -28,7 +28,6 @@ </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> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html index f65db61..2d4d775 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_add.html @@ -5,7 +5,7 @@ <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"> @@ -22,12 +22,12 @@ <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> @@ -35,12 +35,12 @@ <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> @@ -77,7 +77,7 @@ <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> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html index 6bae198..733f5cc 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tDriver/tDriver_edit.html @@ -5,7 +5,7 @@ <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}"/> @@ -22,12 +22,12 @@ <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> @@ -35,12 +35,12 @@ <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> @@ -77,7 +77,7 @@ <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> diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluate.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluate.html index a85e4e9..47aaa96 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluate.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluate.html @@ -9,11 +9,38 @@ <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"> + <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"> @@ -35,4 +62,11 @@ </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> @} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluateDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluateDetail.html new file mode 100644 index 0000000..3fc7c19 --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tEvaluate/tEvaluateDetail.html @@ -0,0 +1,161 @@ +@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> +@} diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tAppUserException.js b/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tAppUserException.js index f607262..b5c7014 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tAppUserException.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tAppUserException.js @@ -249,6 +249,7 @@ }); ajax.setData({ userIds:$("#userIds").val(), + couponId:TCoupon.seItem.id, couponName:TCoupon.seItem.couponName }) ajax.start(); diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tCoupon.js b/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tCoupon.js index 2b6198e..df9f65a 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tCoupon.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tAppUser/tCoupon.js @@ -14,17 +14,31 @@ 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'} ]; }; @@ -104,6 +118,7 @@ }); ajax.setData({ userIds:$("#userIds").val(), + couponId:this.seItem.id, couponName:this.seItem.couponName }) ajax.start(); @@ -133,13 +148,13 @@ */ 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(); }); diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js b/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js index 2041f60..01dae4c 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js @@ -14,9 +14,16 @@ 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){ @@ -26,8 +33,8 @@ } } }, - {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>' @@ -40,17 +47,10 @@ } } }, - {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'}, + {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){ diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js index ab958df..625223d 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriver_info.js @@ -2,7 +2,60 @@ * 初始化详情对话框 */ 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(); }; /** @@ -91,6 +144,28 @@ 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){ @@ -115,6 +190,28 @@ 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){ @@ -132,5 +229,5 @@ } $(function() { - + Feng.initValidator("driverInfoForm", TDriverInfoDlg.validateFields); }); diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tEvaluate/tEvaluate.js b/management/guns-admin/src/main/webapp/static/modular/system/tEvaluate/tEvaluate.js index ad138fe..0fe960c 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tEvaluate/tEvaluate.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tEvaluate/tEvaluate.js @@ -14,13 +14,38 @@ TEvaluate.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: '用户id', field: 'userId', visible: true, align: 'center', valign: 'middle'}, - {title: '评分', field: 'score', visible: true, align: 'center', valign: 'middle'}, - {title: '评价内容', field: 'evaluate', 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: '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>' + } + } ]; }; @@ -71,6 +96,21 @@ }; /** + * 打开查看详情(使用中) + */ +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 () { @@ -87,14 +127,47 @@ }; /** + * 订单信息导出 + */ +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['condition'] = $("#condition").val(); + 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); -- Gitblit v1.7.1