Commit be3eb8b0 by Water Wang

optimize

parent d485e78b
...@@ -96,18 +96,18 @@ public class CustomerServiceImpl implements CustomerService{ ...@@ -96,18 +96,18 @@ public class CustomerServiceImpl implements CustomerService{
List<AclCustomer> aclCustomerList = aclCustomerDALService.findByLogin(mobileNo); List<AclCustomer> aclCustomerList = aclCustomerDALService.findByLogin(mobileNo);
if(aclCustomerList.isEmpty()){ if(aclCustomerList.isEmpty()){
DESTypeHandler jpaCryptoConverter = new DESTypeHandler(); DESTypeHandler jpaCryptoConverter = new DESTypeHandler();
mobileNo = jpaCryptoConverter.encode(mobileNo);
AclCustomer aclCustomer = new AclCustomer(); AclCustomer aclCustomer = new AclCustomer();
aclCustomer.setRole(2);//1= Staff 2=Customer 3=Partner aclCustomer.setRole(2);//1= Staff 2=Customer 3=Partner
aclCustomer.setAccountId(accountId); aclCustomer.setAccountId(accountId);
aclCustomer.setLogin(mobileNo); aclCustomer.setLogin(mobileNo);
aclCustomer.setMobileNo(mobileNo); aclCustomer.setMobileNo(jpaCryptoConverter.encode(mobileNo));
aclCustomer.setPassword(EncryptUtil.encrypt(requestVO.getPassword(),null)); aclCustomer.setPassword(EncryptUtil.encrypt(requestVO.getPassword(),null));
aclCustomer.setEmail(requestVO.getEmail()); aclCustomer.setEmail(requestVO.getEmail());
aclCustomer.setCusLevel(1); aclCustomer.setCusLevel(1);
aclCustomer.setName(requestVO.getName()); aclCustomer.setName(requestVO.getName());
aclCustomer.setIsActive(1); aclCustomer.setIsActive(1);
aclCustomer.setRoleId(3L); aclCustomer.setRoleId(3L);
aclCustomer.setWithdrawType(0);
aclCustomer.setCreatedAt(new Date()); aclCustomer.setCreatedAt(new Date());
aclCustomer.setCreatedBy(-1L); aclCustomer.setCreatedBy(-1L);
aclCustomer.setUpdatedAt(new Date()); aclCustomer.setUpdatedAt(new Date());
......
...@@ -15,7 +15,7 @@ public class RecruitRequestVO { ...@@ -15,7 +15,7 @@ public class RecruitRequestVO {
private String tag; private String tag;
private String remark; private String remark;
private String ossPathResume; private String ossPathResume;
private Long assignedId; private Long practitionerId;
public Long getPotentialId() { public Long getPotentialId() {
return potentialId; return potentialId;
...@@ -129,11 +129,11 @@ public class RecruitRequestVO { ...@@ -129,11 +129,11 @@ public class RecruitRequestVO {
this.ossPathResume = ossPathResume; this.ossPathResume = ossPathResume;
} }
public Long getAssignedId() { public Long getPractitionerId() {
return assignedId; return practitionerId;
} }
public void setAssignedId(Long assignedId) { public void setPractitionerId(Long practitionerId) {
this.assignedId = assignedId; this.practitionerId = practitionerId;
} }
} }
...@@ -282,5 +282,6 @@ public class AclCustomer implements Serializable { ...@@ -282,5 +282,6 @@ public class AclCustomer implements Serializable {
*/ */
private Long age; private Long age;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
...@@ -64,5 +64,7 @@ public class AclPractitionerPotentialAssignedTrack implements Serializable { ...@@ -64,5 +64,7 @@ public class AclPractitionerPotentialAssignedTrack implements Serializable {
private Integer updatorType; private Integer updatorType;
private Integer isLasted;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
package com.yd.dal.entity.customer;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* ag_acl_practitioner_subordinate_system
* @author
*/
@Data
public class AclPractitionerSubordinateSystem implements Serializable {
/**
* serial id
*/
private Long id;
/**
* FK ag_acl_insurer.id
*/
private Long insurerId;
/**
* FK ag_acl_insurer.id
*/
private Long insurerBranchId;
/**
* FK ag_acl_insurer_branch_dept.id 所属部门id
*/
private Long deptId;
/**
* 编码
*/
private String subordinateSystemCode;
/**
* dept name
*/
private String name;
/**
* dept english name
*/
private String nameEn;
/**
* FK ag_acl_practitioner.id,体系主管
*/
private Long ownerPractitionerId;
/**
* 联系人
*/
private String contactName;
/**
* 联系电话
*/
private String contactNo;
/**
* memo or tips
*/
private String remark;
/**
* 0=No, 1=Yes
*/
private Integer isActive;
private Date createdAt;
/**
* FK ag_acl_user.id
*/
private Long createdBy;
private Date updatedAt;
/**
* FK ag_acl_user.id
*/
private Long updatedBy;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.yd.dal.entity.practitioner; package com.yd.dal.entity.customer.practitioner;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
......
package com.yd.dal.entity.practitioner; package com.yd.dal.entity.customer.practitioner;
public class PractitionerBasicInfo { public class PractitionerBasicInfo {
private Long customerId; private Long customerId;
......
package com.yd.dal.entity.practitioner; package com.yd.dal.entity.customer.practitioner;
public class PractitionerInfo { public class PractitionerInfo {
private Long customerId; private Long customerId;
......
package com.yd.dal.entity.practitioner; package com.yd.dal.entity.customer.practitioner;
public class PractitionerRankInfo { public class PractitionerRankInfo {
private Long customerId; private Long customerId;
......
package com.yd.dal.entity.practitioner; package com.yd.dal.entity.customer.practitioner;
public class PractitionerSubordinateInfo { public class PractitionerSubordinateInfo {
private Long subordinateId; private Long subordinateId;
......
package com.yd.dal.mapper.customer; package com.yd.dal.mapper.customer;
import com.yd.dal.entity.customer.AclPractitioner; import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.practitioner.AclPractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AclPractitionerMapper { public interface AclPractitionerMapper {
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
...@@ -9,9 +16,23 @@ public interface AclPractitionerMapper { ...@@ -9,9 +16,23 @@ public interface AclPractitionerMapper {
int insertSelective(AclPractitioner record); int insertSelective(AclPractitioner record);
AclPractitioner selectByPrimaryKey(Long id); AclPractitionerInfo selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(AclPractitioner record); int updateByPrimaryKeySelective(AclPractitionerInfo record);
int updateByPrimaryKey(AclPractitioner record); int updateByPrimaryKey(AclPractitioner record);
PractitionerBasicInfo getPractitionerInfoByMobileNoForOffline(String mobileNo);
List<PractitionerRankInfo> getPractitionerRankInfoForOffline(@Param("time") Integer time);
PractitionerBasicInfo getPractitionerInfoByMobileNoForOnline(String mobileNo);
List<PractitionerRankInfo> getPractitionerRankInfoForOnline(@Param("time")Integer time,@Param("practitionerTypeId")Long practitionerTypeId);
List<PractitionerRankInfo> getPractitionerRankInfoForSpecials(@Param("mobileSpecials") List<String> mobileSpecials, @Param("time")Integer time);
PractitionerInfo findPractitionerInfoByLogin(@Param("mobileNo")String mobileNo);
AclPractitioner findByCustomerIdIsActive(@Param("customerId") Long customerId, @Param("isActive")int isActive);
} }
\ No newline at end of file
package com.yd.dal.mapper.customer; package com.yd.dal.mapper.customer;
import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack; import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface AclPractitionerPotentialAssignedTrackMapper { public interface AclPractitionerPotentialAssignedTrackMapper {
int deleteByPrimaryKey(Long id); int deleteByPrimaryKey(Long id);
...@@ -14,4 +16,6 @@ public interface AclPractitionerPotentialAssignedTrackMapper { ...@@ -14,4 +16,6 @@ public interface AclPractitionerPotentialAssignedTrackMapper {
int updateByPrimaryKeySelective(AclPractitionerPotentialAssignedTrack record); int updateByPrimaryKeySelective(AclPractitionerPotentialAssignedTrack record);
int updateByPrimaryKey(AclPractitionerPotentialAssignedTrack record); int updateByPrimaryKey(AclPractitionerPotentialAssignedTrack record);
void insertList(@Param("potentialAssignedTrackList") List<AclPractitionerPotentialAssignedTrack> potentialAssignedTrackList);
} }
\ No newline at end of file
package com.yd.dal.mapper.customer;
import com.yd.dal.entity.customer.AclPractitionerSubordinateSystem;
import com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo;
public interface AclPractitionerSubordinateSystemMapper {
int deleteByPrimaryKey(Long id);
int insert(AclPractitionerSubordinateSystem record);
int insertSelective(AclPractitionerSubordinateSystem record);
AclPractitionerSubordinateSystem selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(AclPractitionerSubordinateSystem record);
int updateByPrimaryKey(AclPractitionerSubordinateSystem record);
PractitionerSubordinateInfo findSubordinateInfo(Long subordinateId);
}
\ No newline at end of file
package com.yd.dal.mapper.practitioner;
import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.practitioner.AclPractitionerInfo;
import org.apache.ibatis.annotations.Param;
public interface AclPractitionerMapper {
int deleteByPrimaryKey(Long id);
int insert(AclPractitionerInfo record);
int insertSelective(AclPractitionerInfo record);
AclPractitionerInfo selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(AclPractitionerInfo record);
int updateByPrimaryKey(AclPractitionerInfo record);
AclPractitioner findByCustomerIdIsActive(@Param("customerId") Long customerId, @Param("isActive")int isActive);
}
\ No newline at end of file
package com.yd.dal.mapper.practitioner;
import com.yd.dal.entity.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.practitioner.PractitionerInfo;
import com.yd.dal.entity.practitioner.PractitionerRankInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface PractitionerMapper {
PractitionerBasicInfo getPractitionerInfoByMobileNoForOffline(String mobileNo);
List<PractitionerRankInfo> getPractitionerRankInfoForOffline(@Param("time") Integer time);
PractitionerBasicInfo getPractitionerInfoByMobileNoForOnline(String mobileNo);
List<PractitionerRankInfo> getPractitionerRankInfoForOnline(@Param("time")Integer time,@Param("practitionerTypeId")Long practitionerTypeId);
List<PractitionerRankInfo> getPractitionerRankInfoForSpecials(@Param("mobileSpecials") List<String> mobileSpecials, @Param("time")Integer time);
PractitionerInfo findPractitionerInfoByLogin(@Param("mobileNo")String mobileNo);
}
package com.yd.dal.mapper.practitioner;
import com.yd.dal.entity.practitioner.PractitionerSubordinateInfo;
import org.apache.ibatis.annotations.Param;
public interface PractitionerSubordinateMapper {
PractitionerSubordinateInfo findSubordinateInfo(@Param("subordinateId") Long subordinateId);
}
package com.yd.dal.service.customer; package com.yd.dal.service.customer;
import com.yd.dal.entity.customer.AclPractitioner; import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.practitioner.AclPractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
@Service("aclPractitionerDALService") @Service("aclPractitionerDALService")
public interface AclPractitionerDALService { public interface AclPractitionerDALService {
/** /**
...@@ -12,4 +18,58 @@ public interface AclPractitionerDALService { ...@@ -12,4 +18,58 @@ public interface AclPractitionerDALService {
* @return * @return
*/ */
AclPractitioner findByCustomerIdIsActive(Long customerId, int i); AclPractitioner findByCustomerIdIsActive(Long customerId, int i);
/**
* 线下--通过手机号码获取经纪人的基础信息
* @param mobileNo
* @return
*/
PractitionerBasicInfo getPractitionerBasicInfoForOffline(String mobileNo);
/**
* 线上--通过手机号码获取经纪人的基础信息
* @param mobileNo
* @return
*/
PractitionerBasicInfo getPractitionerBasicInfoForOnline(String mobileNo);
/**
* 线下--按照时间进行查询经纪人的排名统计信息
* @param time 1-month,2-year
* @return
*/
List<PractitionerRankInfo> getPractitionerRankInfoForOffline(Integer time);
/**
* 线上--按照时间进行查询经纪人的排名统计信息
* @param time 1-month,2-year
* @return
*/
List<PractitionerRankInfo> getPractitionerRankInfoForOnline(Integer time,Long practitionerTypeId);
/**
* 线上--按照时间进行查询特殊人员的排名统计信息
* @param mobileSpecials
* @return
*/
List<PractitionerRankInfo> getPractitionerRankInfoForSpecials(List<String> mobileSpecials,Integer time);
/**
* 经纪人基本信息查询
* @param mobileNo
* @return
*/
PractitionerInfo findPractitionerInfoByLogin(String mobileNo);
/**
* 通过经纪人id查找经纪人
* @param practitionerId
* @return
*/
AclPractitionerInfo findPractitionerById(Long practitionerId);
/**
* 通过id更新practitioner
* @param practitioner
*/
void updatePractitioner(AclPractitionerInfo practitioner);
} }
package com.yd.dal.service.customer;
import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("aclPractitionerPotentialAssignedTrackDALService")
public interface AclPractitionerPotentialAssignedTrackDALService {
void saveAll(List<AclPractitionerPotentialAssignedTrack> potentialAssignedTrackList);
}
...@@ -13,4 +13,11 @@ public interface AclPractitionerPotentialDALService { ...@@ -13,4 +13,11 @@ public interface AclPractitionerPotentialDALService {
* @return * @return
*/ */
List<AclPractitionerPotential> findByMobileNo(String mobileNo,Integer isActive); List<AclPractitionerPotential> findByMobileNo(String mobileNo,Integer isActive);
/**
* 保存
* @param practitionerPotential
* @return
*/
int save(AclPractitionerPotential practitionerPotential);
} }
package com.yd.dal.service.customer;
import com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo;
import org.springframework.stereotype.Service;
@Service("aclPractitionerSubordinateSystemDALService")
public interface AclPractitionerSubordinateSystemDALService {
PractitionerSubordinateInfo findSubordinateInfo(Long subordinateId);
}
package com.yd.dal.service.customer.impl; package com.yd.dal.service.customer.impl;
import com.google.common.base.Strings;
import com.yd.dal.entity.customer.AclPractitioner; import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.mapper.practitioner.AclPractitionerMapper; import com.yd.dal.entity.customer.practitioner.AclPractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import com.yd.dal.mapper.customer.AclPractitionerMapper;
import com.yd.dal.service.customer.AclPractitionerDALService; import com.yd.dal.service.customer.AclPractitionerDALService;
import org.springframework.beans.factory.annotation.Autowired; import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("aclPractitionerDALService")
public class AclPractitionerDALServiceImpl implements AclPractitionerDALService { public class AclPractitionerDALServiceImpl implements AclPractitionerDALService {
private static final Logger LOG = Logger.getLogger(AclPractitionerDALServiceImpl.class);
@Autowired @Resource
private AclPractitionerMapper aclPractitionerMapper; private AclPractitionerMapper aclPractitionerMapper;
@Override @Override
public AclPractitioner findByCustomerIdIsActive(Long customerId, int isActive) { public AclPractitioner findByCustomerIdIsActive(Long customerId, int isActive) {
return aclPractitionerMapper.findByCustomerIdIsActive(customerId,isActive); return aclPractitionerMapper.findByCustomerIdIsActive(customerId,isActive);
} }
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public PractitionerBasicInfo getPractitionerBasicInfoForOffline(String mobileNo) {
if(!Strings.isNullOrEmpty(mobileNo)){
return aclPractitionerMapper.getPractitionerInfoByMobileNoForOffline(mobileNo);
}else{
LOG.error("mobileNo is null!");
}
return null;
}
@Override
public PractitionerBasicInfo getPractitionerBasicInfoForOnline(String mobileNo) {
if(!Strings.isNullOrEmpty(mobileNo)){
return aclPractitionerMapper.getPractitionerInfoByMobileNoForOnline(mobileNo);
}else{
LOG.error("mobileNo is null!");
}
return null;
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public List<PractitionerRankInfo> getPractitionerRankInfoForOffline(Integer time) {
return aclPractitionerMapper.getPractitionerRankInfoForOffline(time);
}
@Override
public List<PractitionerRankInfo> getPractitionerRankInfoForOnline(Integer time,Long practitionerTypeId) {
return aclPractitionerMapper.getPractitionerRankInfoForOnline(time,practitionerTypeId);
}
@Override
public List<PractitionerRankInfo> getPractitionerRankInfoForSpecials(List<String> mobileSpecials,Integer time) {
return aclPractitionerMapper.getPractitionerRankInfoForSpecials(mobileSpecials,time);
}
@Override
public PractitionerInfo findPractitionerInfoByLogin(String mobileNo) {
return aclPractitionerMapper.findPractitionerInfoByLogin(mobileNo);
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER)
public AclPractitionerInfo findPractitionerById(Long practitionerId) {
return aclPractitionerMapper.selectByPrimaryKey(practitionerId);
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER)
public void updatePractitioner(AclPractitionerInfo practitioner) {
aclPractitionerMapper.updateByPrimaryKeySelective(practitioner);
}
} }
package com.yd.dal.service.customer.impl;
import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack;
import com.yd.dal.mapper.customer.AclPractitionerPotentialAssignedTrackMapper;
import com.yd.dal.service.customer.AclPractitionerPotentialAssignedTrackDALService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("aclPractitionerPotentialAssignedTrackDALService")
public class AclPractitionerPotentialAssignedTrackDALServiceImpl implements AclPractitionerPotentialAssignedTrackDALService {
@Autowired
private AclPractitionerPotentialAssignedTrackMapper aclPractitionerPotentialAssignedTrackMapper;
@Override
public void saveAll(List<AclPractitionerPotentialAssignedTrack> potentialAssignedTrackList) {
aclPractitionerPotentialAssignedTrackMapper.insertList(potentialAssignedTrackList);
}
}
...@@ -4,9 +4,10 @@ import com.yd.dal.entity.customer.AclPractitionerPotential; ...@@ -4,9 +4,10 @@ import com.yd.dal.entity.customer.AclPractitionerPotential;
import com.yd.dal.mapper.customer.AclPractitionerPotentialMapper; import com.yd.dal.mapper.customer.AclPractitionerPotentialMapper;
import com.yd.dal.service.customer.AclPractitionerPotentialDALService; import com.yd.dal.service.customer.AclPractitionerPotentialDALService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@Service("aclPractitionerPotentialDALService")
public class AclPractitionerPotentialDALServiceImpl implements AclPractitionerPotentialDALService { public class AclPractitionerPotentialDALServiceImpl implements AclPractitionerPotentialDALService {
@Autowired @Autowired
...@@ -15,4 +16,9 @@ public class AclPractitionerPotentialDALServiceImpl implements AclPractitionerPo ...@@ -15,4 +16,9 @@ public class AclPractitionerPotentialDALServiceImpl implements AclPractitionerPo
public List<AclPractitionerPotential> findByMobileNo(String mobileNo, Integer isActive) { public List<AclPractitionerPotential> findByMobileNo(String mobileNo, Integer isActive) {
return aclPractitionerPotentialMapper.findByMobileNo(mobileNo,isActive); return aclPractitionerPotentialMapper.findByMobileNo(mobileNo,isActive);
} }
@Override
public int save(AclPractitionerPotential practitionerPotential) {
return aclPractitionerPotentialMapper.insert(practitionerPotential);
}
} }
package com.yd.dal.service.practitioner.impl; package com.yd.dal.service.customer.impl;
import com.yd.dal.entity.practitioner.PractitionerSubordinateInfo; import com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo;
import com.yd.dal.mapper.practitioner.PractitionerSubordinateMapper; import com.yd.dal.mapper.customer.AclPractitionerSubordinateSystemMapper;
import com.yd.dal.service.practitioner.PractitionerSubordinateDALService; import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service("practitionerSubordinateDALService") import javax.annotation.Resource;
public class PractitionerSubordinateDALServiceImpl implements PractitionerSubordinateDALService {
@Autowired @Service("aclPractitionerSubordinateSystemDALService")
private PractitionerSubordinateMapper practitionerSubordinateMapper; public class AclPractitionerSubordinateSystemDALServiceImpl implements AclPractitionerSubordinateSystemDALService {
@Resource
private AclPractitionerSubordinateSystemMapper aclPractitionerSubordinateSystemMapper;
/** /**
* 根据体系ID获取体系相关信息 * 根据体系ID获取体系相关信息
* @param subordinateId 体系ID * @param subordinateId 体系ID
...@@ -19,7 +20,7 @@ public class PractitionerSubordinateDALServiceImpl implements PractitionerSubord ...@@ -19,7 +20,7 @@ public class PractitionerSubordinateDALServiceImpl implements PractitionerSubord
public PractitionerSubordinateInfo findSubordinateInfo(Long subordinateId) { public PractitionerSubordinateInfo findSubordinateInfo(Long subordinateId) {
PractitionerSubordinateInfo subordinateInfo = null; PractitionerSubordinateInfo subordinateInfo = null;
if(subordinateId != null){ if(subordinateId != null){
subordinateInfo = practitionerSubordinateMapper.findSubordinateInfo(subordinateId); subordinateInfo = aclPractitionerSubordinateSystemMapper.findSubordinateInfo(subordinateId);
} }
return subordinateInfo; return subordinateInfo;
} }
......
package com.yd.dal.service.practitioner;
import com.yd.dal.entity.customer.AclFileUpload;
import com.yd.dal.entity.practitioner.AclPractitionerInfo;
import com.yd.dal.entity.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.practitioner.PractitionerInfo;
import com.yd.dal.entity.practitioner.PractitionerRankInfo;
import java.util.List;
public interface PractitionerDALService {
/**
* 线下--通过手机号码获取经纪人的基础信息
* @param mobileNo
* @return
*/
PractitionerBasicInfo getPractitionerBasicInfoForOffline(String mobileNo);
/**
* 线上--通过手机号码获取经纪人的基础信息
* @param mobileNo
* @return
*/
PractitionerBasicInfo getPractitionerBasicInfoForOnline(String mobileNo);
/**
* 线下--按照时间进行查询经纪人的排名统计信息
* @param time 1-month,2-year
* @return
*/
List<PractitionerRankInfo> getPractitionerRankInfoForOffline(Integer time);
/**
* 线上--按照时间进行查询经纪人的排名统计信息
* @param time 1-month,2-year
* @return
*/
List<PractitionerRankInfo> getPractitionerRankInfoForOnline(Integer time,Long practitionerTypeId);
/**
* 线上--按照时间进行查询特殊人员的排名统计信息
* @param mobileSpecials
* @return
*/
List<PractitionerRankInfo> getPractitionerRankInfoForSpecials(List<String> mobileSpecials,Integer time);
/**
* 经纪人基本信息查询
* @param mobileNo
* @return
*/
PractitionerInfo findPractitionerInfoByLogin(String mobileNo);
/**
* 通过经纪人id查找经纪人
* @param practitionerId
* @return
*/
AclPractitionerInfo findPractitionerById(Long practitionerId);
/**
* 通过id更新practitioner
* @param practitioner
*/
void updatePractitioner(AclPractitionerInfo practitioner);
}
package com.yd.dal.service.practitioner;
import com.yd.dal.entity.practitioner.PractitionerSubordinateInfo;
import org.springframework.stereotype.Service;
@Service("practitionerSubordinateDALService")
public interface PractitionerSubordinateDALService {
PractitionerSubordinateInfo findSubordinateInfo(Long subordinateId);
}
package com.yd.dal.service.practitioner.impl;
import com.google.common.base.Strings;
import com.yd.dal.entity.practitioner.AclPractitionerInfo;
import com.yd.dal.entity.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.practitioner.PractitionerInfo;
import com.yd.dal.entity.practitioner.PractitionerRankInfo;
import com.yd.dal.mapper.practitioner.AclPractitionerMapper;
import com.yd.dal.mapper.practitioner.PractitionerMapper;
import com.yd.dal.service.customer.impl.CustomerDALServiceImpl;
import com.yd.dal.service.practitioner.PractitionerDALService;
import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service("practitionerServiceDAL")
public class PractitionerDALServiceImpl implements PractitionerDALService {
private static final Logger LOG = Logger.getLogger(CustomerDALServiceImpl.class);
@Resource
private PractitionerMapper practitionerMapper;
@Resource
private AclPractitionerMapper aclPractitionerMapper;
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public PractitionerBasicInfo getPractitionerBasicInfoForOffline(String mobileNo) {
if(!Strings.isNullOrEmpty(mobileNo)){
return practitionerMapper.getPractitionerInfoByMobileNoForOffline(mobileNo);
}else{
LOG.error("mobileNo is null!");
}
return null;
}
@Override
public PractitionerBasicInfo getPractitionerBasicInfoForOnline(String mobileNo) {
if(!Strings.isNullOrEmpty(mobileNo)){
return practitionerMapper.getPractitionerInfoByMobileNoForOnline(mobileNo);
}else{
LOG.error("mobileNo is null!");
}
return null;
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public List<PractitionerRankInfo> getPractitionerRankInfoForOffline(Integer time) {
return practitionerMapper.getPractitionerRankInfoForOffline(time);
}
@Override
public List<PractitionerRankInfo> getPractitionerRankInfoForOnline(Integer time,Long practitionerTypeId) {
return practitionerMapper.getPractitionerRankInfoForOnline(time,practitionerTypeId);
}
@Override
public List<PractitionerRankInfo> getPractitionerRankInfoForSpecials(List<String> mobileSpecials,Integer time) {
return practitionerMapper.getPractitionerRankInfoForSpecials(mobileSpecials,time);
}
@Override
public PractitionerInfo findPractitionerInfoByLogin(String mobileNo) {
return practitionerMapper.findPractitionerInfoByLogin(mobileNo);
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER)
public AclPractitionerInfo findPractitionerById(Long practitionerId) {
return aclPractitionerMapper.selectByPrimaryKey(practitionerId);
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER)
public void updatePractitioner(AclPractitionerInfo practitioner) {
aclPractitionerMapper.updateByPrimaryKeySelective(practitioner);
}
}
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
830007=上传头像失败,请重新上传! 830007=上传头像失败,请重新上传!
830008=上传生活照失败,请重新上传! 830008=上传生活照失败,请重新上传!
830009=上传微信二维码失败,请重新上传! 830009=上传微信二维码失败,请重新上传!
830010=该用户已经注册为银盾经纪人! 830010=该用户已经注册为银盾经纪人
830011=该增员已存在!
900003=保险公司响应报文为空! 900003=保险公司响应报文为空!
\ No newline at end of file
...@@ -487,4 +487,195 @@ ...@@ -487,4 +487,195 @@
gender = #{gender,jdbcType=INTEGER} gender = #{gender,jdbcType=INTEGER}
where id = #{id,jdbcType=BIGINT} where id = #{id,jdbcType=BIGINT}
</update> </update>
<resultMap id="base_result_map_practitioner_info" type="com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo">
<result column="customerId" property="customerId"/>
<result column="practitionerIdForOnline" property="practitionerIdForOnline"/>
<result column="practitionerId" property="practitionerId"/>
<result column="name" property="name"/>
<result column="titleCode" property="titleCode" />
<!-- <result column="mobile_no" property="titleCode" typeHandler="com.yd.util.deshandler.DESTypeHandler"/>-->
<result column="titleName" property="titleName"/>
<result column="gender" property="gender"/>
</resultMap>
<select id="getPractitionerInfoByMobileNoForOffline" resultMap="base_result_map_practitioner_info">
SELECT
p.SAL_MST_ID as practitionerId,
p.SAL_MST_NAME as name,
p.SAL_MST_GENDER as gender,
md.DRP_TITLE_LEVEL as titleCode,
md.DRP_TITLE_NAME as titleName
FROM sal001 p left join DRP003 md on md.DRP_TITLE_CODE = p.FK_DRP_TITLE_CODE
where p.SAL_MST_MOBILE = #{mobileNo}
</select>
<select id="getPractitionerInfoByMobileNoForOnline" resultMap="base_result_map_practitioner_info">
select
p.customer_id as customerId,
p.id as practitionerIdForOnline,
p.name as name,
o.drop_option_code as titleCode,
o.drop_option_name as titleName,
p.gender as gender
from ag_acl_customer c inner join ag_acl_practitioner p on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
inner join ag_md_drop_options o on s.practitioner_level = o.id
where c.login = #{mobileNo};
</select>
<resultMap id="practitioner_rank_map" type="com.yd.dal.entity.customer.practitioner.PractitionerRankInfo">
<result column="customerId" property="customerId"/>
<result column="practitionerIdForOnLine" property="practitionerIdForOnLine"/>
<result column="practitionerId" property="practitionerId"/>
<result column="name" property="name"/>
<result column="titleCode" property="titleCode" />
<result column="titleName" property="titleName"/>
<result column="count" property="count"/>
<result column="fyp" property="fyp"/>
<result column="fyc" property="fyc"/>
</resultMap>
<select id="getPractitionerRankInfoForOffline" resultMap="practitioner_rank_map" resultType="java.lang.Integer">
SELECT
p.SAL_MST_ID as practitionerId ,
p.SAL_MST_NAME as name ,-- 姓名
md.DRP_TITLE_LEVEL as titleCode,-- 职称code
md.DRP_TITLE_NAME as titleName,-- 职称名称
spc.SPC_DIV_NAME as spcDivName,-- 体系id
count(m.MON025_002) as count,-- 保单id
sum(m.MON025_401) as fyp,-- 保费
sum(m.MON025_405) as fyc -- 应发佣金
FROM MON025 m INNER JOIN sal001 p on m.MON025_007 = p.SAL_MST_ID -- 业务员id
left join DRP003 md on p.FK_DRP_TITLE_CODE = md.DRP_TITLE_CODE
inner JOIN ins001 policy on m.MON025_002 = policy.INS_MST_ID -- 保单id
inner join spc004 spc on m.MON025_006 = spc.SPC_DIV_ID -- 体系
WHERE m.MON025_109 IN (1,2,3) AND m.MON025_303 = 1
<choose>
<when test="time == 1">
and DATE_FORMAT(policy.INS_MST_ACCEPT_DATE, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time == 3">
and QUARTER(policy.INS_MST_ACCEPT_DATE) = QUARTER(NOW()) AND year(policy.INS_MST_ACCEPT_DATE)=year(now())
</when>
<otherwise>
and YEAR(policy.INS_MST_ACCEPT_DATE) = YEAR(now())
</otherwise>
</choose>
group by p.SAL_MST_ID;
</select>
<select id="getPractitionerRankInfoForOnline" resultMap="practitioner_rank_map">
SELECT
p.customer_id as customerId,
p.id as practitionerIdForOnLine ,
p.name as name ,-- 姓名
ss.name as spcDivName,-- 体系id
count(f.id) as count,-- 保单id
sum(f.order_price) as fyp,-- 保费
sum(f.referral_amount) as fyc -- 应发佣金
FROM ag_acl_customer_fortune f INNER JOIN ag_po_order o ON f.order_id = o.id
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE o.status = 3 and o.order_price > 0
<if test="practitionerTypeId != null">
and s.practitioner_type_id = #{practitionerTypeId}
</if>
<choose>
<when test="time == 1">
and DATE_FORMAT(f.order_date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time == 3">
and QUARTER(f.order_date) = QUARTER(NOW()) AND year(f.order_date)=year(now())
</when>
<otherwise>
and YEAR(f.order_date) = YEAR(now())
</otherwise>
</choose>
group by p.id;
</select>
<select id="getPractitionerRankInfoForSpecials" resultMap="practitioner_rank_map" resultType="java.util.List">
SELECT
p.customer_id as customerId,
p.id as practitionerIdForOnLine ,
p.name as name ,-- 姓名
ss.name as spcDivName,-- 体系id
count(f.id) as count,-- 保单id
sum(f.order_price) as fyp,-- 保费
sum(f.referral_amount) as fyc -- 应发佣金
FROM ag_acl_customer_fortune f INNER JOIN ag_po_order o ON f.order_id = o.id
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_customer c on p.customer_id = c.id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE o.status = 3 and o.order_price > 0
and c.login in
<foreach collection="mobileSpecials" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<choose>
<when test="time == 1">
and DATE_FORMAT(f.order_date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time == 3">
and QUARTER(f.order_date) = QUARTER(NOW()) AND year(f.order_date)=year(now())
</when>
<otherwise>
and YEAR(f.order_date) = YEAR(now())
</otherwise>
</choose>
group by p.id;
</select>
<resultMap id="practitioner_info_map" type="com.yd.dal.entity.customer.practitioner.PractitionerInfo">
<result column="customerId" property="customerId"/>
<result column="practitionerId" property="practitionerId"/>
<result column="name" property="name"/>
<result column="gender" property="gender"/>
<result column="practitionerType" property="practitionerType" />
<result column="levelCode" property="levelCode" />
<result column="levelName" property="levelName"/>
<result column="insurerBranchName" property="insurerBranchName"/>
<result column="subordinateId" property="subordinateId"/>
<result column="weChatId" property="weChatId"/>
<result column="qqId" property="qqId"/>
<result column="practitionerRegNo" property="practitionerRegNo"/>
</resultMap>
<select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map">
select
p.customer_id as customerId,
p.id as practitionerId,
p.name as name,
p.gender as gender,
s.practitioner_type_id as practitionerType,
o.drop_option_code as levelCode,
o.drop_option_name as levelName,
b.branch_name as insurerBranchName,
p.subordinate_system_id as subordinateId,
p.wechat_id as weChatId,
p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo
from ag_acl_customer c inner join ag_acl_practitioner p on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
inner join ag_md_drop_options o on s.practitioner_level = o.id
where c.login = #{mobileNo};
</select>
<select id="findByCustomerIdIsActive" resultType="com.yd.dal.entity.customer.AclPractitioner">
select
<include refid="Base_Column_List" />
from ag_acl_practitioner
where customer_id = #{customerId,jdbcType=BIGINT}
and is_active = #{isActive,jdbcType=INTEGER}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -14,10 +14,11 @@ ...@@ -14,10 +14,11 @@
<result column="updated_by" jdbcType="BIGINT" property="updatedBy" /> <result column="updated_by" jdbcType="BIGINT" property="updatedBy" />
<result column="updator_type" jdbcType="INTEGER" property="updatorType" /> <result column="updator_type" jdbcType="INTEGER" property="updatorType" />
<result column="creator_type" jdbcType="INTEGER" property="creatorType" /> <result column="creator_type" jdbcType="INTEGER" property="creatorType" />
<result column="is_lasted" jdbcType="INTEGER" property="isLasted" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, practitioner_potential_id, practitioner_assigned_id, track_status_id, notice, id, practitioner_potential_id, practitioner_assigned_id, track_status_id, notice,
is_active, created_at, created_by, updated_at, updated_by, creator_type, updator_type is_active, created_at, created_by, updated_at, updated_by, creator_type, updator_type,is_lasted
</sql> </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select select
...@@ -33,11 +34,11 @@ ...@@ -33,11 +34,11 @@
insert into ag_acl_practitioner_potential_assigned_track (practitioner_potential_id, practitioner_assigned_id, insert into ag_acl_practitioner_potential_assigned_track (practitioner_potential_id, practitioner_assigned_id,
track_status_id, notice, is_active, track_status_id, notice, is_active,
created_at, created_by, updated_at, created_at, created_by, updated_at,
updated_by, updator_type,creator_type ) updated_by, updator_type,creator_type,is_lasted )
values (#{practitionerPotentialId,jdbcType=BIGINT}, #{practitionerAssignedId,jdbcType=BIGINT}, values (#{practitionerPotentialId,jdbcType=BIGINT}, #{practitionerAssignedId,jdbcType=BIGINT},
#{trackStatusId,jdbcType=BIGINT}, #{notice,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER}, #{trackStatusId,jdbcType=BIGINT}, #{notice,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP}, #{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP},
#{updatedBy,jdbcType=BIGINT},#{updatorType,jdbcType=INTEGER}, #{creatorType,jdbcType=INTEGER}) #{updatedBy,jdbcType=BIGINT},#{updatorType,jdbcType=INTEGER}, #{creatorType,jdbcType=INTEGER},#{isLasted,jdbcType=INTEGER})
</insert> </insert>
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack" useGeneratedKeys="true"> <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack" useGeneratedKeys="true">
insert into ag_acl_practitioner_potential_assigned_track insert into ag_acl_practitioner_potential_assigned_track
...@@ -100,6 +101,29 @@ ...@@ -100,6 +101,29 @@
</if> </if>
</trim> </trim>
</insert> </insert>
<insert id="insertList" parameterType="java.util.List" useGeneratedKeys="true" >
insert into ag_acl_practitioner_potential_assigned_track(practitioner_potential_id, practitioner_assigned_id,
track_status_id, notice, is_active,
created_at, created_by, updated_at,
updated_by, updator_type,creator_type,is_lasted )
values
<foreach collection="potentialAssignedTrackList" item="item" index="index" separator=",">
(
#{item.practitionerPotentialId},
#{item.practitionerAssignedId},
#{item.trackStatusId},
#{item.notice},
#{item.isActive},
#{item.createdAt},
#{item.createdBy},
#{item.updatedAt},
#{item.updatedBy},
#{item.updatorType},
#{item.creatorType},
#{item.isLasted}
)
</foreach>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack"> <update id="updateByPrimaryKeySelective" parameterType="com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack">
update ag_acl_practitioner_potential_assigned_track update ag_acl_practitioner_potential_assigned_track
<set> <set>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yd.dal.mapper.practitioner.PractitionerMapper">
<resultMap id="base_result_map_practitioner_info" type="com.yd.dal.entity.practitioner.PractitionerBasicInfo">
<result column="customerId" property="customerId"/>
<result column="practitionerIdForOnline" property="practitionerIdForOnline"/>
<result column="practitionerId" property="practitionerId"/>
<result column="name" property="name"/>
<result column="titleCode" property="titleCode" />
<!-- <result column="mobile_no" property="titleCode" typeHandler="com.yd.util.deshandler.DESTypeHandler"/>-->
<result column="titleName" property="titleName"/>
<result column="gender" property="gender"/>
</resultMap>
<select id="getPractitionerInfoByMobileNoForOffline" resultMap="base_result_map_practitioner_info">
SELECT
p.SAL_MST_ID as practitionerId,
p.SAL_MST_NAME as name,
p.SAL_MST_GENDER as gender,
md.DRP_TITLE_LEVEL as titleCode,
md.DRP_TITLE_NAME as titleName
FROM sal001 p left join DRP003 md on md.DRP_TITLE_CODE = p.FK_DRP_TITLE_CODE
where p.SAL_MST_MOBILE = #{mobileNo}
</select>
<select id="getPractitionerInfoByMobileNoForOnline" resultMap="base_result_map_practitioner_info">
select
p.customer_id as customerId,
p.id as practitionerIdForOnline,
p.name as name,
o.drop_option_code as titleCode,
o.drop_option_name as titleName,
p.gender as gender
from ag_acl_customer c inner join ag_acl_practitioner p on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
inner join ag_md_drop_options o on s.practitioner_level = o.id
where c.login = #{mobileNo};
</select>
<resultMap id="practitioner_rank_map" type="com.yd.dal.entity.practitioner.PractitionerRankInfo">
<result column="customerId" property="customerId"/>
<result column="practitionerIdForOnLine" property="practitionerIdForOnLine"/>
<result column="practitionerId" property="practitionerId"/>
<result column="name" property="name"/>
<result column="titleCode" property="titleCode" />
<result column="titleName" property="titleName"/>
<result column="count" property="count"/>
<result column="fyp" property="fyp"/>
<result column="fyc" property="fyc"/>
</resultMap>
<select id="getPractitionerRankInfoForOffline" resultMap="practitioner_rank_map" resultType="java.lang.Integer">
SELECT
p.SAL_MST_ID as practitionerId ,
p.SAL_MST_NAME as name ,-- 姓名
md.DRP_TITLE_LEVEL as titleCode,-- 职称code
md.DRP_TITLE_NAME as titleName,-- 职称名称
spc.SPC_DIV_NAME as spcDivName,-- 体系id
count(m.MON025_002) as count,-- 保单id
sum(m.MON025_401) as fyp,-- 保费
sum(m.MON025_405) as fyc -- 应发佣金
FROM MON025 m INNER JOIN sal001 p on m.MON025_007 = p.SAL_MST_ID -- 业务员id
left join DRP003 md on p.FK_DRP_TITLE_CODE = md.DRP_TITLE_CODE
inner JOIN ins001 policy on m.MON025_002 = policy.INS_MST_ID -- 保单id
inner join spc004 spc on m.MON025_006 = spc.SPC_DIV_ID -- 体系
WHERE m.MON025_109 IN (1,2,3) AND m.MON025_303 = 1
<choose>
<when test="time == 1">
and DATE_FORMAT(policy.INS_MST_ACCEPT_DATE, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time == 3">
and QUARTER(policy.INS_MST_ACCEPT_DATE) = QUARTER(NOW()) AND year(policy.INS_MST_ACCEPT_DATE)=year(now())
</when>
<otherwise>
and YEAR(policy.INS_MST_ACCEPT_DATE) = YEAR(now())
</otherwise>
</choose>
group by p.SAL_MST_ID;
</select>
<select id="getPractitionerRankInfoForOnline" resultMap="practitioner_rank_map">
SELECT
p.customer_id as customerId,
p.id as practitionerIdForOnLine ,
p.name as name ,-- 姓名
ss.name as spcDivName,-- 体系id
count(f.id) as count,-- 保单id
sum(f.order_price) as fyp,-- 保费
sum(f.referral_amount) as fyc -- 应发佣金
FROM ag_acl_customer_fortune f INNER JOIN ag_po_order o ON f.order_id = o.id
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE o.status = 3 and o.order_price > 0
<if test="practitionerTypeId != null">
and s.practitioner_type_id = #{practitionerTypeId}
</if>
<choose>
<when test="time == 1">
and DATE_FORMAT(f.order_date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time == 3">
and QUARTER(f.order_date) = QUARTER(NOW()) AND year(f.order_date)=year(now())
</when>
<otherwise>
and YEAR(f.order_date) = YEAR(now())
</otherwise>
</choose>
group by p.id;
</select>
<select id="getPractitionerRankInfoForSpecials" resultMap="practitioner_rank_map" resultType="java.util.List">
SELECT
p.customer_id as customerId,
p.id as practitionerIdForOnLine ,
p.name as name ,-- 姓名
ss.name as spcDivName,-- 体系id
count(f.id) as count,-- 保单id
sum(f.order_price) as fyp,-- 保费
sum(f.referral_amount) as fyc -- 应发佣金
FROM ag_acl_customer_fortune f INNER JOIN ag_po_order o ON f.order_id = o.id
inner JOIN ag_acl_practitioner p ON f.customer_id = p.customer_id
left join ag_acl_customer c on p.customer_id = c.id
left join ag_acl_practitioner_subordinate_system ss on p.subordinate_system_id = ss.id
WHERE o.status = 3 and o.order_price > 0
and c.login in
<foreach collection="mobileSpecials" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<choose>
<when test="time == 1">
and DATE_FORMAT(f.order_date, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</when>
<when test="time == 3">
and QUARTER(f.order_date) = QUARTER(NOW()) AND year(f.order_date)=year(now())
</when>
<otherwise>
and YEAR(f.order_date) = YEAR(now())
</otherwise>
</choose>
group by p.id;
</select>
<resultMap id="practitioner_info_map" type="com.yd.dal.entity.practitioner.PractitionerInfo">
<result column="customerId" property="customerId"/>
<result column="practitionerId" property="practitionerId"/>
<result column="name" property="name"/>
<result column="gender" property="gender"/>
<result column="practitionerType" property="practitionerType" />
<result column="levelCode" property="levelCode" />
<result column="levelName" property="levelName"/>
<result column="insurerBranchName" property="insurerBranchName"/>
<result column="subordinateId" property="subordinateId"/>
<result column="weChatId" property="weChatId"/>
<result column="qqId" property="qqId"/>
<result column="practitionerRegNo" property="practitionerRegNo"/>
</resultMap>
<select id="findPractitionerInfoByLogin" resultMap="practitioner_info_map">
select
p.customer_id as customerId,
p.id as practitionerId,
p.name as name,
p.gender as gender,
s.practitioner_type_id as practitionerType,
o.drop_option_code as levelCode,
o.drop_option_name as levelName,
b.branch_name as insurerBranchName,
p.subordinate_system_id as subordinateId,
p.wechat_id as weChatId,
p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo
from ag_acl_customer c inner join ag_acl_practitioner p on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
inner join ag_md_drop_options o on s.practitioner_level = o.id
where c.login = #{mobileNo};
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yd.dal.mapper.practitioner.PractitionerSubordinateMapper">
<resultMap id="practitioner_subordinate_map" type="com.yd.dal.entity.practitioner.PractitionerSubordinateInfo">
<result column="subordinateId" property="subordinateId"/>
<result column="subordinateName" property="subordinateName"/>
<result column="subordinateCode" property="subordinateCode"/>
<result column="ownerId" property="ownerId"/>
<result column="subordinateLeader" property="subordinateLeader"/>
<result column="contactName" property="contactName"/>
<result column="contactNo" property="contactNo"/>
<result column="remark" property="remark"/>
</resultMap>
<select id="findSubordinateInfo" resultMap="practitioner_subordinate_map">
SELECT
s.id as subordinateId,
s.name as subordinateName,
s.subordinate_system_code as subordinateCode,
s.owner_practitioner_id as ownerId,
p.name as subordinateLeader,
s.contact_name as contactName,
s.contact_no as contactNo,
s.remark as remark
FROM ag_acl_practitioner_subordinate_system s left join ag_acl_practitioner p on s.owner_practitioner_id = p.id
where s.is_active = 1
and s.id = #{subordinateId}
</select>
</mapper>
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