package com.kiisoo.ic.customer; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.kiisoo.ic.customer.entity.OpCustomer; import com.kiisoo.ic.customer.entity.OpSellerCustomerRelation; import com.kiisoo.ic.customer.entity.OpVip; import com.kiisoo.ic.customer.mapper.OpCustomerDOMapper; import com.kiisoo.ic.customer.mapper.OpSellerCustomerRelationDOMapper; import com.kiisoo.ic.customer.mapper.OpVipDOMapper; import com.kiisoo.ic.store.entity.PoiStoreStaff; import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; /** * @ClassName: CustomerService * @Description: 客户业务类 * @Auther: Caps * @Date: 2020/4/2 0002 17:06 * @Version: v1 */ @Service public class CustomerService { private final OpCustomerDOMapper opCustomerDOMapper; private final OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper; private final OpVipDOMapper opVipDOMapper; private final PoiStoreStaffDOMapper poiStoreStaffDOMapper; @Autowired public CustomerService(OpCustomerDOMapper opCustomerDOMapper, OpSellerCustomerRelationDOMapper opSellerCustomerRelationDOMapper, OpVipDOMapper opVipDOMapper, PoiStoreStaffDOMapper poiStoreStaffDOMapper) { this.opCustomerDOMapper = opCustomerDOMapper; this.opSellerCustomerRelationDOMapper = opSellerCustomerRelationDOMapper; this.opVipDOMapper = opVipDOMapper; this.poiStoreStaffDOMapper = poiStoreStaffDOMapper; } /** * 绑定客户的关系 * @param uniId 微信uniId * @param staffCode 分享码的导购Code * @Description: 根据客户联系方式查询客户id 1.判断客户是否存在,不存在就添加,存在就进行下一步 2.判断客户id和导购是否绑定了关系如果绑定了就直接下一步,如果没有就绑定 3.判断客户id和vip是否绑定了关系如果绑定了就直接下一步,如果没有就绑定 */ @Transactional(rollbackFor = Exception.class) @Deprecated public void customerRelation(String uniId,String staffCode){ QueryWrapper customerWrapper = new QueryWrapper<>(); customerWrapper.eq("wechat_uni_id",uniId).last("limit 1"); OpCustomer opCustomer = opCustomerDOMapper.selectOne(customerWrapper); QueryWrapper poiWrapper = new QueryWrapper<>(); poiWrapper.eq("staff_code",staffCode).last("limit 1"); PoiStoreStaff poiStoreStaff = poiStoreStaffDOMapper.selectOne(poiWrapper); if(null != opCustomer){ //存在--1.处理客户导购关系。2.处理客户和vip关系(待定) sellerCustomerRelation(opCustomer,staffCode,poiStoreStaff.getStoreId(),poiStoreStaff.getUserId()); }else { //不存在 OpCustomer insertCustomer = new OpCustomer(); insertCustomer.setWechatUniId(uniId); opCustomerDOMapper.insert(insertCustomer); } } /** * 录入客户信息/绑定客户vip关系(如果是VIP的话) * @param openId 微信openId * @param name 名称 * @param phone 手机号 * @param desc 描述 * @param mail 邮箱 * @param type 类型 */ @Transactional(rollbackFor = Exception.class) @Deprecated public void customerVipRelation(String openId,String name,String phone,String desc,String mail,long type){ OpCustomer opCustomer = new OpCustomer(type,name,phone,desc,mail,new Date(),new Date()); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("phone",phone).last("limit 1"); OpVip opVip = opVipDOMapper.selectOne(wrapper); if(null != opVip){ //有vip信息就绑定信息 opCustomer.setMemberId(opVip.getId()); } QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.eq("wechat_open_id",openId); opCustomerDOMapper.update(opCustomer,wrapper1); } /** * 处理客户和导购的关系 * @param opCustomer 客户的数据信息 * @param staffCode 导购Code */ private void sellerCustomerRelation(OpCustomer opCustomer,String staffCode,long shopId,long sellerId){ QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.eq("customer_id",opCustomer.getId()).eq("staff_code",staffCode).eq("store_id",shopId).last("limit 1"); OpSellerCustomerRelation opSellerCustomerRelation = opSellerCustomerRelationDOMapper.selectOne(wrapper1); if(null == opSellerCustomerRelation){ //不存在就添加 OpSellerCustomerRelation insertRelation = new OpSellerCustomerRelation(); insertRelation.setCreateTime(new Date()); insertRelation.setUpdateTime(new Date()); insertRelation.setCustomerId(opCustomer.getId()); insertRelation.setStoreId(shopId); insertRelation.setUserId(sellerId); opSellerCustomerRelationDOMapper.insert(insertRelation); } } }