doum
11 小时以前 c384e04f81caf681647c602d5896cc10b289582e
经销商管理
已删除6个文件
已修改35个文件
865 ■■■■■ 文件已修改
admin/.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/base/BaseTable.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaChangeShopRecordWindow.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaCouponGoodsWindow.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaGoodsWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaIntegralShopMoneyWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaLabelsAreaWindow.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaMemberDetail.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopGoodsWindow.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaShopInfoWindow.vue 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWithdrawRecordWindow.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/ResetPwdShopWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/UploadFile.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/banner.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/member.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/platformGoods.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/shop.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/config/listener/IntegralApplicationListener.java 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/config/listener/NoticeApplicationListener.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/config/listener/VisitApplicationListener.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/config/listener/event/IntegralEvent.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/config/listener/event/NoticeEvent.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/config/listener/event/VisitEvent.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/MemberMapper.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Member.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | 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 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/SignupServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/WithdrawRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.development
@@ -5,6 +5,6 @@
VUE_APP_CONTEXT_PATH = '/'
#江萍本地
#VUE_APP_API_BASE_URL='http://localhost:10014'
VUE_APP_API_BASE_URL='http://localhost:12014'
VUE_APP_API_BASE_URL='http://192.168.0.7/dmmall_admin_api/'
#VUE_APP_API_BASE_URL='http://192.168.0.7/dmmall_admin_api/'
admin/src/components/base/BaseTable.vue
@@ -172,7 +172,7 @@
        this.$tip.warning('请至少选择一条数据')
        return
      }
      let message = `确认删除已选中的 ${this.tableData.selectedRows.length} æ¡${this.module}记录吗?`
      let message = `确认删除已选中的 ${this.tableData.selectedRows.length} æ¡è®°å½•吗?`
      if (childConfirm) {
        const containChildrenRows = []
        for (const row of this.tableData.selectedRows) {
admin/src/components/business/OperaChangeShopRecordWindow.vue
@@ -2,6 +2,7 @@
  <GlobalWindow
      :title="title"
      width="80%"
      :withFooter="false"
      :visible.sync="visible"
  >
    <div style="display: block;">
@@ -76,10 +77,10 @@
}
</script>
<style scoped>
.table-pagination{
/*.table-pagination{
  position: fixed !important;
  bottom: 50px;
}
  bottom: 0px;
}*/
.header-b{
  display: inline-block;
  font-size: 16px;
admin/src/components/business/OperaCouponGoodsWindow.vue
@@ -2,6 +2,7 @@
  <GlobalWindow
    :title="title"
    width="100%"
    :with-footer="false"
    :visible.sync="visible"
    @confirm="confirm"
  >
@@ -24,6 +25,7 @@
        <section>
          <el-button type="primary" @click="search">搜索</el-button>
          <el-button @click="reset">重置</el-button>
          <el-button type="primary" style="margin-left: 30px;font-weight: bold"  @click="confirm">确认商品配置</el-button>
        </section>
      </el-form>
      <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
@@ -249,6 +251,6 @@
<style scoped>
.table-pagination{
  position: fixed !important;
  bottom: 50px;
  bottom: 10px;
}
</style>
admin/src/components/business/OperaGoodsWindow.vue
@@ -92,7 +92,7 @@
          <el-radio :value="0" :label="0" >下架</el-radio>
        </el-radio-group>
      </el-form-item>
      <el-form-item label="使用商品品牌" prop="brandIdList">
      <el-form-item label="适用商品品牌" prop="brandIdList">
        <el-select v-model="form.brandIdList"   placeholder="请选择商品品牌" clearable multiple @change="changeBrand">
          <el-option
              v-for="item in applyBrands"
admin/src/components/business/OperaIntegralShopMoneyWindow.vue
@@ -2,6 +2,7 @@
  <GlobalWindow
      :title="title"
      width="100%"
      :withFooter="false"
      :visible.sync="visible"
  >
    <TableLayout :permissions="['business:integral:query']">
@@ -61,7 +62,6 @@
        <el-table
            v-loading="isWorking.search"
            :data="tableData.list"
            :height="tableHeight"
            stripe
            border
        >
@@ -155,10 +155,10 @@
}
</script>
<style scoped>
.table-pagination{
/*.table-pagination{
  position: fixed !important;
  bottom: 50px;
}
  bottom: 0px;
}*/
.header-b{
  display: inline-block;
  font-size: 16px;
admin/src/components/business/OperaLabelsAreaWindow.vue
@@ -2,15 +2,16 @@
  <GlobalAlertWindow
    v-loading="isUploading"
    :title="title"
    width="500px"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix=":"  inline>
      <el-form-item label="区域名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入分类名称"  v-trim/>
        <el-input v-model="form.name" placeholder="请输入区域名称"  v-trim/>
      </el-form-item>
      <el-form-item label="选择省份" prop="name">
      <el-form-item label="选择省份" prop="areaIdList">
        <el-select v-model="form.areaIdList" placeholder="请选择省份" multiple filterable>
          <el-option
              v-for="item in province"
@@ -53,6 +54,12 @@
      province: [],
      // éªŒè¯è§„则
      rules: {
        name: [
          { required: true, message: '请输入大区名称' }
        ],
        areaIdList: [
          { required: true, message: '请选择省份' }
        ],
      }
    }
  },
admin/src/components/business/OperaMemberDetail.vue
@@ -2,6 +2,7 @@
  <GlobalWindow
      :title="title"
      width="100%"
      :withFooter="false"
      :visible.sync="visible"
  >
    <div  class="detail-box">
@@ -153,10 +154,10 @@
}
</script>
<style scoped>
.table-pagination{
/*.table-pagination{
  position: fixed !important;
  bottom: 50px;
}
  bottom: 0px;
}*/
.header-b{
  display: inline-block;
  font-size: 16px;
admin/src/components/business/OperaShopGoodsWindow.vue
@@ -2,6 +2,7 @@
  <GlobalWindow
    :title="title"
    width="80%"
    :with-footer="false"
    :visible.sync="visible"
  >
    <TableLayout >
@@ -34,7 +35,7 @@
      </el-form>
      <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
      <template v-slot:table-wrap>
        <div :style="'display: flex;height:'+tabelHeight+'px;'">
<!--        <div :style="'display: flex;height:'+tabelHeight+'px;'">-->
          <el-table
              v-loading="isWorking.search"
              :data="tableData.list"
@@ -79,7 +80,7 @@
              :pagination="tableData.pagination"
          >
          </pagination>
          </div>
<!--          </div>-->
      </template>
    </TableLayout>
    <template  v-slot:footer>
@@ -210,8 +211,8 @@
}
</script>
<style scoped>
.table-pagination{
/*.table-pagination{
  position: fixed !important;
  bottom: 50px;
}
}*/
</style>
admin/src/components/business/OperaShopInfoWindow.vue
@@ -2,6 +2,7 @@
  <GlobalWindow
      :title="title"
      width="100%"
      :with-footer="false"
      :visible.sync="visible"
  >
    <div class="detail-box">
@@ -112,15 +113,14 @@
    <template v-if="activeGroup === 1">
      <div class="detail-box">
        <el-form ref="searchForm1"   :model="searchForm1"    style="display: block;" >
          <el-form-item label="" prop="code" style="display: inline-block;margin-right: 30px;">
            <el-input v-model="searchForm1.code" placeholder="请输入订单号" @keypress.enter.native="handlePageChange1(1)"></el-input>
          <el-form-item label="" prop="code" style="display: inline-block;margin-right: 20px;">
            <el-input v-model="searchForm1.code" style="width: 130px;" placeholder="订单编号" @keypress.enter.native="handlePageChange1(1)"></el-input>
          </el-form-item>
          <el-form-item label="" prop="goodsName" style="display: inline-block;margin-right: 30px;">
            <el-input v-model="searchForm1.goodsName" placeholder="请输入商品名称/编码" @keypress.enter.native="handlePageChange1(1)"></el-input>
          <el-form-item label="" prop="goodsName" style="display: inline-block;margin-right: 20px;">
            <el-input v-model="searchForm1.goodsName" style="width: 130px;" placeholder="商品名称/编码" @keypress.enter.native="handlePageChange1(1)"></el-input>
          </el-form-item>
          <el-form-item label="" prop="status" style="display: inline-block;margin-right: 30px;">
            <!-- 0正常 1禁用 -->
            <el-select     v-model="searchForm1.status"  placeholder="请选择订单状态"  @change="handlePageChange1(1)"  >
          <el-form-item label="" prop="status" style="display: inline-block;margin-right: 20px;">
            <el-select     v-model="searchForm1.status"  placeholder="订单状态"  style="width: 130px;"  @change="handlePageChange1(1)"  >
              <el-option  :key="0" :value="0"  label="待支付"  ></el-option>
              <el-option   :key="1" :value="1" label="待发货/待自提"  ></el-option>
              <el-option   :key="2" :value="2" label="待收货"  ></el-option>
@@ -128,7 +128,13 @@
              <el-option   :key="4" :value="4" label="已关闭"  ></el-option>
            </el-select>
          </el-form-item>
          <div class="date-style" style="display: inline-block;font-size: 14px;margin-right: 20px;">订单时间:
          <el-form-item label="" prop="receiveType" style="display: inline-block;margin-right: 20px;">
            <el-select v-model="searchForm1.receiveType"   style="width: 130px; "  placeholder="取货方式" clearable   @change="handlePageChange1(1)" >
              <el-option :key="0" :value="0" label="快递配送"></el-option>
              <el-option :key="1" :value="1" label="自提"></el-option>
            </el-select>
          </el-form-item>
          <div class="date-style" style="display: inline-block;font-size: 14px;margin-right: 20px;font-size: 12px;">订单时间:
            <el-form-item label="" prop="starttime" style="display: inline-block" >
              <el-date-picker
                  style="width: 160px; "
@@ -148,7 +154,7 @@
                  value-format="yyyy-MM-dd HH:mm:ss"
                  format="yyyy-MM-dd HH:mm:ss"
                  range-separator="至"
                  placeholder="截止时间"
                  placeholder="结束时间"
              ></el-date-picker>
            </el-form-item>
          </div>
@@ -175,7 +181,12 @@
                stripe
                border
            >
              <el-table-column prop="code" label="订单编号"   align="center" min-width="120px" show-overflow-tooltip>  </el-table-column>
              <el-table-column prop="code" label="订单编号"  fixed align="center" min-width="120px" show-overflow-tooltip>
                <template slot-scope="{row}">
                <span    style="color: #216EEE; "   @click="$refs.operaGoodsOrderDetail.open('订单详情', row, 'first')">{{row.code}}</span>
                </template>
              </el-table-column>
              <el-table-column prop="details" label="商品信息"   align="center" min-width="250px" show-overflow-tooltip>
                <template slot-scope="{row}">
                  <div v-if="row.goodsorderDetailList && row.goodsorderDetailList.length"  style="width: 220px">
@@ -195,6 +206,16 @@
              <el-table-column prop="couponPrice" label="优惠金额(元)" align="center" min-width="100px">
                <template slot-scope="{row}">
                  {{(row.couponPrice || 0) + (row.integral||0)}}
                </template>
              </el-table-column>
              <el-table-column prop="status" label="订单状态" align="center" min-width="100px">
                <template slot-scope="{row}">
                  <span v-if="row.status ==0" class="orange">待支付</span>
                  <span  v-if="row.status ==1" class="orange">{{ (row.receiveType||0)==1?'待自提':'待发货'}}</span>
                  <span  v-if="row.status ==2" class="orange">待收货</span>
                  <span  v-if="row.status ==3" class="grey">交易完成</span>
                  <span  v-if="row.status ==4" class="grey">已取消</span>
                  <span  v-if="row.status ==6" class="grey">已退款</span>
                </template>
              </el-table-column>
              <el-table-column prop="price" label="实付价格(元)" align="center" min-width="200px"></el-table-column>
@@ -260,8 +281,8 @@
                  <span v-else class="red">扣除</span>
                </template>
              </el-table-column>
              <el-table-column prop="num" label="数量" fixed align="center" min-width="100px">  </el-table-column>
              <el-table-column prop="totalNum" label="余额" fixed align="center" min-width="100px">  </el-table-column>
              <el-table-column prop="num" label="数量"   align="center" min-width="100px">  </el-table-column>
              <el-table-column prop="totalNum" label="余额"   align="center" min-width="100px">  </el-table-column>
              <el-table-column prop="strObjType" label="消费类型" align="center" min-width="100px"></el-table-column>
              <el-table-column prop="content" label="来源" align="center" min-width="150px" show-overflow-tooltip></el-table-column>
              <el-table-column prop="remark" label="备注" align="center" min-width="200px"></el-table-column>
@@ -283,6 +304,7 @@
    </template>
    <OperaChangeShopRecordWindow ref="OperaChangeShopRecordWindow"/>
    <OperaChangeIntegralWindow ref="OperaChangeIntegralWindow" @success="successBiz"/>
    <OperaGoodsOrderDetail ref="operaGoodsOrderDetail" @success="handlePageChange"/>
  </GlobalWindow>
</template>
<script>
@@ -291,6 +313,7 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaChangeShopRecordWindow from '@/components/business/OperaChangeShopRecordWindow'
import OperaGoodsOrderDetail from '@/components/business/OperaGoodsOrderDetail'
import OperaChangeIntegralWindow from '@/components/business/OperaChangeIntegralWindow'
import { shopDetail as detail } from '@/api/business/shop'
import { fetchList as actionList } from '@/api/business/userAction'
@@ -299,7 +322,7 @@
export default {
  name: 'OperaShopInfoWindow',
  extends: BaseTable,
  components: { GlobalWindow, TableLayout, Pagination, OperaChangeShopRecordWindow, OperaChangeIntegralWindow },
  components: { GlobalWindow, TableLayout, Pagination, OperaChangeShopRecordWindow, OperaChangeIntegralWindow,OperaGoodsOrderDetail },
  data () {
    return {
      title: '',
@@ -312,6 +335,7 @@
      searchForm1: {
        distributionShopId: '',
        goodsName: null,
        receiveType:'',
        code: null,
        status: null,
        starttime: null,
@@ -535,10 +559,10 @@
    border-bottom: 2px solid #216EEE;
  }
}
.table-pagination{
/*.table-pagination{
  position: fixed !important;
  bottom: 50px;
}
}*/
.header-b{
  display: inline-block;
  font-size: 16px;
admin/src/components/business/OperaWithdrawRecordWindow.vue
@@ -78,7 +78,7 @@
      <p class="tip-header" >申请审批</p>
      <el-form :model="checkForm" ref="checkForm" :rules="rules" label-width="110px" label-suffix=":"  style="margin-left: 20px;width: 500px;" inline >
        <el-form-item label="审核结果" prop="status">
          <el-radio-group v-model="checkForm.status">
          <el-radio-group v-model="checkForm.status" @change="changeStatuus">
            <el-radio :label="1">通过</el-radio>
            <el-radio  :label="2">驳回</el-radio>
          </el-radio-group>
@@ -99,7 +99,7 @@
        <el-form-item label="打款银行" prop="payBank" v-if="checkForm.status ==1">
          <el-input v-model="checkForm.payBank" placeholder="请输入打款银行"  style="width: 350px"  v-trim/>
        </el-form-item>
        <el-form-item label="审核备注" prop="auditRemark">
        <el-form-item label="审核备注" prop="auditRemark" >
          <el-input v-model="checkForm.auditRemark" placeholder="请输入审核备注" type="textarea"  style="width: 350px; " rows="6" v-trim/>
        </el-form-item>
      </el-form>
@@ -134,10 +134,12 @@
        payBank: '',
        payFileList: null
      },
      isRemarkRequired: false,
      rules: {
        status: [
          { required: true, message: '请选择审核结果' }
        ]
        ],
        auditRemark: []
      }
    }
  },
@@ -149,7 +151,25 @@
      'field.main': 'id'
    })
  },
  watch: {
    isRemarkRequired(newVal) {
      this.updateRules();
    }
  },
  methods: {
    changeStatuus(){
      this.isRemarkRequired = this.checkForm.status ==2
    },
    updateRules() {
      if (this.isRemarkRequired) {
        this.rules.auditRemark = [
          { required: true, message: '请填写审核备注', trigger: 'blur' }
        ]
      } else {
        this.rules.auditRemark = []; // ä¸å¿…填时,清空规则数组
      }
      this.$refs.checkForm.clearValidate(); // æ¸…除之前的验证状态,避免出现不必要的提示
    },
    confirmDo () {
      this.$refs.checkForm.validate((valid) => {
        if (!valid) {
admin/src/components/business/ResetPwdShopWindow.vue
@@ -6,7 +6,7 @@
    title="重置密码"
    @confirm="confirm"
  >
    <p class="tip" v-if="user != null">为经销商 <em>{{shop.realname}}</em> é‡ç½®å¯†ç </p>
    <p class="tip" v-if="shop != null">为经销商 <em>{{shop.realname}}</em> é‡ç½®å¯†ç </p>
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="新密码" prop="password" required>
        <el-input v-model="form.password" type="password" placeholder="请输入新密码" maxlength="30" show-password></el-input>
@@ -55,7 +55,7 @@
        }
        this.isWorking = true
        resetPwd({
          id: this.user.id,
          id: this.shop.id,
          password: this.form.password
        })
          .then(() => {
admin/src/components/common/UploadFile.vue
@@ -43,7 +43,7 @@
  data() {
    return {
      fileList: [],
      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload?folder='+this.uploadData.folder
      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload?folder='+this.uploadData.folder
    }
  },
admin/src/views/business/banner.vue
@@ -52,7 +52,7 @@
        </el-table-column>
        <el-table-column prop="imgurlfull" label="展示图" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-image :scr="row.imgFullUrl" :preview-src-list="[row.imgFullUrl]"></el-image>
            <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>
admin/src/views/business/member.vue
@@ -2,7 +2,7 @@
  <TableLayout :permissions="['business:member:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="用户" prop="nickname ">
      <el-form-item label="用户" prop="nickname">
        <el-input v-model="searchForm.nickname"  style="width: 160px" placeholder="昵称/手机号/真实姓名" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status"  >
@@ -12,11 +12,11 @@
          <el-option :key="2" :value="2" label="已注销"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="关联经销商" prop="shopName ">
      <el-form-item label="关联经销商" prop="shopName">
        <el-input v-model="searchForm.shopName"  style="width: 160px" placeholder="经销商名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <div class="date-style" style="display: inline">
        <el-form-item label="创建时间" prop="queryStartDate" >
        <el-form-item label="创建时间" prop="starttime" >
          <el-date-picker
              style="width: 160px"
            v-model="searchForm.starttime"
@@ -27,7 +27,7 @@
            placeholder="开始时间"
        ></el-date-picker>
        </el-form-item>
        <el-form-item label="-" label-width="10px" prop="queryEndDate" >
        <el-form-item label="-" label-width="10px" prop="endtime" >
          <el-date-picker
              style="width: 160px"
              v-model="searchForm.endtime"
@@ -56,14 +56,27 @@
        stripe
        border
      >
        <el-table-column prop="openid" label="微信openid" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="nickname" label="昵称" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="nickname" label="昵称" fixed align="center"  min-width="100px">
          <template slot-scope="{row}">
            <span style="cursor: pointer" title="点击查看详情" class="blue" @click="showMemberDetail(row)">{{row.nickname}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="imgurl" label="头像" align="center" min-width="70px">
          <template slot-scope="{row}">
            <el-image style="width: 60px;height: 60px;"  v-if="row.imgurl" :src="row.imgFullUrl+row.imgurl" :preview-src-list="[row.imgFullUrl+row.imgurl]"></el-image>
          </template>
        </el-table-column>
        <el-table-column prop="openId" label="微信openid" align="center"  min-width="150px"  >
          <template slot-scope="{row}">
            <span >{{row.openId}}</span>
          </template>
        </el-table-column>
        <el-table-column prop="name" label="客户姓名" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="授权手机号" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="idcard" label="身份证号" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="integral" label="现有积分" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="totalIntegral" label="累计积分" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="totalIntegral" label="累计扣除" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="totalReduceIntegral" label="累计扣除" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="shopName" label="关联经销商" align="center"  min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" align="center"  min-width="140px"></el-table-column>
        <el-table-column label="状态" align="center"  min-width="100px">
@@ -79,7 +92,7 @@
            <span v-if="row.status==2" class="grey">已注销</span>
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center"  min-width="200px">
        <el-table-column label="操作" align="center"  min-width="100px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showMemberDetail(row)">详情</el-button>
            <el-button type="text" v-if="row.bindShopId !=null && row.status!=2" @click="changeShop(row)">更换经销商</el-button>
admin/src/views/business/platformGoods.vue
@@ -72,7 +72,7 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="imgurl" label="商品信息" min-width="80px">
        <el-table-column prop="imgurl" label="商品主图" min-width="80px">
          <template slot-scope="{row}">
            <el-image style="width: 50px;height: 50px;" v-if="row.imgurl && row.imgurl!=''" :src="row.resourcePath+row.imgurl" :preview-src-list="[row.resourcePath+row.imgurl]"></el-image>
          </template>
admin/src/views/business/shop.vue
@@ -5,19 +5,52 @@
      <el-form-item label="名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="门店ID" prop="code">
        <el-input v-model="searchForm.code" placeholder="请输入门店ID" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="登录账号" prop="name">
        <el-input v-model="searchForm.username" placeholder="请输入登录账号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="销售模式" prop="saleType" >
        <!-- 0正常 1禁用 -->
        <el-select     v-model="searchForm.saleType"  placeholder="销售模式"  @change="search"  >
        <el-select     v-model="searchForm.saleType"  placeholder="销售模式"  style="width: 100px"  @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="provinceId" >
      <el-select v-model="searchForm.provinceId" placeholder="省份" style="width: 100px" filterable @change="selectProvince">
        <el-option
            v-for="item in provinces"
            :key="item.id"
            :value="item.id"
            :label="item.name"
        ></el-option>
      </el-select>
      </el-form-item>
      <el-form-item label="" prop="cityId" >
      <el-select v-model="searchForm.cityId" filterable placeholder="城市"  @change="selectCity" style="width: 100px" >
        <el-option
            v-for="item in cities"
            :key="item.id"
            :value="item.id"
            :label="item.name"
        ></el-option>
      </el-select>
      </el-form-item>
      <el-form-item label="" prop="areaId" >
      <el-select v-model="searchForm.areaId" filterable placeholder="区域"  style="width: 100px" >
        <el-option
            v-for="item in areas"
            :key="item.id"
            :value="item.id"
            :label="item.name"
        ></el-option>
      </el-select>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <!-- 0正常 1禁用 -->
        <el-select     v-model="searchForm.status"  placeholder="请选择状态"    @change="search"   >
        <el-select     v-model="searchForm.status"  placeholder="请选择状态"  style="width: 100px"    @change="search"   >
          <el-option  :key="0" :value="0"  label="正常"  ></el-option>
          <el-option   :key="1" :value="1" label="禁用"  ></el-option>
        </el-select>
@@ -135,21 +168,29 @@
import OperaGoodsShopWindow from '@/components/business/OperaGoodsShopWindow'
import { resetPwd, updateIsRecById } from '@/api/business/shop'
import ResetPwdShopWindow from '@/components/business/ResetPwdShopWindow'
import { listByParentId } from '@/api/business/areas'
export default {
  name: 'Shop',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaShopWindow, OperaShopInfoWindow, ResetPwdShopWindow,OperaGoodsShopWindow },
  components: { TableLayout, Pagination, OperaShopWindow, OperaShopInfoWindow, ResetPwdShopWindow, OperaGoodsShopWindow },
  data () {
    return {
      // æœç´¢
      searchForm: {
        name: '',
        code: '',
        username: '',
        status: '',
        saleType: '',
        isrec: ''
      }
        isrec: '',
        provinceId: '',
        cityId: '',
        areaId: ''
      },
      provinces: [],
      cities: [],
      areas: []
    }
  },
  created () {
@@ -159,11 +200,55 @@
      'field.id': 'id',
      'field.main': 'id'
    })
    listByParentId({ type: 0, parentId: '' })
      .then(data => {
        this.provinces = data
      })
    this.search()
  },
  methods: {
    goPriceSet(row){
      this.$refs.OperaGoodsShopWindow.open('设置供货价 - '+row.name, row )
    selectProvince (val) {
      this.searchForm.cityId = null
      this.searchForm.areaId = null
      this.cities = []
      this.areas = []
      listByParentId({ type: 1, parentId: val })
        .then(data => {
          this.cities = data
        })
        .catch(e => {
          this.$tip.error(e)
        })
    },
    selectCity (val) {
      this.searchForm.areaId = null
      this.areas = []
      listByParentId({ type: 2, parentId: val })
        .then(data => {
          this.areas = data
        })
        .catch(e => {
          this.$tip.error(e)
        })
    },
    initCityArea (proid, cityid) {
      listByParentId({ type: 1, parentId: proid })
        .then(data => {
          this.cities = data
        })
        .catch(e => {
          this.$tip.error(e)
        })
      listByParentId({ type: 2, parentId: cityid })
        .then(data => {
          this.areas = data
        })
        .catch(e => {
          this.$tip.error(e)
        })
    },
    goPriceSet (row) {
      this.$refs.OperaGoodsShopWindow.open('设置供货价 - ' + row.name, row)
    },
    resetPwd (row) {
      this.$dialog.messageWaring('确认重置该经销商【' + row.name + '】的登录密码吗?')
@@ -195,7 +280,7 @@
        })
    },
    showDetail (row) {
      this.$refs.OperaShopInfoWindow.open('经销商详情【'+row.name+'】', row)
      this.$refs.OperaShopInfoWindow.open('经销商详情【' + row.name + '】', row)
    }
  }
}
server/dmmall_service/src/main/java/com/doumee/config/listener/IntegralApplicationListener.java
ÎļþÒÑɾ³ý
server/dmmall_service/src/main/java/com/doumee/config/listener/NoticeApplicationListener.java
ÎļþÒÑɾ³ý
server/dmmall_service/src/main/java/com/doumee/config/listener/VisitApplicationListener.java
ÎļþÒÑɾ³ý
server/dmmall_service/src/main/java/com/doumee/config/listener/event/IntegralEvent.java
ÎļþÒÑɾ³ý
server/dmmall_service/src/main/java/com/doumee/config/listener/event/NoticeEvent.java
ÎļþÒÑɾ³ý
server/dmmall_service/src/main/java/com/doumee/config/listener/event/VisitEvent.java
ÎļþÒÑɾ³ý
server/dmmall_service/src/main/java/com/doumee/dao/business/MemberMapper.java
@@ -15,20 +15,20 @@
public interface MemberMapper extends MPJBaseMapper<Member> {
    /**
/*    *//**
     * æ·»åŠ ç§¯åˆ†
     * @param memberId
     * @param integral
     */
     *//*
    @Select(" update member set INTEGRAL = ifNull( INTEGRAL,0) + #{integral} , TOTAL_INTEGRAL = ifNull(TOTAL_INTEGRAL,0) +  #{titleIntegral}   , EDIT_DATE = now() , EDITOR = #{memberId} where id = #{memberId}  ")
    void addIntegral(@Param("memberId") Integer memberId , @Param("integral")BigDecimal integral , @Param("titleIntegral")BigDecimal titleIntegral);
    /**
    *//**
     * å‡å°‘积分
     * @param memberId
     * @param integral
     */
     *//*
    @Select(" update member set INTEGRAL = ifNull( INTEGRAL,0) - #{integral} , EDIT_DATE = now() , EDITOR = #{memberId} where id = #{memberId}  ")
    void subtractIntegral(@Param("memberId") Integer memberId , @Param("integral")BigDecimal integral);
    void subtractIntegral(@Param("memberId") Integer memberId , @Param("integral")BigDecimal integral);*/
}
server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
@@ -13,38 +13,4 @@
 */
public interface ShopMapper extends BaseMapper<Shop> {
    /**
     * æ·»åŠ ç§¯åˆ†
     * @param shopId
     * @param integral
     */
    @Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) + #{integral} , TOTAL_INTEGRAL = ifNull(TOTAL_INTEGRAL,0) +  #{titleIntegral}   , EDIT_DATE = now()  where id = #{shopId}  ")
    void addIntegral(@Param("shopId") Integer shopId , @Param("integral") BigDecimal integral , @Param("titleIntegral")BigDecimal titleIntegral);
    /**
     * å‡å°‘积分
     * @param shopId
     * @param integral
     */
    @Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) - #{integral} , EDIT_DATE = now()   where id = #{shopId}  ")
    void subtractIntegral(@Param("shopId") Integer shopId , @Param("integral")BigDecimal integral);
    /**
     * æ·»åŠ ä½™é¢
     * @param shopId
     * @param amount
     */
    @Select(" update shop set AMOUNT = ifNull(AMOUNT,0) + #{amount} , TOTAL_AMOUNT = ifNull(TOTAL_AMOUNT,0) + #{titleAmount}   , EDIT_DATE = now()  where id = #{shopId}  ")
    void addAmount(@Param("shopId") Integer shopId , @Param("amount") BigDecimal amount , @Param("titleAmount")BigDecimal titleAmount);
    /**
     * å‡å°‘余额
     * @param shopId
     * @param amount
     */
    @Select(" update shop set AMOUNT = ifNull( AMOUNT,0) - #{amount} , EDIT_DATE = now()   where id = #{shopId}  ")
    void subtractAmount(@Param("shopId") Integer shopId , @Param("amount")BigDecimal amount);
}
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -32,7 +32,7 @@
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间",width = 10,index = 8,dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ExcelColumn(name="创建时间",width = 10,index = 10,dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
@@ -69,7 +69,7 @@
    private String phone;
    @ApiModelProperty(value = "身份证号")
   // @ExcelColumn(name="身份证号")
    @ExcelColumn(name="身份证号" ,width = 10,index = 5)
    private String idcard;
    @ApiModelProperty(value = "身份证正面照")
