消息推送
This commit is contained in:
@@ -13,8 +13,10 @@ import com.zscat.mallplus.oms.service.IOmsOrderService;
|
||||
import com.zscat.mallplus.oms.vo.*;
|
||||
import com.zscat.mallplus.pms.entity.PmsProduct;
|
||||
import com.zscat.mallplus.pms.mapper.PmsProductMapper;
|
||||
import com.zscat.mallplus.ums.entity.SysMessage;
|
||||
import com.zscat.mallplus.ums.entity.UmsMember;
|
||||
import com.zscat.mallplus.ums.mapper.UmsMemberMapper;
|
||||
import com.zscat.mallplus.ums.service.ISysMessageService;
|
||||
import com.zscat.mallplus.utils.ValidatorUtils;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -48,6 +50,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
||||
private IOmsOrderOperateHistoryService orderOperateHistoryDao;
|
||||
@Resource
|
||||
private OmsOrderOperateHistoryMapper orderOperateHistoryMapper;
|
||||
@Resource
|
||||
private ISysMessageService messageService;
|
||||
|
||||
@Override
|
||||
public int delivery(List<OmsOrderDeliveryParam> deliveryParamList) {
|
||||
@@ -68,9 +72,24 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
||||
}).collect(Collectors.toList());
|
||||
orderOperateHistoryDao.saveBatch(operateHistoryList);
|
||||
}
|
||||
sendPushMsg(deliveryParamList);
|
||||
return count;
|
||||
}
|
||||
|
||||
private void sendPushMsg(List<OmsOrderDeliveryParam> deliveryParamList) {
|
||||
for (OmsOrderDeliveryParam param : deliveryParamList) {
|
||||
OmsOrder omsOrder = baseMapper.selectById(param.getOrderId());
|
||||
if (omsOrder != null && omsOrder.getMemberId() != null) {
|
||||
SysMessage msg = new SysMessage();
|
||||
msg.setUserId(omsOrder.getMemberId().intValue());
|
||||
msg.setCode("交易物流");
|
||||
msg.setParams("您购买的商品已发货");
|
||||
msg.setContent("您在汇融云链购买的,订单号为:" + omsOrder.getOrderSn() + " 的商品已经发货,请在7日内到取货点取货。");
|
||||
messageService.sendToOne(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int singleDelivery(OmsOrderDeliveryParam deliveryParamList) {
|
||||
OmsOrder order = new OmsOrder();
|
||||
@@ -103,7 +122,6 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Object dayStatic(String date, Integer type) {
|
||||
List<OmsOrder> orders = orderMapper.listByDate(date, type);
|
||||
@@ -166,22 +184,22 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
||||
@Override
|
||||
public Object getOrderTimeData(Integer status) {
|
||||
BigDecimal nowOrderPay = new BigDecimal(0); //销售总额
|
||||
List<OmsOrder> orders =null;
|
||||
Map<Long,Object> memberMap =new HashMap<>();
|
||||
if (status==0){
|
||||
List<OmsOrder> orders = null;
|
||||
Map<Long, Object> memberMap = new HashMap<>();
|
||||
if (status == 0) {
|
||||
orders = orderMapper.selectList(new QueryWrapper<OmsOrder>());
|
||||
}else {
|
||||
orders = orderMapper.selectList(new QueryWrapper<OmsOrder>().eq("status",status));
|
||||
} else {
|
||||
orders = orderMapper.selectList(new QueryWrapper<OmsOrder>().eq("status", status));
|
||||
}
|
||||
for (OmsOrder order : orders) {
|
||||
memberMap.put(order.getMemberId(),order.getId());
|
||||
nowOrderPay = nowOrderPay.add(order.getPayAmount());
|
||||
memberMap.put(order.getMemberId(), order.getId());
|
||||
nowOrderPay = nowOrderPay.add(order.getPayAmount());
|
||||
}
|
||||
Map<String, Object> map = new HashMap();
|
||||
map.put("orderCount", orders.size());
|
||||
map.put("orderPay", nowOrderPay);
|
||||
map.put("memberCount", memberMap.size());
|
||||
// map.put("femallount", femallount);
|
||||
// map.put("femallount", femallount);
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -269,12 +287,12 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderStstic> listOrderGroupByStatus(Integer status){
|
||||
public List<OrderStstic> listOrderGroupByStatus(Integer status) {
|
||||
return orderMapper.listOrderGroupByStatus(status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map orderMonthStatic(String date, Integer status){
|
||||
return orderMapper.orderMonthStatic(date,status);
|
||||
public Map orderMonthStatic(String date, Integer status) {
|
||||
return orderMapper.orderMonthStatic(date, status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.zscat.mallplus.ums.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zscat.mallplus.annotation.SysLog;
|
||||
import com.zscat.mallplus.ums.entity.SysMessageTask;
|
||||
import com.zscat.mallplus.ums.entity.UmsMember;
|
||||
import com.zscat.mallplus.ums.service.IUmsMemberService;
|
||||
import com.zscat.mallplus.ums.service.SysMessageTaskService;
|
||||
import com.zscat.mallplus.util.StringUtils;
|
||||
import com.zscat.mallplus.utils.CommonResult;
|
||||
import com.zscat.mallplus.utils.ValidatorUtils;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.slf4j.ILoggerFactory;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@RestController("com.zscat.mallplus.ums.controller.SysMessageTaskRest")
|
||||
@RequestMapping("/ums/sysMessageTask")
|
||||
public class SysMessageTaskRest {
|
||||
|
||||
private static final Logger L = LoggerFactory.getLogger(SysMessageTaskRest.class);
|
||||
@Resource
|
||||
private SysMessageTaskService sysMessageTaskService;
|
||||
|
||||
@GetMapping(value = "/list")
|
||||
public Object listByPage(
|
||||
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
|
||||
) {
|
||||
try {
|
||||
QueryWrapper<SysMessageTask> qw = new QueryWrapper<>();
|
||||
qw.orderByDesc("sendtime");
|
||||
IPage<SysMessageTask> page = sysMessageTaskService.page(new Page<SysMessageTask>(pageNum, pageSize), qw);
|
||||
return new CommonResult().success(page);
|
||||
} catch (Exception e) {
|
||||
L.error("根据条件查询所有会员表列表:%s", e.getMessage(), e);
|
||||
}
|
||||
return new CommonResult().failed();
|
||||
}
|
||||
|
||||
@PostMapping(value = "/create")
|
||||
public Object saveTask(@RequestBody SysMessageTask entity) {
|
||||
try {
|
||||
entity.setId(null);
|
||||
if (sysMessageTaskService.save(entity)) {
|
||||
return new CommonResult().success();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
L.error("保存定时消息表:%s", e.getMessage(), e);
|
||||
return new CommonResult().failed();
|
||||
}
|
||||
return new CommonResult().failed();
|
||||
}
|
||||
|
||||
@GetMapping(value = "/delete/{id}")
|
||||
public Object deleteUmsMember(@PathVariable Integer id) {
|
||||
try {
|
||||
System.out.println("KKKKKKKKK: "+id);
|
||||
if (ValidatorUtils.empty(id)) {
|
||||
return new CommonResult().paramFailed("定时消息表id");
|
||||
}
|
||||
if (sysMessageTaskService.removeById(id)) {
|
||||
return new CommonResult().success();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
L.error("删除定时消息表:%s", e.getMessage(), e);
|
||||
return new CommonResult().failed();
|
||||
}
|
||||
return new CommonResult().failed();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.zscat.mallplus.ums.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zscat.mallplus.ums.entity.SysMessage;
|
||||
import com.zscat.mallplus.ums.entity.UmsMember;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@@ -22,4 +23,8 @@ public interface IUmsMemberService extends IService<UmsMember> {
|
||||
Map memberMonthStatic( String date);
|
||||
|
||||
List<UmsMember> listAll();
|
||||
|
||||
String fetchPhoneById(Integer userId);
|
||||
|
||||
List<String> listPhoneByIdList(List<Integer> userIdList);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.zscat.mallplus.ums.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zscat.mallplus.ums.entity.SysMessageTask;
|
||||
import com.zscat.mallplus.ums.mapper.SysMessageTaskMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class SysMessageTaskService extends ServiceImpl<SysMessageTaskMapper, SysMessageTask> {
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
package com.zscat.mallplus.ums.service.impl;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zscat.mallplus.ums.entity.SysMessage;
|
||||
import com.zscat.mallplus.ums.entity.UmsMember;
|
||||
@@ -7,9 +10,13 @@ import com.zscat.mallplus.ums.mapper.SysMessageMapper;
|
||||
import com.zscat.mallplus.ums.service.ISysMessageService;
|
||||
import com.zscat.mallplus.ums.service.IUmsMemberService;
|
||||
import com.zscat.mallplus.ums.vo.SysMessageSendSelectVo;
|
||||
import com.zscat.mallplus.unipush.UniPushService;
|
||||
import com.zscat.mallplus.unipush.entity.PushCids;
|
||||
import com.zscat.mallplus.unipush.mapper.PushCidsMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -26,32 +33,47 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
|
||||
|
||||
@Autowired
|
||||
private IUmsMemberService memberService;
|
||||
@Resource
|
||||
private PushCidsMapper pushCidsMapper;
|
||||
@Resource
|
||||
private UniPushService uniPushService;
|
||||
|
||||
@Override
|
||||
public boolean sendToOne(SysMessage entity) {
|
||||
entity.setId(null);
|
||||
sendPushToOne(entity);
|
||||
return this.save(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sendToAll(SysMessage entity) {
|
||||
List<UmsMember> memberList = memberService.listAll();
|
||||
// List<SysMessage> messList = new ArrayList<>();
|
||||
for (UmsMember member : memberList) {
|
||||
// SysMessage
|
||||
entity.setId(null);
|
||||
Integer id = Math.toIntExact(member.getId());
|
||||
entity.setUserId(id);
|
||||
// messList.add(en)
|
||||
this.save(entity);
|
||||
}
|
||||
|
||||
sendPushToAll(entity);
|
||||
|
||||
// List<UmsMember> memberList = memberService.listAll();
|
||||
//// List<SysMessage> messList = new ArrayList<>();
|
||||
// for (UmsMember member : memberList) {
|
||||
//// SysMessage
|
||||
// entity.setId(null);
|
||||
// Integer id = Math.toIntExact(member.getId());
|
||||
// entity.setUserId(id);
|
||||
//// messList.add(en)
|
||||
// this.save(entity);
|
||||
// }
|
||||
entity.setId(null);
|
||||
entity.setUserId(1);
|
||||
this.save(entity);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sendToSelect(SysMessageSendSelectVo vo) {
|
||||
|
||||
SysMessage entity = vo.getSysMessage();
|
||||
List<Integer> userIdList = vo.getUserIdList();
|
||||
|
||||
sendPushToList(entity, userIdList);
|
||||
|
||||
for (Integer memberId : userIdList) {
|
||||
entity.setId(null);
|
||||
entity.setUserId(memberId);
|
||||
@@ -66,9 +88,60 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
|
||||
entity.setId(null);
|
||||
entity.setCode("交易物流");
|
||||
entity.setParams("货物已发出");
|
||||
entity.setContent("你的订单号码为:"+orderNo+" 的货物已经发出,请您留意物流信息!");
|
||||
entity.setContent("你的订单号码为:" + orderNo + " 的货物已经发出,请您留意物流信息!");
|
||||
entity.setUserId(userId);
|
||||
this.save(entity);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private void sendPushToOne(SysMessage sysMessage) {
|
||||
Integer userId = sysMessage.getUserId();
|
||||
if (userId == null)
|
||||
return;
|
||||
if (userId.equals(1)) {
|
||||
return;
|
||||
}
|
||||
String phone = memberService.fetchPhoneById(userId);
|
||||
if (StrUtil.isNotBlank(phone)) {
|
||||
List<String> cids = listPushCidByPhone(phone);
|
||||
uniPushService.sendPushAsync(sysMessage, cids);
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> listPushCidByPhone(String phone) {
|
||||
QueryWrapper<PushCids> qw = new QueryWrapper<>();
|
||||
qw.eq("userPhone", phone);
|
||||
List<PushCids> list = pushCidsMapper.selectList(qw);
|
||||
List<String> cids = new ArrayList<>();
|
||||
list.forEach(ent -> cids.add(ent.getGetuiCid()));
|
||||
return cids;
|
||||
}
|
||||
|
||||
private List<String> listPushCidByPhoneList(List<String> phoneList) {
|
||||
QueryWrapper<PushCids> qw = new QueryWrapper<>();
|
||||
qw.in("userPhone", phoneList);
|
||||
List<PushCids> list = pushCidsMapper.selectList(qw);
|
||||
List<String> cids = new ArrayList<>();
|
||||
list.forEach(ent -> cids.add(ent.getGetuiCid()));
|
||||
return cids;
|
||||
}
|
||||
|
||||
private List<String> listPushCidAll() {
|
||||
List<PushCids> list = pushCidsMapper.selectList(new QueryWrapper<>());
|
||||
List<String> cids = new ArrayList<>();
|
||||
list.forEach(ent -> cids.add(ent.getGetuiCid()));
|
||||
return cids;
|
||||
}
|
||||
|
||||
private void sendPushToList(SysMessage sysMessage, List<Integer> userIdList) {
|
||||
List<String> phoneList = memberService.listPhoneByIdList(userIdList);
|
||||
List<String> cids = listPushCidByPhoneList(phoneList);
|
||||
uniPushService.sendPushAsync(sysMessage, cids);
|
||||
}
|
||||
|
||||
private void sendPushToAll(SysMessage sysMessage) {
|
||||
List<String> cids = listPushCidAll();
|
||||
uniPushService.sendPushAsync(sysMessage, cids);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -55,7 +56,7 @@ public class UmsMemberServiceImpl extends ServiceImpl<UmsMemberMapper, UmsMember
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map memberMonthStatic(@Param("date") String date){
|
||||
public Map memberMonthStatic(@Param("date") String date) {
|
||||
return memberMapper.memberMonthStatic(date);
|
||||
}
|
||||
|
||||
@@ -63,4 +64,25 @@ public class UmsMemberServiceImpl extends ServiceImpl<UmsMemberMapper, UmsMember
|
||||
public List<UmsMember> listAll() {
|
||||
return baseMapper.selectList(new QueryWrapper<UmsMember>());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String fetchPhoneById(Integer userId) {
|
||||
UmsMember um = baseMapper.selectById(userId);
|
||||
if (um == null)
|
||||
return null;
|
||||
String userPhone = um.getUsername();
|
||||
return userPhone;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> listPhoneByIdList(List<Integer> userIdList) {
|
||||
QueryWrapper<UmsMember> qw = new QueryWrapper<>();
|
||||
qw.in("id", userIdList);
|
||||
List<UmsMember> memberList = baseMapper.selectList(qw);
|
||||
List<String> phoneList = new ArrayList<>();
|
||||
memberList.forEach(mem -> phoneList.add(mem.getUsername()));
|
||||
return phoneList;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.zscat.mallplus.unipush;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.getui.push.v2.sdk.ApiHelper;
|
||||
import com.getui.push.v2.sdk.GtApiConfiguration;
|
||||
@@ -228,6 +229,10 @@ public class UniPushService {
|
||||
|
||||
}
|
||||
|
||||
public void sendPushAsync(SysMessage mess, List<String> cids) {
|
||||
ThreadUtil.execute(() -> sendPush(mess, cids));
|
||||
}
|
||||
|
||||
private void sendSingleMsg(PushMessage pushMessage, String cid, int index) {
|
||||
PushDTO<Audience> pushDTO = new PushDTO<Audience>();
|
||||
pushDTO.setRequestId("" + System.currentTimeMillis() + index);
|
||||
@@ -235,7 +240,7 @@ public class UniPushService {
|
||||
Audience audience = new Audience();
|
||||
audience.addCid(cid);
|
||||
pushDTO.setAudience(audience);
|
||||
ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByCid(pushDTO);
|
||||
ApiResult<Map<String, Map<String, String>>> apiResult = singlePushApi().pushToSingleByCid(pushDTO);
|
||||
if (apiResult.isSuccess()) {
|
||||
System.out.println(apiResult.getData());
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user