doum
8 小时以前 28db820caf0ed90f4326d29cb0fa7a19cba92775
经销商管理
已修改18个文件
210 ■■■■ 文件已修改
admin/src/api/business/banner.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaBannerWindow.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCouponGoodsWindow.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCouponUsedDetail.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCouponWindow.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopInfoWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/banner.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/coupon.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/goodsorder.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/information.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_admin/src/main/java/com/doumee/api/business/BannerController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/BannerService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/banner.js
@@ -16,6 +16,9 @@
export function updateById (data) {
  return request.post('/business/banner/updateById', data)
}
export function updateStatus (data) {
  return request.post('/business/banner/updateStatus', data)
}
// 删除
export function deleteById (id) {
admin/src/components/business/OperaBannerWindow.vue
@@ -1,7 +1,8 @@
<template>
  <GlobalAlertWindow
  <GlobalWindow
    v-loading="isUploading"
    :title="title"
    width="60%"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
@@ -31,7 +32,7 @@
          @uploadBegin="isUploading = true"
        />
      </el-form-item>
      <el-form-item label="展示城市" prop="cityId">
      <el-form-item label="展示城市" prop="cityId" v-if="1==2">
        <div class="address">
          <el-select v-model="form.provinceId" placeholder="请选择省份" filterable @change="selectProvince">
            <el-option
@@ -51,11 +52,24 @@
          </el-select>
        </div>
      </el-form-item>
      <el-form-item label="排序码(升序)" prop="sortnum">
        <el-input v-model="form.sortnum" type="number"  placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-switch
            v-model="form.status"
            active-color="#13ce66"
            inactive-color="#999"
            :active-value="0"
            :inactive-value="1"
        ></el-switch>
      </el-form-item>
      <el-form-item label="跳转类型" prop="type">
        <el-select
          v-model="form.type"
          placeholder="请选择跳转类型"
          @change="selectType"
          clearable
        >
          <el-option
            v-for="item in types()"
@@ -67,10 +81,15 @@
      </el-form-item>
      <!-- //  0富文本 1外链 2活动 3商家 -->
      <el-form-item v-if="form.type==0" label="富文本内容" prop="content">
        <RichEditor :content="{ content : form.content}"  @edit="form.content=$event" />
        <RichEditor  :richData="form.content" :styleEditor="'border: 1px solid #ccc;display: inline-block;height:500px;'" @getWangedditor="getWangedditor" :readonly="false"/>
<!--
        <RichEditor :styleEditor="'border: 1px solid #ccc;display: inline-block;height:500px;'"  :content="{ content : form.content}"  @edit="form.content=$event" />
-->
      </el-form-item>
      <el-form-item v-if="form.type==1" label="链接" prop="content">
        <el-input v-model="form.content" placeholder="请输入链接" v-trim/>
        <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>提醒:如果配置公众号链接,跳转的公众号需要先跟小程序进行绑定,方可实现跳转</p>
      </el-form-item>
      <el-form-item v-if="form.type==2" label="活动名称" prop="content">
        <el-select
@@ -110,16 +129,13 @@
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" type="number"  placeholder="请输入排序码" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalAlertWindow>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
import GlobalWindow from '@/components/common/GlobalWindow'
import RichEditor from '@/components/common/RichEditor'
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
import { listByParentId } from '@/api/business/areas'
@@ -128,7 +144,7 @@
export default {
  name: 'OperaBannerWindow',
  extends: BaseOpera,
  components: { GlobalAlertWindow, RichEditor, UploadAvatarImage },
  components: { GlobalWindow, RichEditor, UploadAvatarImage },
  data () {
    let positionRule = (rule, value, callBack) => {
      // debugger
@@ -155,10 +171,10 @@
        info: '',
        title: '',
        sortnum: '',
        status: '',
        status: 0,
        imgurl: '',
        imgFullUrl: '',
        type: 0,
        type: '',
        position: '',
        provinceId: '',
        cityId: '',
@@ -182,6 +198,7 @@
  },
  inject: ['postions', 'types'],
  created () {
    this.config({
      api: '/business/banner',
      'field.id': 'id'
@@ -192,6 +209,9 @@
      })
  },
  methods: {
    getWangedditor (val) {
      this.form.content = val
    },
    open (title, target) {
      this.title = title
admin/src/components/business/OperaCouponGoodsWindow.vue
@@ -104,12 +104,15 @@
    return {
      title: '',
      visible: false,
      selectGoods:[],
      // 搜索
      searchForm: {
        id: '',
        bindShopId: ''
      },
      shops: []
      shops: [],
      brands:[],
      labels:[]
    }
  },
  created () {
admin/src/components/business/OperaCouponUsedDetail.vue
@@ -1,6 +1,7 @@
<template>
  <GlobalWindow
    :title="title"
    :with-footer="false"
    :visible.sync="visible"
    @confirm="confirm"
  >
@@ -49,11 +50,11 @@
              {{ row.type==0?'领取':'兑换' }}
            </template>
          </el-table-column>
          <el-table-column prop="num" label="咖豆数量" align="center" min-width="100px">
<!--          <el-table-column prop="num" label="数量" align="center" min-width="100px">
            <template slot-scope="{row}">
              {{ row.num || '-' }}
            </template>
          </el-table-column>
          </el-table-column>-->
          <el-table-column label="状态" align="center" min-width="100px">
            <template slot-scope="{row}">
              {{ row.status==0 ? '未使用' : row.status==1 ? '已使用' : '已过期' }}
@@ -90,8 +91,9 @@
      getDate: [],
      // 表单数据
      searchForm: {
        id: null,
        couponId: null,
        member: '',
        methodList:[0,1],
        status: '',
      },
      
@@ -109,7 +111,7 @@
      this.visible = true
      this.$nextTick(() => {
        this.$refs.searchForm.resetFields()
        this.searchForm.id = target
        this.searchForm.couponId = target
        this.search()
      })
      
admin/src/components/business/OperaCouponWindow.vue
@@ -28,10 +28,14 @@
          <el-input  v-model="form.price"     placeholder="请输入"    @input="inputAction(form, 'price')"  >
            <template slot="append" >{{form.couponType ===1?'折':'元'}}</template>
          </el-input>
          <div class="discrep"  v-if="form.couponType === 1" >,折扣优惠金额上限</div>
          <el-input  v-model="form.maxPrice"     v-if="form.couponType === 1"  placeholder="请输入"    @input="inputAction(form, 'maxPrice')"  >
            <template slot="append" >元</template>
          </el-input>
        </div>
      </el-form-item>
      <el-form-item label="优惠券说明" prop="info">
        <el-input type="textarea" v-model="form.info" placeholder="请输入优惠券说明"  v-trim/>
        <el-input type="textarea" v-model="form.info" placeholder="请输入优惠券说明" maxlength="500"  v-trim/>
      </el-form-item>
      <p class="tip-header" >使用限制</p>
      <el-form-item label="有效期" prop="useType">
@@ -75,7 +79,7 @@
        </el-radio-group>
      </el-form-item>
      <el-form-item v-if="form.applyType===1" label="选择品类" prop="applyCateIdList" >
        <el-select v-model="form.applyCateIdList"  placeholder="请选择,支持多选" filterable multiple clearable >
        <el-select v-model="form.applyCateIdList"  placeholder="请选择商品分类,支持多选" filterable multiple clearable >
          <el-option  v-for="item in categorys" :key="'optCate'+item.id"  :label="item.name"  :value="item.id">  </el-option>
        </el-select>
      </el-form-item>
@@ -86,8 +90,9 @@
      <p class="tip-header" >发放规则</p>
      <el-form-item label="发放总量" prop="num">
        <div class="num-style">
          <el-input-number  v-model="form.num" :controls="false" :min="1" :max="99999" placeholder="请输入发放总量(1~99999)" v-trim></el-input-number>
          <el-input-number  v-model="form.num" :controls="false" :min="0" :max="99999" placeholder="请输入发放总量(0~99999)" v-trim></el-input-number>
        </div>
        <p class="tip-warn" style="margin-bottom: 1px;"><i class="el-icon-warning"></i>提醒:发放总量为0表示不限制</p>
      </el-form-item>
    </el-form>
    <OperaCouponGoodsWindow ref="OperaCouponGoodsWindow" @success="doSelect"/>
@@ -111,6 +116,8 @@
        callback(new Error('请输入满额'))
      } else if (!this.form.price) {
        callback(new Error('请完善优惠规则'))
      } else if (this.form.couponType == 1 && (this.form.price <= 0 || this.form.price >= 10)) {
        callback(new Error('优惠折扣只能为 (0,10)范围内'))
      } else {
        callback()
      }
@@ -180,7 +187,7 @@
        ],
        num: [
          { required: true, validator: numRule, message: '请输入发放总数', tigger: 'blur' }
        ],
        ]
        /*integral: [
          { required: true, validator: numRule, message: '请输入兑换条件', tigger: 'blur' }
        ],*/
admin/src/components/business/OperaShopInfoWindow.vue
@@ -21,7 +21,7 @@
          <div v-if="info.status ==1" class="header-red">禁用</div>
        </div>
        <div class="info-item">
          <div class="info-item-a">经销商名称:<span>{{info.name || ''}}</span><span class="blue header-blue">{{ info.saleType == 1?'自由采购':'平台铺货'}}</span></div>
          <div class="info-item-a">经销商名称:<span>{{info.name || ''}}</span><span class="blue header-blue">{{ info.saleType == 1?'自主采购':'平台铺货'}}</span></div>
          <div class="info-item-a">门店ID:<span>{{info.code || ''}}</span></div>
          <div class="info-item-a">登录账号:<span>{{info.username || ''}}</span></div>
        </div>
admin/src/views/business/banner.vue
@@ -55,7 +55,18 @@
            <el-image :src="row.imgFullUrl" :preview-src-list="[row.imgFullUrl]"></el-image>
          </template>
        </el-table-column>
        <el-table-column prop="cityName" label="展示城市" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="status" label="状态" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-switch
                v-model="row.status"
                active-color="#13ce66"
                inactive-color="#999"
                :active-value="0"
                :inactive-value="1"
                @change="statusChange(row)"
            ></el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="type" label="跳转功能" align="center" min-width="100px">
           <template slot-scope="{row}">
            {{ typeToStr(row.type) }}
@@ -64,9 +75,10 @@
        <el-table-column prop="content" label="内容" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-button v-if="row.type==0" type="text" @click="$refs.showRich.open('详情',row)">查看详情</el-button>
            <template v-else>
            <el-button v-if="row.type==1 && row.content" type="text"  @click="goLink(row)" :title="row.content">跳转外链</el-button>
<!--            <template v-else>
              {{ row.content }}
            </template>
            </template>-->
          </template>
        </el-table-column>
        <el-table-column prop="sortnum" label="排序码" align="center" min-width="100px"></el-table-column>
@@ -113,27 +125,27 @@
      // 搜索
      searchForm: {
        position: '',
        type: '',
        type: ''
      },
      postions: [
        // 0首页 1推荐店铺 2商城首页
        { label: '首页', id: 0 },
        { label: '推荐店铺', id: 1 },
        { label: '商城首页', id: 2 },
        { label: '商城首页', id: 2 }
      ],
      types: [
        //  0富文本 1外链 2活动 3商家
        { label: '富文本', id: 0 },
        { label: '外链', id: 1 },
        { label: '活动', id: 2 },
        { label: '商家', id: 3 },
        { label: '外链', id: 1 }
      /*  { label: '活动', id: 2 },
        { label: '商家', id: 3 }, */
      ]
    }
  },
  provide() {
    return {
      postions: () => this.postions,
      types: () => this.types,
      types: () => this.types
    }
  },
  created () {
@@ -146,15 +158,30 @@
    this.search()
  },
  methods: {
    statusChange (row) {
      this.api.updateStatus(row)
        .then(() => {
          this.$tip.success('操作成功')
        })
        .catch(e => {
          this.$tip.error(e)
        })
        .finally(() => {
          this.handlePageChange()
        })
    },
    goLink(row){
      window.open(row.content)
    },
    postionToStr(postion) {
      // console.log(postion);
      let temp = this.postions.find(item => item.id == postion)
      const temp = this.postions.find(item => item.id == postion)
      return temp ? temp.label : '-'
    },
    typeToStr(type) {
      let temp = this.types.find(item => item.id == type)
      const temp = this.types.find(item => item.id == type)
      return temp ? temp.label : '-'
    },
  },
    }
  }
}
</script>
admin/src/views/business/coupon.vue
@@ -38,21 +38,28 @@
            <span v-if="row.couponType ===1"> 折扣券</span>
          </template>
        </el-table-column>
        <el-table-column label="优惠规则" align="center" min-width="150px" show-overflow-tooltip>
        <el-table-column label="优惠规则" align="center" min-width="200px" show-overflow-tooltip>
          <template slot-scope="{row}">
            <span v-if="row.couponType ===0"> {{ `订单满${row.limitPrice||0}元,减${row.price||0}` }}元</span>
            <span v-if="row.couponType ===1"> {{ `订单满${row.limitPrice||0}元,享${row.price||0}折` }}</span>
            <span v-if="row.couponType ===1"> {{ `订单满${row.limitPrice||0}元,享${row.price||0}折,`}}</span><br>
            <span v-if="row.couponType ===1"> {{ `优惠金额上限${row.maxPrice||0}元 `}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="num" label="发放总量" align="center" min-width="100px"></el-table-column>
        <el-table-column  label="已发送数量" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showCouponUse(row.id)">{{ row.received||0 }}</el-button>
          </template>
        </el-table-column>
        <el-table-column prop="num" label="发放总量" align="center" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.num "> {{ row.num}}</span>
            <span v-if="!row.num ||row.num<=0 ">不限</span><br>
          </template>
        </el-table-column>
        <el-table-column label="剩余数量" align="center" min-width="100px">
          <template slot-scope="{row}">
            {{ (row.num||0) - (row.received||0) }}
              <span v-if="row.num ">  {{ (row.num||0) - (row.received||0) }}</span>
              <span v-if="!row.num ||row.num<=0 ">不限</span><br>
          </template>
        </el-table-column>
<!--
@@ -145,7 +152,6 @@
      this.$refs.operaCouponDetail.open('优惠券详情', row)
    },
    showCouponUse(id) {
      this.$refs.operaCouponUsedDetail.open('优惠券领取详情', id)
    },
    statusChange(row) {
admin/src/views/business/goodsorder.vue
@@ -31,6 +31,9 @@
          <el-option :key="1" :value="1" label="自提"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="商品名称" prop="shopName">
        <el-input v-model="searchForm.goodsName" placeholder="请输入商品名称" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="归属经销商" prop="shopName">
        <el-input v-model="searchForm.shopName" placeholder="请输入经销商名称" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
@@ -40,7 +43,7 @@
      <div class="date-style" style="display: inline">
        <el-form-item label="订单时间" prop="starttime" >
          <el-date-picker
              style="width: 160px"
              style="width: 180px"
              clearable
              @change="search"
              v-model="searchForm.starttime"
@@ -53,7 +56,7 @@
        </el-form-item>
        <el-form-item label="-" label-width="10px" prop="endtime" >
          <el-date-picker
              style="width: 160px"
              style="width: 180px"
              clearable
              v-model="searchForm.endtime"
              type="datetime"
@@ -67,8 +70,8 @@
      </div>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:goodsorder:exportExcel']" @click="exportExcel">导出</el-button>
        <el-button @click="reset">重置</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:goodsorder:exportExcel']" @click="exportExcel">导出</el-button>
      </section>
    </el-form>
    <!-- 表格和分页 -->
@@ -190,7 +193,7 @@
        status: '',
        nickName: '',
        starttime: null,
        enttime: null
        endtime: null
      }
    }
  },