@@ -81,15 +81,19 @@
    private String idcardImgBack;
    @ApiModelProperty(value = "积分余额", example = "1")
    @ExcelColumn(name="积分余额",width = 10,index = 5)
    @ExcelColumn(name="积分余额",width = 10,index = 6)
    private BigDecimal integral;
    @ApiModelProperty(value = "积分累计", example = "1")
    @ExcelColumn(name="积分累计获得",width = 10,index = 6)
    @ExcelColumn(name="积分累计获得",width = 10,index = 7)
    private BigDecimal totalIntegral;
    @ApiModelProperty(value = "积分扣除累计", example = "1")
    @ExcelColumn(name="积分累计扣除",width = 10,index =8)
    @TableField(exist = false)
    private BigDecimal totalReduceIntegral;
    @ApiModelProperty(value = "状态0正常 1异常 2注销", example = "1")
    @ExcelColumn(name="状态",width = 10,index =9,valueMapping = "0=启用;1=禁用")
    @ExcelColumn(name="状态",width = 10,index =11,valueMapping = "0=启用;1=禁用;2=已注销;")
    private Integer status;
    @ApiModelProperty(value = "性别 0男 1女 2未知", example = "1")
@@ -163,7 +167,7 @@
    private String cityName;
    @ApiModelProperty(value = "经销商名称")
    @TableField(exist = false)
    @ExcelColumn(name = "关联经销商",width = 10,index = 7)
    @ExcelColumn(name = "关联经销商",width = 10,index = 9)
    private String shopName;
    @ApiModelProperty(value = "开始时间 ")
    @TableField(exist = false)
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java
@@ -302,4 +302,12 @@
    @TableField(exist = false)
    private   List<ProductLabel> productList;
    @ApiModelProperty(value = "所属城市编码(关联areas)", example = "1")
    @TableField(exist = false)
    private Integer cityId;
    @ApiModelProperty(value = "所属省份编码(关联areas)", example = "1")
    @TableField(exist = false)
    private Integer provinceId;
}
server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java
@@ -38,5 +38,8 @@
    @ApiModelProperty(value = "消息参数")
    private String param1;
    @ApiModelProperty(value = "备注")
    private String remark;
}
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
@@ -3,6 +3,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Integral;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.web.dto.IntegralDTO;
import com.doumee.dao.web.dto.IntegralRecordDTO;
import com.doumee.dao.web.request.DealIntegralRequest;
@@ -122,14 +124,14 @@
     * @param dealIntegralRequest å®žä½“对象
     * @return Integer
     */
    Integer dealIntegral(DealIntegralRequest dealIntegralRequest);
    Integer dealIntegral(DealIntegralRequest dealIntegralRequest, Member member);
    /**
     * æ›´æ–°ç»é”€å•†ç§¯åˆ†
     * @param dealIntegralRequest
     * @return
     */
    Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest);
    Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest, Shop shop);
    /**
     * æ›´æ–°ç»é”€å•†é‡‘额
server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
@@ -318,7 +318,7 @@
        param.setDealType(Constants.ZERO);
        param.setIntegralNum(integral);
        param.setIntegralObjType(Constants.IntegralObjType.AFTERSALE_BACK);
        integralService.dealIntegral(param);
        integralService.dealIntegral(param,null);
    }
    private void isBackMoneyValid(BigDecimal actmoney, BigDecimal perPrice, Integer goodsNum, BigDecimal orderPrice,BigDecimal orderIntegral, BigDecimal orderCouponPrice) {
@@ -1064,7 +1064,7 @@
                    dealIntegralRequest.setObjId(goodsorder.getId());
                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_INTEGRAL);
                    integralService.dealShopIntegral(dealIntegralRequest);
                    integralService.dealShopIntegral(dealIntegralRequest,null);
                }
            }
        }
@@ -1109,7 +1109,7 @@
                    dealIntegralRequest.setObjId(goodsorder.getId());
                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND_RETURN);
                    integralService.dealIntegral(dealIntegralRequest);
                    integralService.dealIntegral(dealIntegralRequest,null);
                }
            }
        }
@@ -1125,7 +1125,7 @@
            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND);
            dealIntegralRequest.setParam1(goodsorder.getCode().toString());
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
        //订单退款 é€€å›žå®¢æˆ·ä½¿ç”¨çš„优惠券
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java
@@ -254,6 +254,6 @@
        dealIntegralRequest.setMemberId(memberId);
        dealIntegralRequest.setObjId(card.getId());
        dealIntegralRequest.setDealType(Constants.ZERO);
        integralService.dealIntegral(dealIntegralRequest);
        integralService.dealIntegral(dealIntegralRequest,null);
    }
}
server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
@@ -1,7 +1,10 @@
package com.doumee.service.business.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.listener.event.IntegralEvent;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -23,11 +26,6 @@
import com.doumee.dao.web.dto.activity.ActivityReplyCommentDTO;
import com.doumee.dao.web.request.CommentApplyRequest;
import com.doumee.service.business.CommentService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.ZanService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.collections4.MapUtils;
@@ -124,8 +122,6 @@
                target.setMemberImgUrl(memberFile + member.getImgurl());
            }
        }
        IntegralEvent<Comment> integralEvent = new IntegralEvent(this,target, Constants.CoffeeBeanTask.POST_COMMENTS,memberId);
        applicationEventPublisher.publishEvent(integralEvent);
        target.setZanCount(Constants.ZERO);
        target.setZanStatus(Constants.ZERO);
        return target;
@@ -189,7 +185,7 @@
        QueryWrapper<Comment> wrapper = new QueryWrapper<>(comment);
        return commentMapper.selectList(wrapper);
    }
    @Override
    public PageData<Comment> findPage(PageWrap<Comment> pageWrap) {
        IPage<Comment> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -658,6 +658,7 @@
        }
        Multifile find = new Multifile();
        find.setObjId(id);
        find.setObjType(Constants.MultiFile.PLATFORM_GOOD_ROTATION.getKey());
        find.setIsdeleted(Constants.ZERO);
        List<Multifile> fileList=  multifileMapper.selectList(new QueryWrapper<>(find));
        goods.setFileList(fileList);
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -586,6 +586,7 @@
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.selectAll(Goodsorder.class)
         .eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType())
         .eq(pageWrap.getModel().getDistributionShopId()!=null,Goodsorder::getDistributionShopId,pageWrap.getModel().getDistributionShopId())
         .eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus())
         .eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode())
@@ -905,7 +906,7 @@
            dealIntegralRequest.setObjId(goodsorder.getId());
            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER);
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
        if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){
@@ -1191,7 +1192,7 @@
            dealIntegralRequest.setObjId(goodsorder.getId());
            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_CANCEL);
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
        //订单信息取消
        goodsorder.setStatus(Constants.OrderStatus.CLOSE.getKey());
@@ -1268,7 +1269,7 @@
            dealIntegralRequest.setObjId(goodsorder.getId());
            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_CANCEL);
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
        //订单信息取消
        goodsorder.setStatus(Constants.OrderStatus.CLOSE.getKey());
@@ -1801,7 +1802,7 @@
            if(Objects.nonNull(member)){
                dealIntegralRequest.setParam1(member.getNickname());
            }
            integralService.dealShopIntegral(dealIntegralRequest);
            integralService.dealShopIntegral(dealIntegralRequest,null);
        }
    }
@@ -1846,7 +1847,7 @@
            dealIntegralRequest.setObjId(goodsorder.getId());
            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONATE);
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -146,8 +146,10 @@
    @Override
    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
    public Integer dealIntegral(DealIntegralRequest dealIntegralRequest) {
        Member member = memberMapper.selectById(dealIntegralRequest.getMemberId());
    public Integer dealIntegral(DealIntegralRequest dealIntegralRequest,Member member) {
        if(member == null){
              member = memberMapper.selectById(dealIntegralRequest.getMemberId());
        }
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到用户信息");
        }
@@ -163,6 +165,7 @@
            info = info .replace("${param1}",dealIntegralRequest.getParam1());
        }
        integral.setContent(info);
        integral.setRemark(dealIntegralRequest.getRemark());
        integral.setObjId(dealIntegralRequest.getObjId());
        integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey());
        integral.setType(dealIntegralRequest.getDealType());
@@ -171,27 +174,29 @@
        integral.setOrderCode(dealIntegralRequest.getOrderCode());
        integral.setUserType(Constants.ZERO);
        integralMapper.insert(integral);
        if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
            memberMapper.addIntegral(member.getId(),dealIntegralRequest.getIntegralNum(),
                    dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
        }else{
            memberMapper.subtractIntegral(member.getId(),dealIntegralRequest.getIntegralNum());
        }
        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                .eq(Member::getId,member.getId())
                .set(Member::getEditDate,new Date())
                .set(Member::getEditor,user!=null ? user.getId():null)
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计增加
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" +  dealIntegralRequest.getIntegralNum())
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum()));
        //站内信
        noticeService.saveMemberIntegralNotice(
                dealIntegralRequest.getIntegralObjType(),Constants.ZERO,member.getId(),dealIntegralRequest.getIntegralNum(),
                integral.getId(), info
        );
        return integral.getId();
    }
    @Override
    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
    public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest) {
        Shop shop = shopMapper.selectById(dealIntegralRequest.getMemberId());
    public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest,Shop shop) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(shop ==null){
            shop = shopMapper.selectById(dealIntegralRequest.getMemberId());
        }
        if(Objects.isNull(shop)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到商户信息");
        }
@@ -199,7 +204,7 @@
        integral.setMemberId(shop.getId());
        integral.setCreateDate(new Date());
        integral.setIsdeleted(Constants.ZERO);
        integral.setTitle(dealIntegralRequest.getIntegralObjType().getName());
        integral.setTitle( dealIntegralRequest.getIntegralObjType()!=null?dealIntegralRequest.getIntegralObjType().getName():"");
        String info = dealIntegralRequest.getIntegralObjType().getNoteinfo();
        info = info.replace("${param}",dealIntegralRequest.getIntegralNum().toString());
        if(StringUtils.isNotBlank(dealIntegralRequest.getParam1())){
@@ -209,19 +214,28 @@
        integral.setObjId(dealIntegralRequest.getObjId());
        integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey());
        integral.setType(dealIntegralRequest.getDealType());
        integral.setRemark(dealIntegralRequest.getRemark());
        integral.setNum(dealIntegralRequest.getIntegralNum());
        shop.setIntegral(Constants.formatBigdecimal(shop.getIntegral()));
        integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? shop.getIntegral().add(integral.getNum()):shop.getIntegral().subtract(integral.getNum()));
        integral.setOrderCode(dealIntegralRequest.getOrderCode());
        integral.setUserType(Constants.ONE);
        integralMapper.insert(integral);
        if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
        shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
                    .eq(Shop::getId,shop.getId())
                    .set(Shop::getEditDate,new Date())
                    .set(Shop::getEditor,user!=null ? user.getId():null)
                    .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计增加
                    .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" +  dealIntegralRequest.getIntegralNum())
                    .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum()));
     /* if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
            shopMapper.addIntegral(shop.getId(),dealIntegralRequest.getIntegralNum(),
                    dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
        }else{
            shopMapper.subtractIntegral(shop.getId(),dealIntegralRequest.getIntegralNum());
        }
        }*/
        //站内信
        noticeService.saveMemberIntegralNotice(
@@ -258,12 +272,23 @@
        integral.setOrderCode(dealIntegralRequest.getOrderCode());
        integral.setUserType(Constants.TWO);
        integralMapper.insert(integral);
        if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
                .eq(Shop::getId,shop.getId())
                .set(Shop::getEditDate,new Date())
                .set(Shop::getEditor,user!=null ? user.getId():null)
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"total_integral = ifnull(total_integral,0)+" + dealIntegralRequest.getIntegralNum())//累计增加
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ZERO),"integral = ifnull(integral,0)+" +  dealIntegralRequest.getIntegralNum())
                .setSql(dealIntegralRequest.getDealType().equals(Constants.ONE),"integral = ifnull(integral,0)-" + dealIntegralRequest.getIntegralNum()));
      /*  if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
            shopMapper.addAmount(shop.getId(),dealIntegralRequest.getIntegralNum(),
                    dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
        }else{
            shopMapper.subtractAmount(shop.getId(),dealIntegralRequest.getIntegralNum());
        }
        }*/
        return integral.getId();
    }
