From b3752822ea0b7cfdac51b248dc56452d4242ce56 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 15 一月 2026 10:31:50 +0800
Subject: [PATCH] 经销商管理

---
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java   |   40 +---
 admin/src/api/business/memberCoupon.js                                                |   11 +
 admin/src/components/business/OperaMemberCouponWindow.vue                             |  353 ++++++++++++++++++++++++++++++++++++++++++++++++++
 server/dmmall_admin/src/main/java/com/doumee/api/business/MemberCouponController.java |    2 
 admin/src/views/business/memberCoupon.vue                                             |    9 +
 server/dmmall_service/src/main/java/com/doumee/dao/system/model/SystemUser.java       |    2 
 6 files changed, 387 insertions(+), 30 deletions(-)

diff --git a/admin/src/api/business/memberCoupon.js b/admin/src/api/business/memberCoupon.js
index 01e9e7c..f006475 100644
--- a/admin/src/api/business/memberCoupon.js
+++ b/admin/src/api/business/memberCoupon.js
@@ -6,3 +6,14 @@
     trim: true
   })
 }
+export function exportExcel (data) {
+  return request.post('/business/memberCoupon/exportExcel', data, {
+    trim: true,
+    download: true
+  })
+}
+
+// 鍒涘缓
+export function create (data) {
+  return request.post('/business/memberCoupon/create', data)
+}
diff --git a/admin/src/components/business/OperaMemberCouponWindow.vue b/admin/src/components/business/OperaMemberCouponWindow.vue
new file mode 100644
index 0000000..68002b6
--- /dev/null
+++ b/admin/src/components/business/OperaMemberCouponWindow.vue
@@ -0,0 +1,353 @@
+<template>
+  <GlobalWindow
+      :title="title"
+      width="80%"
+      :visible.sync="visible"
+      :confirm-working="isWorking"
+      @confirm="confirm"
+  >
+    <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="锛�" inline>
+      <p class="tip-header" >鍩烘湰灞炴��</p>
+      <el-form-item label="浼樻儬鍒稿悕绉�" prop="name">
+        <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ紭鎯犲埜鍚嶇О" :maxlength="12" v-trim/>
+      </el-form-item>
+      <el-form-item label="绫诲瀷" prop="couponType">
+          <el-radio-group v-model="form.couponType">
+            <el-radio :label="0" >婊″噺鍒�</el-radio>
+            <el-radio :label="1">鎶樻墸鍒�</el-radio>
+          </el-radio-group>
+      </el-form-item>
+      <el-form-item label="浼樻儬瑙勫垯" prop="couponRule" >
+        <div class="coupon-rule">
+          <div class="discrep">璁㈠崟婊�</div>
+          <el-input v-model="form.limitPrice"   placeholder="璇疯緭鍏�"     @input="inputAction(form, 'limitPrice')"
+          >
+            <template slot="append">鍏�</template>
+          </el-input>
+          <div class="discrep" >{{form.couponType === 1?'锛屼韩':'锛屽噺'}}</div>
+          <el-input  v-model="form.price"     placeholder="璇疯緭鍏�"    @input="inputAction(form, 'price')"  >
+            <template slot="append" >{{form.couponType ===1?'鎶�':'鍏�'}}</template>
+          </el-input>
+        </div>
+      </el-form-item>
+      <el-form-item label="浼樻儬鍒歌鏄�" prop="info">
+        <el-input type="textarea" v-model="form.info" placeholder="璇疯緭鍏ヤ紭鎯犲埜璇存槑"  v-trim/>
+      </el-form-item>
+      <p class="tip-header" >浣跨敤闄愬埗</p>
+      <el-form-item label="鏈夋晥鏈�" prop="useType">
+        <el-radio-group v-model="form.useType">
+          <el-radio :label="0">鍥哄畾鏃舵</el-radio>
+          <el-radio :label="1">鍥哄畾鏃堕暱</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item label="浣跨敤鏃舵" prop="getDate" v-if="form.useType===0">
+        <div class="date-style">
+          <el-date-picker
+              v-model="getDate"
+              type="datetimerange"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              format="yyyy-MM-dd HH:mm:ss"
+              range-separator="鑷�"
+              start-placeholder="寮�濮嬫椂闂�"
+              end-placeholder="缁撴潫鏃堕棿"
+              @change="selectDate"
+          ></el-date-picker>
+        </div>
+      </el-form-item>
+      <el-form-item label="鍥哄畾鏃堕暱" prop="validDays" v-if="form.useType===1">
+        <div class="coupon-rule">
+          <div class="discrep">棰嗗姷鍚�</div>
+          <el-input
+              v-model="form.validDays"
+              placeholder="璇疯緭鍏�"
+              @input="inputAction(form, 'validDays')"
+          >
+            <template slot="append">澶�</template>
+          </el-input>
+          <div class="discrep">鏈夋晥</div>
+        </div>
+      </el-form-item>
+      <el-form-item label="閫傜敤瀵硅薄" prop="applyType">
+        <el-radio-group v-model="form.applyType">
+          <el-radio :label="0">鍏ㄥ満閫氱敤</el-radio>
+          <el-radio :label="1">鎸夊搧绫�</el-radio>
+          <el-radio :label="2">鎸囧畾鍟嗗搧</el-radio>
+        </el-radio-group>
+      </el-form-item>
+      <el-form-item v-if="form.applyType===1" label="閫夋嫨鍝佺被" prop="applyCateIdList" >
+        <el-select v-model="form.applyCateIdList"  placeholder="璇烽�夋嫨,鏀寔澶氶��" filterable multiple clearable >
+          <el-option  v-for="item in categorys" :key="'optCate'+item.id"  :label="item.name"  :value="item.id">  </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item v-if="form.applyType===2" label="閫夋嫨鍟嗗搧" prop="applyIdList" style="display: flex">
+          <span style="font-size: 12px;color: #216EEE"   @click="selectGoods">宸叉寚瀹氥�� {{applyDataList.length}} 銆戜欢鍟嗗搧</span>
+        <el-button style="margin-left:30px;display: inline-block;width: 80px;" type="primary"  @click="selectGoods">鍘婚�夋嫨 </el-button>
+      </el-form-item>
+      <p class="tip-header" >鍙戞斁瑙勫垯</p>
+      <el-form-item label="鍙戞斁鎬婚噺" prop="num">
+        <div class="num-style">
+          <el-input-number  v-model="form.num" :controls="false" :min="1" :max="99999" placeholder="璇疯緭鍏ュ彂鏀炬�婚噺(1~99999)" v-trim></el-input-number>
+        </div>
+      </el-form-item>
+    </el-form>
+    <OperaCouponGoodsWindow ref="OperaCouponGoodsWindow" @success="doSelect"/>
+  </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import { fetchList as shopList } from '@/api/business/shop'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { findAll as labelList } from '@/api/business/labels'
+import { allList as goodsList} from '@/api/business/goods'
+import OperaCouponGoodsWindow from '@/components/business/OperaCouponGoodsWindow'
+export default {
+  name: 'OperaCouponWindow',
+  extends: BaseOpera,
+  components: { GlobalWindow,OperaCouponGoodsWindow },
+  data () {
+    const couponRules = (rule, value, callback) => {
+      if (!this.form.limitPrice) {
+        callback(new Error('璇疯緭鍏ユ弧棰�'))
+      } else if (!this.form.price) {
+        callback(new Error('璇峰畬鍠勪紭鎯犺鍒�'))
+      } else {
+        callback()
+      }
+    }
+    const getDateRules = (rule, value, callback) => {
+      if (!this.form.startDate) {
+        callback(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
+      } else if (!this.form.endDate) {
+        callback(new Error('璇疯緭鍏ョ粨鏉熸椂闂�'))
+      } else {
+        callback()
+      }
+    }
+    const numRule = (rule, value, callBack) => {
+      if (value < 0) {
+        callBack(new Error())
+      } else {
+        callBack()
+      }
+    }
+    return {
+      searchLoading: false,
+      getDate: [],
+      applyDataList:[],
+      showGoods:false,
+      // 琛ㄥ崟鏁版嵁
+      form: {
+        id: null,
+        name: '',
+        couponType: 0,
+        applyType: 0,
+        useType: 0,
+        shopId: '',
+        applyIdList: [],
+        applyCateIdList: [],
+        type: 0,
+        limitPrice: '',
+        price: '',
+        startDate: '',
+        endDate: '',
+        applyIds: '',
+        validDays: '',
+        getMethod: '',
+        integral: '',
+        status: '',
+        num: '',
+        info: ''
+      },
+      shops: [],
+      categorys: [],
+      // 楠岃瘉瑙勫垯
+      rules: {
+        name: [
+          { required: true, message: '璇疯緭鍏ヤ紭鎯犲埜鍚嶇О', tigger: 'blur' }
+        ],
+        couponRule: [
+          { required: true, validator: couponRules, tigger: 'blur' }
+        ],
+        useType: [
+          { required: true, message: '璇烽�夋嫨鏈夋晥鏈熸柟寮�' }
+        ],
+        couponType: [
+          { required: true, message: '璇烽�夋嫨绫诲瀷' }
+        ],
+        applyType: [
+          { required: true, message: '璇烽�夋嫨閫傜敤瀵硅薄绫诲瀷' }
+        ],
+        num: [
+          { required: true, validator: numRule, message: '璇疯緭鍏ュ彂鏀炬�绘暟', tigger: 'blur' }
+        ],
+        /*integral: [
+          { required: true, validator: numRule, message: '璇疯緭鍏ュ厬鎹㈡潯浠�', tigger: 'blur' }
+        ],*/
+        // validDays: [
+        //   { required: true, message: '璇疯緭鍏ュ彲鐢ㄦ椂闂�', tigger: 'blur' }
+        // ],
+        // getDate: [
+        //   { required: true, validator: getDateRules, tigger: 'change' }
+        // ],
+        // shopId: [
+        //   { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈搴楅摵', tigger: 'change' }
+        // ]
+      }
+    }
+  },
+  created () {
+    this.config({
+      api: '/business/coupon',
+      'field.id': 'id'
+    })
+  },
+  methods: {
+    selectGoods(){
+      this.$refs.OperaCouponGoodsWindow.open('閫夋嫨鍟嗗搧', this.applyDataList)
+    },
+    loadLabels(){
+      labelList({
+        type: 0 // 鍟嗗搧鍒嗙被
+      }).then(res => {
+        this.categorys = res || []
+      })
+    },
+    loadSelectGoods(){
+      console.log(this.form.applyIdList)
+      if(!this.form.applyIdList || !this.form.applyIdList.length){
+        return
+      }
+      goodsList({
+        idList: this.form.applyIdList // 鍟嗗搧鍒嗙被
+      }).then(res => {
+        this.applyDataList = res || []
+      })
+    },
+    doSelect(rows){
+      console.log(rows,this.applyDataList)
+      this.applyDataList =[]
+      this.form.applyIdList=[]
+      if(rows && rows.length){
+        rows.forEach(item => {
+          this.applyDataList.push(item)
+          this.form.applyIdList.push(item.id)
+        })
+      }
+    },
+    open (title, target, type) {
+      this.showGoods=false
+      this.title = title
+      this.visible = true
+      this.form.type = type
+      this.getDate = []
+      this.form.startDate = ''
+      this.form.endDate = ''
+      this.applyDataList=[]
+      this.form.applyIdList=[]
+      this.form.applyCateIdList=[]
+      this.loadLabels()
+      this.form.limitPrice=null
+      this.form.price=null
+      this.form.startDate=null
+      this.form.endDate=null
+      this.form.num=1
+      // 鏂板缓
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          console.log(this.form)
+          this.form[this.configData['field.id']] = null
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        this.getDate = [target.startDate, target.endDate]
+        if(this.form.applyType === 1){
+          this.form.applyCateIdList =[]
+          var ta = this.form.applyIds.split(',')
+          if(ta && ta.length){
+            ta.forEach(tt =>{
+              this.form.applyCateIdList.push(parseInt(tt))
+            })
+          }
+        }
+        if(this.form.applyType === 2){
+          this.form.applyIdList = this.form.applyIds.split(',')
+          this.loadSelectGoods()
+        }
+      })
+    },
+    selectDate (value) {
+      this.form.startDate = value[0]
+      this.form.endDate = value[1]
+    },
+    inputAction (item, key) {
+      if (item[key] < 0) {
+        item[key] = ''
+      } else {
+        item[key] = item[key].replace(/[^\d.]/g, '')
+          .replace(/\.{2,}/g, '.')
+          .replace('.', '$#$')
+          .replace(/\./g, '')
+          .replace('$#$', '.')
+          .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
+          .replace(/^\./g, '')
+      }
+    },
+    remoteMethod (query) {
+      if (query !== '') {
+        this.searchLoading = true
+        const action = this.form.type == 2 ? activityList : shopList
+        action({
+          capacity: 999,
+          model: {
+            name: query
+          }
+        })
+          .then(res => {
+            this.shops = res.records
+          })
+          .finally(() => {
+            this.searchLoading = false
+          })
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import '@/assets/style/alertstyle.scss';
+
+.coupon-rule {
+  display: flex;
+  .discrep {
+    padding: 0 10px;
+  }
+  ::v-deep .el-input {
+    width: 160px;
+  }
+}
+.num-style {
+  ::v-deep .el-input-number {
+    width: 60%;
+  }
+}
+.date-style {
+  ::v-deep input {
+    text-align: center !important;
+  }
+}
+::v-deep .el-select {
+  width: 100%;
+  .el-input__inner {
+    width: 100%;
+  }
+}
+
+</style>
diff --git a/admin/src/views/business/memberCoupon.vue b/admin/src/views/business/memberCoupon.vue
index 59ab4d1..a8835c4 100644
--- a/admin/src/views/business/memberCoupon.vue
+++ b/admin/src/views/business/memberCoupon.vue
@@ -38,6 +38,10 @@
     </el-form>
     <!-- 琛ㄦ牸鍜屽垎椤� -->
     <template v-slot:table-wrap>
+      <ul class="toolbar" v-permissions="['business:membercoupon:create', 'business:membercoupon:exportExcel']">
+        <li><el-button type="primary"  @click="$refs.OperaMemberCouponWindow.open('鏂板缓', null)" v-permissions="['business:membercoupon:create']">瀹氬悜鍙戞斁</el-button></li>
+        <li> <el-button type="primary" :loading="isWorking.export" v-permissions="['business:membercoupon:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+      </ul>
       <el-table
         v-loading="isWorking.search"
         :data="tableData.list"
@@ -83,17 +87,20 @@
       >
       </pagination>
     </template>
+
+    <OperaMemberCouponWindow ref="OperaMemberCouponWindow" @success="handlePageChange"/>
   </TableLayout>
 </template>
 
 <script>
 import BaseTable from '@/components/base/BaseTable'
 import TableLayout from '@/layouts/TableLayout'
+import OperaMemberCouponWindow from '@/components/business/OperaMemberCouponWindow'
 import Pagination from '@/components/common/Pagination'
 export default {
   name: 'MemberCoupon',
   extends: BaseTable,
-  components: { TableLayout, Pagination },
+  components: { TableLayout, Pagination ,OperaMemberCouponWindow},
   data () {
     return {
       // 鎼滅储
diff --git a/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberCouponController.java b/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberCouponController.java
index 93ba767..96d56b3 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberCouponController.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/api/business/MemberCouponController.java
@@ -78,7 +78,7 @@
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:membercoupon:exportExcel")
     public void exportExcel (@RequestBody PageWrap<MemberCoupon> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(MemberCoupon.class).export(memberCouponService.findPage(pageWrap).getRecords(), "鐢ㄦ埛浼樻儬鍒稿叧鑱旇〃", response);
+        ExcelExporter.build(MemberCoupon.class).export(memberCouponService.findPage(pageWrap).getRecords(), "浼樻儬鍒告槑缁�", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
index 3dd6851..6d1486c 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/MemberCoupon.java
@@ -23,99 +23,82 @@
 public class MemberCoupon {
 
     @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name="涓婚敭")
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
-    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
     private Integer creator;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name="鍒涘缓鏃堕棿")
-    
+    @ExcelColumn(name="鍙戞斁鏃堕棿" ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10,index = 11)
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
-    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
     private Integer editor;
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name="鏇存柊鏃堕棿")
-    
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
-    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
     private Integer isdeleted;
 
     @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name="澶囨敞")
     private String remark;
 
     @ApiModelProperty(value = "鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級", example = "1")
-    @ExcelColumn(name="鐢ㄦ埛缂栫爜锛堝叧鑱攎ember琛級")
     private Integer memberId;
 
     @ApiModelProperty(value = "鍟嗗缂栫爜锛堝叧鑱攕hop琛級", example = "1")
-    @ExcelColumn(name="鍟嗗缂栫爜锛堝叧鑱攕hop琛級")
     private Integer shopId;
 
     @ApiModelProperty(value = "绫诲瀷0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� ", example = "1")
-    @ExcelColumn(name="绫诲瀷0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� ")
     private Integer type;
 
     @ApiModelProperty(value = "婊¢锛堝厓锛�", example = "1")
-    @ExcelColumn(name="婊¢锛堝厓锛�")
     private BigDecimal limitPrice;
 
     @ApiModelProperty(value = "浼樻儬閲戦锛堝厓锛�", example = "1")
-    @ExcelColumn(name="浼樻儬閲戦锛堝厓锛�")
+    @ExcelColumn(name="浼樻儬閲戦锛堝厓锛�",width = 10,index = 7)
     private BigDecimal price;
 
     @ApiModelProperty(value = "寮�濮嬫椂闂�")
-    @ExcelColumn(name="寮�濮嬫椂闂�")
-    
+    @ExcelColumn(name="寮�濮嬫椂闂�",width = 10,index = 5,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date startDate;
 
     @ApiModelProperty(value = "缁撴潫鏃堕棿")
-    @ExcelColumn(name="缁撴潫鏃堕棿")
-    
+    @ExcelColumn(name="缁撴潫鏃堕棿",width = 10 ,index = 6,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date endDate;
 
     @ApiModelProperty(value = "棰嗗彇鏂瑰紡 0棰嗗彇 1鍏戞崲", example = "1")
-    @ExcelColumn(name="棰嗗彇鏂瑰紡 0棰嗗彇 1鍏戞崲")
+    @ExcelColumn(name="棰嗗彇鏂瑰紡",width = 10,index = 4,valueMapping = "0=棣栨娉ㄥ唽;1=閭�璇峰ソ鍙�;2=瀹氬悜鍙戞斁;")
     private Integer getMethod;
 
     @ApiModelProperty(value = "鍏戞崲鎵�闇�鍜栬眴閲戦", example = "1")
-    @ExcelColumn(name="鍏戞崲鎵�闇�鍜栬眴閲戦")
     private BigDecimal integral;
 
     @ApiModelProperty(value = "鐘舵�� 0鏈娇鐢� 1宸蹭娇鐢�", example = "1")
-    @ExcelColumn(name="鐘舵�� 0鏈娇鐢� 1宸蹭娇鐢�")
+    @ExcelColumn(name="鐘舵��",width = 10,index = 8,valueMapping = "0=鏈娇鐢�;1=宸蹭娇鐢�;2=宸茶繃鏈�;")
     private Integer status;
 
     @ApiModelProperty(value = "璇存槑")
-    @ExcelColumn(name="璇存槑")
     private String info;
 
     @ApiModelProperty(value = "浣跨敤鏃堕棿")
-    @ExcelColumn(name="浣跨敤鏃堕棿")
+    @ExcelColumn(name="浣跨敤鏃堕棿",width = 10,index = 9,dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date useDate;
 
     @ApiModelProperty(value = "浣跨敤绉垎濂栧姳鏁伴噺", example = "1")
-    @ExcelColumn(name="浣跨敤绉垎濂栧姳鏁伴噺")
     private BigDecimal backIntegral;
 
     @ApiModelProperty(value = "浼樻儬鍒稿悕绉�")
-    @ExcelColumn(name="浼樻儬鍒稿悕绉�")
+    @ExcelColumn(name="浼樻儬鍒稿悕绉�",width = 10,index = 2 )
     private String name;
 
     @ApiModelProperty(value = "coupon琛╥d")
-    @ExcelColumn(name="coupon琛╥d")
     private Integer couponId;
 
     @ApiModelProperty(value = "浼樻儬鍒哥被鍨嬶細0=婊″噺鍒革紱1=鎶樻墸鍒革紱")
+    @ExcelColumn(name="浼樻儬鍒哥被鍨�",width = 10,index = 3,valueMapping = "0=婊″噺鍒�;1=鎶樻墸鍒�;")
     private Integer couponType;
 
     @ApiModelProperty(value = "閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧")
@@ -129,14 +112,17 @@
 
     @ApiModelProperty(value = "鏄电О")
     @TableField(exist = false)
+    @ExcelColumn(name="鐢ㄦ埛",width = 10,index = 1)
     private String nikeName;
     @ApiModelProperty(value = "鍏宠仈璁㈠崟鍙峰彿")
+    @ExcelColumn(name="鍏宠仈璁㈠崟鍙�",width = 10,index = 10)
     @TableField(exist = false)
     private String orderCode;
     @ApiModelProperty(value = "鍒涘缓浜�")
     @TableField(exist = false)
+    @ExcelColumn(name="鎿嶄綔浜�",index = 12,width = 10)
     private String creatorName;
-    @ApiModelProperty(value = "鍏宠仈璁㈠崟鍙�")
+    @ApiModelProperty(value = "鍏宠仈璁㈠崟")
     private String orderId;
 
     @ApiModelProperty(value = "瀹為檯閫傜敤鏃堕噾棰�")
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/dmmall_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index e84041f..2eead31 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -60,7 +60,7 @@
     private String mobile;
 
     @ApiModelProperty(value = "澶村儚")
-    @NotBlank(message = "澶村儚涓嶈兘涓虹┖", groups = {OperaType.Create.class, OperaType.Update.class})
+//    @NotBlank(message = "澶村儚涓嶈兘涓虹┖", groups = {OperaType.Create.class, OperaType.Update.class})
     private String avatar;
 
     @ApiModelProperty(value = "瀵嗙爜")

--
Gitblit v1.9.3