@@ -238,7 +241,7 @@
    reset () {
      this.createDate = []
      this.searchForm.starttime = ''
      this.searchForm.enttime = ''
      this.searchForm.endtime = ''
      this.$refs.searchForm.resetFields()
      this.search()
    },
admin/src/views/business/information.vue
@@ -73,7 +73,7 @@
        <el-table-column prop="name" label="标题" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="lablesName" label="所属分类" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="brandName" label="所属品牌" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="content" label="数据值" min-width="100px">
        <el-table-column prop="content" label="详情" min-width="100px">
          <template slot-scope="{row}">
            <div v-if="row.content">
              <el-button v-if="row.contentType == 1" title="点击跳转外链查看" type="text" @click="openUrl(row)" >点击跳转</el-button>
server/dmmall_admin/src/main/java/com/doumee/api/business/BannerController.java
@@ -7,6 +7,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.Banner;
import com.doumee.dao.business.model.Coupon;
import com.doumee.service.business.BannerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -37,7 +38,13 @@
    public ApiResponse create(@RequestBody Banner banner) {
        return ApiResponse.success(bannerService.create(banner));
    }
    @ApiOperation("根据ID修改状态")
    @PostMapping("/updateStatus")
    @RequiresPermissions("business:banner:update")
    public ApiResponse updateStatus(@RequestBody Banner coupon) {
        bannerService.updateStatus(coupon);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:banner:delete")
server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
@@ -14,6 +14,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
/**
@@ -137,6 +138,9 @@
    @ApiModelProperty(value = "用户手机号")
    @TableField(exist = false)
    private String memberPhone;
    @ApiModelProperty(value = "领取方式集合")
    @TableField(exist = false)
    private List<Integer> methodList;
    @ApiModelProperty(value = "优惠金额(元)", example = "1")
    @ExcelColumn(name="优惠金额(元)",width = 10,index = 7)
server/dmmall_service/src/main/java/com/doumee/service/business/BannerService.java
@@ -138,4 +138,5 @@
    PageData<ShopSimpleDTO> findRecommendShopPage(PageWrap<Banner> pageWrap);
    void updateStatus(Banner coupon);
}
server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java
@@ -11,10 +11,7 @@
import com.doumee.dao.business.BannerMapper;
import com.doumee.dao.business.LabelsMapper;
import com.doumee.dao.business.join.BannerJoinMapper;
import com.doumee.dao.business.model.Areas;
import com.doumee.dao.business.model.Banner;
import com.doumee.dao.business.model.Goods;
import com.doumee.dao.business.model.Labels;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.dto.ArticleDTO;
import com.doumee.dao.web.dto.BannerDTO;
import com.doumee.dao.web.dto.LabelsBannerDTO;
@@ -290,6 +287,16 @@
    @Override
    public void updateStatus(Banner coupon) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(coupon.getId()==null||coupon.getStatus()==null){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage());
        }
        coupon.setEditor(user.getId());
        coupon.setEditDate(new Date());
        bannerMapper.updateById(coupon);
    }
    @Override
    public PageData<ShopSimpleDTO> findRecommendShopPage(PageWrap<Banner> pageWrap) {
        IPage<Banner> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<Banner> queryWrapper = new QueryWrapper<>();
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CouponServiceImpl.java
@@ -76,10 +76,19 @@
                || coupon.getType()==null
                ||coupon.getLimitPrice()==null
                ||coupon.getPrice()==null
                ||coupon.getUseType() ==null
                ||coupon.getNum()==null
              /*  ||coupon.getIntegral()==null*/
                ||coupon.getStartDate()==null
                ||(coupon.getUseType() ==0 &&(
                    coupon.getStartDate()==null
                ||coupon.getEndDate()==null
                  ))
                ||(coupon.getUseType() ==1 &&(
                    coupon.getValidDays()==null
                    || coupon.getValidDays()<=0
                  ))
              /*  ||coupon.getIntegral()==null*/
//                ||coupon.getStartDate()==null
//                ||coupon.getEndDate()==null
//                ||coupon.getValidDays()==null
        ){
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -861,6 +861,7 @@
                    " INNER JOIN goods g on  g.id=gs.GOODS_ID " +
                    " where gs.STOCK<=0 and gs.ISDELETED=0 and g.id=t.id ");
        }
        queryWrapper.eq(!Constants.equalsInteger(pageWrap.getModel().getTabStatus(), 3), Goods::getIsdeleted, Constants.ZERO);
        queryWrapper.eq(Constants.equalsInteger(pageWrap.getModel().getTabStatus(), 3), Goods::getIsdeleted, Constants.ONE);
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -507,6 +507,9 @@
        queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
        queryWrapper.eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType());
        queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
        if (StringUtils.isNotBlank(pageWrap.getModel().getGoodsName())) {
            queryWrapper.exists("select gs.id  from goodsorder_detail gs  where gs.order_id=t.id and gs.isdeleted=0 and gs.NAME like '%"+pageWrap.getModel().getGoodsName()+"%' ");
        }
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -332,6 +332,9 @@
            queryWrapper.eq( MemberCoupon::getStatus, Constants.ZERO);
            queryWrapper.lt( MemberCoupon::getEndDate, new Date());
        }
        queryWrapper.in(pageWrap.getModel().getMethodList()!=null,MemberCoupon::getGetMethod, pageWrap.getModel().getMethodList());
        queryWrapper.eq(pageWrap.getModel().getCouponId()!=null,MemberCoupon::getCouponId, pageWrap.getModel().getCouponId());
        queryWrapper.eq(pageWrap.getModel().getOrderCode()!=null,Goodsorder::getCode, pageWrap.getModel().getOrderCode());
        queryWrapper.eq(pageWrap.getModel().getGetMethod()!=null,MemberCoupon::getGetMethod, pageWrap.getModel().getGetMethod());
        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNikeName()),ms -> ms.like( Member::getNickname,  pageWrap.getModel().getNikeName()).