@@ -511,9 +536,13 @@
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Date date = new Date();
        Integral integral = new Integral();
//        Date date = new Date();
//        Integral integral = new Integral();
        Constants.IntegralObjType integralObjType =null;
        DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
        dealIntegralRequest.setIntegralNum(param.getNum());
        dealIntegralRequest.setRemark(param.getRemark());
        dealIntegralRequest.setDealType(param.getType());
        if(Constants.equalsInteger(param.getUserType(), Constants.ZERO)){//用户账号
            MPJLambdaWrapper<Member> queryWrapper =new MPJLambdaWrapper<>();
            queryWrapper.selectAll(Member.class);
@@ -532,28 +561,11 @@
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户账户余额不足!");
            }
            integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
            DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
            dealIntegralRequest.setIntegralNum(num);
            dealIntegralRequest.setDealType(param.getType());
            dealIntegralRequest.setMemberId(model.getId());
            dealIntegralRequest.setObjId(null);
            dealIntegralRequest.setOrderCode(null);
            dealIntegralRequest.setRemark(param.getRemark());
            dealIntegralRequest.setIntegralObjType(integralObjType);
            this.dealIntegral(dealIntegralRequest);
            this.dealIntegral(dealIntegralRequest,model);
            //账户余额
//            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
//                    .eq(Member::getId,model.getId())
//                    .set(Member::getEditDate,date)
//                    .set(Member::getEditor,user.getId())
//                    .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
//                    .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
//                    .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
//
//            integralObjType = param.getType()==0?Constants.IntegralObjType.SYSTEM_RECHARGE:Constants.IntegralObjType.SYSTEM_DEDUCT;
//            integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(param.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(param.getNum()));
//            integral.setUserType(Constants.ZERO);
        }else{//经销商账户
            Shop model = shopMapper.selectById(param.getMemberId());
            if(model == null ||Constants.equalsObject(model.getIsdeleted(),Constants.ONE)){
@@ -565,42 +577,15 @@
//                num = num.multiply(new BigDecimal(-1));//减少
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"经销商账户积分余额不足!");
            }
            //账户余额
