From 2fa574ff399acc86528ebe8dd916e6866a3b7df7 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 01 三月 2023 18:01:24 +0800 Subject: [PATCH] 订单管理详情,优推管理 --- management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TYouTuiMapper.java | 16 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserToCouponMapper.xml | 22 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TYouTuiMapper.xml | 23 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCancelOrderServiceImpl.java | 22 management/guns-admin/src/main/webapp/static/modular/system/tOrder/tCancelOrder.js | 17 management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon_info.js | 68 + management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui.js | 166 ++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TYouTuiServiceImpl.java | 20 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderService.java | 15 management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderException.js | 19 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TUserToCouponMapper.java | 18 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java | 63 + management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TUserToCouponServiceImpl.java | 20 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html | 190 +++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java | 18 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TYouTui.java | 176 ++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCouponController.java | 29 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java | 11 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCancelOrderMapper.xml | 15 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITUserToCouponService.java | 16 management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderExceptionDetailCancelOrder.js | 137 +++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TYouTuiController.java | 157 ++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITYouTuiService.java | 16 management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui_info.js | 160 ++++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html | 23 management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon.js | 40 management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html | 186 ++++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tCancelOrder/tCancelOrderDetail.html | 212 +++++ management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCancelOrderController.java | 18 management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js | 17 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TCancelOrderMapper.java | 8 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITCancelOrderService.java | 14 management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TUserToCoupon.java | 152 ++++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui.html | 53 + management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_add.html | 79 ++ management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_edit.html | 34 36 files changed, 2,223 insertions(+), 27 deletions(-) diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCancelOrderController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCancelOrderController.java index 0ead608..f1cc996 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCancelOrderController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCancelOrderController.java @@ -68,6 +68,15 @@ } /** + * 跳转详情页面 + */ + @RequestMapping("/cancelOrderDetail") + public String cancelOrderDetail(Integer cancelOrderId, Model model) { + tCancelOrderService.cancelOrderDetail(cancelOrderId,model); + return PREFIX + "tCancelOrderDetail.html"; + } + + /** * 获取列表 */ @RequestMapping(value = "/list") @@ -91,6 +100,15 @@ 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); + } /** * 新增 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 b0d0eac..3d745de 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,9 +6,11 @@ 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; @@ -146,6 +148,33 @@ } /** + * 修改优惠券状态 + */ + @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") diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java index 32062da..8fb8b15 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TOrderController.java @@ -122,6 +122,24 @@ } /** + * 跳转详情页面 + */ + @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 = "用户获取订单列表") diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TYouTuiController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TYouTuiController.java new file mode 100644 index 0000000..98c1b9c --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TYouTuiController.java @@ -0,0 +1,157 @@ +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); + } +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TCancelOrderMapper.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TCancelOrderMapper.java index a26731a..b4ef7d7 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TCancelOrderMapper.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TCancelOrderMapper.java @@ -34,4 +34,12 @@ 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 userId + * @param orderId + * @return + */ + List<TOrderResp> userCancelOrderList(@Param("userId") Integer userId,@Param("orderId") Integer orderId); } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TUserToCouponMapper.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TUserToCouponMapper.java new file mode 100644 index 0000000..2f3614a --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TUserToCouponMapper.java @@ -0,0 +1,18 @@ +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> { + +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TYouTuiMapper.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TYouTuiMapper.java new file mode 100644 index 0000000..a5eef6e --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TYouTuiMapper.java @@ -0,0 +1,16 @@ +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> { + +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCancelOrderMapper.xml b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCancelOrderMapper.xml index 07a3a5a..6d11c18 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCancelOrderMapper.xml +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TCancelOrderMapper.xml @@ -55,5 +55,20 @@ </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> diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserToCouponMapper.xml b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserToCouponMapper.xml new file mode 100644 index 0000000..9032559 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TUserToCouponMapper.xml @@ -0,0 +1,22 @@ +<?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> diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TYouTuiMapper.xml b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TYouTuiMapper.xml new file mode 100644 index 0000000..4e2ef0c --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TYouTuiMapper.xml @@ -0,0 +1,23 @@ +<?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> diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java index 4825eed..6f06c4e 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrder.java @@ -177,6 +177,17 @@ @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; } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TUserToCoupon.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TUserToCoupon.java new file mode 100644 index 0000000..bb3e385 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TUserToCoupon.java @@ -0,0 +1,152 @@ +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 + + "}"; + } +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TYouTui.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TYouTui.java new file mode 100644 index 0000000..3378d21 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TYouTui.java @@ -0,0 +1,176 @@ +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 + + "}"; + } +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITCancelOrderService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITCancelOrderService.java index ea763d0..24da899 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITCancelOrderService.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITCancelOrderService.java @@ -3,6 +3,7 @@ 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; @@ -30,4 +31,17 @@ */ 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); } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderService.java index 0d6137e..a8306be 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderService.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderService.java @@ -4,6 +4,7 @@ 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; @@ -29,4 +30,18 @@ * @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); } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITUserToCouponService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITUserToCouponService.java new file mode 100644 index 0000000..ae02f6b --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITUserToCouponService.java @@ -0,0 +1,16 @@ +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> { + +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITYouTuiService.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITYouTuiService.java new file mode 100644 index 0000000..6693957 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITYouTuiService.java @@ -0,0 +1,16 @@ +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> { + +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCancelOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCancelOrderServiceImpl.java index 3dc40f4..ac11d5a 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCancelOrderServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCancelOrderServiceImpl.java @@ -5,10 +5,13 @@ 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; /** @@ -24,6 +27,8 @@ @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) { @@ -37,4 +42,21 @@ } return tCancelOrderMapper.getCancelOrderList(startTime,endTime,code,source,userName,userPhone,state,driverName); } + + @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); + } } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java index 955b9d1..0cb939b 100644 --- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java @@ -3,16 +3,25 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; 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.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Objects; /** * <p> @@ -27,6 +36,12 @@ @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) { @@ -40,4 +55,52 @@ } return tOrderMapper.getOrderList(startTime,endTime,code,source,userName,userPhone,state,driverName,isException); } + + @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()); + + // 查询司机 + 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); + } } diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TUserToCouponServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TUserToCouponServiceImpl.java new file mode 100644 index 0000000..57f4690 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TUserToCouponServiceImpl.java @@ -0,0 +1,20 @@ +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 { + +} diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TYouTuiServiceImpl.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TYouTuiServiceImpl.java new file mode 100644 index 0000000..3398614 --- /dev/null +++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TYouTuiServiceImpl.java @@ -0,0 +1,20 @@ +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 { + +} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCancelOrder/tCancelOrderDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCancelOrder/tCancelOrderDetail.html new file mode 100644 index 0000000..3d35322 --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCancelOrder/tCancelOrderDetail.html @@ -0,0 +1,212 @@ +@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> +@} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html index 9487e9f..f0d130d 100644 --- a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tCoupon/tCoupon_add.html @@ -1,14 +1,14 @@ @layout("/common/_container.html"){ <div class="ibox float-e-margins"> <div class="ibox-content"> - <div class="form-horizontal"> + <div class="form-horizontal" id="couponInfoForm"> <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"> + <input class="form-control" id="couponName" name="couponName" type="text" required> </div> </div> <div class="hr-line-dashed"></div> @@ -17,9 +17,10 @@ <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"> + <select class="input-group col-sm-6" id="couponType" name="couponType" required> + <option value="">请选择优惠券类型</option> <option value="1">活动券</option> - <option value="2">优惠券</option> + <option value="2">新人券</option> </select> </div> <div class="hr-line-dashed"></div> @@ -28,7 +29,8 @@ <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"> + <select class="input-group col-sm-6" id="couponServiceType" name="couponServiceType" required> + <option value="">请选择服务类型</option> <option value="1">通用型</option> </select> </div> @@ -39,7 +41,7 @@ <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"> + <input class="form-control" id="couponCount" name="couponCount" type="text" required> </div> </div> <div class="hr-line-dashed"></div> @@ -49,7 +51,7 @@ <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"> + <input class="form-control" id="couponConditionalAmount" name="couponConditionalAmount" type="text" required> </div> <label class="col-sm-2 control-label">可使用</label> </div> @@ -60,7 +62,7 @@ <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"> + <input class="form-control" id="couponPreferentialAmount" name="couponPreferentialAmount" type="text" required> </div> </div> <div class="hr-line-dashed"></div> @@ -70,7 +72,7 @@ <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"> + <input class="form-control" id="couponValidity" name="couponValidity" type="text" required> </div> <label class="col-sm-1 control-label">天</label> </div> @@ -87,6 +89,7 @@ </div> <div class="hr-line-dashed"></div> </div> + </div> <div class="row btn-group-m-t"> @@ -100,4 +103,6 @@ </div> </div> <script src="${ctxPath}/static/modular/system/tCoupon/tCoupon_info.js"></script> +<script type="text/javascript"> +</script> @} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html new file mode 100644 index 0000000..137a268 --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderDetail.html @@ -0,0 +1,186 @@ +@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> + + <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> +@} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html new file mode 100644 index 0000000..7d16ff4 --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tOrder/tOrderExceptionDetail.html @@ -0,0 +1,190 @@ +@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> +@} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui.html new file mode 100644 index 0000000..ec6a562 --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui.html @@ -0,0 +1,53 @@ +@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> +@} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_add.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_add.html new file mode 100644 index 0000000..1179a3f --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_add.html @@ -0,0 +1,79 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="youTuiInfoForm"> + + <div class="row" style="text-align: left"> + <div class="col-sm-12"> + <input hidden id="areaId" value="areaId"> + <div class="initialLevel col-sm-12 control-label form-group" style="text-align: center"> + <div class="initialLevel col-sm-6 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-6 control-label form-group" style="flex: auto" > + <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> + <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-6 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> + <label>积分</label> + </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> + <label class="control-label" >优推距离:</label> + <input id="distance" name="distance" type="number" placeholder="最多2000米" max="2000" style="height: 30px" required> + <label>米</label> + </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> + <label class="control-label" >有效期:</label> + <input id="effectiveTime" name="effectiveTime" maxlength="4" placeholder="最多4位数" type="number" style="height: 30px" required> + <label>天</label> + </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> + <label class="control-label" >服务内容:</label> + <textarea id="serviceContent" name="serviceContent" placeholder="请输入" style="height: 80px" required></textarea> + </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> +<script src="${ctxPath}/static/modular/system/tYouTui/tYouTui_info.js"></script> +@} diff --git a/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_edit.html b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_edit.html new file mode 100644 index 0000000..d92f6b2 --- /dev/null +++ b/management/guns-admin/src/main/webapp/WEB-INF/view/system/tYouTui/tYouTui_edit.html @@ -0,0 +1,34 @@ +@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> +@} 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 01dae4c..3b17e48 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 @@ -64,10 +64,10 @@ {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>' } } @@ -124,17 +124,33 @@ /** * 删除 */ -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(); }; /** diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon_info.js index 5fc5939..635bcba 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon_info.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tCoupon/tCoupon_info.js @@ -2,7 +2,67 @@ * 初始化详情对话框 */ 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: '有效期不能为空' + } + } + }, + } +}; + +/** + * 验证数据是否为空 + */ +TCouponInfoDlg.validate = function () { + $('#couponInfoForm').data("bootstrapValidator").resetForm(); + $('#couponInfoForm').bootstrapValidator('validate'); + return $("#couponInfoForm").data('bootstrapValidator').isValid(); }; /** @@ -65,6 +125,10 @@ this.clearData(); this.collectData(); + if(!this.validate()){ + return ; + } + //提交信息 var ajax = new $ax(Feng.ctxPath + "/tCoupon/add", function(data){ Feng.success("添加成功!"); @@ -98,5 +162,5 @@ } $(function() { - + Feng.initValidator("couponInfoForm", TCouponInfoDlg.validateFields); }); diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tCancelOrder.js b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tCancelOrder.js index ac9cc8d..dc2e55e 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tCancelOrder.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tCancelOrder.js @@ -41,7 +41,7 @@ {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.searchTDriverDetail('+row.id+')" style="color:green">详情</a>' + return '<a href="#" onclick="TCancelOrder.searchTCancelOrderDetail('+row.id+')" style="color:green">详情</a>' } } ]; @@ -94,6 +94,21 @@ }; /** + * 打开查看详情(使用中) + */ +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 () { diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js index 33033c4..165e28f 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrder.js @@ -81,7 +81,7 @@ {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.searchTDriverDetail('+row.id+')" style="color:green">详情</a>' + return '<a href="#" onclick="TOrder.searchTOrderDetail('+row.id+')" style="color:green">详情</a>' } } ]; @@ -134,6 +134,21 @@ }; /** + * 打开查看详情(使用中) + */ +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 () { diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderException.js b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderException.js index e2ed33a..1765d0a 100644 --- a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderException.js +++ b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderException.js @@ -82,10 +82,10 @@ {title: '操作', visible: true, align: 'center', valign: 'middle',width:150, formatter: function (value, row) { if (row.userStatus === 1){ - return '<a href="#" onclick="TOrderException.searchTDriverDetail('+row.id+')" style="color:green">详情</a>' +' ' + + 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.searchTDriverDetail('+row.id+')" style="color:green">详情</a>' +' ' + + 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>' } } @@ -140,6 +140,21 @@ }; /** + * 打开查看详情(使用中) + */ +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 () { diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderExceptionDetailCancelOrder.js b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderExceptionDetailCancelOrder.js new file mode 100644 index 0000000..8fd43c5 --- /dev/null +++ b/management/guns-admin/src/main/webapp/static/modular/system/tOrder/tOrderExceptionDetailCancelOrder.js @@ -0,0 +1,137 @@ +/** + * 管理初始化 + */ +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(); +}); diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui.js b/management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui.js new file mode 100644 index 0000000..59da50f --- /dev/null +++ b/management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui.js @@ -0,0 +1,166 @@ +/** + * 管理初始化 + */ +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(); +}); diff --git a/management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui_info.js b/management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui_info.js new file mode 100644 index 0000000..bd32ace --- /dev/null +++ b/management/guns-admin/src/main/webapp/static/modular/system/tYouTui/tYouTui_info.js @@ -0,0 +1,160 @@ +/** + * 初始化详情对话框 + */ +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); +}); -- Gitblit v1.7.1