639eb18312a62ac2a76e2b59e16bcc1ff8d70d03..075ca1b2dc3714d112327c66fdce959bb39984e2
2026-01-15 doum
经销商管理
075ca1 对比 | 目录
2026-01-15 doum
经销商管理
a1597e 对比 | 目录
已修改5个文件
190 ■■■■ 文件已修改
admin/src/views/business/memberCoupon.vue 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/platformGoods.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/memberCoupon.vue
@@ -2,65 +2,34 @@
  <TableLayout :permissions="['business:membercoupon:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="主键" prop="id">
        <el-input v-model="searchForm.id" placeholder="请输入主键" @keypress.enter.native="search"></el-input>
      <el-form-item label="用户" prop="nikeName">
        <el-input v-model="searchForm.nikeName" placeholder="请输入用户昵称/手机号 " clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      <el-form-item label="优惠券名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入优惠券名称" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间" @change="search"/>
      <el-form-item label="类型" prop="couponType">
          <el-select  v-model="searchForm.couponType"  placeholder="请选择类型"  clearable @change="search" >
            <el-option :key="0" :value="0" label="满减券"></el-option>
            <el-option :key="1" :value="1" label="折扣券"></el-option>
          </el-select>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      <el-form-item label="状态" prop="status">
        <el-select  v-model="searchForm.status"  placeholder="状态"  clearable @change="search" >
          <el-option  :value="0" label="未使用"></el-option>
          <el-option  :value="1" label="已使用"></el-option>
          <el-option  :value="2" label="已过期"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间" @change="search"/>
      <el-form-item label="发放类型" prop="getMethod">
        <el-select  v-model="searchForm.getMethod"  placeholder="发放类型"  clearable @change="search" >
          <el-option  :value="0" label="首次注册"></el-option>
          <el-option  :value="1" label="邀请好友"></el-option>
          <el-option  :value="2" label="定向发放"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="searchForm.isdeleted" placeholder="请输入是否删除0否 1是" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="searchForm.remark" placeholder="请输入备注" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="用户编码(关联member表)" prop="memberId">
        <el-input v-model="searchForm.memberId" placeholder="请输入用户编码(关联member表)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="商家编码(关联shop表)" prop="shopId">
        <el-input v-model="searchForm.shopId" placeholder="请输入商家编码(关联shop表)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="类型0商家优惠券 1平台优惠券 " prop="type">
        <el-input v-model="searchForm.type" placeholder="请输入类型0商家优惠券 1平台优惠券 " @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="满额(元)" prop="limitPrice">
        <el-input v-model="searchForm.limitPrice" placeholder="请输入满额(元)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="优惠金额(元)" prop="price">
        <el-input v-model="searchForm.price" placeholder="请输入优惠金额(元)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="开始时间" prop="startDate">
        <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请输入开始时间" @change="search"/>
      </el-form-item>
      <el-form-item label="结束时间" prop="endDate">
        <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="请输入结束时间" @change="search"/>
      </el-form-item>
      <el-form-item label="领取方式 0领取 1兑换" prop="getMethod">
        <el-input v-model="searchForm.getMethod" placeholder="请输入领取方式 0领取 1兑换" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="兑换所需咖豆金额" prop="integral">
        <el-input v-model="searchForm.integral" placeholder="请输入兑换所需咖豆金额" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态 0未使用 1已使用" prop="status">
        <el-input v-model="searchForm.status" placeholder="请输入状态 0未使用 1已使用" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="说明" prop="info">
        <el-input v-model="searchForm.info" placeholder="请输入说明" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="使用时间" prop="useDate">
        <el-date-picker v-model="searchForm.useDate" value-format="yyyy-MM-dd" placeholder="请输入使用时间" @change="search"/>
      </el-form-item>
      <el-form-item label="使用积分奖励数量" prop="backIntegral">
        <el-input v-model="searchForm.backIntegral" placeholder="请输入使用积分奖励数量" @keypress.enter.native="search"></el-input>
      <el-form-item label="订单号" prop="orderCode">
        <el-input v-model="searchForm.orderCode" placeholder="请输入使用订单号" clearable @keypress.enter.native="search"></el-input>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -74,26 +43,38 @@
        :data="tableData.list"
        stripe
      >
        <el-table-column prop="id" label="主键" min-width="100px"></el-table-column>
        <el-table-column prop="creator" label="创建人编码" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column>
        <el-table-column prop="editor" label="更新人编码" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column>
        <el-table-column prop="isdeleted" label="是否删除0否 1是" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="memberId" label="用户编码(关联member表)" min-width="100px"></el-table-column>
        <el-table-column prop="shopId" label="商家编码(关联shop表)" min-width="100px"></el-table-column>
        <el-table-column prop="type" label="类型0商家优惠券 1平台优惠券 " min-width="100px"></el-table-column>
        <el-table-column prop="limitPrice" label="满额(元)" min-width="100px"></el-table-column>
        <el-table-column prop="price" label="优惠金额(元)" min-width="100px"></el-table-column>
        <el-table-column prop="startDate" label="开始时间" min-width="100px"></el-table-column>
        <el-table-column prop="endDate" label="结束时间" min-width="100px"></el-table-column>
        <el-table-column prop="getMethod" label="领取方式 0领取 1兑换" min-width="100px"></el-table-column>
        <el-table-column prop="integral" label="兑换所需咖豆金额" min-width="100px"></el-table-column>
        <el-table-column prop="status" label="状态 0未使用 1已使用" min-width="100px"></el-table-column>
        <el-table-column prop="info" label="说明" min-width="100px"></el-table-column>
        <el-table-column prop="nikeName" label="用户" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="优惠券名称" min-width="100px"></el-table-column>
        <el-table-column prop="couponType" label="优惠券类型" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.couponType ===0"> 满减券</span>
            <span v-if="row.couponType ===1"> 折扣券</span>
          </template>
        </el-table-column>
        <el-table-column prop="getMethod" label="发放类型" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.getMethod ===0"> 首次注册</span>
            <span v-else-if="row.getMethod ===1"> 邀请好友</span>
            <span v-else>定向发放</span>
          </template>
        </el-table-column>
        <el-table-column prop="startDate" label="使用有效期" align="center" min-width="210px">
          <template slot-scope="{row}">
            <li> 起:{{ row.startDate}}</li> <li>止:{{row.endDate }}</li>
          </template>
        </el-table-column>
        <el-table-column prop="price" label="优惠金额(元)" min-width="120px"></el-table-column>
        <el-table-column prop="status" label="状态" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.status ===0" class="green"> 未使用</span>
            <span v-else-if="row.status ===1" class="blue"> 已使用</span>
            <span v-else class="grey">已过期</span>
          </template>
        </el-table-column>
        <el-table-column prop="useDate" label="使用时间" min-width="100px"></el-table-column>
        <el-table-column prop="backIntegral" label="使用积分奖励数量" min-width="100px"></el-table-column>
        <el-table-column prop="orderCode" label="关联订单" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="发放时间" min-width="150px"></el-table-column>
        <el-table-column prop="creatorName" label="操作人" min-width="100px"></el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