//            shopMapper.update(null,new UpdateWrapper<Shop>().lambda()
//                    .eq(Shop::getId,model.getId())
//                    .set(Shop::getEditDate,date)
//                    .set(Shop::getEditor,user.getId())
//                    .setSql(param.getType() == 0,"total_integral = ifnull(total_integral,0)+" + num)//累计增加
//                    .setSql(param.getType() == 0,"integral = ifnull(integral,0)+" + param.getNum())
//                    .setSql(param.getType() == 1,"integral = ifnull(integral,0)-" + param.getNum()));
//            integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT;
//            integral.setTotalNum(param.getType() == 0? Constants.formatBigdecimal(model.getIntegral()).add(param.getNum()):Constants.formatBigdecimal(model.getIntegral()).subtract(param.getNum()));
//            integral.setUserType(Constants.ONE);
            DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
            dealIntegralRequest.setIntegralNum(num);
            dealIntegralRequest.setDealType(param.getType());
            integralObjType = param.getType()==0?Constants.IntegralObjType.SHOP_SYSTEM_RECHARGE:Constants.IntegralObjType.SHOP_SYSTEM_DEDUCT;
            dealIntegralRequest.setMemberId(model.getId());
            dealIntegralRequest.setObjId(null);
            dealIntegralRequest.setOrderCode(null);
            dealIntegralRequest.setIntegralObjType(integralObjType);
            this.dealShopIntegral(dealIntegralRequest);
            this.dealShopIntegral(dealIntegralRequest,model);
        }
