| | |
| | | import cc.mrbird.febs.pay.util.WechatConfigure; |
| | | import cc.mrbird.febs.system.entity.Dept; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | |
| | | */ |
| | | @GetMapping("orderList") |
| | | public FebsResponse getOrderList(MallOrderInfoDto mallOrderInfo, QueryRequest request) { |
| | | String startTime = mallOrderInfo.getStartTime(); |
| | | String endTime = mallOrderInfo.getEndTime(); |
| | | if(StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){ |
| | | DateTime dateStartTime= DateUtil.parseDate(startTime); |
| | | DateTime dateEndTime = DateUtil.parseDate(endTime); |
| | | int compare = DateUtil.compare(dateStartTime, dateEndTime); |
| | | if(compare >= 0){ |
| | | return new FebsResponse().fail().message("请输入正确的开始时间和结束时间"); |
| | | } |
| | | } |
| | | Map<String, Object> data = getDataTable(adminMallOrderService.getOrderListInPage(mallOrderInfo, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | |
| | | long orderId = Long.parseLong(id); |
| | | MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId); |
| | | if(ObjectUtil.isEmpty(mallOrderInfo)){ |
| | | continue; |
| | | // return new FebsResponse().fail().message("订单不存在"); |
| | | // continue; |
| | | return new FebsResponse().fail().message("订单不存在"); |
| | | } |
| | | Integer status = mallOrderInfo.getStatus() == null ? 0 : mallOrderInfo.getStatus(); |
| | | Integer deliveryState = mallOrderInfo.getDeliveryState() == null ? 0 : mallOrderInfo.getDeliveryState(); |
| | | if(OrderStatusEnum.WAIT_FINISH.getValue() != status || 2 != deliveryState){ |
| | | continue; |
| | | // return new FebsResponse().fail().message("订单不是待确认到货状态"); |
| | | // continue; |
| | | return new FebsResponse().fail().message("配送状态不是配送中状态"); |
| | | } |
| | | mallOrderInfo.setDeliveryState(OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()); |
| | | mallOrderInfoMapper.updateById(mallOrderInfo); |
| | |
| | | orderStateDto.setOrderNo(mallOrderInfo.getOrderNo()); |
| | | String productNames = getProductNames(mallOrderInfo.getMemberId(), mallOrderInfo.getId()); |
| | | orderStateDto.setGoodsName(StrUtil.sub(productNames,0,10)+"..."); |
| | | orderStateDto.setOrderState("已送达"); |
| | | orderStateDto.setOrderState("待自提"); |
| | | orderStateDto.setTakeCode(mallOrderInfo.getTakeCode()); |
| | | String takeUniqueCode = mallOrderInfo.getTakeUniqueCode(); |
| | | MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); |
| | | orderStateDto.setAddressArea(StrUtil.sub(mallTeamLeader.getAddressArea(),0,10)+"..."); |
| | | orderStateDto.setDetailAddress(StrUtil.sub(mallTeamLeader.getDetailAddress(),0,10)+"..."); |
| | | orderStateDto.setAmount(mallOrderInfo.getAmount().toString()); |
| | | orderStateDto.setOpenId(mallMemberMapper.selectById(mallOrderInfo.getMemberId()).getOpenId()); |
| | | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getCode()); |
| | | orderStateDto.setTemplateId(dataDictionaryCustom.getValue()); |
| | | // iXcxPayService.pushOrderToAddress(orderStateDto); |
| | | iXcxPayService.uniformMessageSend(orderStateDto); |
| | | iXcxPayService.pushOrderToAddress(orderStateDto); |
| | | // iXcxPayService.uniformMessageSend(orderStateDto); |
| | | } |
| | | return new FebsResponse().success(); |
| | | } |
| | |
| | | private Integer deliveryType; |
| | | |
| | | private String uniqueCode; |
| | | |
| | | private String startTime; |
| | | |
| | | private String endTime; |
| | | |
| | | } |
| | |
| | | |
| | | private String image; |
| | | |
| | | private Integer indexNum; |
| | | |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.BaseEntity; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @TableName("mall_refund") |
| | |
| | | @TableField(exist = false) |
| | | private String[] refundPicList; |
| | | |
| | | @TableField(exist = false) |
| | | private String refundMemberName; |
| | | @TableField(exist = false) |
| | | private String refundMemberPhone; |
| | | |
| | | @TableField(exist = false) |
| | | private String leaderName; |
| | | @TableField(exist = false) |
| | | private String leaderPhone; |
| | | |
| | | @TableField(exist = false) |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date orderTime; |
| | | |
| | | } |
| | |
| | | MallGoodsCategory mallGoodsCategory = mallGoodsCategoryMapper.selectById(id); |
| | | mallGoodsCategory.setName(mallGoodsCategoryParam.getName()); |
| | | mallGoodsCategory.setImage(mallGoodsCategoryParam.getImage()); |
| | | mallGoodsCategory.setIndexNum(mallGoodsCategoryParam.getIndexNum()); |
| | | if(ObjectUtil.isNotEmpty(mallGoodsCategoryParam.getParentId())){ |
| | | Long parentId = mallGoodsCategoryParam.getParentId(); |
| | | MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId); |
| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.mall.conversion.MallTeamLeaderConversion; |
| | | import cc.mrbird.febs.mall.dto.AdminLeaderAddDto; |
| | | import cc.mrbird.febs.mall.dto.AdminLeaderUpdateDto; |
| | |
| | | import cc.mrbird.febs.mall.entity.MallLeaderStock; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.entity.MallTeamLeader; |
| | | import cc.mrbird.febs.mall.mapper.MallGoodsMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallLeaderStockMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallTeamLeaderMapper; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService; |
| | | import cc.mrbird.febs.mall.vo.AdminMallActSetVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | |
| | | private final MallLeaderStockMapper mallLeaderStockMapper; |
| | | private final MallGoodsMapper mallGoodsMapper; |
| | | private final MallMemberMapper mallMemberMapper; |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | |
| | | @Override |
| | | public IPage<AdminMallTeamLeaderVo> getLeaderListInPage(MallTeamLeader mallTeamLeader, QueryRequest request) { |
| | | Page<AdminMallTeamLeaderVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminMallTeamLeaderVo> adminMallActSetVos = this.baseMapper.selectLeaderListInPage(page, mallTeamLeader); |
| | | |
| | | List<AdminMallTeamLeaderVo> records = adminMallActSetVos.getRecords(); |
| | | if(CollUtil.isNotEmpty(adminMallActSetVos.getRecords())){ |
| | | for(AdminMallTeamLeaderVo adminMallTeamLeaderVo : records){ |
| | | BigDecimal totalProfit = mallMoneyFlowMapper.selectAmountByFlowtypeAndType(adminMallTeamLeaderVo.getMemberId(), |
| | | FlowTypeEnum.BALANCE.getValue(), MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), |
| | | null,null,null).setScale(2,BigDecimal.ROUND_DOWN); |
| | | adminMallTeamLeaderVo.setTotalProfit(totalProfit); |
| | | } |
| | | } |
| | | |
| | | |
| | | return adminMallActSetVos; |
| | | } |
| | | |
| | |
| | | orderStateDto.setOrderNo(mallOrderInfo.getOrderNo()); |
| | | String productNames = getProductNames(mallOrderInfo.getMemberId(), mallOrderInfo.getId()); |
| | | orderStateDto.setGoodsName(StrUtil.sub(productNames,0,10)+"..."); |
| | | orderStateDto.setOrderState("已送达"); |
| | | orderStateDto.setOrderState("待自提"); |
| | | orderStateDto.setTakeCode(mallOrderInfo.getTakeCode()); |
| | | String takeUniqueCode = mallOrderInfo.getTakeUniqueCode(); |
| | | MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode); |
| | | orderStateDto.setAddressArea(StrUtil.sub(mallTeamLeader.getAddressArea(),0,10)+"..."); |
| | | orderStateDto.setDetailAddress(StrUtil.sub(mallTeamLeader.getDetailAddress(),0,10)+"..."); |
| | | orderStateDto.setOpenId(mallMemberMapper.selectById(mallOrderInfo.getMemberId()).getOpenId()); |
| | | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_ONE.getCode()); |
| | | orderStateDto.setTemplateId(dataDictionaryCustom.getValue()); |
| | |
| | | |
| | | private Integer isRecommend; |
| | | |
| | | private Integer indexNum; |
| | | |
| | | } |
| | |
| | | private Integer deliveryState; |
| | | //是否送货上门 1:是 2:否 |
| | | private Integer isHome; |
| | | //团长姓名 |
| | | private String leaderName; |
| | | } |
| | |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | |
| | | private Double latitude; |
| | | |
| | | private Date createdTime; |
| | | //团战提成收益 |
| | | private BigDecimal totalProfit; |
| | | } |
| | |
| | | private String orderState; |
| | | //自提点名称 |
| | | private String addressArea; |
| | | //自提点地址 |
| | | private String detailAddress; |
| | | //取货号 |
| | | private String takeCode; |
| | | //金额 |
| | |
| | | orderStateMsgVo.setTemplate_id(info.getTemplateId());//订阅消息模板id |
| | | orderStateMsgVo.setPage(info.getPage()); |
| | | Map<String, WxTemplateData> m = new HashMap<>(4); |
| | | m.put("character_string2", new WxTemplateData(info.getOrderNo())); |
| | | m.put("thing11", new WxTemplateData(info.getGoodsName())); |
| | | m.put("amount1", new WxTemplateData(info.getAmount())); |
| | | m.put("character_string9", new WxTemplateData(info.getTakeCode())); |
| | | m.put("phrase1", new WxTemplateData(info.getOrderState())); |
| | | m.put("thing2", new WxTemplateData(info.getAddressArea())); |
| | | m.put("thing3", new WxTemplateData(info.getDetailAddress())); |
| | | m.put("thing6", new WxTemplateData(info.getGoodsName())); |
| | | m.put("character_string11", new WxTemplateData(info.getTakeCode())); |
| | | orderStateMsgVo.setData(m); |
| | | String s = JSONUtil.toJsonStr(orderStateMsgVo); |
| | | log.info(s); |
| | |
| | | <mapper namespace="cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper"> |
| | | |
| | | <select id="selectCategoryListInPage" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory"> |
| | | SELECT m.id,m.name,b.name parentName,m.is_recommend isComand,m.image |
| | | SELECT m.id,m.name,b.name parentName,m.is_recommend isComand,m.image,m.index_num indexNum |
| | | FROM mall_goods_category m |
| | | left join mall_goods_category b on m.parent_id = b.id |
| | | <where> |
| | |
| | | </if> |
| | | </if> |
| | | </where> |
| | | order by m.parent_id asc |
| | | order by m.parent_id,m.index_num asc |
| | | </select> |
| | | |
| | | <select id="selectCategoryByName" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory"> |
| | |
| | | from mall_goods_category a |
| | | left join mall_goods_category b on a.id=b.parent_id |
| | | where a.parent_id = 0 |
| | | order by a.index_num asc |
| | | </select> |
| | | |
| | | <select id="selectCategoryListByParentId" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory"> |
| | | select * from mall_goods_category |
| | | where parent_id=#{id} |
| | | order by index_num asc |
| | | </select> |
| | | |
| | | <select id="selectRecommendCategoryList" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory"> |
| | | select * from mall_goods_category |
| | | where parent_id=0 and is_recommend = 1 |
| | | order by index_num asc |
| | | </select> |
| | | |
| | | <select id="getMallGoodsCategoryInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo"> |
| | |
| | | select a.*, |
| | | b.name memberName, |
| | | b.bind_phone memberBindPhone, |
| | | b.phone memberPhone |
| | | b.phone memberPhone, |
| | | c.name leaderName |
| | | from mall_order_info a |
| | | left join mall_member b on a.member_id = b.id |
| | | left join mall_team_leader c on a.take_unique_code = c.unique_code |
| | |
| | | <if test="record.uniqueCode != null and record.uniqueCode != ''"> |
| | | and a.take_unique_code = #{record.uniqueCode} |
| | | </if> |
| | | <if test="record.startTime != null and record.startTime != ''"> |
| | | and a.order_time >= #{record.startTime} |
| | | </if> |
| | | <if test="record.endTime != null and record.endTime != ''"> |
| | | and a.order_time <= #{record.endTime} |
| | | </if> |
| | | </if> |
| | | </where> |
| | | GROUP BY a.id order by a.created_time desc |
| | |
| | | |
| | | <select id="getOrderRefundListInPage" resultType="cc.mrbird.febs.mall.entity.MallRefundEntity"> |
| | | select a.*, |
| | | b.order_time orderTime, |
| | | b.order_no orderNo, |
| | | b.status, |
| | | c.goods_name goodsName, |
| | | c.cnt |
| | | c.cnt, |
| | | d.name refundMemberName, |
| | | d.phone refundMemberPhone, |
| | | e.name leaderName, |
| | | e.phone leaderPhone |
| | | from mall_refund a |
| | | inner join mall_order_info b on a.order_id = b.id |
| | | inner join mall_order_item c on a.item_id = c.id |
| | | inner join mall_member d on a.member_id = d.id |
| | | inner join mall_team_leader e on b.take_unique_code = e.unique_code |
| | | <where> |
| | | <if test="record != null" > |
| | | <if test="record.state!=null and record.state!=''"> |
| | | and a.state = #{record.state} |
| | | </if> |
| | | <if test="record.refundMemberName!=null and record.refundMemberName!=''"> |
| | | and d.name like concat('%',#{record.refundMemberName},'%') |
| | | </if> |
| | | <if test="record.refundMemberPhone!=null and record.refundMemberPhone!=''"> |
| | | and d.phone like concat('%',#{record.refundMemberPhone},'%') |
| | | </if> |
| | | <if test="record.leaderName!=null and record.leaderName!=''"> |
| | | and e.name like concat('%',#{record.leaderName},'%') |
| | | </if> |
| | | <if test="record.leaderPhone!=null and record.leaderPhone!=''"> |
| | | and e.phone like concat('%',#{record.leaderPhone},'%') |
| | | </if> |
| | | </if> |
| | | </where> |
| | | order by a.CREATED_TIME desc |
| | |
| | | }); |
| | | } |
| | | if (layEvent === 'leaderCancel') { |
| | | febs.modal.confirm('取消', '确认取消该团长?', function () { |
| | | febs.modal.confirm('取消', '用户被取消团长资格将无法再次申请', function () { |
| | | leaderCancel(data.id); |
| | | }); |
| | | } |
| | |
| | | templet: function (d) { |
| | | return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.addressPic+'" alt=""></a>'; |
| | | }, minWidth: 150,align:'center'}, |
| | | {field: 'addressArea', title: '自提点名称', minWidth: 150,align:'left'}, |
| | | {field: 'detailAddress', title: '自提点地址', minWidth: 150,align:'left'}, |
| | | {field: 'totalProfit', title: '收益', minWidth: 150,align:'left'}, |
| | | // {field: 'phone', title: '电话', minWidth: 150,align:'left'}, |
| | | {field: 'state', title: '状态', |
| | | templet: function (d) { |
| | | if (d.state === 1) { |
| | |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input"> |
| | | <input type="text" placeholder="用户昵称" name="name" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="手机号" name="phone" autocomplete="off" class="layui-input"> |
| | | <input type="text" placeholder="手机号码" name="phone" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | url: ctx + 'admin/mallMember/getMoneyChargeList', |
| | | cols: [[ |
| | | {field: 'withdrawNo', title: '编号', minWidth: 100,align:'left'}, |
| | | {field: 'name', title: '名称', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '账号', minWidth: 150,align:'left'}, |
| | | {field: 'bindPhone', title: '手机号', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, |
| | | // {field: 'bindPhone', title: '', minWidth: 150,align:'left'}, |
| | | {field: 'amount', title: '金额', minWidth: 150,align:'left'}, |
| | | {field: 'amountFee', title: '手续费', minWidth: 150,align:'left'}, |
| | | {field: 'status', title: '状态', |
| | |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input"> |
| | | <input type="text" placeholder="用户昵称" name="name" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | defaultToolbar:[], |
| | | cols: [[ |
| | | // {type: 'checkbox'}, |
| | | {field: 'phone', title: '账号', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '名称', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, |
| | | {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, |
| | | // {field: 'balance', title: '余额', minWidth: 100,align:'left'}, |
| | | {field: 'balance', title: '余额', minWidth: 100,align:'left'}, |
| | | // {field: 'score', title: '赠送积分', minWidth: 100,align:'left'}, |
| | | // {field: 'prizeScore', title: '竞猜积分', minWidth: 100,align:'left'}, |
| | | // {field: 'commission', title: '佣金', minWidth: 100,align:'left'}, |
| | |
| | | return '<span>系统拨付</span>' |
| | | }else if (d.type === 17) { |
| | | return '<span>抽奖</span>' |
| | | }else if (d.type === 18) { |
| | | return '<span>充值</span>' |
| | | }else if (d.type === 19) { |
| | | return '<span>收益</span>' |
| | | }else{ |
| | | return '' |
| | | } |
| | |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input"> |
| | | <input type="text" placeholder="用户昵称" name="name" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | <!-- <option value="5">总监收益</option>--> |
| | | <!-- <option value="6">社区店补</option>--> |
| | | <!-- <option value="7">一代收益</option>--> |
| | | <!-- <option value="8">提现</option>--> |
| | | <option value="8">提现</option> |
| | | <!-- <option value="9">转账</option>--> |
| | | <option value="10">支付</option> |
| | | <option value="11">退款</option> |
| | |
| | | <!-- <option value="15">感恩奖</option>--> |
| | | <!-- <option value="16">系统拨付</option>--> |
| | | <!-- <option value="17">抽奖</option>--> |
| | | <option value="18">充值</option> |
| | | <option value="19">收益</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | id: 'moneyFlowTable', |
| | | url: ctx + 'admin/mallMember/getMoneyFlowList', |
| | | cols: [[ |
| | | {field: 'name', title: '名称', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '账号', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'amount', title: '金额', minWidth: 150,align:'left'}, |
| | | {field: 'type', title: '流水类型', |
| | | templet: function (d) { |
| | |
| | | return '<span>系统拨付</span>' |
| | | }else if (d.type === 17) { |
| | | return '<span>抽奖</span>' |
| | | }else if (d.type === 18) { |
| | | return '<span>充值</span>' |
| | | }else if (d.type === 19) { |
| | | return '<span>收益</span>' |
| | | }else{ |
| | | return '' |
| | | } |
| | |
| | | <div class="layui-card-body febs-table-full"> |
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="商品名" name="goodsName" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-col-md10">--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input type="text" placeholder="商品名" name="goodsName" autocomplete="off" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> |
| | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | name: $searchForm.find('input[name="name"]').val().trim(), |
| | | goodsName: $searchForm.find('input[name="goodsName"]').val().trim(), |
| | | // name: $searchForm.find('input[name="name"]').val().trim(), |
| | | // goodsName: $searchForm.find('input[name="goodsName"]').val().trim(), |
| | | }; |
| | | } |
| | | |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">开始时间</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="startTime" id="febs-form-group-date-start" lay-verify="date" |
| | | placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">结束时间</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="endTime" id="febs-form-group-date-end" lay-verify="date" |
| | | placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | // 引入组件并初始化 |
| | | layui.use([ 'jquery', 'form', 'table', 'febs', 'formSelects', 'upload'], function () { |
| | | layui.use([ 'jquery', 'form', 'table', 'febs', 'formSelects', 'upload','laydate'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | |
| | | $add = $view.find('#add'), |
| | | sortObject = {field: 'phone', type: null}, |
| | | formSelects = layui.formSelects, |
| | | laydate = layui.laydate, |
| | | tableIns; |
| | | |
| | | //日期范围 |
| | | laydate.render({ |
| | | elem: '#febs-form-group-date-start' |
| | | }); |
| | | |
| | | laydate.render({ |
| | | elem: '#febs-form-group-date-end' |
| | | }); |
| | | |
| | | |
| | | form.render(); |
| | | |
| | |
| | | {field: 'memberPhone', title: '联系方式', minWidth: 120,align:'left'}, |
| | | // {field: 'memberBindPhone', title: '联系方式', minWidth: 120,align:'left'}, |
| | | {field: 'amount', title: '订单金额', minWidth: 120,align:'left'}, |
| | | // {field: 'carriage', title: '运费', minWidth: 120,align:'left'}, |
| | | {field: 'leaderName', title: '团长', minWidth: 120,align:'left'}, |
| | | {field: 'orderTime', title: '下单时间', minWidth: 200,align:'left'}, |
| | | {field: 'deliveryType', title: '配送方式', |
| | | {field: 'isHome', title: '配送方式', |
| | | templet: function (d) { |
| | | if (d.deliveryType === 1) { |
| | | if (d.isHome === 2) { |
| | | return '<span style="color:dodgerblue;">自提</span>' |
| | | } else if (d.deliveryType === 2) { |
| | | return '<span style="color:forestgreen;">快递</span>' |
| | | } else if (d.isHome === 1) { |
| | | return '<span style="color:forestgreen;">送货上门</span>' |
| | | }else{ |
| | | return '' |
| | | } |
| | |
| | | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | let startTimestr = $searchForm.find('input[name="startTime"]').val().trim(); |
| | | let endTimeStr = $searchForm.find('input[name="endTime"]').val().trim(); |
| | | if(startTimestr != '' && endTimeStr != '' && startTimestr >= endTimeStr){ |
| | | febs.alert.warn('开始时间需要小于结束时间'); |
| | | return{}; |
| | | } |
| | | return { |
| | | startTime: $searchForm.find('input[name="startTime"]').val().trim(), |
| | | endTime: $searchForm.find('input[name="endTime"]').val().trim(), |
| | | name: $searchForm.find('input[name="name"]').val().trim(), |
| | | orderNo: $searchForm.find('input[name="orderNo"]').val().trim(), |
| | | payResult: $searchForm.find("select[name='payResult']").val(), |
| | |
| | | <div class="layui-card-body febs-table-full"> |
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form"> |
| | | <div class="layui-form-item"> |
| | | <!-- <div class="layui-col-md10">--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input type="text" placeholder="电话号码" name="phone" autocomplete="off" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input type="text" placeholder="订单编号" name="orderNo" autocomplete="off" class="layui-input">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <label class="layui-form-label layui-form-label-sm">订单状态</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <select name="status">--> |
| | | <!-- <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>--> |
| | | <!-- </div>--> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="退款人" name="refundMemberName" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="退款人手机号码" name="refundMemberPhone" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="团长" name="leaderName" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="团长手机号码" name="leaderPhone" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">退款状态</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="state"> |
| | | <option value="">请选择</option> |
| | | <option value="1">成功</option> |
| | | <option value="2">失败</option> |
| | | <option value="3">退款中</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> |
| | |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | // 引入组件并初始化 |
| | | layui.use([ 'jquery', 'form', 'table', 'febs'], function () { |
| | | layui.use([ 'jquery', 'form', 'table', 'febs', 'formSelects'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | |
| | | cols: [[ |
| | | {field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'}, |
| | | {field: 'refundNo', title: '退款编号', minWidth: 150,align:'left'}, |
| | | {field: 'orderTime', title: '下单时间', minWidth: 150,align:'left'}, |
| | | {field: 'refundMemberName', title: '退款人', minWidth: 100,align:'left'}, |
| | | {field: 'refundMemberPhone', title: '退款人手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'goodsName', title: '商品名称', minWidth: 150,align:'left'}, |
| | | {field: 'amount', title: '退款金额', minWidth: 150,align:'left'}, |
| | | {field: 'refundReason', title: '退款原因', minWidth: 150,align:'left'}, |
| | | {field: 'refundRemark', title: '退款说明', minWidth: 150,align:'left'}, |
| | | {field: 'refundPicList', title: '退款图片', templet: '#refundPicItem', minWidth: 200,align:'center'}, |
| | | {field: 'amount', title: '退款金额', minWidth: 100,align:'left'}, |
| | | {field: 'leaderName', title: '团长', minWidth: 100,align:'left'}, |
| | | {field: 'leaderPhone', title: '团长手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'state', title: '退款状态', |
| | | templet: function (d) { |
| | | if (d.state === 1) { |
| | |
| | | return '' |
| | | } |
| | | }, minWidth: 80,align:'center'}, |
| | | {field: 'refundReason', title: '退款原因', minWidth: 150,align:'left'}, |
| | | {field: 'refundRemark', title: '退款说明', minWidth: 150,align:'left'}, |
| | | {field: 'refundPicList', title: '退款图片', templet: '#refundPicItem', minWidth: 200,align:'center'}, |
| | | ]] |
| | | }); |
| | | } |
| | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | // name: $searchForm.find('input[name="name"]').val().trim(), |
| | | // phone: $searchForm.find('input[name="phone"]').val().trim(), |
| | | // orderNo: $searchForm.find('input[name="orderNo"]').val().trim(), |
| | | // status: $searchForm.find("select[name='status']").val(), |
| | | refundMemberName: $searchForm.find('input[name="refundMemberName"]').val().trim(), |
| | | refundMemberPhone: $searchForm.find('input[name="refundMemberPhone"]').val().trim(), |
| | | leaderName: $searchForm.find('input[name="leaderName"]').val().trim(), |
| | | leaderPhone: $searchForm.find('input[name="leaderPhone"]').val().trim(), |
| | | state: $searchForm.find("select[name='state']").val(), |
| | | }; |
| | | } |
| | | |
| | |
| | | templet: function (d) { |
| | | return '<a lay-event="seeImges"><img id="seeImges'+d.id+'" src="'+d.image+'" alt=""></a>'; |
| | | }, minWidth: 100,align:'center'}, |
| | | {field: 'indexNum', title: '排序', minWidth: 150,align:'left'}, |
| | | {title: '操作', |
| | | templet: function (d) { |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">编辑</button>' |
| | |
| | | <input type="radio" name="isRecommend" value="2" title="否" checked=""> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">排序:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="indexNum" |
| | | lay-verify="indexNum" autocomplete="off" class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="categary-update-form-submit" id="submit"></button> |
| | | </div> |
| | |
| | | "name": goodsCategoryVo.name, |
| | | "parentId": goodsCategoryVo.parentId, |
| | | "image": goodsCategoryVo.image, |
| | | "indexNum": goodsCategoryVo.indexNum, |
| | | "isRecommend": goodsCategoryVo.isRecommend |
| | | }); |
| | | } |
| | |
| | | <link rel="stylesheet" th:href="@{febs/css/apexcharts.min.css}" media="all"> |
| | | <link rel="stylesheet" th:href="@{febs/css/formSelects-v4.css}" media="all"> |
| | | <!-- 高德地图,key为演示作用,请勿滥用--> |
| | | <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolygonEditor"></script> |
| | | <script type="text/javascript"> |
| | | window._AMapSecurityConfig = { |
| | | securityJsCode:'8fd9b92f6e07b1f18d3ae39b42ff71bc', |
| | | } |
| | | </script> |
| | | <script src="https://webapi.amap.com/maps?v=1.4.15&key=04934a2cf5cfa8a29ffcf0fdcfaabb5f&plugin=AMap.Autocomplete,AMap.PolyEditor"></script> |
| | | <link href="https://unpkg.com/@wangeditor/editor@5.0.1/dist/css/style.css" rel="stylesheet"> |
| | | <script src="https://unpkg.com/@wangeditor/editor@latest/dist/index.js"></script> |
| | | <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" /> |
| | | <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script> |
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/> |
| | | </head> |
| | | <body> |