From c384e04f81caf681647c602d5896cc10b289582e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 27 二月 2026 14:59:16 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java         |   26 -
 server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java             |    3 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java           |   17 +
 admin/src/components/business/OperaWithdrawRecordWindow.vue                                         |   26 ++
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/SignupServiceImpl.java         |    3 
 admin/src/components/business/ResetPwdShopWindow.vue                                                |    4 
 admin/src/views/business/platformGoods.vue                                                          |    2 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java         |   16 +
 admin/src/components/business/OperaCouponGoodsWindow.vue                                            |    4 
 server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java                         |   34 ---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java          |    1 
 admin/src/components/business/OperaShopGoodsWindow.vue                                              |    9 
 admin/src/components/business/OperaGoodsWindow.vue                                                  |    2 
 admin/.env.development                                                                              |    4 
 admin/src/components/business/OperaIntegralShopMoneyWindow.vue                                      |    8 
 admin/src/components/common/UploadFile.vue                                                          |    2 
 admin/src/components/business/OperaMemberDetail.vue                                                 |    7 
 admin/src/components/business/OperaShopInfoWindow.vue                                               |   54 +++-
 server/dmmall_service/src/main/java/com/doumee/dao/business/MemberMapper.java                       |   10 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java       |  123 +++++------
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java        |   14 
 admin/src/components/business/OperaLabelsAreaWindow.vue                                             |   11 
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java                         |    8 
 admin/src/components/business/OperaChangeShopRecordWindow.vue                                       |    7 
 server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java                |    6 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/WithdrawRecordServiceImpl.java |    2 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java     |   11 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java   |    3 
 admin/src/views/business/banner.vue                                                                 |    2 
 admin/src/views/business/shop.vue                                                                   |  101 +++++++++
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/Member.java                       |   16 +
 admin/src/views/business/member.vue                                                                 |   29 ++
 /dev/null                                                                                           |   22 --
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java      |    8 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java           |    2 
 admin/src/components/base/BaseTable.vue                                                             |    2 
 36 files changed, 346 insertions(+), 253 deletions(-)

diff --git a/admin/.env.development b/admin/.env.development
index 184aad2..95dcf02 100644
--- a/admin/.env.development
+++ b/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/'
diff --git a/admin/src/components/base/BaseTable.vue b/admin/src/components/base/BaseTable.vue
index 94e3169..6eab552 100644
--- a/admin/src/components/base/BaseTable.vue
+++ b/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) {
diff --git a/admin/src/components/business/OperaChangeShopRecordWindow.vue b/admin/src/components/business/OperaChangeShopRecordWindow.vue
index 8432c33..b177ec0 100644
--- a/admin/src/components/business/OperaChangeShopRecordWindow.vue
+++ b/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;
diff --git a/admin/src/components/business/OperaCouponGoodsWindow.vue b/admin/src/components/business/OperaCouponGoodsWindow.vue
index a4301a5..b2e00ad 100644
--- a/admin/src/components/business/OperaCouponGoodsWindow.vue
+++ b/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>
diff --git a/admin/src/components/business/OperaGoodsWindow.vue b/admin/src/components/business/OperaGoodsWindow.vue
index 942a92d..e9be1ef 100644
--- a/admin/src/components/business/OperaGoodsWindow.vue
+++ b/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"
diff --git a/admin/src/components/business/OperaIntegralShopMoneyWindow.vue b/admin/src/components/business/OperaIntegralShopMoneyWindow.vue
index ca830d8..b663e1d 100644
--- a/admin/src/components/business/OperaIntegralShopMoneyWindow.vue
+++ b/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;
diff --git a/admin/src/components/business/OperaLabelsAreaWindow.vue b/admin/src/components/business/OperaLabelsAreaWindow.vue
index 5546010..edee68a 100644
--- a/admin/src/components/business/OperaLabelsAreaWindow.vue
+++ b/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: '璇烽�夋嫨鐪佷唤' }
+        ],
       }
     }
   },