//        integral.setCreateDate(new Date());
//        integral.setCreator(user.getId());
//        integral.setIsdeleted(Constants.ZERO);
//        integral.setNum(param.getNum());
//        integral.setTitle(integralObjType.getName());
//        integral.setContent(integralObjType.getNoteinfo().replace("${param}",integral.getNum().toString()));
//        integral.setMemberId(param.getMemberId());
//        integral.setObjId(param.getMemberId());
//        integral.setObjType(integralObjType.getKey());
//        integral.setType(param.getType());
//        integral.setRemark(param.getRemark());
//        integral.setOrderCode(null);
//        integralMapper.insert(integral);
    }
    @Override
    public IntegralDataResponse getIntegralData(IntegralRecordDTO model){
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -520,10 +520,7 @@
        memberCoupon.setBackIntegral(BigDecimal.ZERO);
        memberCoupon.setName(coupon.getName());
        memberCouponMapper.insert(memberCoupon);
        //TODO æ·»åŠ ç§¯åˆ†å˜åŠ¨è®°å½•
        //更新用户积分
        memberMapper.subtractIntegral(memberId,memberCoupon.getIntegral());
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -253,13 +253,13 @@
                 .or().like(Member::getName,pageWrap.getModel().getNickname())
                .or().like(Member::getPhone,pageWrap.getModel().getNickname())
        );
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getStatus,pageWrap.getModel().getShopName());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getName,pageWrap.getModel().getShopName());
        queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Member::getStatus,pageWrap.getModel().getStatus());
        queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
        queryWrapper.ge(pageWrap.getModel().getStarttime()!=null, Member::getCreateDate,pageWrap.getModel().getStarttime());
        queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Member::getCreateDate, pageWrap.getModel().getEndtime());
        queryWrapper.orderByDesc(Member::getCreateDate);
        queryWrapper.orderByDesc(Member::getId);
        IPage<Member> result = memberJoinMapper.selectJoinPage(page, Member.class, queryWrapper);