@@ -117,26 +98,12 @@
    return {
      // 搜索
      searchForm: {
        id: '',
        creator: '',
        createDate: '',
        editor: '',
        editDate: '',
        isdeleted: '',
        remark: '',
        memberId: '',
        shopId: '',
        type: '',
        limitPrice: '',
        price: '',
        startDate: '',
        endDate: '',
        getMethod: '',
        integral: '',
        nikeName: '',
        name: '',
        couponType: '',
        status: '',
        info: '',
        useDate: '',
        backIntegral: ''
        getMethod: '',
        orderCode: ''
      }
    }
  },
admin/src/views/business/platformGoods.vue
@@ -41,7 +41,7 @@
      </el-form-item>
      <el-form-item label="上架状态" prop="status">
        <el-select
          v-model="searchForm.brandId"
          v-model="searchForm.status"
          placeholder="请选择上架状态"
        >
          <el-option :key="0" :value="0" label="上架"></el-option>
server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
@@ -130,6 +130,14 @@
    @ApiModelProperty(value = "昵称")
    @TableField(exist = false)
    private String nikeName;
    @ApiModelProperty(value = "关联订单号号")
    @TableField(exist = false)
    private String orderCode;
    @ApiModelProperty(value = "创建人")
    @TableField(exist = false)
    private String creatorName;
    @ApiModelProperty(value = "关联订单号")
    private String orderId;
    @ApiModelProperty(value = "实际适用时金额")
    @TableField(exist = false)
server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
@@ -61,5 +61,4 @@
    @ApiModelProperty(value = "字典code")
    private String dictCode;
}
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -11,6 +11,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.dto.CouponDTO;
import com.doumee.dao.web.dto.MemberCouponDTO;
import com.doumee.dao.web.request.PayDetailRequest;
@@ -173,20 +174,38 @@
        IPage<MemberCoupon> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<MemberCoupon> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.selectAll(MemberCoupon.class);
        queryWrapper.selectAs(Member::getNickname,MemberCoupon::getNikeName);
        queryWrapper.selectAs(Goodsorder::getCode,MemberCoupon::getOrderCode);
        queryWrapper.selectAs(SystemUser::getUsername,MemberCoupon::getCreatorName);
        queryWrapper.leftJoin(Member.class,Member::getId,MemberCoupon::getMemberId);
        queryWrapper.leftJoin(Goodsorder.class,Goodsorder::getId,MemberCoupon::getOrderId);
        queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,MemberCoupon::getCreator);
        queryWrapper.eq(MemberCoupon::getIsdeleted, Constants.ZERO);
        queryWrapper.eq(pageWrap.getModel().getStatus()!=null,MemberCoupon::getStatus, pageWrap.getModel().getStatus());
        if(pageWrap.getModel().getStatus()!=null && pageWrap.getModel().getStatus()!=2){
            queryWrapper.eq(pageWrap.getModel().getStatus()!=null,MemberCoupon::getStatus, pageWrap.getModel().getStatus());
        } else if (pageWrap.getModel().getStatus()!=null && pageWrap.getModel().getStatus()==2) {
            //查询已过期(未使用,切已过了使用期限)
            queryWrapper.eq( MemberCoupon::getStatus, Constants.ZERO);
            queryWrapper.lt( MemberCoupon::getEndDate, new Date());
        }
        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()).
                or().eq( Member::getName, pageWrap.getModel().getNikeName()).
                or().eq( Member::getPhone, pageWrap.getModel().getNikeName()));
        queryWrapper.orderByDesc(MemberCoupon::getCreateDate);
        IPage<MemberCoupon> result = memberCouponJoinMapper.selectJoinPage(page, MemberCoupon.class, queryWrapper);
        if(result!=null && result.getRecords()!=null){
            for(MemberCoupon model :result.getRecords()){
                if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)
                        && model.getEndDate()!=null
                        && model.getEndDate().before(new Date())){
                    //已过期
                    model.setStatus(Constants.TWO);
                }
            }
        }
        return PageData.from(result);
    }
@@ -252,7 +271,6 @@
                }
            }
        }
        return memberCouponResponse;
    }