eason.qian 7 years ago
parent 7f4f195fee
commit 08426e8a5a

@ -239,5 +239,5 @@ ALTER TABLE `financial_bd_prize_log`
MODIFY COLUMN `manager_id` varchar(50) NOT NULL COMMENT 'bd user id' AFTER `record_id`; MODIFY COLUMN `manager_id` varchar(50) NOT NULL COMMENT 'bd user id' AFTER `record_id`;
alter table sys_notice ALTER TABLE sys_notice ADD merchants_type TINYINT(1) DEFAULT 0 NOT NULL COMMENT '商户范围0全部商户 1自定义商户';
add is_app_window tinyint default '0' null comment '是否需要APP弹框'; ALTER TABLE sys_notice ADD is_app_window TINYINT(1) DEFAULT 0 COMMENT '是否需要APP弹框';

@ -23,6 +23,7 @@ public class NoticeInfo {
private boolean is_tomail; private boolean is_tomail;
private boolean is_tomail_cc_stockholder; private boolean is_tomail_cc_stockholder;
private boolean is_to_app; private boolean is_to_app;
private boolean is_app_window;
private String notice_id; private String notice_id;
public JSONObject toJson() { public JSONObject toJson() {
@ -47,6 +48,9 @@ public class NoticeInfo {
res.put("is_tomail",is_tomail); res.put("is_tomail",is_tomail);
res.put("is_tomail_cc_stockholder",is_tomail_cc_stockholder); res.put("is_tomail_cc_stockholder",is_tomail_cc_stockholder);
res.put("is_to_app",is_to_app); res.put("is_to_app",is_to_app);
if (is_app_window){
res.put("is_app_window",is_app_window);
}
if (notice_id != null){ if (notice_id != null){
res.put("notice_id",notice_id); res.put("notice_id",notice_id);
} }
@ -120,4 +124,12 @@ public class NoticeInfo {
public void setNotice_id(String notice_id) { public void setNotice_id(String notice_id) {
this.notice_id = notice_id; this.notice_id = notice_id;
} }
public boolean isIs_app_window() {
return is_app_window;
}
public void setIs_app_window(boolean is_app_window) {
this.is_app_window = is_app_window;
}
} }

@ -3,6 +3,7 @@ package au.com.royalpay.payment.manage.notice.core;
import au.com.royalpay.payment.manage.notice.beans.NoticeInfo; import au.com.royalpay.payment.manage.notice.beans.NoticeInfo;
import au.com.royalpay.payment.manage.notice.beans.NoticeQuery; import au.com.royalpay.payment.manage.notice.beans.NoticeQuery;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.transaction.annotation.Transactional;
/** /**
* Created by yishuqian on 28/09/2016. * Created by yishuqian on 28/09/2016.
@ -12,6 +13,9 @@ public interface NoticeManage {
JSONObject addNotice(NoticeInfo noticeInfo, JSONObject manager); JSONObject addNotice(NoticeInfo noticeInfo, JSONObject manager);
@Transactional
JSONObject saveNotice(NoticeInfo noticeInfo, JSONObject manager);
JSONObject getNoticeById(String noticeId); JSONObject getNoticeById(String noticeId);
void updateNotice(JSONObject manager, String noticeId, NoticeInfo info) throws Exception; void updateNotice(JSONObject manager, String noticeId, NoticeInfo info) throws Exception;

@ -91,6 +91,29 @@ public class NoticeManageImpl implements NoticeManage {
return notice; return notice;
} }
@Transactional
@Override
public JSONObject saveNotice(NoticeInfo noticeInfo, JSONObject manager) {
Date date = new Date();
JSONObject notice = noticeInfo.toJson();
notice.put("create_time", date);
notice.put("create_id", manager.getString("manager_id"));
notice.put("create_name", manager.getString("display_name"));
noticeManageMapper.createNotice(notice);
if (noticeInfo.getStatus() != null && noticeInfo.getStatus().equals("1")) {
List<JSONObject> clients = clientMapper.listClients();
if (!clients.isEmpty()) {
for (JSONObject client : clients) {
client.put("create_time", date);
client.put("notice_id", notice.getString("notice_id"));
noticePartnerMapper.save(client);
}
}
}
return notice;
}
@Override @Override
public JSONObject getNoticeById(String noticeId) { public JSONObject getNoticeById(String noticeId) {
JSONObject notice = noticeManageMapper.getNoticeDetailById(noticeId); JSONObject notice = noticeManageMapper.getNoticeDetailById(noticeId);

@ -58,17 +58,24 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"
ng-class="{'has-error':noticeForm.intro.$invalid && noticeForm.intro.$dirty}">
<label class="control-label col-sm-2" for="title-input">Intro</label>
<div class="col-sm-8">
<input class="form-control" ng-model="notice.title" type="textarea"
id="intro-input" name="intro" maxlength="400">
<div ng-messages="noticeForm.intro.$error"
ng-if="noticeForm.intro.$dirty">
<p class="small text-danger" ng-message="maxlength">Less Than 400
Characters(including symbols and spaces)</p>
</div>
</div>
</div>
<div class="form-group" <div class="form-group"
ng-class="{'has-error':noticeForm.content.$invalid && noticeForm.content.$dirty}"> ng-class="{'has-error':noticeForm.content.$invalid && noticeForm.content.$dirty}">
<label class="control-label col-sm-2"></label> <label class="control-label col-sm-2"></label>
<div class="col-sm-8"> <div class="col-sm-8">
<ueditor ng-model="notice.content" ue-height="400"></ueditor> <ueditor ng-model="notice.content" ue-height="400"></ueditor>
<!--<textarea class="form-control" required ng-model="notice.content"-->
<!--name="content" id="desc-input"></textarea>-->
<!--<div ng-messages="noticeForm.content.$error"-->
<!--ng-if="noticeForm.content.$dirty">-->
<!--<p class="small text-danger" ng-message="required">Required Field</p>-->
<!--</div>-->
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -80,27 +87,33 @@
is-open="dateEnd.open" ng-click="dateEnd.open=true" is-open="dateEnd.open" ng-click="dateEnd.open=true"
datepicker-options="{minDate:today}"> datepicker-options="{minDate:today}">
</div> </div>
<div ng-if="notice.notice_id" class="col-sm-2" style="display: inline-block"> <!--<div ng-if="notice.notice_id" class="col-sm-2" style="display: inline-block">-->
<input type="checkbox" <!--<input type="checkbox"-->
ng-model="notice.is_tomail"> Send Emails <!--ng-model="notice.is_tomail"> Send Emails-->
</div> <!--</div>-->
<div ng-if="notice.notice_id && notice.is_tomail" class="col-sm-2" style="display: inline-block"> <!--<div ng-if="notice.notice_id && notice.is_tomail" class="col-sm-2" style="display: inline-block">-->
<input type="checkbox" <!--<input type="checkbox"-->
ng-model="notice.is_tomail_cc_stockholder"> CC to stockholders <!--ng-model="notice.is_tomail_cc_stockholder"> CC to stockholders-->
</div> <!--</div>-->
<div ng-if="notice.notice_id" class="col-sm-2" style="display: inline-block"> <!--<div ng-if="notice.notice_id" class="col-sm-2" style="display: inline-block">-->
<input type="checkbox" <!--<input type="checkbox"-->
ng-model="notice.is_to_app"> Send App <!--ng-model="notice.is_to_app"> Send App-->
</div> <!--</div>-->
</div> </div>
<div class="form-group" ng-if="notice.notice_id && notice.is_tomail||notice.notice_id && notice.is_to_app"> <div class="form-group">
<label class="control-label col-sm-2" for="clients-input">Send Partners</label> <label class="control-label col-sm-2" for="merchants-type">Merchants</label>
<div class="col-sm-8" style="display: inline-block" ng-if="notice.status=='0'|| notice.status==null"> <div class="col-sm-8" style="display: inline-block" ng-if="notice.status=='0'|| notice.status==null">
<textarea class="form-control col-sm-10" ng-model="notice.send_clients" <select class="form-control" ng-model="notice.merchants_type" id="merchants-type">
name="clients" id="clients-input"></textarea> <option value="0">ALL</option>
<a class="btn btn-success" role="button" ng-click="selectClients(notice)"><i <option value="1">Custom</option>
class="fa fa-search"></i></a> </select>
</div>
<div class="col-sm-8" style="display: inline-block" ng-if="notice.merchants==1">
<input class="form-control" ng-model="notice.send_clients" type="textarea"
id="send-clients-input" name="send_clients">
</div> </div>
<p class="small text-danger">以PartnerCode1,PartnerCode2..的形式填写</p>
<div class="col-sm-8" ng-if="notice.status=='1'"> <div class="col-sm-8" ng-if="notice.status=='1'">
<p class="form-control-static" ng-bind="notice.send_clients"></p> <p class="form-control-static" ng-bind="notice.send_clients"></p>
</div> </div>
@ -110,9 +123,9 @@
</div> </div>
<div class="btn-group margin-bottom margin-top"> <div class="btn-group margin-bottom margin-top">
<button class="btn btn-success" type="button" ng-click="save(noticeForm)">Save</button> <button class="btn btn-success" type="button" ng-click="save(noticeForm)">Save</button>
<button ng-if="notice.status=='0'|| notice.status==null" class="btn btn-danger" type="button" <!--<button ng-if="notice.status=='0'|| notice.status==null" class="btn btn-danger" type="button"-->
ng-click="notice.status='1';save(noticeForm)">Send <!--ng-click="notice.status='1';save(noticeForm)">Send-->
</button> <!--</button>-->
</div> </div>
</div> </div>
</div> </div>

@ -23,29 +23,68 @@
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="col-sm-12"> <div class="form-group">
<p class="form-control-static" ng-bind-html="notice.content"></p> <label class="control-label col-sm-2">Intro</label>
<div class="col-sm-10">
<p class="form-control-static" ng-bind="notice.desc"></p>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Intro</label>
<div class="col-sm-10">
<p class="form-control-static" ng-bind-html="notice.content"></p>
</div>
</div> </div>
<div class="col-sm-12" ng-if="notice.send_time"> <div class="form-group" ng-if="notice.send_time">
<label class="control-label col-sm-1">Send Time</label> <label class="control-label col-sm-2">Send Time</label>
<div class="col-sm-11"> <div class="col-sm-10">
<p class="form-control-static" ng-bind="notice.send_time|limitTo:10"></p> <p class="form-control-static" ng-bind="notice.send_time|limitTo:10"></p>
</div> </div>
</div> </div>
<div class="col-sm-12" ng-if="notice.end_time"> <div class="form-group" ng-if="notice.end_time">
<label class="control-label col-sm-1">Expiry Date</label> <label class="control-label col-sm-2">Expiry Date</label>
<div class="col-sm-11"> <div class="col-sm-10">
<p class="form-control-static" ng-bind="notice.end_time|limitTo:10"></p>
</div>
</div>
<div class="form-group" ng-if="notice.merchant_type">
<label class="control-label col-sm-2">Merchants</label>
<div class="col-sm-10">
<p class="form-control-static" ng-bind="notice.end_time|limitTo:10"></p> <p class="form-control-static" ng-bind="notice.end_time|limitTo:10"></p>
</div> </div>
</div> </div>
<div class="form-group">
<label class="control-label col-sm-2">Send Channels</label>
<div class="col-sm-10">
<div class="col-sm-6">
<label class="control-label col-sm-2">Emails</label>
<div class="col-sm-10">
<input type="checkbox" disabled ng-model="notice.is_tomail" bs-switch>
</div>
</div>
<div class="col-sm-6">
<label class="control-label col-sm-2">App Notice</label>
<div class="col-sm-10">
<input type="checkbox" disabled ng-model="partner.is_to_app" bs-switch>
</div>
</div>
<div class="col-sm-6">
<label class="control-label col-sm-2">App Window</label>
<div class="col-sm-10">
<input type="checkbox" disabled ng-model="partner.is_app_window" bs-switch>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
<!--end 商品基本资料--> <!--end 商品基本资料-->
<div class="panel panel-default" ng-if="notice.status==1 && clients.length>0"> <div class="panel panel-default" ng-if="notice.status==1 && clients.length>0">
<div class="panel-heading">Reading Partners <div class="panel-heading">Reading Partners
<span style="font-size: smaller;color: grey">(send to {{total_clients}} partners and {{pagination.totalCount}} partners of them have read)</span></div> <span style="font-size: smaller;color: grey">(send to {{total_clients}} partners and {{pagination.totalCount}} partners of them have read)</span>
</div>
<div class="panel-body"> <div class="panel-body">
<div class="box-body no-padding table-responsive"> <div class="box-body no-padding table-responsive">
<table class="table table-striped"> <table class="table table-striped">
@ -80,7 +119,9 @@
next-text="&rsaquo;" next-text="&rsaquo;"
first-text="&laquo;" first-text="&laquo;"
last-text="&raquo;"></uib-pagination> last-text="&raquo;"></uib-pagination>
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div> <div class="col-xs-12">Total Records:{{pagination.totalCount}};Total
Pages:{{pagination.totalPages}}
</div>
</div> </div>
</div> </div>
</div> </div>

Loading…
Cancel
Save