@@ -269,6 +269,10 @@
            for(Member model:result.getRecords()){
                if(StringUtils.isNotBlank(model.getImgurl())){
                    model.setImgFullUrl(path);
                }
                model.setTotalReduceIntegral(Constants.formatBigdecimal(model.getTotalIntegral()).subtract(Constants.formatBigdecimal(model.getIntegral())));
                if(model.getTotalReduceIntegral().compareTo(new BigDecimal(0)) <=0){
                    model.setTotalReduceIntegral(new BigDecimal(0));
                }
            }
        }
@@ -425,7 +429,7 @@
            dealIntegralRequest.setDealType(Constants.ZERO);
            dealIntegralRequest.setMemberId(member.getId());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.REGISTER);
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
        //开启注册送优惠券
        if(Constants.equalsInteger(platformConfigDTO.getRegCouponRewardStatus(),Constants.ZERO)){
@@ -480,7 +484,7 @@
            dealIntegralRequest.setMemberId(member.getRecId());
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.INVITENEWUSER);
            dealIntegralRequest.setParam1(member.getNickname());
            integralService.dealIntegral(dealIntegralRequest);
            integralService.dealIntegral(dealIntegralRequest,null);
        }
    }
@@ -735,7 +739,7 @@
                dealIntegralRequest.setObjId(s.getId());
                dealIntegralRequest.setOrderCode(null);
                dealIntegralRequest.setDealType(memberRechargeDTO.getIntegralType());
                integralService.dealIntegral(dealIntegralRequest);
                integralService.dealIntegral(dealIntegralRequest,null);
            });
