| | |
| | | import com.java110.core.factory.WechatFactory; |
| | | import com.java110.dto.community.CommunityDto; |
| | | import com.java110.dto.fee.FeeDto; |
| | | import com.java110.dto.feeCollectionOrder.FeeCollectionOrderDto; |
| | | import com.java110.dto.logSystemError.LogSystemErrorDto; |
| | | import com.java110.dto.fee.FeeCollectionOrderDto; |
| | | import com.java110.dto.log.LogSystemErrorDto; |
| | | import com.java110.dto.owner.OwnerAppUserDto; |
| | | import com.java110.dto.owner.OwnerDto; |
| | | import com.java110.dto.reportOweFee.ReportOweFeeDto; |
| | | import com.java110.dto.reportOweFee.ReportOweFeeItemDto; |
| | | import com.java110.dto.smallWeChat.SmallWeChatDto; |
| | | import com.java110.dto.smallWechatAttr.SmallWechatAttrDto; |
| | | import com.java110.dto.smsConfig.SmsConfigDto; |
| | | import com.java110.dto.reportFee.ReportOweFeeDto; |
| | | import com.java110.dto.reportFee.ReportOweFeeItemDto; |
| | | import com.java110.dto.wechat.SmallWeChatDto; |
| | | import com.java110.dto.wechat.SmallWechatAttrDto; |
| | | import com.java110.dto.sms.SmsConfigDto; |
| | | import com.java110.dto.task.TaskDto; |
| | | import com.java110.entity.wechat.Content; |
| | | import com.java110.entity.wechat.Data; |
| | | import com.java110.entity.wechat.Miniprogram; |
| | | import com.java110.entity.wechat.PropertyFeeTemplateMessage; |
| | | import com.java110.dto.wechat.Content; |
| | | import com.java110.dto.wechat.Data; |
| | | import com.java110.dto.wechat.Miniprogram; |
| | | import com.java110.dto.wechat.PropertyFeeTemplateMessage; |
| | | import com.java110.intf.common.ISmsConfigInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeCollectionDetailInnerServiceSMO; |
| | | import com.java110.intf.fee.IFeeCollectionOrderInnerServiceSMO; |
| | |
| | | import com.java110.intf.user.IOwnerAppUserInnerServiceSMO; |
| | | import com.java110.intf.user.IOwnerInnerServiceSMO; |
| | | import com.java110.job.quartz.TaskSystemQuartz; |
| | | import com.java110.po.feeCollectionDetail.FeeCollectionDetailPo; |
| | | import com.java110.po.feeCollectionOrder.FeeCollectionOrderPo; |
| | | import com.java110.po.logSystemError.LogSystemErrorPo; |
| | | import com.java110.po.fee.FeeCollectionDetailPo; |
| | | import com.java110.po.fee.FeeCollectionOrderPo; |
| | | import com.java110.po.log.LogSystemErrorPo; |
| | | import com.java110.service.smo.ISaveSystemErrorSMO; |
| | | import com.java110.utils.cache.MappingCache; |
| | | import com.java110.utils.cache.UrlCache; |
| | | import com.java110.utils.constant.WechatConstant; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | | import com.java110.utils.util.DateUtil; |
| | |
| | | import com.java110.utils.util.StringUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import com.java110.core.log.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.DecimalFormat; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | |
| | |
| | | feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_SMS); |
| | | break; |
| | | case FeeCollectionOrderDto.COLLECTION_WAY_WECHAT: |
| | | if(StringUtil.isEmpty(reportOweFeeDo.getOwnerId()) || "-1".equals(reportOweFeeDo.getOwnerId())){ |
| | | return; |
| | | } |
| | | if (!StringUtil.isEmpty(reportOweFeeDo.getOwnerId())) { |
| | | Map paramInfo = getOwnerAppUserDto(feeCollectionOrderDto.getCommunityId(), reportOweFeeDo.getOwnerId()); |
| | | resultVo = doSendWechat(reportOweFeeDo, feeCollectionOrderDto, paramInfo);//微信 |
| | |
| | | List<ReportOweFeeItemDto> itemDtos = reportOweFeeDo.getItems(); |
| | | String oweUrl = ""; |
| | | for (ReportOweFeeItemDto itemDto : itemDtos) { |
| | | BigDecimal amountOwed = new BigDecimal(itemDto.getAmountOwed()); |
| | | oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportOweFeeDo.getPayerObjType()) ? oweRoomUrl : oweCarUrl; |
| | | String[] roomName = new String[]{}; |
| | | if ("3333".equals(reportOweFeeDo.getPayerObjType())) { |
| | | roomName = itemDto.getPayerObjName().split("-",3); |
| | | } |
| | | for (OwnerAppUserDto appUserDto : ownerAppUserDtos) { |
| | | try { |
| | | //获取用户缴费到期时间 |
| | |
| | | templateMessage.setTemplate_id(templateId); |
| | | templateMessage.setTouser(appUserDto.getOpenId()); |
| | | data.setFirst(new Content(itemDto.getFeeName() + "提醒")); |
| | | data.setKeyword1(new Content(itemDto.getPayerObjName())); |
| | | data.setKeyword2(new Content(itemDto.getAmountOwed())); |
| | | if ("3333".equals(reportOweFeeDo.getPayerObjType())) { |
| | | data.setKeyword1(new Content(roomName[0] + "栋" + roomName[1] + "单元" + roomName[2] + "室")); |
| | | } else { |
| | | data.setKeyword1(new Content(itemDto.getPayerObjName())); |
| | | } |
| | | DecimalFormat df = new DecimalFormat("0.00"); |
| | | data.setKeyword2(new Content(df.format(amountOwed) + "元")); |
| | | data.setKeyword3(new Content( |
| | | DateUtil.getFormatTimeString(itemDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_B) |
| | | + "至" |
| | | + DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B))); |
| | | data.setRemark(new Content("请您及时缴费,如有疑问请联系相关物业人员")); |
| | | data.setRemark(new Content("请您及时缴费,如有疑问请联系相关物业人员!")); |
| | | |
| | | if (!StringUtil.isEmpty(oweUrl)) { |
| | | if (miniprogram == null) { |
| | |
| | | templateMessage.setMiniprogram(miniprogram); |
| | | } |
| | | } |
| | | templateMessage.setData(data); |
| | | templateMessage.setData(BeanConvertUtil.beanCovertJson(data)); |
| | | |
| | | logger.info("发送模板消息内容:{}", JSON.toJSONString(templateMessage)); |
| | | ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class); |
| | | logger.info("微信模板返回内容:{}", responseEntity); |
| | |
| | | param.put("date2", DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B)); |
| | | param.put("mount", reportOweFeeDo.getAmountOwed()); |
| | | paramIn = param; |
| | | }else if(SendSmsFactory.SMS_COMPANY_YIDONG.equals(smsConfigDto1.getSmsType())){ |
| | | paramIn = "尊敬的业主"+ reportOweFeeDo.getOwnerName()+",您"+reportOweFeeDo.getPayerObjName()+"的"+itemDtos.get(0).getFeeName() |
| | | +",账单日期"+DateUtil.getFormatTimeString(itemDtos.get(0).getStartTime(), DateUtil.DATE_FORMATE_STRING_B) |
| | | +"至"+DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B) |
| | | +",缴费金额:"+reportOweFeeDo.getAmountOwed()+"元,请及时缴费"; |
| | | } else { |
| | | paramIn = new String[]{ |
| | | reportOweFeeDo.getOwnerName(), |
| | |
| | | } |
| | | |
| | | private Map getOwnerAppUserDto(String communityId, String memberId) { |
| | | |
| | | SmallWeChatDto smallWeChatDto = new SmallWeChatDto(); |
| | | smallWeChatDto.setWeChatType("1100"); |
| | | smallWeChatDto.setObjType(SmallWeChatDto.OBJ_TYPE_COMMUNITY); |
| | |
| | | } |
| | | String url = sendTemplate + accessToken; |
| | | |
| | | String oweRoomUrl = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_FEE_PAGE); |
| | | String oweCarUrl = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_CAR_FEE_PAGE); |
| | | String oweRoomUrl = UrlCache.getOwnerUrl()+MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_FEE_PAGE); |
| | | String oweCarUrl = UrlCache.getOwnerUrl()+MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_CAR_FEE_PAGE); |
| | | Miniprogram miniprogram = null; |
| | | if (oweRoomUrl.contains("@@")) { |
| | | miniprogram = new Miniprogram(); |
| | |
| | | } |
| | | ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto(); |
| | | reportOweFeeDto.setPayerObjIds(payObjIds.toArray(new String[payObjIds.size()])); |
| | | reportOweFeeDto.setHasOweFee("Y"); |
| | | List<ReportOweFeeDto> allReportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto); |
| | | List<ReportOweFeeDto> reportOweFeeDtos = new ArrayList<>(); |
| | | for (ReportOweFeeDto reportOweFee : allReportOweFeeDtos) { |
| | | ReportOweFeeDto reportOwe = new ReportOweFeeDto(); |
| | | reportOwe.setOweId(reportOweFee.getOweId()); |
| | | reportOwe.setHasOweFee("Y"); |
| | | reportOweFee.setPayerObjType(reportOweFee.getPayerObjType()); |
| | | if (reportOweFee.getPayerObjType().equals("3333")) { |
| | | List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByRoom(reportOwe); |