Commit 3c9d128c by huluobin

bug fix

parent 33362ce2
package com.gogirl.application.market; package com.gogirl.application.market;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.gogirl.domain.market.coupon.CouponCustomerRelevance; import com.gogirl.domain.market.coupon.CouponCustomerRelevance;
import java.util.List;
public interface CouponCustomerRelevanceService extends IService<CouponCustomerRelevance> { public interface CouponCustomerRelevanceService extends IService<CouponCustomerRelevance> {
/**
* 获取订单可用卡券
*
* @param currentCustomerId
* @param orderId
* @return
*/
List<CouponCustomerRelevance> getOrderCoupon(Integer currentCustomerId, Integer orderId);
/**
* 获取我的优惠券列表
*
* @param customerId
* @param pageNum
* @param pageSize
* @param state
* @param containRemoveCoupon
* @return
*/
PageInfo<CouponCustomerRelevance> selectMyCoupon(Integer customerId, Integer pageNum, Integer pageSize, Integer state, Boolean containRemoveCoupon);
/**
* 美甲师提交外部券
*
* @param orderId
* @param idList
*/
void techSubmitCoupons(Integer orderId, List<Integer> idList);
} }
...@@ -41,27 +41,6 @@ public interface CouponService extends IService<Coupon> { ...@@ -41,27 +41,6 @@ public interface CouponService extends IService<Coupon> {
*/ */
List<CouponCustomerRelevance> selectMyNewCustomerCoupon(Integer customerId, List<Integer> couponIdList); List<CouponCustomerRelevance> selectMyNewCustomerCoupon(Integer customerId, List<Integer> couponIdList);
/**
* 获取订单可用卡券
*
* @param currentCustomerId
* @param orderId
* @return
*/
List<CouponCustomerRelevance> getOrderCoupon(Integer currentCustomerId, Integer orderId);
/**
* 查询我的卡券
*
* @param customerId
* @param pageNum
* @param pageSize
* @param state
* @param containRemoveCoupon
* @return
*/
PageInfo<CouponCustomerRelevance> selectMyCoupon(Integer customerId, Integer pageNum, Integer pageSize, Integer state, Boolean containRemoveCoupon);
/** /**
* 是否新人 * 是否新人
......
package com.gogirl.application.market.impl; package com.gogirl.application.market.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.gogirl.application.market.CouponCustomerRelevanceService; import com.gogirl.application.market.CouponCustomerRelevanceService;
import com.gogirl.application.market.MarketService;
import com.gogirl.domain.market.coupon.Coupon;
import com.gogirl.domain.market.coupon.CouponCustomerRelevance; import com.gogirl.domain.market.coupon.CouponCustomerRelevance;
import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.order.serve.OrderServe;
import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper; import com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper;
import com.gogirl.infrastructure.mapper.market.coupon.CouponMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
import com.gogirl.shared.market.command.SetUpOuterCouponCommand;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service @Service
@AllArgsConstructor
@Slf4j
public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustomerRelevanceMapper, CouponCustomerRelevance> implements CouponCustomerRelevanceService { public class CouponCustomerRelevanceServiceImpl extends ServiceImpl<CouponCustomerRelevanceMapper, CouponCustomerRelevance> implements CouponCustomerRelevanceService {
private final OrderServeMapper orderServeMapper;
private final OrderManageMapper orderManageMapper;
private final CouponCustomerRelevanceMapper couponCustomerRelevanceMapper;
private final CouponMapper couponMapper;
private final MarketService marketService;
@Override
public List<CouponCustomerRelevance> getOrderCoupon(Integer currentCustomerId, Integer orderId) {
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId));
OrderManage orderManage = orderManageMapper.selectById(orderId);
return couponCustomerRelevanceMapper
.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>()
.eq(CouponCustomerRelevance::getCustomerId, currentCustomerId)
.eq(CouponCustomerRelevance::getSourceType, 0)
.ne(CouponCustomerRelevance::getState, 2)
.ne(CouponCustomerRelevance::getState, 3))
.stream()
//过滤所有可用在服务上的
.filter(couponCustomerRelevance -> {
List<Integer> canUserServeIds = couponCustomerRelevanceMapper.queryCouponCustomerServeRelevance(couponCustomerRelevance.getCouponId());
canUserServeIds.retainAll(orderServeList.stream().map(OrderServe::getServeId).collect(Collectors.toList()));
return ListUtil.isNotEmpty(canUserServeIds);
})
//过滤可用
.filter(CouponCustomerRelevance::isValid)
//过滤达到可用金额
.filter(couponCustomerRelevance -> couponCustomerRelevance.getReachingAmount().compareTo(orderManage.getTotalPrice()) < 0)
.collect(Collectors.toList());
}
@Override
public PageInfo<CouponCustomerRelevance> selectMyCoupon(Integer customerId, Integer pageNum, Integer pageSize, Integer state, Boolean containRemoveCoupon) {
if (pageNum != null && pageSize != null) {
PageHelper.startPage(pageNum, pageSize);
}
List<CouponCustomerRelevance> couponCustomerRelevanceList = couponCustomerRelevanceMapper.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>().eq(CouponCustomerRelevance::getCustomerId, customerId));
this.joinCouponCustomerRelevanceMapper(couponCustomerRelevanceList);
long nowTime = new Date().getTime();
for (int i = 0; i < couponCustomerRelevanceList.size(); i++) {
if (containRemoveCoupon != null && containRemoveCoupon == false && couponCustomerRelevanceList.get(i).getCouponId().equals(66)) {
couponCustomerRelevanceList.remove(i);
i--;
continue;
}
CouponCustomerRelevance couponCustomerRelevance = couponCustomerRelevanceList.get(i);
if (nowTime > couponCustomerRelevance.getValidEndTime().getTime() && couponCustomerRelevance.getState() == 1) {
couponCustomerRelevance.setState(3);
}
if (state != null && state != 0 && couponCustomerRelevance != null && couponCustomerRelevance.getState() != null && !couponCustomerRelevance.getState().equals(state)) {
couponCustomerRelevanceList.remove(i);
i--;
}
}
PageInfo<CouponCustomerRelevance> pageInfo = new PageInfo<>(couponCustomerRelevanceList);
return pageInfo;
}
@Override
public void techSubmitCoupons(Integer orderId, List<Integer> couponIds) {
//查询订单
OrderManage orderManage = orderManageMapper.selectById(orderId);
SetUpOuterCouponCommand cmd = SetUpOuterCouponCommand.builder()
.customerId(orderManage.getOrderUser())
.orderId(orderId)
.outerCouponIds(couponIds)
.build();
marketService.setUpOuterCoupon(cmd);
marketService.setterOrder(orderId);
}
private void joinCouponCustomerRelevanceMapper(List<CouponCustomerRelevance> couponCustomerRelevanceList) {
List<Integer> ids = couponCustomerRelevanceList.stream().map(CouponCustomerRelevance::getCouponId).collect(Collectors.toList());
List<Coupon> couponList = couponMapper.selectList(
new LambdaQueryWrapper<Coupon>().in(Coupon::getId, ids)
);
Map<Integer, List<Coupon>> couponMap = couponList.stream().collect(Collectors.groupingBy(Coupon::getId));
couponCustomerRelevanceList.forEach(couponCustomerRelevance -> {
if (ListUtil.isNotEmpty(couponMap.get(couponCustomerRelevance.getCouponId()))) {
couponCustomerRelevance.setCoupon(couponMap.get(couponCustomerRelevance.getCouponId()).stream().findAny().orElse(null));
}
});
}
} }
...@@ -91,59 +91,6 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme ...@@ -91,59 +91,6 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
return couponCustomerRelevanceList; return couponCustomerRelevanceList;
} }
@Override
public List<CouponCustomerRelevance> getOrderCoupon(Integer currentCustomerId, Integer orderId) {
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId));
OrderManage orderManage = orderManageMapper.selectById(orderId);
return couponCustomerRelevanceMapper
.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>()
.eq(CouponCustomerRelevance::getCustomerId, currentCustomerId)
.eq(CouponCustomerRelevance::getSourceType, 0)
.ne(CouponCustomerRelevance::getState, 2)
.ne(CouponCustomerRelevance::getState, 3))
.stream()
//过滤所有可用在服务上的
.filter(couponCustomerRelevance -> {
List<Integer> canUserServeIds = couponCustomerRelevanceMapper.queryCouponCustomerServeRelevance(couponCustomerRelevance.getCouponId());
canUserServeIds.retainAll(orderServeList.stream().map(OrderServe::getServeId).collect(Collectors.toList()));
return ListUtil.isNotEmpty(canUserServeIds);
})
//过滤可用
.filter(CouponCustomerRelevance::isValid)
//过滤达到可用金额
.filter(couponCustomerRelevance -> couponCustomerRelevance.getReachingAmount().compareTo(orderManage.getTotalPrice()) < 0)
.collect(Collectors.toList());
}
@Override
public PageInfo<CouponCustomerRelevance> selectMyCoupon(Integer customerId, Integer pageNum, Integer pageSize, Integer state, Boolean containRemoveCoupon) {
if (pageNum != null && pageSize != null) {
PageHelper.startPage(pageNum, pageSize);
}
List<CouponCustomerRelevance> couponCustomerRelevanceList = couponCustomerRelevanceMapper.selectList(new LambdaQueryWrapper<CouponCustomerRelevance>().eq(CouponCustomerRelevance::getCustomerId, customerId));
this.joinCouponCustomerRelevanceMapper(couponCustomerRelevanceList);
long nowTime = new Date().getTime();
for (int i = 0; i < couponCustomerRelevanceList.size(); i++) {
if (containRemoveCoupon != null && containRemoveCoupon == false && couponCustomerRelevanceList.get(i).getCouponId().equals(66)) {
couponCustomerRelevanceList.remove(i);
i--;
continue;
}
CouponCustomerRelevance couponCustomerRelevance = couponCustomerRelevanceList.get(i);
if (nowTime > couponCustomerRelevance.getValidEndTime().getTime() && couponCustomerRelevance.getState() == 1) {
couponCustomerRelevance.setState(3);
}
if (state != null && state != 0 && couponCustomerRelevance != null && couponCustomerRelevance.getState() != null && !couponCustomerRelevance.getState().equals(state)) {
couponCustomerRelevanceList.remove(i);
i--;
}
}
PageInfo<CouponCustomerRelevance> pageInfo = new PageInfo<>(couponCustomerRelevanceList);
return pageInfo;
}
@Override @Override
public Coupon checkNewCustomer(Integer customerId) { public Coupon checkNewCustomer(Integer customerId) {
......
...@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult; import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.pagehelper.PageInfo;
import com.gogirl.domain.order.member.ChargeOrder; import com.gogirl.domain.order.member.ChargeOrder;
import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import java.net.UnknownHostException; import java.net.UnknownHostException;
...@@ -42,4 +44,6 @@ public interface IChargeOrderService extends IService<ChargeOrder> { ...@@ -42,4 +44,6 @@ public interface IChargeOrderService extends IService<ChargeOrder> {
* @param remark * @param remark
*/ */
void chargeCustomerCard(String name, String phone, Double amount, Integer source, String refereeId, String remark); void chargeCustomerCard(String name, String phone, Double amount, Integer source, String refereeId, String remark);
} }
...@@ -119,4 +119,11 @@ public interface OrderManageService extends IService<OrderManage> { ...@@ -119,4 +119,11 @@ public interface OrderManageService extends IService<OrderManage> {
* @return * @return
*/ */
OrderManage queryOrderForComment(Integer id); OrderManage queryOrderForComment(Integer id);
/**
* 朋友代付
* @param orderId
* @param phone
*/
void friendPayOrder(Integer orderId, String phone);
} }
...@@ -28,6 +28,7 @@ import com.gogirl.domain.product.serve.BaseType; ...@@ -28,6 +28,7 @@ import com.gogirl.domain.product.serve.BaseType;
import com.gogirl.domain.store.store.StoreTechnician; import com.gogirl.domain.store.store.StoreTechnician;
import com.gogirl.domain.user.customer.Customer; import com.gogirl.domain.user.customer.Customer;
import com.gogirl.domain.user.customer.CustomerBalance; import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerMessage;
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.common.util.JsonUtilByFsJson; import com.gogirl.infrastructure.common.util.JsonUtilByFsJson;
...@@ -40,8 +41,10 @@ import com.gogirl.infrastructure.mapper.product.serve.BaseServeMapper; ...@@ -40,8 +41,10 @@ import com.gogirl.infrastructure.mapper.product.serve.BaseServeMapper;
import com.gogirl.infrastructure.mapper.product.serve.BaseTypeMapper; import com.gogirl.infrastructure.mapper.product.serve.BaseTypeMapper;
import com.gogirl.infrastructure.mapper.store.store.StoreTechnicianMapper; import com.gogirl.infrastructure.mapper.store.store.StoreTechnicianMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMessageMapper;
import com.gogirl.infrastructure.subscribe.SubscribeService; import com.gogirl.infrastructure.subscribe.SubscribeService;
import com.gogirl.infrastructure.util.CheckUtil; import com.gogirl.infrastructure.util.CheckUtil;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.shared.member.order.command.CreateCommentCommand; import com.gogirl.shared.member.order.command.CreateCommentCommand;
import com.gogirl.shared.member.order.command.OrderCommentCommand; import com.gogirl.shared.member.order.command.OrderCommentCommand;
import com.gogirl.shared.order.serve.query.qry.ordermanage.ListOrderQuery; import com.gogirl.shared.order.serve.query.qry.ordermanage.ListOrderQuery;
...@@ -318,7 +321,7 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order ...@@ -318,7 +321,7 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
orderManage.setScheduleManage(list.stream().findAny().orElse(null)); orderManage.setScheduleManage(list.stream().findAny().orElse(null));
} }
orderManage.getListOrderServer().forEach(orderServe -> { orderManage.getListOrderServer().forEach(orderServe -> {
if(orderServe.getEndTime()!=null && orderServe.getStartTime()!=null){ if (orderServe.getEndTime() != null && orderServe.getStartTime() != null) {
orderServe.setActualServeDuration((int) (orderServe.getEndTime().getTime() - orderServe.setActualServeDuration((int) (orderServe.getEndTime().getTime() -
orderServe.getStartTime().getTime()) / 1000 / 60); orderServe.getStartTime().getTime()) / 1000 / 60);
} }
...@@ -836,6 +839,41 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order ...@@ -836,6 +839,41 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
} }
private final CustomerMessageMapper customerMessageMapper;
@Override
public void friendPayOrder(Integer orderId, String phone) {
Integer currentCustomerId = SessionUtils.getCustomerToken().getCustomerId();
Customer customer = customerService.selectByPhone(phone);
if (customer == null) {
throw new RRException(500, "用户不存在");
}
Map<String, Object> params = new HashMap<>();
params.put(CustomerMessage.PARAM_FRIEND_PAY_ORDER_ID, orderId);
params.put(CustomerMessage.PARAM_FRIEND_PAY_CUSTOMER_ID, currentCustomerId);
String paramsJson = JsonUtilByFsJson.beanToJson(params);
List<CustomerMessage> list = customerMessageMapper.selectList(
new LambdaQueryWrapper<CustomerMessage>().eq(CustomerMessage::getParamsJson, paramsJson)
);
//避免重复发送
if (ListUtil.isEmpty(list)) {
CustomerMessage customerMessage = CustomerMessage.builder()
.customerId(customer.getId())
.header("代付订单提醒")
.paramsJson(paramsJson)
.status(CustomerMessage.STATUS_UN_READ)
.type(CustomerMessage.TYPE_FRIEND_SCHEDULE_PAY)
.build();
//保存消息
customerMessageMapper.insert(customerMessage);
}
}
@Override @Override
public OrderManage queryOrder(Integer id) { public OrderManage queryOrder(Integer id) {
OrderManage orderManage = this.getById(id); OrderManage orderManage = this.getById(id);
......
package com.gogirl.application.user.customer; package com.gogirl.application.user.customer;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.gogirl.domain.user.customer.CustomerBalance; import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerBalanceRecord; import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.shared.user.command.ConsumerCommand; import com.gogirl.shared.user.command.ConsumerCommand;
import java.util.List;
public interface CustomerBalanceService extends IService<CustomerBalance> { public interface CustomerBalanceService extends IService<CustomerBalance> {
/** /**
...@@ -19,18 +18,19 @@ public interface CustomerBalanceService extends IService<CustomerBalance> { ...@@ -19,18 +18,19 @@ public interface CustomerBalanceService extends IService<CustomerBalance> {
/** /**
* 查看消费记录 * 余额消费
* *
* @param param param * @param consumerCmd
* @return list
*/ */
List<CustomerBalanceRecord> getBalanceRecordCard(CustomerBalanceRecord param); void consumer(ConsumerCommand consumerCmd);
/** /**
* 余额消费 * 查看消费记录
* *
* @param consumerCmd * @param customerId
* @param pageNum
* @param pageSize
* @return
*/ */
void consumer(ConsumerCommand consumerCmd); PageInfo<CustomerBalanceRecord> getBalanceRecordCard(Integer customerId, int pageNum, int pageSize);
} }
...@@ -2,8 +2,10 @@ package com.gogirl.application.user.customer; ...@@ -2,8 +2,10 @@ package com.gogirl.application.user.customer;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.user.customer.Customer; import com.gogirl.domain.user.customer.Customer;
import com.gogirl.dto.customer.CustomerOrderDetail;
import java.security.InvalidAlgorithmParameterException; import java.security.InvalidAlgorithmParameterException;
import java.util.List;
public interface CustomerService extends IService<Customer> { public interface CustomerService extends IService<Customer> {
...@@ -68,8 +70,45 @@ public interface CustomerService extends IService<Customer> { ...@@ -68,8 +70,45 @@ public interface CustomerService extends IService<Customer> {
/** /**
* 根据token获取customer * 根据token获取customer
*
* @param token * @param token
* @return * @return
*/ */
Customer getUserInfo(String token) throws Exception; Customer getUserInfo(String token) throws Exception;
/**
* 查询订单用户详情
*
* @param customerId 用户id
* @param orderId 订单id
* @return
*/
CustomerOrderDetail queryCustomerDetail(Integer customerId, Integer orderId);
/**
* 美甲师更新用户信息
*
* @param birthdayMonth
* @param birthdayDay
* @param ageGroup
* @param customerId
* @param orderId
* @param orderServeId
* @param storeRecordRealName
* @param sex
* @param age
* @param job
* @param preference
* @param character
* @param customerSource
*/
void updateCustomerDetail(Integer birthdayMonth, Integer birthdayDay, String ageGroup, Integer customerId, Integer orderId, Integer orderServeId, String storeRecordRealName, String sex, Integer age, String job, String preference, String character, Integer customerSource);
/**
* 查询用户可选年龄段
*
* @return
*/
List<String> getAgeGroups();
} }
...@@ -2,26 +2,35 @@ package com.gogirl.application.user.customer.impl; ...@@ -2,26 +2,35 @@ package com.gogirl.application.user.customer.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.gogirl.application.user.customer.CustomerBalanceService; import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.domain.store.store.StoreUser;
import com.gogirl.domain.user.customer.CustomerBalance; import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerBalanceRecord; import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.infrastructure.common.exception.RRException; import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper; import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper;
import com.gogirl.infrastructure.mapper.store.store.UserManageMapper;
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.shared.user.command.ConsumerCommand; import com.gogirl.shared.user.command.ConsumerCommand;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@AllArgsConstructor @AllArgsConstructor
@Slf4j @Slf4j
@Transactional
public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMapper, CustomerBalance> implements CustomerBalanceService { public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMapper, CustomerBalance> implements CustomerBalanceService {
private final CustomerBalanceMapper customerBalanceMapper; private final CustomerBalanceMapper customerBalanceMapper;
...@@ -43,21 +52,6 @@ public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMappe ...@@ -43,21 +52,6 @@ public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMappe
@Override @Override
public List<CustomerBalanceRecord> getBalanceRecordCard(CustomerBalanceRecord customerBalanceRecord) {
List<CustomerBalanceRecord> list = balanceRecordDao.getBalanceRecordCard(customerBalanceRecord);
list.stream()
.filter(balanceRecord -> balanceRecord.getType().equals(-1))
.forEach(balanceRecord -> {
balanceRecord.setOrderManage(orderManageMapper.selectById(Integer.valueOf(balanceRecord.getOrderId())));
if (balanceRecord.getOrderAmount() != null && balanceRecord.getOrderAmount() != 0 && balanceRecord.getOrderManage() != null) {
balanceRecord.getOrderManage().setTotalPrice(new BigDecimal(balanceRecord.getOrderAmount()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
}
});
return list;
}
@Override
public void consumer(ConsumerCommand cmd) { public void consumer(ConsumerCommand cmd) {
CustomerBalance customerBalance = customerBalanceMapper.selectOne(new LambdaQueryWrapper<CustomerBalance>() CustomerBalance customerBalance = customerBalanceMapper.selectOne(new LambdaQueryWrapper<CustomerBalance>()
.eq(CustomerBalance::getCustomerId, cmd.getCustomerId())); .eq(CustomerBalance::getCustomerId, cmd.getCustomerId()));
...@@ -95,4 +89,48 @@ public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMappe ...@@ -95,4 +89,48 @@ public class CustomerBalanceServiceImpl extends ServiceImpl<CustomerBalanceMappe
customerBalance.setTotalExpenditure(customerBalance.getTotalExpenditure() + cmd.getAmount()); customerBalance.setTotalExpenditure(customerBalance.getTotalExpenditure() + cmd.getAmount());
customerBalanceMapper.updateById(customerBalance); customerBalanceMapper.updateById(customerBalance);
} }
private final UserManageMapper userManageMapper;
@Override
public PageInfo<CustomerBalanceRecord> getBalanceRecordCard(Integer customerId, int pageNum, int pageSize) {
CustomerBalanceRecord param = new CustomerBalanceRecord();
param.setCustomerId(customerId);
PageHelper.startPage(pageNum, pageSize);
List<CustomerBalanceRecord> list = balanceRecordDao.getBalanceRecordCard(customerId);
list.stream()
.filter(balanceRecord -> balanceRecord.getType().equals(-1))
.forEach(balanceRecord -> {
balanceRecord.setOrderManage(orderManageMapper.selectById(Integer.valueOf(balanceRecord.getOrderId())));
if (balanceRecord.getOrderAmount() != null && balanceRecord.getOrderAmount() != 0 && balanceRecord.getOrderManage() != null) {
balanceRecord.getOrderManage().setTotalPrice(new BigDecimal(balanceRecord.getOrderAmount()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
}
});
//设置推荐人名字
List<StoreUser> allStoreUser = userManageMapper.selectList(new QueryWrapper<>());
Map<String, String> idMapName = new HashMap<>();
for (StoreUser storeUser : allStoreUser) {
idMapName.put(String.valueOf(storeUser.getId()), storeUser.getName());
}
for (CustomerBalanceRecord customerBalanceRecord : list) {
String refereeId = customerBalanceRecord.getRefereeId();
if (refereeId != null && !refereeId.isEmpty()) {
String[] refereeIdArr = refereeId.split(",");
StringBuilder refereeName = new StringBuilder();
for (String s : refereeIdArr) {
if (s != null && !s.isEmpty()) {
refereeName.append(",").append(idMapName.getOrDefault(s, s));
}
}
customerBalanceRecord.setRefereeId(refereeName.substring(1));
}
}
PageInfo<CustomerBalanceRecord> pageInfo = new PageInfo<>(list);
return pageInfo;
}
} }
...@@ -3,24 +3,43 @@ package com.gogirl.application.user.customer.impl; ...@@ -3,24 +3,43 @@ package com.gogirl.application.user.customer.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.order.serve.OrderManageService;
import com.gogirl.application.user.customer.CustomerDetailService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.application.xcx.GogirlTokenService; import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.application.xcx.QRCodeService; import com.gogirl.application.xcx.QRCodeService;
import com.gogirl.application.xcx.WechatService; import com.gogirl.application.xcx.WechatService;
import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.order.serve.OrderRecord;
import com.gogirl.domain.order.serve.OrderServe;
import com.gogirl.domain.order.serve.ScheduleManage; import com.gogirl.domain.order.serve.ScheduleManage;
import com.gogirl.domain.product.serve.BaseServe;
import com.gogirl.domain.store.store.StoreManage;
import com.gogirl.domain.user.customer.Customer; import com.gogirl.domain.user.customer.Customer;
import com.gogirl.domain.user.customer.CustomerBalance; import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerDetail; import com.gogirl.domain.user.customer.CustomerDetail;
import com.gogirl.domain.xcx.GogirlConfig;
import com.gogirl.domain.xcx.GogirlToken; import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.dto.customer.CustomerOrderDetail;
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.common.util.StringUtils; import com.gogirl.infrastructure.common.util.StringUtils;
import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderRecordMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
import com.gogirl.infrastructure.mapper.order.serve.ScheduleManageMapper; import com.gogirl.infrastructure.mapper.order.serve.ScheduleManageMapper;
import com.gogirl.infrastructure.mapper.product.serve.BaseServeMapper;
import com.gogirl.infrastructure.mapper.store.store.StoreManageMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerDetailMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerDetailMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerMapper;
import com.gogirl.infrastructure.mapper.xcx.GogirlConfigMapper;
import com.gogirl.infrastructure.util.CheckUtil;
import com.gogirl.infrastructure.util.CountCustomerRate;
import com.gogirl.infrastructure.util.WXCore; import com.gogirl.infrastructure.util.WXCore;
import com.gogirl.infrastructure.util.lock.Openid1Lock; import com.gogirl.infrastructure.util.lock.Openid1Lock;
import com.gogirl.shared.member.wx.query.dto.Code2SessionResult; import com.gogirl.shared.member.wx.query.dto.Code2SessionResult;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
...@@ -267,6 +286,109 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i ...@@ -267,6 +286,109 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> i
return customer; return customer;
} }
private final StoreManageMapper storeManageMapper;
private final OrderManageMapper orderManageMapper;
private final OrderServeMapper orderServeMapper;
private final BaseServeMapper baseServeMapper;
private final OrderRecordMapper orderRecordMapper;
@Override
public CustomerOrderDetail queryCustomerDetail(Integer customerId, Integer orderId) {
CustomerOrderDetail customerOrderDetail = new CustomerOrderDetail();
//查询用户信息
Customer customer = customerMapper.selectById(customerId);
//查询用户注册店铺
StoreManage storeManage = storeManageMapper.selectById(customer.getRegisterDepartment());
customer.setStoreManage(storeManage);
//查询余额
CustomerBalance customerBalance = customerBalanceMapper.selectOne(new LambdaQueryWrapper<CustomerBalance>().eq(CustomerBalance::getCustomerId, customerId));
customer.setCustomerBalance(customerBalance);
//查询会员详情
CustomerDetail customerDetail = customerDetailMapper.selectOne(new LambdaQueryWrapper<CustomerDetail>().eq(CustomerDetail::getCustomerId, customer.getId()));
customer.setCustomerDetail(customerDetail);
customerOrderDetail.setCustomer(customer);
if (orderId != null) {
//查询订单信息
OrderManage orderManage = orderManageMapper.selectById(orderId);
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>().eq(OrderServe::getOrderId, orderId));
orderManage.setListOrderServer(orderServeList);
orderServeList.forEach(orderServe -> {
OrderRecord orderRecord = orderRecordMapper.selectOne(new LambdaQueryWrapper<OrderRecord>().eq(OrderRecord::getOrderServeId, orderServe.getId()));
BaseServe baseServe = baseServeMapper.selectById(orderServe.getServeId());
orderServe.setOrderRecord(orderRecord);
orderServe.setServe(baseServe);
});
customerOrderDetail.setOrderManage(orderManage);
}
return customerOrderDetail;
}
private final CustomerDetailService customerDetailService;
private final OrderManageService orderManageService;
@Override
public void updateCustomerDetail(Integer birthdayMonth, Integer birthdayDay, String ageGroup, Integer customerId, Integer orderId, Integer orderServeId, String storeRecordRealName, String sex, Integer age, String job, String preference, String character, Integer customerSource) {
//用户基本信息
Customer customer = customerMapper.selectById(customerId);
customer.setStoreRecordRealName(storeRecordRealName);
customer.setSex(sex);
customer.setCustomerSource(customerSource);
customerMapper.updateById(customer);
//用户详情信息
CustomerDetail customerDetail = customerDetailMapper.selectOne(new LambdaQueryWrapper<CustomerDetail>().eq(CustomerDetail::getCustomerId, customer.getId()));
if (customerDetail == null) {
customerDetail = new CustomerDetail();
}
customerDetail.setCustomerId(customerId);
customerDetail.setAge(age);
customerDetail.setJob(job);
customerDetail.setPreference(preference);
customerDetail.setCharacter(character);
customerDetail.setBirthdayMonth(birthdayMonth);
customerDetail.setBirthdayDay(birthdayDay);
customerDetail.setAgeGroup(ageGroup);
customerDetailService.saveOrUpdate(customerDetail);
//更新数据完整度
customer.setDataIntegrity(new CountCustomerRate().countDataCompleteRate(customer, customerDetail));
customerMapper.updateById(customer);
if (orderId != null) {
OrderManage om = orderManageService.queryOrder(orderId);
double dataRate = CheckUtil.countOrderDataRate(customer, om);
om.setDataIntegrity(dataRate);
orderManageService.updateOrderDataIntegrity(om);
}
}
private final GogirlConfigMapper gogirlConfigMapper;
@Override
public List<String> getAgeGroups() {
GogirlConfig gogirlConfig = gogirlConfigMapper.selectByPrimaryKey(3);
if (gogirlConfig == null || gogirlConfig.getValue() == null || gogirlConfig.getValue().isEmpty()) {
throw new RRException("请联系管理员,在gogirl_config表中配置id=3的value,用英文逗号隔开多个选项");
}
String[] ageGroups = gogirlConfig.getValue().split(",");
return Lists.newArrayList(ageGroups);
}
//todo 替换成hashcode //todo 替换成hashcode
//字符串中所有字符相加得到一个int //字符串中所有字符相加得到一个int
private int openid1GetInt(String openid1) { private int openid1GetInt(String openid1) {
......
...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.xcx.CustomerMessageService; import com.gogirl.application.xcx.CustomerMessageService;
import com.gogirl.domain.user.customer.CustomerMessage; import com.gogirl.domain.user.customer.CustomerMessage;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMessageMapper; import com.gogirl.infrastructure.mapper.user.customer.CustomerMessageMapper;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.shared.user.command.ReadMessageCommand; import com.gogirl.shared.user.command.ReadMessageCommand;
import com.gogirl.shared.user.query.qry.CustomerMessagePageQuery; import com.gogirl.shared.user.query.qry.CustomerMessagePageQuery;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
...@@ -26,6 +27,9 @@ public class CustomerMessageServiceImpl extends ServiceImpl<CustomerMessageMappe ...@@ -26,6 +27,9 @@ public class CustomerMessageServiceImpl extends ServiceImpl<CustomerMessageMappe
@Override @Override
public Page<CustomerMessage> queryPageMessage(CustomerMessagePageQuery qry) { public Page<CustomerMessage> queryPageMessage(CustomerMessagePageQuery qry) {
//线程变量当前当前用户id
qry.setCustomerId(SessionUtils.getCustomerToken().getCustomerId());
LambdaQueryWrapper<CustomerMessage> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<CustomerMessage> wrapper = new LambdaQueryWrapper<>();
if (qry.getCustomerId() != null) { if (qry.getCustomerId() != null) {
wrapper.eq(CustomerMessage::getCustomerId, qry.getCustomerId()); wrapper.eq(CustomerMessage::getCustomerId, qry.getCustomerId());
......
package com.gogirl.dto.customer;
import com.gogirl.domain.order.serve.OrderManage;
import com.gogirl.domain.user.customer.Customer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CustomerOrderDetail {
@ApiModelProperty("会员")
private Customer customer;
@ApiModelProperty("会员")
private OrderManage orderManage;
}
...@@ -25,7 +25,7 @@ public interface CustomerBalanceRecordMapper extends BaseMapper<CustomerBalanceR ...@@ -25,7 +25,7 @@ public interface CustomerBalanceRecordMapper extends BaseMapper<CustomerBalanceR
List<CustomerBalanceRecord> listPartPay(Integer orderId); List<CustomerBalanceRecord> listPartPay(Integer orderId);
List<CustomerBalanceRecord> getBalanceRecordCard(CustomerBalanceRecord customerBalanceRecord); List<CustomerBalanceRecord> getBalanceRecordCard(Integer customerId);
Page<CustomerBalanceRecord> queryPageAchieve(Page<CustomerBalanceRecord> page, Integer technicianId, String month); Page<CustomerBalanceRecord> queryPageAchieve(Page<CustomerBalanceRecord> page, Integer technicianId, String month);
} }
package com.gogirl.interfaces.user; package com.gogirl.interfaces.user;
import com.github.pagehelper.PageInfo;
import com.gogirl.application.market.CouponService; import com.gogirl.application.market.CouponService;
import com.gogirl.application.market.MarketService;
import com.gogirl.application.order.serve.OrderManageService;
import com.gogirl.application.xcx.GogirlTokenService; import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.domain.market.coupon.Coupon; import com.gogirl.domain.market.coupon.Coupon;
import com.gogirl.domain.market.coupon.CouponCustomerRelevance;
import com.gogirl.domain.xcx.GogirlToken; import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.common.base.JsonResult; import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.StringUtils; import com.gogirl.infrastructure.common.util.StringUtils;
import com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper;
import com.gogirl.infrastructure.mapper.market.coupon.CouponMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderServeMapper;
import com.gogirl.infrastructure.mapper.xcx.GogirlConfigMapper;
import com.gogirl.infrastructure.util.SessionUtils; import com.gogirl.infrastructure.util.SessionUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -24,59 +15,28 @@ import lombok.extern.slf4j.Slf4j; ...@@ -24,59 +15,28 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@RestController @RestController
@Api(tags = {"version2.0: 优惠券"}, value = "version2.0: 优惠券") @Api(tags = {"优惠券配置接口"}, value = "优惠券配置接口")
@AllArgsConstructor @AllArgsConstructor
@Slf4j @Slf4j
public class CouponController { public class CouponController {
private final CouponService couponService; private final CouponService couponService;
private final GogirlTokenService gogirlTokenService; private final GogirlTokenService gogirlTokenService;
private final OrderManageService orderManageService;
private final GogirlConfigMapper gogirlConfigMapper;
private final CouponCustomerRelevanceMapper couponCustomerRelevanceMapper;
private final OrderServeMapper orderServeMapper;
private final MarketService marketService;
private final CouponMapper couponMapper;
@ApiOperation(value = "查询优惠券配置详情") @ApiOperation(value = "根据配置id查询优惠券配置详情")
@GetMapping("/customer/selectCouponByPrimaryKey") @GetMapping("/customer/selectCouponByPrimaryKey")
public JsonResult<Coupon> selectCouponByPrimaryKey(Integer id) { public JsonResult<Coupon> selectCouponByPrimaryKey(Integer id) {
Coupon coupon = couponService.getById(id); Coupon coupon = couponService.getById(id);
return JsonResult.success(coupon); return JsonResult.success(coupon);
} }
@ApiOperation(value = "用户根据订单号查询可用优惠券")
@GetMapping("/customer/getOrderCoupon")
public JsonResult<List<CouponCustomerRelevance>> getOrderCoupon(@RequestHeader String token,
@RequestParam Integer orderId) {
Integer currentCustomerId = Optional.ofNullable(gogirlTokenService.getByToken(token).getCustomerId())
.orElseThrow(() -> new RRException(500, "token不存在"));
List<CouponCustomerRelevance> list = couponService.getOrderCoupon(currentCustomerId, orderId);
return JsonResult.success(list);
}
@ApiOperation(value = "我的优惠券列表")
@GetMapping("/customer/getMyCoupon")
public JsonResult<PageInfo<CouponCustomerRelevance>> getMyCoupon(String token,
Integer pageNum,
Integer pageSize,
Integer state,
Boolean containRemoveCoupon) {
Integer customerId = SessionUtils.getCustomerId();
log.info("查询领取优惠券的用户列表CouponCustomerRelevance:" + customerId.toString());
PageInfo<CouponCustomerRelevance> pageInfo = couponService.selectMyCoupon(customerId, pageNum, pageSize, state, containRemoveCoupon);
return JsonResult.success(pageInfo);
}
@ApiOperation(value = "查询是否可领新人优惠券,是新人返回券信息,不是新人返回null;") @ApiOperation(value = "查询是否可领新人优惠券,是新人返回券信息,不是新人返回null;")
@GetMapping("/customer/checkNewCustomer") @GetMapping("/customer/checkNewCustomer")
public JsonResult<Coupon> checkNewCustomer(String token) { public JsonResult<Coupon> checkNewCustomer(String token) {
GogirlToken gogirlToken = gogirlTokenService.getByToken(token);
//顾客id //顾客id
Integer customerId = SessionUtils.getCustomerId(); Integer customerId = SessionUtils.getCustomerId();
Coupon coupon = couponService.checkNewCustomer(customerId); Coupon coupon = couponService.checkNewCustomer(customerId);
...@@ -86,9 +46,6 @@ public class CouponController { ...@@ -86,9 +46,6 @@ public class CouponController {
@ApiOperation(value = "发放新人优惠券") @ApiOperation(value = "发放新人优惠券")
@PostMapping("/customer/sendNewCustomerCouponXcx") @PostMapping("/customer/sendNewCustomerCouponXcx")
public JsonResult<Coupon> sendNewCustomerCouponXcx(String token) { public JsonResult<Coupon> sendNewCustomerCouponXcx(String token) {
GogirlToken gogirlToken = gogirlTokenService.getByToken(token);
Integer customerId = SessionUtils.getCustomerId(); Integer customerId = SessionUtils.getCustomerId();
Coupon coupon = couponService.sendNewCustomerCouponXcx(customerId); Coupon coupon = couponService.sendNewCustomerCouponXcx(customerId);
return JsonResult.success(coupon); return JsonResult.success(coupon);
...@@ -98,34 +55,15 @@ public class CouponController { ...@@ -98,34 +55,15 @@ public class CouponController {
@PostMapping("/customer/sendCouponXcx") @PostMapping("/customer/sendCouponXcx")
public JsonResult<Coupon> sendCouponXcx(String token, public JsonResult<Coupon> sendCouponXcx(String token,
Integer couponId) { Integer couponId) {
GogirlToken gogirlToken = gogirlTokenService.getByToken(token);
Integer customerId = SessionUtils.getCustomerId(); Integer customerId = SessionUtils.getCustomerId();
log.info("发放优惠券customerId:" + customerId.toString()); log.info("发放优惠券customerId:" + customerId.toString());
log.info("发放优惠券couponId:" + couponId.toString()); log.info("发放优惠券couponId:" + couponId.toString());
//返回消息 //返回消息
Coupon coupon = couponService.sendCoupon(couponId, customerId); Coupon coupon = couponService.sendCoupon(couponId, customerId);
return JsonResult.success(coupon); return JsonResult.success(coupon);
} }
@ApiOperation(value = "美甲师提交外部券")
@PostMapping("/technician/techSubmitCoupons")
public JsonResult<Void> techSubmitCoupons(@RequestHeader String token,
@RequestParam Integer orderId,
@RequestParam String couponIds) {
GogirlToken gogirlToken = SessionUtils.getTechnicianToken();
log.info("美甲师 {} 提交外部券,couponId", gogirlToken.getTechnicianId());
List<Integer> idList = StringUtils.isNotEmpty(couponIds)
? Lists.newArrayList(couponIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList())
: Lists.newArrayList();
couponService.techSubmitCoupons(orderId, idList);
return JsonResult.success();
}
@ApiOperation(value = "美甲师根据订单号查询可用外部券") @ApiOperation(value = "美甲师根据订单号查询可用外部券")
@GetMapping("/technician/getOrderExternalCoupon") @GetMapping("/technician/getOrderExternalCoupon")
......
package com.gogirl.interfaces.user; package com.gogirl.interfaces.user;
import com.github.pagehelper.PageInfo;
import com.gogirl.application.market.CouponCustomerRelevanceService;
import com.gogirl.application.market.CouponService;
import com.gogirl.application.market.MarketService; import com.gogirl.application.market.MarketService;
import com.gogirl.domain.market.coupon.CouponCustomerRelevance;
import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.common.base.JsonResult; import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.util.StringUtils; import com.gogirl.infrastructure.common.util.StringUtils;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.shared.market.command.SetTimesCardCommand; import com.gogirl.shared.market.command.SetTimesCardCommand;
import com.gogirl.shared.market.command.SetUpInnerCouponCommand; import com.gogirl.shared.market.command.SetUpInnerCouponCommand;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -10,18 +16,55 @@ import io.swagger.annotations.Api; ...@@ -10,18 +16,55 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@RestController @RestController
@Api(tags = {"version 3.0: 优惠券"})
@Slf4j
@AllArgsConstructor @AllArgsConstructor
public class CouponOrderRelevanceController { @Slf4j
@Api(tags = {"优惠券接口"}, value = "优惠券接口")
public class CouponCustomerRelevanceController {
private final CouponService couponService;
private final CouponCustomerRelevanceService couponCustomerRelevanceService;
@ApiOperation(value = "用户根据订单号查询可用优惠券")
@GetMapping("/customer/getOrderCoupon")
public JsonResult<List<CouponCustomerRelevance>> getOrderCoupon(@RequestHeader String token,
@RequestParam Integer orderId) {
Integer currentCustomerId = SessionUtils.getCustomerToken().getCustomerId();
List<CouponCustomerRelevance> list = couponCustomerRelevanceService.getOrderCoupon(currentCustomerId, orderId);
return JsonResult.success(list);
}
@ApiOperation(value = "我的优惠券列表")
@GetMapping("/customer/getMyCoupon")
public JsonResult<PageInfo<CouponCustomerRelevance>> getMyCoupon(String token,
Integer pageNum,
Integer pageSize,
Integer state,
Boolean containRemoveCoupon) {
Integer customerId = SessionUtils.getCustomerId();
log.info("查询领取优惠券的用户列表CouponCustomerRelevance:" + customerId.toString());
PageInfo<CouponCustomerRelevance> pageInfo = couponCustomerRelevanceService.selectMyCoupon(customerId, pageNum, pageSize, state, containRemoveCoupon);
return JsonResult.success(pageInfo);
}
@ApiOperation(value = "美甲师提交外部券")
@PostMapping("/technician/techSubmitCoupons")
public JsonResult<Void> techSubmitCoupons(@RequestHeader String token,
@RequestParam Integer orderId,
@RequestParam String couponIds) {
GogirlToken gogirlToken = SessionUtils.getTechnicianToken();
log.info("美甲师 {} 提交外部券,couponId", gogirlToken.getTechnicianId());
List<Integer> idList = StringUtils.isNotEmpty(couponIds) ? Lists.newArrayList(couponIds.split(",")).stream().map(Integer::valueOf).collect(Collectors.toList()) : Lists.newArrayList();
couponCustomerRelevanceService.techSubmitCoupons(orderId, idList);
return JsonResult.success();
}
private final MarketService marketService; private final MarketService marketService;
...@@ -54,4 +97,5 @@ public class CouponOrderRelevanceController { ...@@ -54,4 +97,5 @@ public class CouponOrderRelevanceController {
marketService.setterOrder(orderId); marketService.setterOrder(orderId);
return JsonResult.success(); return JsonResult.success();
} }
} }
...@@ -16,7 +16,7 @@ import java.util.HashMap; ...@@ -16,7 +16,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Api(tags = {"version2.0: 店铺"}, value = "version2.0: 店铺") @Api(tags = {"折扣接口"}, value = "折扣接口")
@RestController @RestController
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
......
...@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@Api(tags = "version3.0:问卷调查接口", value = "version3.0:问卷调查接口") @Api(tags = "问卷调查接口", value = "问卷调查接口")
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
public class TestPaperController { public class TestPaperController {
...@@ -44,9 +44,7 @@ public class TestPaperController { ...@@ -44,9 +44,7 @@ public class TestPaperController {
List<OrderQuestionOption> list = cmd.getList(); List<OrderQuestionOption> list = cmd.getList();
list.forEach(orderQuestionOption -> orderQuestionOption.setCustomerId(currentCustomerId)); list.forEach(orderQuestionOption -> orderQuestionOption.setCustomerId(currentCustomerId));
baseQuestionService.submitTestPaper(currentCustomerId, list); baseQuestionService.submitTestPaper(currentCustomerId, list);
return JsonResult.success(); return JsonResult.success();
} }
} }
...@@ -150,8 +150,6 @@ public class TimesCardController { ...@@ -150,8 +150,6 @@ public class TimesCardController {
//次卡使用记录 //次卡使用记录
timesCardCustomerRelevance.setTimesCardUsedRecordList(usedRecordList); timesCardCustomerRelevance.setTimesCardUsedRecordList(usedRecordList);
return JsonResult.success(timesCardCustomerRelevance); return JsonResult.success(timesCardCustomerRelevance);
} }
......
...@@ -34,11 +34,6 @@ public class MessageController { ...@@ -34,11 +34,6 @@ public class MessageController {
@PostMapping("/customer/message/queryPageMessage") @PostMapping("/customer/message/queryPageMessage")
public JsonResult<Page<CustomerMessage>> queryPageMessage(@RequestHeader String token, public JsonResult<Page<CustomerMessage>> queryPageMessage(@RequestHeader String token,
@RequestBody CustomerMessagePageQuery qry) { @RequestBody CustomerMessagePageQuery qry) {
GogirlToken gt = gogirlTokenService.getByToken(token);
if (SessionUtils.getCustomerToken() == null) {
throw new RRException(2000, "token失效,请重新登陆");
}
qry.setCustomerId(gt.getCustomerId());
Page<CustomerMessage> customerMessagePage = customerMessageService.queryPageMessage(qry); Page<CustomerMessage> customerMessagePage = customerMessageService.queryPageMessage(qry);
return JsonResult.success(customerMessagePage); return JsonResult.success(customerMessagePage);
} }
......
package com.gogirl.interfaces.xcx; package com.gogirl.interfaces.xcx;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult; import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.gogirl.application.market.DiscountConfigService; import com.gogirl.application.market.DiscountConfigService;
import com.gogirl.application.order.member.IChargeOrderService; import com.gogirl.application.order.member.IChargeOrderService;
...@@ -15,17 +11,10 @@ import com.gogirl.application.store.store.CustomerDepartmentRelevanceService; ...@@ -15,17 +11,10 @@ import com.gogirl.application.store.store.CustomerDepartmentRelevanceService;
import com.gogirl.application.user.customer.CustomerBalanceService; import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.application.xcx.GogirlTokenService; import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.domain.market.discount.DiscountConfig;
import com.gogirl.domain.store.store.StoreUser;
import com.gogirl.domain.user.customer.Customer;
import com.gogirl.domain.user.customer.CustomerBalance;
import com.gogirl.domain.user.customer.CustomerBalanceRecord; import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.domain.user.customer.CustomerMessage;
import com.gogirl.domain.xcx.GogirlToken; import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.infrastructure.common.base.JsonResult; import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.exception.RRException; import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.JsonUtilByFsJson;
import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.config.GogirlProperties; import com.gogirl.infrastructure.config.GogirlProperties;
import com.gogirl.infrastructure.feign.wx.WxPayControllerFeign; import com.gogirl.infrastructure.feign.wx.WxPayControllerFeign;
import com.gogirl.infrastructure.mapper.store.store.UserManageMapper; import com.gogirl.infrastructure.mapper.store.store.UserManageMapper;
...@@ -40,12 +29,11 @@ import io.swagger.annotations.ApiOperation; ...@@ -40,12 +29,11 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.*; import java.util.Optional;
@RestController @RestController
...@@ -168,79 +156,21 @@ public class PayController { ...@@ -168,79 +156,21 @@ public class PayController {
public JsonResult<Integer> friendPayOrder(@RequestHeader String token, public JsonResult<Integer> friendPayOrder(@RequestHeader String token,
@PathVariable Integer orderId, @PathVariable Integer orderId,
@ApiParam("朋友手机号") @RequestParam String phone) { @ApiParam("朋友手机号") @RequestParam String phone) {
Integer currentCustomerId = Optional.ofNullable(gogirlTokenService.getByToken(token).getCustomerId()) orderManageService.friendPayOrder(orderId, phone);
.orElseThrow(() -> new RRException(500, "token不存在"));
Customer customer = customerService.selectByPhone(phone);
if (customer == null) {
throw new RRException(500, "用户不存在");
}
Map<String, Object> params = new HashMap<>();
params.put(CustomerMessage.PARAM_FRIEND_PAY_ORDER_ID, orderId);
params.put(CustomerMessage.PARAM_FRIEND_PAY_CUSTOMER_ID, currentCustomerId);
String paramsJson = JsonUtilByFsJson.beanToJson(params);
List<CustomerMessage> list = customerMessageMapper.selectList(
new LambdaQueryWrapper<CustomerMessage>().eq(CustomerMessage::getParamsJson, paramsJson)
);
//避免重复发送
if (ListUtil.isEmpty(list)) {
CustomerMessage customerMessage = CustomerMessage.builder()
.customerId(customer.getId())
.header("代付订单提醒")
.paramsJson(paramsJson)
.status(CustomerMessage.STATUS_UN_READ)
.type(CustomerMessage.TYPE_FRIEND_SCHEDULE_PAY)
.build();
//保存消息
customerMessageMapper.insert(customerMessage);
return JsonResult.success();
}
return JsonResult.success(); return JsonResult.success();
} }
@ApiOperation(value = "查看消费记录") @ApiOperation(value = "查看消费记录")
@GetMapping("/customer/pay/getBalanceRecordCard") @GetMapping("/customer/pay/getBalanceRecordCard")
public JsonResult<PageInfo<CustomerBalanceRecord>> getBalanceRecordCard(Integer customerId, public JsonResult<PageInfo<CustomerBalanceRecord>> getBalanceRecordCard(Integer customerId,
int pageNum, int pageNum,
int pageSize) { int pageSize) {
CustomerBalanceRecord param = new CustomerBalanceRecord(); PageInfo<CustomerBalanceRecord> pageInfo = balanceService.getBalanceRecordCard(customerId, pageNum, pageSize);
param.setCustomerId(customerId);
PageHelper.startPage(pageNum, pageSize);
List<CustomerBalanceRecord> list = balanceService.getBalanceRecordCard(param);
//设置推荐人名字
List<StoreUser> allStoreUser = userManageMapper.selectList(new QueryWrapper<>());
Map<String, String> idMapName = new HashMap<>();
for (StoreUser storeUser : allStoreUser) {
idMapName.put(String.valueOf(storeUser.getId()), storeUser.getName());
}
for (CustomerBalanceRecord customerBalanceRecord : list) {
String refereeId = customerBalanceRecord.getRefereeId();
if (refereeId != null && !refereeId.isEmpty()) {
String[] refereeIdArr = refereeId.split(",");
StringBuilder refereeName = new StringBuilder();
for (String s : refereeIdArr) {
if (s != null && !s.isEmpty()) {
refereeName.append(",").append(idMapName.getOrDefault(s, s));
}
}
customerBalanceRecord.setRefereeId(refereeName.substring(1));
}
}
PageInfo<CustomerBalanceRecord> pageInfo = new PageInfo<>(list);
return JsonResult.success(pageInfo); return JsonResult.success(pageInfo);
} }
/**
* 5美甲师端收款。发券
*/
@ApiOperation(value = "美甲师端确认收款。2:会员卡收款;5:刷pos机;7:大众点评团购,8.微信扫二维码支付") @ApiOperation(value = "美甲师端确认收款。2:会员卡收款;5:刷pos机;7:大众点评团购,8.微信扫二维码支付")
@PostMapping("/technician/pay/receiveMoney") @PostMapping("/technician/pay/receiveMoney")
public JsonResult<Void> receiveMoney(@RequestHeader String token, public JsonResult<Void> receiveMoney(@RequestHeader String token,
...@@ -254,10 +184,7 @@ public class PayController { ...@@ -254,10 +184,7 @@ public class PayController {
return JsonResult.success(); return JsonResult.success();
} }
/**
* 美甲师端,充值会员卡
*/
@Transactional
@ApiOperation(value = "美甲师端,充值会员卡") @ApiOperation(value = "美甲师端,充值会员卡")
@PostMapping("/technician/pay/chargeCustomerCard") @PostMapping("/technician/pay/chargeCustomerCard")
public JsonResult<Void> chargeCustomerCard(@RequestHeader String token, public JsonResult<Void> chargeCustomerCard(@RequestHeader String token,
...@@ -267,7 +194,6 @@ public class PayController { ...@@ -267,7 +194,6 @@ public class PayController {
Integer source, Integer source,
String refereeId, String refereeId,
String remark) { String remark) {
chargeOrderService.chargeCustomerCard(name, phone, amount, source, refereeId, remark); chargeOrderService.chargeCustomerCard(name, phone, amount, source, refereeId, remark);
return JsonResult.success(); return JsonResult.success();
} }
......
package com.gogirl.interfaces.xcx;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@RestController
@RequestMapping("/time-node")
public class TimeNodeController {
}
package com.gogirl.interfaces.xcx;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@RestController
@RequestMapping("/week-config")
public class WeekConfigController {
}
...@@ -13,12 +13,15 @@ import lombok.NoArgsConstructor; ...@@ -13,12 +13,15 @@ import lombok.NoArgsConstructor;
public class ConsumerCommand { public class ConsumerCommand {
private Integer customerId; private Integer customerId;
@ApiModelProperty("订单id")
private Integer orderId; private Integer orderId;
@ApiModelProperty("订单金额: 单位分") @ApiModelProperty("订单金额: 单位分")
private Integer amount; private Integer amount;
@ApiModelProperty("订单状态")
private Integer orderStatus; private Integer orderStatus;
@ApiModelProperty("店铺id")
private Integer departmentId; private Integer departmentId;
} }
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