add unread interface

master
wangning 7 years ago
parent 08426e8a5a
commit 74861c60f7

@ -55,6 +55,8 @@ public interface RetailAppService {
JSONObject getNoticeDetailById(JSONObject device, String noticeId); JSONObject getNoticeDetailById(JSONObject device, String noticeId);
List<JSONObject> getLatestNotice(int client_id);
void changeAccountPassword(JSONObject device, ChangePwdBean change, String account_id); void changeAccountPassword(JSONObject device, ChangePwdBean change, String account_id);
JSONObject bankAccountInfo(JSONObject device); JSONObject bankAccountInfo(JSONObject device);

@ -12,6 +12,7 @@ import au.com.royalpay.payment.manage.fund.core.impls.XPlanFundConfigServiceImpl
import au.com.royalpay.payment.manage.mappers.log.AppMessageLogMapper; import au.com.royalpay.payment.manage.mappers.log.AppMessageLogMapper;
import au.com.royalpay.payment.manage.mappers.log.ClearingDetailAnalysisMapper; import au.com.royalpay.payment.manage.mappers.log.ClearingDetailAnalysisMapper;
import au.com.royalpay.payment.manage.mappers.log.ClearingDetailMapper; import au.com.royalpay.payment.manage.mappers.log.ClearingDetailMapper;
import au.com.royalpay.payment.manage.mappers.notice.NoticePartnerMapper;
import au.com.royalpay.payment.manage.mappers.payment.OrderMapper; import au.com.royalpay.payment.manage.mappers.payment.OrderMapper;
import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper; import au.com.royalpay.payment.manage.mappers.payment.TransactionMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper; import au.com.royalpay.payment.manage.mappers.system.ClientAccountMapper;
@ -140,6 +141,8 @@ public class RetailAppServiceImp implements RetailAppService {
private ClientContractService clientContractService; private ClientContractService clientContractService;
@Resource @Resource
private SysConfigManager sysConfigManager; private SysConfigManager sysConfigManager;
@Resource
private NoticePartnerMapper noticePartnerMapper;
private Map<String, AppMsgSender> senderMap = new HashMap<>(); private Map<String, AppMsgSender> senderMap = new HashMap<>();
@ -422,14 +425,14 @@ public class RetailAppServiceImp implements RetailAppService {
switch (order.getString("channel")) { switch (order.getString("channel")) {
case "Alipay": case "Alipay":
JSONObject alipayUser = customerRelationAlipayMapper.findCustomerByUserId(customer_id); JSONObject alipayUser = customerRelationAlipayMapper.findCustomerByUserId(customer_id);
if (alipayUser!=null){ if (alipayUser != null) {
order.put("nickname", alipayUser.getString("nickname")); order.put("nickname", alipayUser.getString("nickname"));
order.put("headimg", alipayUser.getString("headimg")); order.put("headimg", alipayUser.getString("headimg"));
} }
break; break;
case "Wechat": case "Wechat":
JSONObject weUser = customerMapper.findCustomerByOpenId(customer_id); JSONObject weUser = customerMapper.findCustomerByOpenId(customer_id);
if (weUser!=null){ if (weUser != null) {
order.put("nickname", weUser.getString("nickname")); order.put("nickname", weUser.getString("nickname"));
order.put("headimg", weUser.getString("headimg")); order.put("headimg", weUser.getString("headimg"));
} }
@ -442,12 +445,12 @@ public class RetailAppServiceImp implements RetailAppService {
String trade_time = DateFormatUtils.format(calendar, "HH:mm:ss"); String trade_time = DateFormatUtils.format(calendar, "HH:mm:ss");
order.put("trade_date", trade_date); order.put("trade_date", trade_date);
order.put("trade_time", trade_time); order.put("trade_time", trade_time);
//todo // todo
if ("Debit".equals(order.getString("transaction_type"))){ if ("Debit".equals(order.getString("transaction_type"))) {
order.put("currency","AUD"); order.put("currency", "AUD");
} }
if ("CNY".equals(order.getString("currency"))){ if ("CNY".equals(order.getString("currency"))) {
order.put("clearing_amount",order.getBigDecimal("total_amount")); order.put("clearing_amount", order.getBigDecimal("total_amount"));
} }
if (!date_contains.contains(trade_date)) { if (!date_contains.contains(trade_date)) {
String re_date = trade_date.replaceAll("-", ""); String re_date = trade_date.replaceAll("-", "");
@ -869,6 +872,28 @@ public class RetailAppServiceImp implements RetailAppService {
return res; return res;
} }
@Override
public List<JSONObject> getLatestNotice(int client_id) {
JSONObject notice = new JSONObject();
JSONObject lastNotice = noticeManage.getLatestWindowNotice(client_id);
if(lastNotice!=null){
lastNotice.put("id",lastNotice.getString("notice_id"));
lastNotice.remove("notice_id");
}
notice.put("data",lastNotice);
JSONObject unReadParams = new JSONObject();
unReadParams.put("client_id",client_id);
unReadParams.put("status",0);
int counts = noticePartnerMapper.countNoticePartner(unReadParams);
notice.put("unReadCounts",counts);
notice.put("type","notice");
List<JSONObject> result = new ArrayList<>();
result.add(notice);
return result;
}
@Override @Override
public void changeAccountPassword(JSONObject device, ChangePwdBean change, String account_id) { public void changeAccountPassword(JSONObject device, ChangePwdBean change, String account_id) {
String clientType = device.getString("client_type"); String clientType = device.getString("client_type");
@ -1345,6 +1370,7 @@ public class RetailAppServiceImp implements RetailAppService {
public JSONObject getCheckClientInfo(JSONObject device) { public JSONObject getCheckClientInfo(JSONObject device) {
return clientManager.getCheckClientInfo(device.getIntValue("client_id"), device.getString("account_id")); return clientManager.getCheckClientInfo(device.getIntValue("client_id"), device.getString("account_id"));
} }
private static boolean mathchLetterorNum(String str) { private static boolean mathchLetterorNum(String str) {
String regex = "[A-Za-z0-9]{8}"; String regex = "[A-Za-z0-9]{8}";
return str.matches(regex); return str.matches(regex);

@ -4,6 +4,7 @@ import au.com.royalpay.payment.core.exceptions.ParamInvalidException;
import au.com.royalpay.payment.manage.appclient.beans.AppClientBean; import au.com.royalpay.payment.manage.appclient.beans.AppClientBean;
import au.com.royalpay.payment.manage.appclient.beans.AppQueryBean; import au.com.royalpay.payment.manage.appclient.beans.AppQueryBean;
import au.com.royalpay.payment.manage.appclient.core.RetailAppService; import au.com.royalpay.payment.manage.appclient.core.RetailAppService;
import au.com.royalpay.payment.manage.apps.AppController;
import au.com.royalpay.payment.manage.bill.bean.NewBillBean; import au.com.royalpay.payment.manage.bill.bean.NewBillBean;
import au.com.royalpay.payment.manage.bill.bean.QueryBillBean; import au.com.royalpay.payment.manage.bill.bean.QueryBillBean;
import au.com.royalpay.payment.manage.bill.bean.QueryBillOrderBean; import au.com.royalpay.payment.manage.bill.bean.QueryBillOrderBean;
@ -13,7 +14,6 @@ import au.com.royalpay.payment.manage.signin.beans.ChangePwdBean;
import au.com.royalpay.payment.manage.signin.core.SignInStatusManager; import au.com.royalpay.payment.manage.signin.core.SignInStatusManager;
import au.com.royalpay.payment.manage.system.core.ClientContractService; import au.com.royalpay.payment.manage.system.core.ClientContractService;
import au.com.royalpay.payment.tools.CommonConsts; import au.com.royalpay.payment.tools.CommonConsts;
import au.com.royalpay.payment.tools.device.advise.AppClientController;
import au.com.royalpay.payment.tools.env.SysConfigManager; import au.com.royalpay.payment.tools.env.SysConfigManager;
import au.com.royalpay.payment.tools.exceptions.ForbiddenException; import au.com.royalpay.payment.tools.exceptions.ForbiddenException;
import au.com.royalpay.payment.tools.http.HttpUtils; import au.com.royalpay.payment.tools.http.HttpUtils;
@ -39,7 +39,7 @@ import javax.validation.Valid;
/** /**
* Created by yishuqian on 28/03/2017. * Created by yishuqian on 28/03/2017.
*/ */
@AppClientController @AppController
@RequestMapping("/api/v1.0/retail/app") @RequestMapping("/api/v1.0/retail/app")
public class RetailAppController { public class RetailAppController {
@Resource @Resource
@ -132,6 +132,11 @@ public class RetailAppController {
public JSONObject getNoticeId(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device, @PathVariable String noticeId) { public JSONObject getNoticeId(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device, @PathVariable String noticeId) {
return retailAppService.getNoticeDetailById(device, noticeId); return retailAppService.getNoticeDetailById(device, noticeId);
} }
@RequestMapping(value = "/notice/unread", method = RequestMethod.GET)
public List<JSONObject> latestNotice(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device) {
return retailAppService.getLatestNotice(device.getIntValue("client_id"));
}
/* 消息模块end */ /* 消息模块end */
/* 我的页面begin */ /* 我的页面begin */
@ -347,4 +352,5 @@ public class RetailAppController {
public void confirmSourceAgreeFile(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device) { public void confirmSourceAgreeFile(@ModelAttribute(CommonConsts.RETAIL_DEVICE) JSONObject device) {
clientContractService.confirmSourceAgreement(device.getIntValue("client_id"),device.getString("account_id"),"App"); clientContractService.confirmSourceAgreement(device.getIntValue("client_id"),device.getString("account_id"),"App");
} }
} }

@ -1,12 +1,17 @@
package au.com.royalpay.payment.manage.mappers.notice; package au.com.royalpay.payment.manage.mappers.notice;
import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper; import java.util.Date;
import cn.yixblog.support.mybatis.autosql.annotations.AutoSql;
import cn.yixblog.support.mybatis.autosql.annotations.SqlType; import org.apache.ibatis.annotations.Param;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList; import com.github.miemiedev.mybatis.paginator.domain.PageList;
import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper;
import cn.yixblog.support.mybatis.autosql.annotations.AutoSql;
import cn.yixblog.support.mybatis.autosql.annotations.SqlType;
/** /**
* Created by yishuqian on 10/10/2016. * Created by yishuqian on 10/10/2016.
*/ */
@ -20,4 +25,6 @@ public interface NoticeManageMapper {
void createNotice(JSONObject notice); void createNotice(JSONObject notice);
@AutoSql(type = SqlType.UPDATE) @AutoSql(type = SqlType.UPDATE)
void updateNotice(JSONObject notice); void updateNotice(JSONObject notice);
JSONObject getLatestWindowNotice(@Param("client_id") int client_id,@Param("end_time")Date end_time);
} }

@ -24,4 +24,5 @@ public interface NoticeManage {
JSONObject listNoticeReadClients(String noticeId, int page, int limit); JSONObject listNoticeReadClients(String noticeId, int page, int limit);
JSONObject getLatestWindowNotice(int client_id);
} }

@ -1,25 +1,5 @@
package au.com.royalpay.payment.manage.notice.core.impls; package au.com.royalpay.payment.manage.notice.core.impls;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.Order;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import au.com.royalpay.payment.manage.appclient.core.RetailAppService; import au.com.royalpay.payment.manage.appclient.core.RetailAppService;
import au.com.royalpay.payment.manage.mappers.log.NotifyErrorLogMapper; import au.com.royalpay.payment.manage.mappers.log.NotifyErrorLogMapper;
import au.com.royalpay.payment.manage.mappers.notice.NoticeManageMapper; import au.com.royalpay.payment.manage.mappers.notice.NoticeManageMapper;
@ -32,6 +12,26 @@ import au.com.royalpay.payment.manage.notice.core.MailService;
import au.com.royalpay.payment.manage.notice.core.NoticeManage; import au.com.royalpay.payment.manage.notice.core.NoticeManage;
import au.com.royalpay.payment.tools.utils.PageListUtils; import au.com.royalpay.payment.tools.utils.PageListUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.Order;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
/** /**
* Created by yishuqian on 28/09/2016. * Created by yishuqian on 28/09/2016.
*/ */
@ -201,6 +201,10 @@ public class NoticeManageImpl implements NoticeManage {
return PageListUtils.buildPageListResult(clients); return PageListUtils.buildPageListResult(clients);
} }
@Override
public JSONObject getLatestWindowNotice(int client_id) {
return noticeManageMapper.getLatestWindowNotice(client_id,new Date());
}
} }

@ -14,5 +14,14 @@
</where> </where>
</select> </select>
<select id="getLatestWindowNotice" resultType="com.alibaba.fastjson.JSONObject">
select n.title,n.`desc`,n.notice_id
from sys_notice_client c left join sys_notice n
on c.notice_id = n.notice_id and c.`status` = 0
where c.client_id = #{client_id} and n.status = 1
and end_time &gt; #{end_time}
and n.is_app_window = 1
order by n.send_time desc
limit 1
</select>
</mapper> </mapper>
Loading…
Cancel
Save