Commit 7df40bfe by huluobin

邮件配置

parent 35262cd2
...@@ -38,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -38,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.security.InvalidParameterException;
import java.util.*; import java.util.*;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -80,7 +81,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -80,7 +81,7 @@ public class MarketServiceImpl implements MarketService {
public void setUpInnerCoupon(SetUpInnerCouponCommand cmd) { public void setUpInnerCoupon(SetUpInnerCouponCommand cmd) {
if (cmd.getOrderId() == null) { if (cmd.getOrderId() == null) {
throw new RRException(); throw new InvalidParameterException();
} }
//将订单之前绑定的内部券设置为未使用 //将订单之前绑定的内部券设置为未使用
...@@ -123,7 +124,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -123,7 +124,7 @@ public class MarketServiceImpl implements MarketService {
public void setUpOuterCoupon(SetUpOuterCouponCommand cmd) { public void setUpOuterCoupon(SetUpOuterCouponCommand cmd) {
if (cmd.getOrderId() == null) { if (cmd.getOrderId() == null) {
throw new RRException(); throw new InvalidParameterException();
} }
//删除订单的外部卡券关联 //删除订单的外部卡券关联
couponCustomerRelevanceService.remove( couponCustomerRelevanceService.remove(
...@@ -154,7 +155,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -154,7 +155,7 @@ public class MarketServiceImpl implements MarketService {
public void setTimesCard(SetTimesCardCommand cmd) { public void setTimesCard(SetTimesCardCommand cmd) {
if (cmd.getOrderId() == null) { if (cmd.getOrderId() == null) {
throw new RRException(); throw new InvalidParameterException();
} }
//删除订单已经绑定的次卡 //删除订单已经绑定的次卡
List<TimesCardUsedRecord> removeTimesCardUsedRecordList = timesCardUsedRecordService.list( List<TimesCardUsedRecord> removeTimesCardUsedRecordList = timesCardUsedRecordService.list(
...@@ -216,7 +217,7 @@ public class MarketServiceImpl implements MarketService { ...@@ -216,7 +217,7 @@ public class MarketServiceImpl implements MarketService {
.stream() .stream()
.filter(record -> record.getStatus().equals(TimesCardUsedRecord.STATUS_CHOSE)) .filter(record -> record.getStatus().equals(TimesCardUsedRecord.STATUS_CHOSE))
.findAny() .findAny()
.orElseThrow(RRException::new); .orElseThrow(NullPointerException::new);
//更新次卡选择记录对应的订单 //更新次卡选择记录对应的订单
timesCardUsedRecord.setOrderId(cmd.getOrderId()); timesCardUsedRecord.setOrderId(cmd.getOrderId());
......
...@@ -83,7 +83,7 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder ...@@ -83,7 +83,7 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
.map(product -> { .map(product -> {
//商品数量 //商品数量
Integer num = settleMallOrderItemQryList.stream().filter(var -> var.getProductId().intValue() == product.getId()).findAny().orElseThrow(RRException::new).getNum(); Integer num = settleMallOrderItemQryList.stream().filter(var -> var.getProductId().intValue() == product.getId()).findAny().orElseThrow(NullPointerException::new).getNum();
MallOrderDetailDTO mallOrderDetailDTO = MallOrderDetailDTO.builder() MallOrderDetailDTO mallOrderDetailDTO = MallOrderDetailDTO.builder()
.num(num) .num(num)
.coverImages(product.getCoverImages()) .coverImages(product.getCoverImages())
......
...@@ -20,12 +20,12 @@ import com.gogirl.domain.user.customer.CustomerBalanceRecord; ...@@ -20,12 +20,12 @@ import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.domain.xcx.GogirlToken; import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.common.exception.RRException; import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.config.property.GogirlProperties; import com.gogirl.infrastructure.config.property.GogirlProperties;
import com.gogirl.infrastructure.service.wx.WxPayService;
import com.gogirl.infrastructure.mapper.market.discount.DiscountConfigMapper; import com.gogirl.infrastructure.mapper.market.discount.DiscountConfigMapper;
import com.gogirl.infrastructure.mapper.order.member.ChargeOrderMapper; import com.gogirl.infrastructure.mapper.order.member.ChargeOrderMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerMapper;
import com.gogirl.infrastructure.service.wx.WxPayService;
import com.gogirl.infrastructure.util.SessionUtils; import com.gogirl.infrastructure.util.SessionUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -63,7 +63,7 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg ...@@ -63,7 +63,7 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
public void notifyChargeOrder(WxPayOrderNotifyResult result) { public void notifyChargeOrder(WxPayOrderNotifyResult result) {
if (!result.getReturnCode().equals("SUCCESS") || !result.getResultCode().equals("SUCCESS")) { if (!result.getReturnCode().equals("SUCCESS") || !result.getResultCode().equals("SUCCESS")) {
throw new RRException(); throw new RRException("回调失败");
} }
...@@ -74,7 +74,7 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg ...@@ -74,7 +74,7 @@ public class ChargeOrderServiceImpl extends ServiceImpl<ChargeOrderMapper, Charg
DiscountConfig discountConfig = discountConfigMapper.selectList(new LambdaQueryWrapper<>()) DiscountConfig discountConfig = discountConfigMapper.selectList(new LambdaQueryWrapper<>())
.stream().filter(config -> config.getChargeAmount() <= result.getTotalFee()) .stream().filter(config -> config.getChargeAmount() <= result.getTotalFee())
.max(Comparator.comparing(DiscountConfig::getChargeAmount)).orElseThrow(RRException::new); .max(Comparator.comparing(DiscountConfig::getChargeAmount)).orElseThrow(NullPointerException::new);
couponService.sendCoupon(discountConfig.getCouponId(), customer.getId()); couponService.sendCoupon(discountConfig.getCouponId(), customer.getId());
......
...@@ -477,7 +477,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -477,7 +477,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
List<TreeProgram> treePrograms = map.values().stream() List<TreeProgram> treePrograms = map.values().stream()
.map(list -> { .map(list -> {
TreeProgram node = list.stream().findAny().orElseThrow(RRException::new); TreeProgram node = list.stream().findAny().orElseThrow(NullPointerException::new);
TreeProgram cloneNode = new TreeProgram(); TreeProgram cloneNode = new TreeProgram();
cloneNode.setStoreTechnicianDTO(CloneUtil.deepClone(node.getStoreTechnicianDTO())); cloneNode.setStoreTechnicianDTO(CloneUtil.deepClone(node.getStoreTechnicianDTO()));
...@@ -1136,7 +1136,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -1136,7 +1136,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
ScheduleServeCommand mainScheduleServeCommand = mainScheduleServeCommandList.stream() ScheduleServeCommand mainScheduleServeCommand = mainScheduleServeCommandList.stream()
.filter(var -> var.getServeId().equals(scheduleServeCommand.getMainServeId())) .filter(var -> var.getServeId().equals(scheduleServeCommand.getMainServeId()))
.findAny() .findAny()
.orElseThrow(RRException::new); .orElseThrow(NullPointerException::new);
//设置辅助服务美甲师为主服务美甲师 //设置辅助服务美甲师为主服务美甲师
scheduleServeCommand.setTechnicianId(mainScheduleServeCommand.getTechnicianId()); scheduleServeCommand.setTechnicianId(mainScheduleServeCommand.getTechnicianId());
......
...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gogirl.application.product.mall.MallShoppingCartCmdService; import com.gogirl.application.product.mall.MallShoppingCartCmdService;
import com.gogirl.assembler.MallShoppingCartAssembler; import com.gogirl.assembler.MallShoppingCartAssembler;
import com.gogirl.domain.order.mall.MallShoppingCart; import com.gogirl.domain.order.mall.MallShoppingCart;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.mapper.order.mall.MallShoppingCartMapper; import com.gogirl.infrastructure.mapper.order.mall.MallShoppingCartMapper;
import com.gogirl.shared.product.command.DecreaseCartCommand; import com.gogirl.shared.product.command.DecreaseCartCommand;
import com.gogirl.shared.product.command.MallShoppingCartCommand; import com.gogirl.shared.product.command.MallShoppingCartCommand;
...@@ -13,6 +12,8 @@ import com.gogirl.shared.product.command.RemoveCartCommand; ...@@ -13,6 +12,8 @@ import com.gogirl.shared.product.command.RemoveCartCommand;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.security.InvalidParameterException;
@Service @Service
@AllArgsConstructor @AllArgsConstructor
public class MallShoppingCartCmdServiceImpl implements MallShoppingCartCmdService { public class MallShoppingCartCmdServiceImpl implements MallShoppingCartCmdService {
...@@ -49,7 +50,7 @@ public class MallShoppingCartCmdServiceImpl implements MallShoppingCartCmdServic ...@@ -49,7 +50,7 @@ public class MallShoppingCartCmdServiceImpl implements MallShoppingCartCmdServic
@Override @Override
public void removeAllMallShoppingCart(RemoveAllCartCommand cmd) { public void removeAllMallShoppingCart(RemoveAllCartCommand cmd) {
if (cmd.getCustomerId() == null) { if (cmd.getCustomerId() == null) {
throw new RRException(); throw new InvalidParameterException();
} }
mallShoppingCartMapper mallShoppingCartMapper
.delete(new LambdaQueryWrapper<MallShoppingCart>().eq(MallShoppingCart::getCustomerId, cmd.getCustomerId())); .delete(new LambdaQueryWrapper<MallShoppingCart>().eq(MallShoppingCart::getCustomerId, cmd.getCustomerId()));
......
...@@ -11,7 +11,6 @@ import com.gogirl.domain.store.complaint.ComplaintDetailed; ...@@ -11,7 +11,6 @@ import com.gogirl.domain.store.complaint.ComplaintDetailed;
import com.gogirl.domain.store.complaint.ComplaintDetailedTechnician; import com.gogirl.domain.store.complaint.ComplaintDetailedTechnician;
import com.gogirl.domain.store.complaint.ComplaintMain; import com.gogirl.domain.store.complaint.ComplaintMain;
import com.gogirl.domain.user.investigation.OrderQuestionOption; import com.gogirl.domain.user.investigation.OrderQuestionOption;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.ListUtil; import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper; import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper; import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
...@@ -54,7 +53,7 @@ public class ComplaintMainServiceImpl extends ServiceImpl<ComplaintMainMapper, C ...@@ -54,7 +53,7 @@ public class ComplaintMainServiceImpl extends ServiceImpl<ComplaintMainMapper, C
if (ListUtil.isNotEmpty(list)) { if (ListUtil.isNotEmpty(list)) {
ComplaintMain complaintMain = new ComplaintMain(); ComplaintMain complaintMain = new ComplaintMain();
OrderQuestionOption orderQuestionOption = list.stream().findAny().orElseThrow(RRException::new); OrderQuestionOption orderQuestionOption = list.stream().findAny().orElseThrow(NullPointerException::new);
OrderManage orderManage = orderManageMapper.selectById(orderQuestionOption.getOrderId()); OrderManage orderManage = orderManageMapper.selectById(orderQuestionOption.getOrderId());
complaintMain.setOrderId(orderQuestionOption.getOrderId()); complaintMain.setOrderId(orderQuestionOption.getOrderId());
......
...@@ -32,10 +32,10 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData ...@@ -32,10 +32,10 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData
Integer departmentId = SessionUtils.getTechnicianToken().getDepartmentId(); Integer departmentId = SessionUtils.getTechnicianToken().getDepartmentId();
//总订单业绩 //门店总订单业绩
List<StoreTradeAmount> storeTradeAmountList = storeDataMapper.storeTradeAmount(month, departmentId); List<StoreTradeAmount> storeTradeAmountList = storeDataMapper.storeTradeAmount(month, departmentId);
//总开卡业绩 //门店总开卡业绩
StoreTradeAmount storeTradeAmount = new StoreTradeAmount(); StoreTradeAmount storeTradeAmount = new StoreTradeAmount();
storeTradeAmount.setAmount(storeDataMapper.chargeAchieve(month, departmentId)); storeTradeAmount.setAmount(storeDataMapper.chargeAchieve(month, departmentId));
storeTradeAmount.setServeType("开卡"); storeTradeAmount.setServeType("开卡");
...@@ -51,7 +51,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData ...@@ -51,7 +51,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData
storeData.setStoreTradeAmountList(storeTradeAmountList); storeData.setStoreTradeAmountList(storeTradeAmountList);
storeData.setStoreTechnicianAchieveList(storeTechnicianAchieveList); storeData.setStoreTechnicianAchieveList(storeTechnicianAchieveList);
//业绩排行 //个人业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalAchieveList = storeTechnicianAchieveList.stream() List<StoreTechnicianTotalAchieve> storeTechnicianTotalAchieveList = storeTechnicianAchieveList.stream()
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId)) .collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
.values().stream().map(list -> { .values().stream().map(list -> {
...@@ -68,7 +68,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData ...@@ -68,7 +68,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData
storeData.setStoreTechnicianTotalAchieveList(storeTechnicianTotalAchieveList); storeData.setStoreTechnicianTotalAchieveList(storeTechnicianTotalAchieveList);
//订单业绩排行 //个人订单业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalOrderAchieveList = storeTechnicianAchieveList.stream() List<StoreTechnicianTotalAchieve> storeTechnicianTotalOrderAchieveList = storeTechnicianAchieveList.stream()
.filter(storeTechnicianAchieve -> !storeTechnicianAchieve.getServeType().equals("开卡")) .filter(storeTechnicianAchieve -> !storeTechnicianAchieve.getServeType().equals("开卡"))
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId)) .collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
...@@ -87,7 +87,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData ...@@ -87,7 +87,7 @@ public class StoreDataServiceImpl extends ServiceImpl<StoreDataMapper, StoreData
storeData.setStoreTechnicianTotalOrderAchieveList(storeTechnicianTotalOrderAchieveList); storeData.setStoreTechnicianTotalOrderAchieveList(storeTechnicianTotalOrderAchieveList);
//充值业绩排行 //个人充值业绩排行
List<StoreTechnicianTotalAchieve> storeTechnicianTotalChargeAchieveList = storeTechnicianAchieveList.stream() List<StoreTechnicianTotalAchieve> storeTechnicianTotalChargeAchieveList = storeTechnicianAchieveList.stream()
.filter(storeTechnicianAchieve -> storeTechnicianAchieve.getServeType().equals("开卡")) .filter(storeTechnicianAchieve -> storeTechnicianAchieve.getServeType().equals("开卡"))
.collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId)) .collect(Collectors.groupingBy(StoreTechnicianAchieve::getTechnicianId))
......
...@@ -42,7 +42,7 @@ public class RRException extends RuntimeException implements Serializable { ...@@ -42,7 +42,7 @@ public class RRException extends RuntimeException implements Serializable {
*/ */
private Map<String, Object> errorMap = new HashMap<>(); private Map<String, Object> errorMap = new HashMap<>();
public RRException() { private RRException() {
this.code = 500; this.code = 500;
this.message = "业务异常"; this.message = "业务异常";
} }
......
...@@ -2,14 +2,18 @@ package com.gogirl.infrastructure.common.exception; ...@@ -2,14 +2,18 @@ package com.gogirl.infrastructure.common.exception;
import com.gogirl.infrastructure.common.base.JsonResult; import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.service.mail.MailService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Arrays; import java.io.PrintWriter;
import java.util.Map; import java.io.StringWriter;
import java.util.Enumeration;
/** /**
* 统一异常处理器 * 统一异常处理器
...@@ -21,6 +25,12 @@ import java.util.Map; ...@@ -21,6 +25,12 @@ import java.util.Map;
@Slf4j @Slf4j
public class RRExceptionHandler { public class RRExceptionHandler {
@Value("${spring.profiles}")
private String profile;
@Resource
MailService mailService;
/** /**
* 自定义异常 * 自定义异常
*/ */
...@@ -41,7 +51,7 @@ public class RRExceptionHandler { ...@@ -41,7 +51,7 @@ public class RRExceptionHandler {
} }
/** /**
* 通用异常 * 未捕获异常
*/ */
@ExceptionHandler(Exception.class) @ExceptionHandler(Exception.class)
public JsonResult<String> handleException(HttpServletRequest request, public JsonResult<String> handleException(HttpServletRequest request,
...@@ -50,23 +60,46 @@ public class RRExceptionHandler { ...@@ -50,23 +60,46 @@ public class RRExceptionHandler {
result.setSuccess(false); result.setSuccess(false);
result.setCode(500); result.setCode(500);
result.setMessage(e.getMessage()); result.setMessage(e.getMessage());
log.error("Params : {}", getParamString(request.getParameterMap()) + "\n"); this.log(e, request);
log.error("URI : {}", request.getRequestURI() + "\n");
log.error(e.getMessage(), e); StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
//发送邮件
mailService.sendSimpleMail("robbendev@qq.com", profile + "异常", sw.toString());
return result; return result;
} }
private String getParamString(Map<String, String[]> map) {
StringBuilder sb = new StringBuilder(); private void log(Exception ex, HttpServletRequest request) {
for (Map.Entry<String, String[]> e : map.entrySet()) { log.error("************************异常开始*******************************");
sb.append(e.getKey()).append("="); log.error("请求地址:" + request.getRequestURL());
String[] value = e.getValue(); Enumeration<String> enumeration = request.getParameterNames();
if (value != null && value.length == 1) { log.error("请求参数");
sb.append(value[0]).append("\t"); while (enumeration.hasMoreElements()) {
String name = enumeration.nextElement();
log.error(name + "---" + request.getParameter(name));
}
if (ex instanceof RRException) {
if (((RRException) ex).getCode() == 500 && ex.getMessage().equals("业务异常")) {
this.logStackTrace(ex);
} else { } else {
sb.append(Arrays.toString(value)).append("\t"); log.error(ex.getMessage());
} }
} else {
this.logStackTrace(ex);
} }
return sb.toString(); log.error("************************异常结束*******************************");
} }
private void logStackTrace(Exception ex) {
for (StackTraceElement stackTraceElement : ex.getStackTrace()) {
log.error(stackTraceElement.toString());
}
}
} }
...@@ -9,7 +9,7 @@ public interface MailService { ...@@ -9,7 +9,7 @@ public interface MailService {
* @param subject * @param subject
* @param content * @param content
*/ */
public void sendSimpleMail(String to, String subject, String content); void sendSimpleMail(String to, String subject, String content);
/** /**
* 发送html格式的邮件 * 发送html格式的邮件
...@@ -18,7 +18,7 @@ public interface MailService { ...@@ -18,7 +18,7 @@ public interface MailService {
* @param subject * @param subject
* @param content * @param content
*/ */
public void sendHtmlMail(String to, String subject, String content); void sendHtmlMail(String to, String subject, String content);
/** /**
* 发送带附件的邮件 * 发送带附件的邮件
...@@ -28,7 +28,7 @@ public interface MailService { ...@@ -28,7 +28,7 @@ public interface MailService {
* @param content * @param content
* @param filePath * @param filePath
*/ */
public void sendAttachmentsMail(String to, String subject, String content, String filePath); void sendAttachmentsMail(String to, String subject, String content, String filePath);
/** /**
* 发送嵌入静态资源(一般是图片)的邮件 * 发送嵌入静态资源(一般是图片)的邮件
...@@ -39,7 +39,7 @@ public interface MailService { ...@@ -39,7 +39,7 @@ public interface MailService {
* @param rscPath 静态资源路径和文件名 * @param rscPath 静态资源路径和文件名
* @param rscId 静态资源id * @param rscId 静态资源id
*/ */
public void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId); void sendInlineResourceMail(String to, String subject, String content, String rscPath, String rscId);
} }
...@@ -19,6 +19,7 @@ import java.io.File; ...@@ -19,6 +19,7 @@ import java.io.File;
public class MailServiceImpl implements MailService { public class MailServiceImpl implements MailService {
@Resource @Resource
JavaMailSender sender; JavaMailSender sender;
@Value("${spring.mail.username}") @Value("${spring.mail.username}")
private String from; private String from;
......
...@@ -166,6 +166,7 @@ ...@@ -166,6 +166,7 @@
GROUP BY t1.serve_type, t1.technician_id, t1.department_id GROUP BY t1.serve_type, t1.technician_id, t1.department_id
</select> </select>
<!--统计数据的-->
<select id="chargeAchieve" resultType="java.math.BigDecimal"> <select id="chargeAchieve" resultType="java.math.BigDecimal">
select (select sum(order_amount) select (select sum(order_amount)
from customer_balance_record from customer_balance_record
...@@ -174,5 +175,4 @@ ...@@ -174,5 +175,4 @@
and (type = 1 or type = 2) / 100) and (type = 1 or type = 2) / 100)
/ 100 / 100
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -379,7 +379,7 @@ public class Test { ...@@ -379,7 +379,7 @@ public class Test {
DiscountConfig discountConfig = discountConfigMapper.selectList(new LambdaQueryWrapper<>()) DiscountConfig discountConfig = discountConfigMapper.selectList(new LambdaQueryWrapper<>())
.stream().filter(config -> config.getChargeAmount() <= totalFee) .stream().filter(config -> config.getChargeAmount() <= totalFee)
.max(Comparator.comparing(DiscountConfig::getChargeAmount)).orElseThrow(RRException::new); .max(Comparator.comparing(DiscountConfig::getChargeAmount)).orElseThrow(NullPointerException::new);
couponService.sendCoupon(discountConfig.getCouponId(), customer.getId()); couponService.sendCoupon(discountConfig.getCouponId(), customer.getId());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment