|
|
@@ -12,11 +12,18 @@ import com.ydtech.modules.base.model.dto.PageDto;
|
|
|
import com.ydtech.modules.base.model.vo.PageVo;
|
|
|
import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
|
|
|
import com.ydtech.modules.esm.model.EsmUserReferrer;
|
|
|
+import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
|
|
|
+import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
|
|
|
import com.ydtech.modules.esm.service.EsmUserReferrerService;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
+import org.springframework.jdbc.core.RowCallbackHandler;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.sql.DataSource;
|
|
|
+import java.sql.ResultSet;
|
|
|
+import java.sql.SQLException;
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
@@ -24,7 +31,8 @@ import java.util.*;
|
|
|
public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMapper, EsmUserReferrer>
|
|
|
implements EsmUserReferrerService {
|
|
|
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ public DataSource dataSource;
|
|
|
@Autowired
|
|
|
private SysUserService sysUserService;
|
|
|
@Autowired
|
|
|
@@ -140,6 +148,85 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
|
|
|
|
|
|
return pageVo;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 人员业绩统计
|
|
|
+ * @param whereCase
|
|
|
+ * @param paramValues
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<EsmUserPolicyVO> countUserPolicy(String whereCase, Object[] paramValues){
|
|
|
+ List<EsmUserPolicyVO> recordList = new ArrayList<EsmUserPolicyVO>();
|
|
|
+
|
|
|
+ String sql = "select a.`level` teamlevel,b.name username,\n" +
|
|
|
+ "sum(case when orderstatus in (1,2,3,4) then 1 else 0 end) ordernum,\n" +
|
|
|
+ "sum(case when orderstatus=3 then 1 else 0 end) policynum,\n" +
|
|
|
+ "sum(case when orderstatus=3 then sumpremium else 0 end) sumpremium\n" +
|
|
|
+ "from v_user_order a left join sys_user b on a.id=b.id " + whereCase;
|
|
|
+ sql += " group by a.`level`,b.name order by a.`level`";
|
|
|
+
|
|
|
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
|
|
+
|
|
|
+ jdbcTemplate.query(sql, paramValues,
|
|
|
+ new RowCallbackHandler() {
|
|
|
+ @Override
|
|
|
+ public void processRow(ResultSet resultSet) throws SQLException {
|
|
|
+ EsmUserPolicyVO model = new EsmUserPolicyVO();
|
|
|
+
|
|
|
+ model.setTeamlevel(resultSet.getString("teamlevel"));
|
|
|
+ model.setUsername(resultSet.getString("username"));
|
|
|
+ model.setOrdernum(resultSet.getInt("ordernum"));
|
|
|
+ model.setPolicynum(resultSet.getInt("policynum"));
|
|
|
+ model.setSumpremium(resultSet.getDouble("sumpremium"));
|
|
|
+
|
|
|
+ recordList.add(model);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return recordList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 团队业绩统计
|
|
|
+ * @param whereCase
|
|
|
+ * @param paramValues
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues){
|
|
|
+ List<EsmTeamPolicyVO> recordList = new ArrayList<EsmTeamPolicyVO>();
|
|
|
+
|
|
|
+ String sql = "select teamlevel,sum(teamnum) teamnum, sum(sumpremium) sumpremium,sum(usernum) usernum from \n" +
|
|
|
+ "(select a.`level` teamlevel,count(distinct id) teamnum, 0 sumpremium,0 usernum\n" +
|
|
|
+ "from v_user_order a\n" +
|
|
|
+ "where a.affiliation=?\n" +
|
|
|
+ "group by a.`level`\n" +
|
|
|
+ "union all \n" +
|
|
|
+ "select a.`level` teamlevel,0 teamnum, sum(sumpremium) sumpremium,count(distinct id) usernum\n" +
|
|
|
+ "from v_user_order a\n" +
|
|
|
+ "where a.affiliation=? and a.orderstatus=3\n" +
|
|
|
+ "and a.createtime between ? and ? \n" +
|
|
|
+ "group by a.`level`) t group by teamlevel";
|
|
|
+
|
|
|
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
|
|
+
|
|
|
+ jdbcTemplate.query(sql, paramValues,
|
|
|
+ new RowCallbackHandler() {
|
|
|
+ @Override
|
|
|
+ public void processRow(ResultSet resultSet) throws SQLException {
|
|
|
+ EsmTeamPolicyVO model = new EsmTeamPolicyVO();
|
|
|
+
|
|
|
+ model.setTeamlevel(resultSet.getString("teamlevel"));
|
|
|
+ model.setTeamnum(resultSet.getInt("teamnum"));
|
|
|
+ model.setUsernum(resultSet.getInt("usernum"));
|
|
|
+ model.setSumpremium(resultSet.getDouble("sumpremium"));
|
|
|
+
|
|
|
+ recordList.add(model);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return recordList;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|