//            integralService.dealIntegral()
        } catch (Exception e) {
@@ -769,7 +773,7 @@
        dealIntegralRequest.setObjId(memberRechargeDTO.getMemberId());
        dealIntegralRequest.setOrderCode(null);
        dealIntegralRequest.setDealType(memberRechargeDTO.getIntegralType());
        Integer integer = integralService.dealIntegral(dealIntegralRequest);
        Integer integer = integralService.dealIntegral(dealIntegralRequest,null);
        return integer;
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java
@@ -1,20 +1,16 @@
package com.doumee.service.business.impl;
import com.doumee.config.listener.event.IntegralEvent;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.SharesMapper;
import com.doumee.dao.business.model.Shares;
import com.doumee.service.business.SharesService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.shiro.SecurityUtils;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.SharesMapper;
import com.doumee.dao.business.model.Shares;
import com.doumee.service.business.SharesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@@ -22,10 +18,8 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * ç”¨æˆ·åˆ†äº«ä¿¡æ¯è¡¨Service实现
@@ -43,10 +37,7 @@
    @Override
    public Integer create(Shares shares,Integer memberId) {
//        LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Shares target = new Shares();
//        target.setCreator(userInfo.getId());
//        target.setEditor(userInfo.getId());
        target.setMemberId(memberId);
        target.setObjId(shares.getObjId());
        target.setObjType(shares.getObjType());
@@ -54,8 +45,7 @@
        target.setTitle(shares.getTitle());
        target.setIntegral(new BigDecimal("0"));
        sharesMapper.insert(target);
        IntegralEvent<Shares> event = new IntegralEvent<>(this,target, Constants.CoffeeBeanTask.SHARE_INFO,memberId);
        applicationEventPublisher.publishEvent(event);
        return shares.getId();
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -4,7 +4,6 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.Jwt.JwtPayLoad;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.config.listener.event.VisitEvent;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -424,7 +423,18 @@
        queryWrapper.leftJoin(Member.class,Member::getId,Shop::getMemberId);
        queryWrapper.leftJoin(Labels.class,Labels::getId,Shop::getBigAreaId);
        if(pageWrap.getModel().getAreaId()!=null){
            queryWrapper.eq(  Shop::getAreaId, pageWrap.getModel().getAreaId());
        }else  if(pageWrap.getModel().getCityId()!=null){
            queryWrapper.leftJoin("areas a1 on a1.id=t.area_id");
            queryWrapper.leftJoin("areas a2 on a2.id=a1.parent_id");
            queryWrapper.apply("a2.id ="+pageWrap.getModel().getCityId());
        } else if (pageWrap.getModel().getProvinceId()!=null){
            queryWrapper.leftJoin("areas a1 on a1.id=t.area_id");
            queryWrapper.leftJoin("areas a2 on a2.id=a1.parent_id");
            queryWrapper.leftJoin("areas a3 on a3.id=a2.parent_id");
            queryWrapper.apply("a3.id ="+pageWrap.getModel().getProvinceId());
        }
        queryWrapper.eq(Shop::getIsdeleted, Constants.ZERO);
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()) ,Shop::getCode,pageWrap.getModel().getCode());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()) ,Shop::getName,pageWrap.getModel().getUsername());
@@ -569,9 +579,6 @@
        dto.setLabels(labels.stream().map(s->s.getName()).collect(Collectors.toList()));
        List<ShopMenuDTO> shopMenuDTO = shopMenuService.findShopMenuDTO(shopId);
        dto.setShopMenuDTOList(shopMenuDTO);
        //访问操作
        VisitEvent<Shop> shopVisitEvent = new VisitEvent<>(this,shop);
        applicationEventPublisher.publishEvent(shopVisitEvent);
        return dto;
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/SignupServiceImpl.java
@@ -1,7 +1,6 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.listener.event.IntegralEvent;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -83,8 +82,6 @@
        signup.setIntegral(new BigDecimal(dictData.getCode()));
        signup.setDays(LocalDate.now().compareTo(dateTime) == 1 ? one.getDays() + 1 : 1 );
        signupMapper.insert(signup);
        IntegralEvent<Signup> event = new IntegralEvent<>(this,signup,Constants.CoffeeBeanTask.SIGN_BOARD,memberId);
        applicationEventPublisher.publishEvent(event);
        return signup.getId();
    }
server/dmmall_service/src/main/java/com/doumee/service/business/impl/WithdrawRecordServiceImpl.java
@@ -134,7 +134,7 @@
            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.WITHDRAW_APPLY_BACK);
            dealIntegralRequest.setIntegralNum(model.getAmount());
            dealIntegralRequest.setObjId(withdrawRecord.getId());
            dealIntegralRequest.setOrderCode(withdrawRecord.getCode().toString());
            dealIntegralRequest.setOrderCode(withdrawRecord.getCode()!=null?withdrawRecord.getCode().toString():"");
            dealIntegralRequest.setMemberId(model.getMemberId());
            dealIntegralRequest.setDealType(Constants.ZERO);
            integralService.dealShopAmount(dealIntegralRequest);