diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java index 32f7b0be4..1a2e50b87 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java @@ -71,8 +71,15 @@ public class HomeController extends BaseController { @Autowired private MallUserActionService mallUserActionService; + @Autowired + private WxBillAllService wxBillAllService; + @GetMapping("/captcha.jpg") public void captcha(HttpServletResponse response)throws ServletException, IOException { +// //todo 测试 +// wxBillAllService.getOweBillForEmail(); + + logger.debug("[" + getIpAddr() + "] HomeController::captcha"); response.setHeader("Cache-Control", "no-store, no-cache"); response.setContentType("image/jpeg"); diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java index e937c99ec..52babae45 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/BillNotificationSchedule.java @@ -55,6 +55,7 @@ public class BillNotificationSchedule { sendWaitPayBill(); wxBillAllService.sendWaitPayBillEmail(); sendOweBill(); + wxBillAllService.getOweBillForEmail(); logger.info("账单通知任务结束"); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java b/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java index ece5a067b..9afa74f70 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxTopic.java @@ -59,7 +59,16 @@ public class WxTopic implements Serializable { //状态,一个或者多个 @Transient private String statusStr; + @Transient + protected List statusList; + + public List getStatusList() { + return statusList; + } + public void setStatusList(List statusList) { + this.statusList = statusList; + } public String getBgColor() { return bgColor; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillAllMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillAllMapper.java index fdfe9a9c0..7e89b894c 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillAllMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillAllMapper.java @@ -24,6 +24,12 @@ public interface WxBillAllMapper { List> getOweBill(); + /** + * +group by账单类型 + * @return + */ + List> getOweBillForEmail(); + /** * +group by账单类型 * @return diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java b/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java index 8543b0ee3..22f514d52 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillAllService.java @@ -2,7 +2,6 @@ package com.iformall.service; import com.iformall.common.ResultData; import com.iformall.domain.vo.WxBillAll; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -27,5 +26,13 @@ public interface WxBillAllService { Long hasOweBill(Long contractId,Integer type); + /** + * 发送代缴通知邮件 + */ void sendWaitPayBillEmail(); + + /** + * 发送欠缴通知邮件 + */ + void getOweBillForEmail(); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 0cd9935b5..af8adcad3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -643,4 +643,9 @@ public class WxBillAllServiceImpl implements WxBillAllService { } } + + @Override + public void getOweBillForEmail() { + wxBillAllMapper.getOweBillForEmail(); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index 35d322d19..7bc8aa365 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -1,5 +1,8 @@ package com.iformall.service.impl; +import java.lang.reflect.Field; +import java.text.SimpleDateFormat; +import java.util.*; import com.alibaba.druid.support.json.JSONUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -182,13 +185,20 @@ public class WxFlowServiceImpl implements WxFlowService { } public Map mallUserInfoToMap(MallUserInfo userInfo){ - Map map = new HashedMap(); - if(userInfo != null){ - map.put("name",userInfo.getName()); - map.put("id",userInfo.getId()); - map.put("phone",userInfo.getPhone()); + try { + Map map = new HashMap<>(); + Class clazz = userInfo.getClass(); + for (Field field : clazz.getDeclaredFields()) { + field.setAccessible(true); + String fieldName = field.getName(); + Object value = field.get(userInfo); + map.put(fieldName, value); + } + return map; + }catch (IllegalAccessException e){ + logger.error("mallUserInfoToMap error",e); } - return map; + return new HashMap<>(); } @Override @@ -257,73 +267,69 @@ public class WxFlowServiceImpl implements WxFlowService { mqBaseProducer.sendMessage(wxMsgRecord, EnumMsgMqTopic.DEFAULT.getCode(),EnumMsgMqTag.DEFAULT.getCode(),EnumMsgMqKey.DEFAULT.getCode()); //发邮件 - if(StringUtils.isNotBlank(email)){ - Map msgReplaceMap = new HashedMap(); - msgReplaceMap.put("page", Constant.adminPage); - msgReplaceMap.put("applyTime", new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date())); - msgReplaceMap.put("name",userName); - msgReplaceMap.put("linkName",userName); - msgReplaceMap.put("linkPhone",phone); - ResultData resultData = getTaskStatusList(businessId, tenantId); - List flowRecordList = (List) resultData.data; - String taskListHtml = ""; - for (int i = flowRecordList.size() -1; i>=0; i--) { - WxFlowRecord record = flowRecordList.get(i); - if (record.getStatus().equals(EnumFlowRecordStatus.NEW.getCode())) { - taskListHtml += "
"; - taskListHtml += "
"; - taskListHtml += "
"; - taskListHtml += "
发起申请
"; - taskListHtml += "
"+record.getUserName()+"
"; - taskListHtml += "
"; - if(i == flowRecordList.size() - 1){ - taskListHtml += "
"+record.getRemark() == null ? "" : record.getRemark()+"
"; - }else{ - taskListHtml += "
"+record.getRemark() == null ? "" : record.getRemark()+"
"; - } - taskListHtml += "
"; - } else if (record.getStatus().equals(EnumFlowRecordStatus.ASSIGNEE.getCode())) { - taskListHtml += "
"; - taskListHtml += "
"; - taskListHtml += "
"; - taskListHtml += "
待审批
"; - taskListHtml += "
"+record.getUserName()+"
"; - taskListHtml += "
"; - if(i == flowRecordList.size() - 1){ - taskListHtml += "
"+record.getRemark() == null ? "" : record.getRemark()+"
"; - }else{ - taskListHtml += "
"+record.getRemark() == null ? "" : record.getRemark()+"
"; - } - taskListHtml += "
"; - } else { - taskListHtml += "
"; - taskListHtml += "
"; - taskListHtml += "
"; - taskListHtml += "
同意并呈送
"; - taskListHtml += "
"+record.getUserName()+"
"; - taskListHtml += "
"; - if(i == flowRecordList.size() - 1){ - taskListHtml += "
"+record.getRemark() == null ? "" : record.getRemark()+"
"; - }else{ - taskListHtml += "
"+record.getRemark() == null ? "" : record.getRemark()+"
"; - } - - taskListHtml += "
"; + Map msgReplaceMap = new HashedMap(); + msgReplaceMap.put("page", Constant.adminPage); + msgReplaceMap.put("applyTime", new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date())); + msgReplaceMap.put("name",userName); + msgReplaceMap.put("linkName",userName); + msgReplaceMap.put("linkPhone",phone); + ResultData resultData = getTaskStatusList(businessId, tenantId); + List flowRecordList = (List) resultData.data; + String taskListHtml = ""; + for (int i = flowRecordList.size() -1; i>=0; i--) { + WxFlowRecord record = flowRecordList.get(i); + String remark = record.getRemark()==null?"":record.getRemark(); + if (record.getStatus().equals(EnumFlowRecordStatus.NEW.getCode())) { + taskListHtml += "
"; + taskListHtml += "
"; + taskListHtml += "
"; + taskListHtml += "
发起申请
"; + taskListHtml += "
"+record.getUserName()+"
"; + taskListHtml += "
"; + if(i == 0){ + taskListHtml += "
"+remark+"
"; + }else{ + taskListHtml += "
"+remark+"
"; } + taskListHtml += "
"; + } else if (record.getStatus().equals(EnumFlowRecordStatus.ASSIGNEE.getCode())) { + taskListHtml += "
"; + taskListHtml += "
"; + taskListHtml += "
"; + taskListHtml += "
待审批
"; + taskListHtml += "
"+record.getUserName()+"
"; + taskListHtml += "
"; + if(i == 0){ + taskListHtml += "
"+remark+"
"; + }else{ + taskListHtml += "
"+remark+"
"; + } + taskListHtml += "
"; + } else { + taskListHtml += "
"; + taskListHtml += "
"; + taskListHtml += "
"; + taskListHtml += "
同意并呈送
"; + taskListHtml += "
"+record.getUserName()+"
"; + taskListHtml += "
"; + if(i == 0){ + taskListHtml += "
"+remark+"
"; + }else{ + taskListHtml += "
"+remark+"
"; + } + taskListHtml += "
"; } - msgReplaceMap.put("taskList", taskListHtml); - MailMsg mailMsg = new MailMsg(); - mailMsg.setSubject("代办通知"); - mailMsg.setHtml(true); - mailMsg.setMsgType(EnumMsgRecordType.EMAIL.getCode()); - mailMsg.setModelId(EnumMailMsgModel.MAIL_ASSIGNEE_NODIFY.getCode()); - mailMsg.setTo(new String[]{email}); - mailMsg.setTenantId(tenantId); - mailMsg.setDynamicContentMap(msgReplaceMap); - mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); - }else{ - logger.info("邮件地址为空,不发邮件,phone:{},userName:{}",phone,userName); } + msgReplaceMap.put("taskList", taskListHtml); + MailMsg mailMsg = new MailMsg(); + mailMsg.setSubject("代办通知"); + mailMsg.setHtml(true); + mailMsg.setMsgType(EnumMsgRecordType.EMAIL.getCode()); + mailMsg.setModelId(EnumMailMsgModel.MAIL_ASSIGNEE_NODIFY.getCode()); + mailMsg.setTo(new String[]{email}); + mailMsg.setTenantId(tenantId); + mailMsg.setDynamicContentMap(msgReplaceMap); + mqBaseProducer.sendMessage(mailMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } public String variablesToJson(List> variables){ @@ -702,9 +708,9 @@ public class WxFlowServiceImpl implements WxFlowService { msgReplaceMap.put("contract", businessId + ""); msgReplaceMap.put("page", Constant.adminPage); msgReplaceMap.put("name",userName); - msgReplaceMap.put("remark",remark); + msgReplaceMap.put("remark",remark==null?"":remark); msgReplaceMap.put("linkName",userName); - msgReplaceMap.put("linkPhone",userPhone); + msgReplaceMap.put("linkPhone",userPhone==null?"":userPhone); MailMsg mailMsg = new MailMsg(); mailMsg.setSubject("驳回通知"); mailMsg.setHtml(true); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java index 9c0979b38..f0e38aa68 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxTopicServiceImpl.java @@ -16,7 +16,11 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import com.iformall.common.ResultData; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; +import java.util.List; /** * @author luozukai ^_^ @@ -33,6 +37,14 @@ public class WxTopicServiceImpl implements WxTopicService { @Override public PageInfo listAsPage(WxTopic record, Integer pageIndex, Integer pageSize) { + if(StringUtils.isNotBlank(record.getStatusStr())){ + String[] array = record.getStatusStr().split(","); + List integerList = new ArrayList<>(); + for (String status:array) { + integerList.add(Integer.parseInt(status)); + } + record.setStatusList(integerList); + } return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxTopicMapper.findList(record)); } diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index 34303d044..6cbdfc8bc 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -388,8 +388,8 @@ select id,merchant_id,shop_id,tenant_id,name,8 bill_type_value,'其他押金' bill_type,0 as need_pay,receive_pay,pay,owe,DATE_FORMAT(receive_date,'%Y-%m-%d') receive_date,pay_date,expired_day,status,'' starttime,'' endtime,rent_shop_type from wx_bill_other_deposit - ) bill + where DATEDIFF(bill.receive_date,now())=3 and bill.status not in(3,5,6) group by bill.tenant_id,bill.merchant_id,bill.receive_date,bill.bill_type ) bill left join wx_merchant m on bill.merchant_id=m.id @@ -398,4 +398,46 @@ left join wx_shop ws on wms.shop_id = ws.id where m.status=1 + + diff --git a/mallinkService/src/main/resources/mapper/WxTopicMapper.xml b/mallinkService/src/main/resources/mapper/WxTopicMapper.xml index a90b01d52..0a6b8653c 100644 --- a/mallinkService/src/main/resources/mapper/WxTopicMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxTopicMapper.xml @@ -33,17 +33,17 @@ and `status` = #{status} - - and `status` = #{status} - and `begin_time` >= #{beginTime} and `end_time` <= #{endTime} - - and `status` in (#{statusStr}) + + and status in + + #{statusItem} + order by createtime desc