瀏覽代碼

Merge branch 'master' of http://192.168.20.122:3000/root/qiyewechatApp

whc 4 年之前
父節點
當前提交
10f307da63

+ 1 - 0
UI/src/layouts/components/sider/Sider.js

@@ -129,6 +129,7 @@ class Silder extends React.Component {
             <Icon type="menu-fold" style={{ width: 14, height: 13, color: '#009fe9' }} />
             亮健营销平台
           </div>
+          
           <div className={styles.nav}>
             <div className={styles.navTop}><Icon type="bars" style={{ fontSize: 20, color: '#fff', marginRight: '10px' }} /><span>功能导航</span></div>
 

+ 21 - 68
UI/src/pages/sellmanage/msgComponent.js

@@ -346,6 +346,17 @@ class MsgComponent extends React.Component {
         this.setState({ msgId: nextProps.msgId }, () => { self.loadImgs(); ; });
     }
   }
+  onFinish = e => {
+    e.preventDefault();
+    this.props.form.validateFieldsAndScroll((errors, values) => {
+        console.log('Success:', errors,values);
+      if (errors) {
+        return
+      }
+    //   this.props.bottomFriom(values);
+    })
+    
+  };
   loadImgs(){
     let self = this;
     let mediaId = '';
@@ -627,7 +638,6 @@ class MsgComponent extends React.Component {
 
                             <Form.Item label="添加图片">
                                 <div style={{ display: "flex" }}>
-                                    {/* <div>添加图片:</div> */}
                                     <div onMouseOver={this.mouseOver} onMouseOut={this.mouseOut}
                                         style={{ position: "relative", display: (this.state.imgUrlText != '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
                                         <img style={{ width: "100%", height: "100%" }} src={imgUrlText} />
@@ -648,28 +658,9 @@ class MsgComponent extends React.Component {
 
                             </Form.Item>
                         </Form>
-                        {/* <div style={{ display: "flex", marginLeft: "70px" }}>
-                            <div>添加图片:</div>
-                            <div onMouseOver={this.mouseOver} onMouseOut={this.mouseOut}
-                                style={{ position: "relative", display: (this.state.imgUrlText != '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
-                                <img style={{ width: "100%", height: "100%" }} src={this.state.imgUrlText} />
-                                <div style={{ display: this.state.mouseOver ? "block" : "none", width: "150px", height: "150px", lineHeight: "150px", position: "absolute", top: "0px", left: "0px", backgroundColor: "#000", opacity: "0.7", color: "#fff" }}>
-                                    <span onClick={self.upload1.bind(self)} style={{ marginLeft: "15px" }}>重新上传</span>
-                                    <span onClick={this.deleteImg1} style={{ marginLeft: "25px" }}>删除</span>
-                                </div>
-                            </div>
-                            <div onClick={self.upload1.bind(self)} style={{ display: (this.state.imgUrlText == '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
-                                <p style={{ fontSize: "100px", marginLeft: "36px", marginTop: "-40px" }}>+</p>
-                                <p style={{ marginTop: "-135px", textAlign: "center", color: "#D7D7D7" }}>
-                                    <span>不添加则不显示</span><br />
-                                    <span>大小限制</span><br />
-                                    <span>300k以下</span>
-                                </p>
-                            </div>
-                        </div> */}
                     </TabPane>
                     <TabPane tab="发送图文" key="news" forceRender={true}>
-                        <Form  {...formItemLayout} layout="horizontal">
+                        <Form  {...formItemLayout} layout="horizontal" onFinish= { self.onFinish }>
                             <Form.Item label="标题">
                                 {self.props.form.getFieldDecorator('title', { rules: [{ required: true, message: '标题不能为空' }] })
                                     (<Input />)}
@@ -699,11 +690,6 @@ class MsgComponent extends React.Component {
                                     </div>
                                     <div onClick={this.upload1} style={{ display: (this.state.imgUrlNews == '') ? "block" : "none",textAlign:"center" , width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
                                         <p style={{ fontSize: "100px"}}>+</p>
-                                        {/* <p style={{ marginTop: "-135px", textAlign: "center", color: "#D7D7D7" }}>
-                                    <span>不添加则不显示</span><br />
-                                    <span>大小限制</span><br />
-                                    <span>300k以下</span>
-                                </p> */}
                                         <p style={{ textAlign: "center", color: "#D7D7D7", marginTop: "-70px", lineHeight: "20px" }}>
                                             <div>不添加则不显示</div>
                                             <div>大小限制</div>
@@ -712,29 +698,17 @@ class MsgComponent extends React.Component {
                                     </div>
                                 </div>
                             </Form.Item>
+
+                            {/* <Form.Item {...formItemLayout}>
+                                <Button type="primary" htmlType="button" style={{marginLeft:"120px"}}  onClick={(e) => this.onFinish(e)}> 
+                                    保存 
+                                </Button>
+                            </Form.Item> */}
                         </Form>
-                        {/* <div style={{ display: "flex", marginLeft: "70px" }}>
-                            <div>添加图片:</div>
-                            <div onMouseOver={this.mouseOver} onMouseOut={this.mouseOut}
-                                style={{ position: "relative", display: (this.state.imgUrlNews != '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
-                                <img style={{ width: "100%", height: "100%" }} src={this.state.imgUrlNews} />
-                                <div style={{ display: this.state.mouseOver ? "block" : "none", width: "150px", height: "150px", lineHeight: "150px", position: "absolute", top: "0px", left: "0px", backgroundColor: "#000", opacity: "0.7", color: "#fff" }}>
-                                    <span onClick={this.upload1} style={{ marginLeft: "15px" }}>重新上传</span>
-                                    <span onClick={this.deleteImg1} style={{ marginLeft: "25px" }}>删除</span>
-                                </div>
-                            </div>
-                            <div onClick={this.upload1} style={{ display: (this.state.imgUrlNews == '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
-                                <p style={{ fontSize: "100px", marginLeft: "36px", marginTop: "-40px" }}>+</p>
-                                <p style={{ marginTop: "-135px", textAlign: "center", color: "#D7D7D7" }}>
-                                    <span>不添加则不显示</span><br />
-                                    <span>大小限制</span><br />
-                                    <span>300k以下</span>
-                                </p>
-                            </div>
-                        </div> */}
                     </TabPane>
+
                     <TabPane tab="小程序" key="miniprogrampage" forceRender={true}>
-                        <Form  {...formItemLayout}  layout="horizontal">
+                        <Form  {...formItemLayout}  layout="horizontal" style={{ display: ( 0 == 'miniprogrampage') ? "block" : "none"}}  onFinish= { self.onFinish }>
                             <Form.Item label="标题">
                                 {self.props.form.getFieldDecorator('miniAppTitle', { rules: [{ required: true, message: '小程序标题不能为空' }] })
                                     (<Input />)}
@@ -748,7 +722,6 @@ class MsgComponent extends React.Component {
                                     (<Input />)}
                             </Form.Item>
 
-
                             <Form.Item label="添加图片">
                                 <div style={{ display: "flex" }}>
 
@@ -772,25 +745,6 @@ class MsgComponent extends React.Component {
 
                             </Form.Item>
                         </Form>
-                        {/* <div style={{ display: "flex", marginLeft: "70px" }}>
-                            <div>添加图片:</div>
-                            <div onMouseOver={this.mouseOver} onMouseOut={this.mouseOut}
-                                style={{ position: "relative", display: (this.state.imgUrlMini != '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
-                                <img style={{ width: "100%", height: "100%" }} src={this.state.imgUrlMini} />
-                                <div style={{ display: this.state.mouseOver ? "block" : "none", width: "150px", height: "150px", lineHeight: "150px", position: "absolute", top: "0px", left: "0px", backgroundColor: "#000", opacity: "0.7", color: "#fff" }}>
-                                    <span onClick={this.upload1} style={{ marginLeft: "15px" }}>重新上传</span>
-                                    <span onClick={this.deleteImg1} style={{ marginLeft: "25px" }}>删除</span>
-                                </div>
-                            </div>
-                            <div onClick={this.upload1} style={{ display: (this.state.imgUrlMini == '') ? "block" : "none", width: "150px", height: "150px", border: "1px solid #D7D7D7", marginLeft: "7px", cursor: "pointer" }}>
-                                <p style={{ fontSize: "100px", marginLeft: "36px", marginTop: "-40px" }}>+</p>
-                                <p style={{ marginTop: "-135px", textAlign: "center", color: "#D7D7D7" }}>
-                                    <span>不添加则不显示</span><br />
-                                    <span>大小限制</span><br />
-                                    <span>300k以下</span>
-                                </p>
-                            </div>
-                        </div> */}
                     </TabPane>
                 </Tabs>
                 <Modal title="添加链接"
@@ -897,13 +851,12 @@ function mapStateToProps(state) {
 
 export default connect(mapStateToProps)(Form.create({
     mapPropsToFields(props) {
-        console.log(props);
+        // console.log(props);
         if (!props || !props.chooseKey) {
             props = {
                 content: '', title: '', description: '', url: '',
                 miniProgramAppId: '', pagepath: '', miniAppTitle: ''
             };
-            console.log('no');
         }
         return {
             content: Form.createFormField({

+ 12 - 16
UI/src/pages/sellmanage/pushMessage/index.js

@@ -118,26 +118,16 @@ class PushMessage extends React.Component {
 
     }
     initData.items = items;
-
     this.props.dispatch({ type: 'pushMessage/updateState', payload: { initData: initData } });
-
   }
 
-  // onSelect = key => {
-  //   this.setState({
-  //     currentState:key
-  //   })
-  // }
   handleChange = (value, key) => {
-
     var initData = this.props.pushMessage && this.props.pushMessage.initData ? this.props.pushMessage.initData : undefined;
     var items = this.props.pushMessage && this.props.pushMessage.initData && this.props.pushMessage.initData.items ? this.props.pushMessage.initData.items : undefined
 
     if (items) {
       if (!items[key])
         items[key] = {};
-      let week1 = items.week;
-      var message1 = this.props.pushMessage.initData.items[key].message;
 
       items[key].week = value;
 
@@ -245,6 +235,8 @@ class PushMessage extends React.Component {
     }
   }
   handleSubmit = key => {
+    console.log(key);
+  
     var initData = this.props.pushMessage && this.props.pushMessage.initData ? this.props.pushMessage.initData : undefined;
     var appId = this.props.wxAppIdValue
     var items = this.props.pushMessage && this.props.pushMessage.initData && this.props.pushMessage.initData.items ? this.props.pushMessage.initData.items : undefined
@@ -255,9 +247,11 @@ class PushMessage extends React.Component {
 
       let week1 = items.week;
       var message1 = { msgType: "text" };
-      if (this.props.pushMessage.initData.items[key] && this.props.pushMessage.initData.items[key].message)
+      if (this.props.pushMessage.initData.items[key] && this.props.pushMessage.initData.items[key].message){
         message1 = this.props.pushMessage.initData.items[key].message;
-
+        message1.msgType = this.props.pushMessage.initData.items[key].message.msgType ? this.props.pushMessage.initData.items[key].message.msgType : 'text'
+      }
+     
       message1.content = this.state.msgComponent[key].props.form.getFieldValue('content')
       message1.title = this.state.msgComponent[key].props.form.getFieldValue('title')
       message1.description = this.state.msgComponent[key].props.form.getFieldValue('description')
@@ -453,8 +447,9 @@ class PushMessage extends React.Component {
               data = self.props.pushMessage.initData;
               disable = data.items && data.items[key] && data.items[key].disable ? true : false;
               weekItem = data.items && data.items[key] && typeof(data.items[key].week) !=='undefined' ? data.items[key].week : 1;
+              console.log(weekItem);
             }
-
+        
 
             var chooseKey = 'text';
             var message1 = {};
@@ -466,8 +461,7 @@ class PushMessage extends React.Component {
               //   || self.props.pushMessage.initData.items[key].message.title|| self.props.pushMessage.initData.items[key].message.miniAppTitle
               //   )
               ) {
-              chooseKey = self.props.pushMessage.initData.items[key].message.msgType;
-
+              chooseKey = self.props.pushMessage.initData.items[key].message.msgType?self.props.pushMessage.initData.items[key].message.msgType:'text';
               message1 = self.props.pushMessage.initData.items[key].message;
 
             }
@@ -484,6 +478,7 @@ class PushMessage extends React.Component {
               message1.miniProgramAppId = self.state.msgComponent[key].props.form.getFieldValue('miniProgramAppId')
               message1.pagepath = self.state.msgComponent[key].props.form.getFieldValue('pagepath')
             }
+            
 
             return (
               <div className={styles.connect} style={{ display: (key === self.state.currentState) ? "block" : "none" }}>
@@ -494,7 +489,7 @@ class PushMessage extends React.Component {
 
                 <div className={styles.TimePickers}>
                   时间段:
-                  <Select defaultValue={weekItem} style={{ width: 120 }} className={styles.Select} onChange={(v) => { self.handleChange(v, key) }}>
+                  <Select value={weekItem} style={{ width: 120 }} className={styles.Select} onChange={(v) => { self.handleChange(v, key) }}>
                     {
                       week.map((item, key) => {
                         return <Option value={item.key} key={item.key}>{item.name}</Option>
@@ -517,6 +512,7 @@ class PushMessage extends React.Component {
                   <MsgComponent tabIndex={key}
                     {...message1}
                     chooseKey={chooseKey}
+                    bottomFriom={(key) => { self.handleSubmit(key) }}
                     mediaIdChange={(v) => { self.cb_mediaId(v, key) }}
                     onChange={(v, av) => { self.cb_formChange(v, av, key) }}
                     chooseKeyChange={(v) => { self.cb_chooseKey(v, key) }}

+ 5 - 16
UI/src/pages/sellmanage/templateMessage/index.js

@@ -90,6 +90,7 @@ class TemplateMessage extends React.Component {
     });
   }
   viewSetting = e => {
+    this.userSelectList();
     this.setState({
       modelState: true
     })
@@ -198,16 +199,6 @@ class TemplateMessage extends React.Component {
       strJson[itemDate.contentValueList[i].lable] = { "color": itemDate.contentValueList[i].color, "value": itemDate.contentValueList[i].value };
     }
 
-
-    // for (let i = 0; i < itemDate.contentValueList.length; i++) {
-    //   for (let j in values) {
-    //     if (j == itemDate.contentValueList[i].lable) {
-    //       itemDate.contentValueList[i].value = values[j]
-    //     }
-    //   }
-    //   strList += `"{"${itemDate.contentValueList[i].lable}":{"color":{"${itemDate.contentValueList[i].color}","value":"${itemDate.contentValueList[i].value}"}}` + ','
-    // }
-
     data.appId = this.props.wxAppIdValue;
     data.id = this.state.editStateSmall ? 0 : this.state.templateMsgId;
     data.theme = this.state.pushValueItem;
@@ -225,10 +216,7 @@ class TemplateMessage extends React.Component {
     data.miniProgramAppId = this.state.AppleID;
     data.pagePath = this.state.AppletPath;
     this.props.dispatch({ type: 'TemplateMessage/saveTemplateMsg', payload: { data } });
-    this.refs.grid.reload();
-
-
-    // })
+    setTimeout(()=>this.refs.grid.reload(),3000);  
 
   };
   //点击选中粉丝数组
@@ -341,7 +329,7 @@ class TemplateMessage extends React.Component {
       let data = {}
       data.appId = this.props.wxAppIdValue
       data.templateId = this.state.templateId
-      data.templateMsgId = 0;
+      data.templateMsgId = this.state.templateMsgId;
       this.props.dispatch({ type: 'TemplateMessage/beginEditTemplateMsg', payload: { data } });
       let items = this.props.TemplateMessage && this.props.TemplateMessage.userDate.items
       for(let i = 0;i<items.length;i++){
@@ -443,7 +431,8 @@ class TemplateMessage extends React.Component {
             AppletPath: "",
             selectArray: [],
             templateId: "",
-            theme: ""
+            theme: "",
+            templateMsgId:0
           })
           let data = {}
           data.appId = self.props.wxAppIdValue

+ 5 - 4
UI/src/pages/sellmanage/templateMessage/model.js

@@ -8,7 +8,8 @@ import moment from 'moment';
 export default {
   namespace: 'TemplateMessage',
   state: {
-    userDate:{}
+    userDate:{},
+    item:0
   },
   subscriptions: {
     setup({dispatch, history}) {
@@ -46,7 +47,6 @@ export default {
         const { wxAppIdValue } = yield select(_ => _.sellmanage);
         try{
           const data = yield call(getWxTemplateMsg, {appId:wxAppIdValue});
-          // message.success("同步模板消息成功");
           yield put({
             type: 'updateState',
             payload: {
@@ -66,7 +66,7 @@ export default {
         try{
           // const dataItem = yield call(getWxTemplateMsg, {appId:wxAppIdValue});
           const data = yield call(synWxTemplateMsg, {appId:wxAppIdValue,payload});
-          message.success("同步模板消息成功");
+          // message.success("同步模板消息成功");
           yield put({
             type: 'updateState',
             payload: {
@@ -93,7 +93,7 @@ export default {
           yield put({
             type: 'updateState',
             payload: {
-              // Information:data,
+              item:1,
             },
           })
           
@@ -129,6 +129,7 @@ export default {
         else{
         message.error(data.message);
         }
+       
       }catch (e) {
           console.log(e)
       }

+ 30 - 15
mpwechatApp/src/main/java/com/liangjian11/wx/mp/service/impl/TimesMessageServiceImpl.java

@@ -21,8 +21,10 @@ public class TimesMessageServiceImpl extends ServiceImpl<TimesMessageMapper, Tim
 
     private final TimesMessageMapper timesMessageMapper;
     private final MessageService messageService;
+    private final String[] weekName;
 
     public TimesMessageServiceImpl(TimesMessageMapper timesMessageMapper ,MessageService messageService){
+        weekName=new String[]{"每天","周一","周二","周三","周四","周五","周六","周日"};
         this.timesMessageMapper=timesMessageMapper;
         this.messageService=messageService;
     }
@@ -80,8 +82,6 @@ public class TimesMessageServiceImpl extends ServiceImpl<TimesMessageMapper, Tim
             return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "缺少appId");
         if(view.getMessage()==null ||StringUtils.isEmpty(view.getMessage().getMsgType()))
             return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "消息不能为空");
-//        if(view.getTimesList()==null || view.getTimesList().size()==0)
-//            return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "时间段不能为空");
         if(view.getMessage().getMsgType().equals("text"))
             if(StringUtils.isEmpty(view.getMessage().getContent()) && StringUtils.isEmpty(view.getMessage().getMediaId()))
                 return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "内容和图片必须填写一个");
@@ -99,13 +99,6 @@ public class TimesMessageServiceImpl extends ServiceImpl<TimesMessageMapper, Tim
         List<TimesMessage> oldTMList = timesMessageMapper.selectList(queryWrapper1);
         if(oldTMList !=null && oldTMList.size()>0 && !oldTMList.get(0).getTableNo().equals(view.getTableNo()))
             return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "已设置了这天的时间段");
-
-        QueryWrapper everyQuery=new QueryWrapper();
-        everyQuery.eq("appId",appId);
-        everyQuery.eq("week",(short)0);
-        everyQuery.eq("disable",(short)0);
-        List<TimesMessage> everyDayTimes = timesMessageMapper.selectList(everyQuery);
-
         if(timesList!=null && timesList.size()>0){
             for(TimesMessage t1:timesList){
                 if(t1.getBeginTime()==null || t1.getEndTime()==null)
@@ -118,12 +111,34 @@ public class TimesMessageServiceImpl extends ServiceImpl<TimesMessageMapper, Tim
                     if(t2.getEndTime().before(t1.getEndTime()) && t1.getBeginTime().before(t2.getEndTime()))
                         return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "有重复时间段");
                 }
-                if(everyDayTimes!=null && everyDayTimes.size()>0){
-                    for(TimesMessage t2:everyDayTimes){
-                        if(t2.getBeginTime().after(t1.getBeginTime()) && t2.getBeginTime().before(t1.getEndTime()))
-                            return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "与每天的时间段有重复");
-                        if(t2.getEndTime().before(t1.getEndTime()) && t1.getBeginTime().before(t2.getEndTime()))
-                            return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "与每天的时间段有重复");
+                QueryWrapper existQuery=new QueryWrapper();
+                if(view.getWeek() != (short)0){
+                    existQuery.eq("appId",appId);
+                    existQuery.eq("week",(short)0);
+                    existQuery.eq("disable",(short)0);
+                    List<TimesMessage> everyDayTimes = timesMessageMapper.selectList(existQuery);
+                    if(everyDayTimes!=null && everyDayTimes.size()>0){
+                        for (TimesMessage t2 : everyDayTimes) {
+                            if (t2.getBeginTime().after(t1.getBeginTime()) && t2.getBeginTime().before(t1.getEndTime()))
+                                return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "与每天的时间段有重复");
+                            if (t2.getEndTime().before(t1.getEndTime()) && t1.getBeginTime().before(t2.getEndTime()))
+                                return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "与每天的时间段有重复");
+                        }
+                    }
+                }
+                if(view.getWeek()==(short)0){
+                    existQuery=new QueryWrapper();
+                    existQuery.eq("appId",appId);
+                    existQuery.in("week",Arrays.asList(1,2,3,4,5,6,7));
+                    existQuery.eq("disable",(short)0);
+                    List<TimesMessage> weekDayTimes = timesMessageMapper.selectList(existQuery);
+                    if(weekDayTimes !=null && weekDayTimes.size()>0){
+                        for (TimesMessage t2 : weekDayTimes) {
+                            if (t2.getBeginTime().after(t1.getBeginTime()) && t2.getBeginTime().before(t1.getEndTime()))
+                                return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "与"+weekName[t2.getWeek()]+"的时间段有重复");
+                            if (t2.getEndTime().before(t1.getEndTime()) && t1.getBeginTime().before(t2.getEndTime()))
+                                return new ResultInfo(ResultInfo.TYPE_RESULT_FAIL, 2001, "与"+weekName[t2.getWeek()]+"的时间段有重复");
+                        }
                     }
                 }
                 t1.setAppId(appId);