diff --git a/admin/src/components/business/OperaMemberDetail.vue b/admin/src/components/business/OperaMemberDetail.vue
index 5ce1404..53614cc 100644
--- a/admin/src/components/business/OperaMemberDetail.vue
+++ b/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;
diff --git a/admin/src/components/business/OperaShopGoodsWindow.vue b/admin/src/components/business/OperaShopGoodsWindow.vue
index d8fdbb5..c62ae07 100644
--- a/admin/src/components/business/OperaShopGoodsWindow.vue
+++ b/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>
diff --git a/admin/src/components/business/OperaShopInfoWindow.vue b/admin/src/components/business/OperaShopInfoWindow.vue
index 63b4150..8584528 100644
--- a/admin/src/components/business/OperaShopInfoWindow.vue
+++ b/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姝e父 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">鎵i櫎</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;
diff --git a/admin/src/components/business/OperaWithdrawRecordWindow.vue b/admin/src/components/business/OperaWithdrawRecordWindow.vue
index 40c6fba..066af90 100644
--- a/admin/src/components/business/OperaWithdrawRecordWindow.vue
+++ b/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) {
diff --git a/admin/src/components/business/ResetPwdShopWindow.vue b/admin/src/components/business/ResetPwdShopWindow.vue
index f216366..cfb9e80 100644
--- a/admin/src/components/business/ResetPwdShopWindow.vue
+++ b/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(() => {
diff --git a/admin/src/components/common/UploadFile.vue b/admin/src/components/common/UploadFile.vue
index 180ca08..edd4714 100644
--- a/admin/src/components/common/UploadFile.vue
+++ b/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
     }
   },
 
diff --git a/admin/src/views/business/banner.vue b/admin/src/views/business/banner.vue
index 672cc29..6e53154 100644
--- a/admin/src/views/business/banner.vue
+++ b/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>
diff --git a/admin/src/views/business/member.vue b/admin/src/views/business/member.vue
index 0b3f7a9..569025c 100644
--- a/admin/src/views/business/member.vue
+++ b/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="绱鎵i櫎" align="center"  min-width="100px"></el-table-column>
+        <el-table-column prop="totalReduceIntegral" label="绱鎵i櫎" 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>
diff --git a/admin/src/views/business/platformGoods.vue b/admin/src/views/business/platformGoods.vue
index a36e703..aa8658a 100644
--- a/admin/src/views/business/platformGoods.vue
+++ b/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>
diff --git a/admin/src/views/business/shop.vue b/admin/src/views/business/shop.vue
index 7bf74de..8a7ad1c 100644
--- a/admin/src/views/business/shop.vue
+++ b/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="璇疯緭鍏ラ棬搴桰D" @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姝e父 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姝e父 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="姝e父"  ></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)
     }
   }
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/listener/IntegralApplicationListener.java b/server/dmmall_service/src/main/java/com/doumee/config/listener/IntegralApplicationListener.java
deleted file mode 100644
index 9046da1..0000000
--- a/server/dmmall_service/src/main/java/com/doumee/config/listener/IntegralApplicationListener.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package com.doumee.config.listener;
-
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.config.listener.event.IntegralEvent;
-import com.doumee.config.listener.event.VisitEvent;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.LoginUserInfo;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.dao.business.model.*;
-import com.doumee.dao.system.model.SystemDictData;
-import com.doumee.dao.web.request.DealIntegralRequest;
-import com.doumee.service.business.CommentService;
-import com.doumee.service.business.IntegralService;
-import com.doumee.service.business.MemberService;
-import com.doumee.service.business.SharesService;
-import org.apache.shiro.SecurityUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationListener;
-import org.springframework.stereotype.Component;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-
-/**
- * 绉垎鐩戝惉鍣�
- */
-@Component
-public class IntegralApplicationListener implements ApplicationListener<IntegralEvent<?>> {
-
-    @Autowired
-    private IntegralService integralService;
-
-    @Autowired
-    private CommentService commentService;
-
-    @Autowired
-    private SharesService sharesService;
-
-    @Override
-    public void onApplicationEvent(IntegralEvent<?> integralEvent) {
-//        LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-
-        Integer memberId = integralEvent.getMemberId();
-        Object integralOBJ = integralEvent.getIntegralOBJ();
-//        Integral integral = new Integral();
-
-        DealIntegralRequest param = new DealIntegralRequest();
-
-
-        if (integralOBJ instanceof Shares){
-            Shares shares = (Shares) integralOBJ;
-            if (integralEvent.getCoffeeBeanTask().equals(Constants.CoffeeBeanTask.SHARE_INFO)){
-
-                //鍒嗕韩涓嶈秴杩囧洓娆�
-                Date startDate = DateUtil.toDate(DateUtil.getMonday());
-                Date endDate = DateUtil.toDate(DateUtil.getSunday());
-                Long count = sharesService.count(startDate, endDate, memberId, Arrays.asList(Constants.ShareType.SHARE_ACTIVITY_ACTIVITY.getKey(),1,2));
-                if (count < Constants.OrderStatus.CLOSE.getKey()){
-
-
-                    param.setMemberId(memberId);
-                    param.setObjId(shares.getId());
-                    param.setDealType(Constants.ONE);
-                    param.setIntegralNum(shares.getIntegral());
-                    param.setIntegralObjType(Constants.IntegralObjType.SHARE_INFO);
-                    integralService.dealIntegral(param);
-
-//                    integral.setRemark("");
-//                    integral.setMemberId(memberId);
-//                    integral.setTitle(Constants.CoffeeBeanTask.SHARE_INFO.getDes());
-//                    integral.setContent(Constants.CoffeeBeanTask.SHARE_INFO.getDes());
-//                    integral.setObjId(shares.getId());
-//                    integral.setObjType(Constants.CoffeeBeanTask.SHARE_INFO.getKey());
-//                    integral.setType(Constants.ZERO);
-//                    integral.setNum(shares.getIntegral());
-//                    integralService.createUpIntegral(integral);
-                }
-
-            }else if (integralEvent.getCoffeeBeanTask().equals(Constants.CoffeeBeanTask.SHARE_INVITE_BILL)){
-                //鍒嗕韩娴锋姤涓嶈秴杩�1娆�
-                Date startDate = DateUtil.toDate(DateUtil.getMonday());
-                Date endDate = DateUtil.toDate(DateUtil.getSunday());
-                long count = sharesService.count(startDate, endDate, memberId,Arrays.asList(5));
-                if (count < Constants.ONE){
-
-
-                    param.setMemberId(memberId);
-                    param.setObjId(shares.getId());
-                    param.setDealType(Constants.ONE);
-                    param.setIntegralNum(shares.getIntegral());
-                    param.setIntegralObjType(Constants.IntegralObjType.SHARE);
-                    integralService.dealIntegral(param);
-
-//                    integral.setRemark("");
-//                    integral.setMemberId(memberId);
-//                    integral.setTitle(Constants.CoffeeBeanTask.SHARE_INVITE_BILL.getDes());
-//                    integral.setContent(Constants.CoffeeBeanTask.SHARE_INVITE_BILL.getDes());
-//                    integral.setObjId(shares.getId());
-//                    integral.setObjType(Constants.CoffeeBeanTask.SHARE_INVITE_BILL.getKey());
-//                    integral.setType(Constants.ZERO);
-//                    integral.setNum(shares.getIntegral());
-//                    integralService.createUpIntegral(integral);
-                }
-            }
-        }
-        if (integralOBJ instanceof Signup){
-
-            Signup signup = (Signup) integralOBJ;
-
-            param.setMemberId(memberId);
-            param.setObjId(signup.getId());
-            param.setDealType(Constants.ONE);
-            param.setIntegralNum(signup.getIntegral());
-            param.setIntegralObjType(Constants.IntegralObjType.SIGNIN);
-            integralService.dealIntegral(param);
-            //绛惧埌绉垎
-//            integral.setRemark("");
-//            integral.setMemberId(memberId);
-//            integral.setTitle(Constants.CoffeeBeanTask.SIGN_BOARD.getDes());
-//            integral.setContent(Constants.CoffeeBeanTask.SIGN_BOARD.getDes());
-//            integral.setObjId(signup.getId());
-//            integral.setObjType(Constants.CoffeeBeanTask.SIGN_BOARD.getKey());
-//            integral.setType(Constants.ZERO);
-//            integral.setNum(signup.getIntegral());
-//            integralService.createUpIntegral(integral);
-
-        }
-        if (integralOBJ instanceof Comment){
-            //璇勮涓嶈秴杩囧洓娆�
-            Date startDate = DateUtil.toDate(DateUtil.getMonday());
-            Date endDate = DateUtil.toDate(DateUtil.getSunday());
-            long count = commentService.count(startDate, endDate, memberId);
-            if (count < 4){
-                Comment comment = (Comment) integralOBJ;
-
-                param.setMemberId(memberId);
-                param.setObjId(comment.getId());
-                param.setDealType(Constants.ONE);
-                param.setIntegralNum(comment.getRecIntegral());
-                param.setIntegralObjType(Constants.IntegralObjType.POST_COMMENTS);
-                integralService.dealIntegral(param);
-//                integral.setRemark("");
-//                integral.setMemberId(memberId);
-//                integral.setTitle(Constants.CoffeeBeanTask.POST_COMMENTS.getDes());
-//                integral.setContent(Constants.CoffeeBeanTask.POST_COMMENTS.getDes());
-//                integral.setObjId(comment.getId());
-//                integral.setObjType(Constants.CoffeeBeanTask.POST_COMMENTS.getKey());
-//                integral.setType(Constants.ZERO);
-//                integral.setNum(comment.getRecIntegral());
-//                integralService.createUpIntegral(integral);
-            }
-        }
-    }
-
-}
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/listener/NoticeApplicationListener.java b/server/dmmall_service/src/main/java/com/doumee/config/listener/NoticeApplicationListener.java
deleted file mode 100644
index a4a1fa2..0000000
--- a/server/dmmall_service/src/main/java/com/doumee/config/listener/NoticeApplicationListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.doumee.config.listener;
-
-import com.doumee.config.listener.event.IntegralEvent;
-import com.doumee.config.listener.event.NoticeEvent;
-import com.doumee.service.business.NoticeEventService;
-import com.doumee.service.business.VisitService;
-import org.springframework.context.ApplicationListener;
-import org.springframework.stereotype.Component;
-
-
-/**
- * 閫氱煡鐩戝惉鍣�
- */
-@Component
-public class NoticeApplicationListener implements ApplicationListener<NoticeEvent<?>> {
-
-
-    @Override
-    public void onApplicationEvent(NoticeEvent<?> noticeEvent) {
-        Object visitOBJ = noticeEvent.getVisitOBJ();
-        Object source = noticeEvent.getSource();
-        if (source instanceof NoticeEventService){
-            NoticeEventService visitService = (NoticeEventService) source;
-            visitService.creatNotice(visitOBJ);
-        }
-    }
-}
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/listener/VisitApplicationListener.java b/server/dmmall_service/src/main/java/com/doumee/config/listener/VisitApplicationListener.java
deleted file mode 100644
index 71cd43f..0000000
--- a/server/dmmall_service/src/main/java/com/doumee/config/listener/VisitApplicationListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.doumee.config.listener;
-
-import com.doumee.config.listener.event.VisitEvent;
-import com.doumee.service.business.VisitService;
-import org.springframework.context.ApplicationListener;
-import org.springframework.stereotype.Component;
-
-
-/**
- * 璁块棶鐩戝惉鍣�
- */
-@Component
-public class VisitApplicationListener implements ApplicationListener<VisitEvent> {
-
-
-    @Override
-    public void onApplicationEvent(VisitEvent visitEvent) {
-        Object visitOBJ = visitEvent.getVisitOBJ();
-        Object source = visitEvent.getSource();
-        if (source instanceof VisitService){
-            VisitService visitService = (VisitService) source;
-            visitService.visitOperation(visitOBJ);
-        }
-    }
-
-
-}
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/listener/event/IntegralEvent.java b/server/dmmall_service/src/main/java/com/doumee/config/listener/event/IntegralEvent.java
deleted file mode 100644
index 278158f..0000000
--- a/server/dmmall_service/src/main/java/com/doumee/config/listener/event/IntegralEvent.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.doumee.config.listener.event;
-
-import com.doumee.core.utils.Constants;
-import org.springframework.context.ApplicationEvent;
-
-public class IntegralEvent<T> extends ApplicationEvent {
-
-    private T integralOBJ;
-
-    private Integer memberId;
-
-    private Constants.CoffeeBeanTask coffeeBeanTask;
-
-    public IntegralEvent(Object source, T integralOBJ, Constants.CoffeeBeanTask coffeeBeanTask,Integer memberId) {
-        super(source);
-        this.integralOBJ = integralOBJ;
-        this.coffeeBeanTask = coffeeBeanTask;
-        this.memberId = memberId;
-    }
-
-    public T getIntegralOBJ(){
-        return integralOBJ;
-    }
-
-    public Constants.CoffeeBeanTask getCoffeeBeanTask() {
-        return coffeeBeanTask;
-    }
-
-    public Integer getMemberId() {
-        return memberId;
-    }
-}
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/listener/event/NoticeEvent.java b/server/dmmall_service/src/main/java/com/doumee/config/listener/event/NoticeEvent.java
deleted file mode 100644
index 26ecbd9..0000000
--- a/server/dmmall_service/src/main/java/com/doumee/config/listener/event/NoticeEvent.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.doumee.config.listener.event;
-
-import com.doumee.core.utils.Constants;
-import org.springframework.context.ApplicationEvent;
-
-public class NoticeEvent <T> extends ApplicationEvent {
-
-    private T noticeOBJ;
-
-    private Constants.NoticeType noticeType;
-
-    public NoticeEvent(Object source,T t,Constants.NoticeType noticeType) {
-        super(source);
-        this.noticeOBJ = t;
-        this.noticeType = noticeType;
-    }
-
-    public T getVisitOBJ(){
-        return noticeOBJ;
-    }
-}
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/listener/event/VisitEvent.java b/server/dmmall_service/src/main/java/com/doumee/config/listener/event/VisitEvent.java
deleted file mode 100644
index f6b81d0..0000000
--- a/server/dmmall_service/src/main/java/com/doumee/config/listener/event/VisitEvent.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.doumee.config.listener.event;
-
-import org.springframework.context.ApplicationEvent;
-
-/**
- * @author T14
- */
-public class VisitEvent<T> extends ApplicationEvent {
-
-
-    private T visitOBJ;
-
-    public VisitEvent(Object source,T visitOBJ) {
-        super(source);
-        this.visitOBJ = visitOBJ;
-    }
-
-    public T getVisitOBJ(){
-        return visitOBJ;
-    }
-
-}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberMapper.java
index 2d166c9..b7b061c 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberMapper.java
+++ b/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);*/
 
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
index f899062..e2b9c03 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
+++ b/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);
-
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Member.java
index 2b6a577..8640e34 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/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 = "绉垎鎵i櫎绱", example = "1")
+    @ExcelColumn(name="绉垎绱鎵i櫎",width = 10,index =8)
+    @TableField(exist = false)
+    private BigDecimal totalReduceIntegral;
 
     @ApiModelProperty(value = "鐘舵��0姝e父 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)
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java
index d816a71..3319b14 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java
+++ b/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;
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java
index 10f2c2d..36a9cef 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java
+++ b/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;
+
 
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
index fd6176f..81de709 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
+++ b/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);
 
     /**
      * 鏇存柊缁忛攢鍟嗛噾棰�
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
index 6ad1401..4d1003d 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
+++ b/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);
         }
 
         //璁㈠崟閫�娆� 閫�鍥炲鎴蜂娇鐢ㄧ殑浼樻儬鍒�
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java
index 86d33f3..7e04b7b 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CardServiceImpl.java
+++ b/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);
     }
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
index 2c52b88..ddc8309 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/CommentServiceImpl.java
+++ b/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());
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index ecb5f69..3818ffc 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/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);
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index dd78f76..a3c68ff 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/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);
         }
     }
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
index b941c7c..b71f22a 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
+++ b/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){
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
index 29dd3f7..1d68d20 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
+++ b/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());
     }
 
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index a2fe488..cad8f60 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/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;
     }
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java
index 1d8d942..ebdef76 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/SharesServiceImpl.java
+++ b/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;
 
 /**
  * 鐢ㄦ埛鍒嗕韩淇℃伅琛⊿ervice瀹炵幇
@@ -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();
     }
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index e09e475..263d5f3 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/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;
     }
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/SignupServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/SignupServiceImpl.java
index b4b977d..f55dee4 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/SignupServiceImpl.java
+++ b/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();
     }
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WithdrawRecordServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WithdrawRecordServiceImpl.java
index 74f27d5..262523f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/WithdrawRecordServiceImpl.java
+++ b/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);

--
Gitblit v1.9.3