Browse Source

营销报表统计

anderx 7 years ago
parent
commit
10af5c8e9d

+ 35 - 0
src/main/java/com/goafanti/common/mapper/DailySalesReportMapper.xml

@@ -165,4 +165,39 @@
 		and a.position like concat(#{position,jdbcType=VARCHAR},'%')
 	</if>
   </select>
+  
+   <select id="findmarketingStatisticsListByPage" parameterType="String" resultType="com.goafanti.report.bo.marketingESBo">
+  	select a.id ,a.name,a.department_id,d.name,d.manager_id,f.name,c.role_name,ifnull(e.privateCustomersCount,0)as privateCustomersCount
+			from admin a left join user_role b
+			on a.id=b.uid left join role c
+			on b.rid=c.id left join department_management d
+			on a.department_id=d.id left join (select aid,count(0) as privateCustomersCount from user group by aid)e
+			on a.id=e.aid left join admin f
+			on d.manager_id=f.id
+			where 1=1
+			and (c.role_name='营销员' or c.role_name='营销经理'or c.role_name='营销管理员')
+	<if test="position != null">
+		and a.department_id = #{departmentId,jdbcType=VARCHAR}
+	</if>
+	order by a.create_time desc
+	<if test="page_sql!=null">
+			${page_sql}
+	</if>
+  </select>
+  
+  <select id="findmarketingStatisticsCount" parameterType="String" resultType="java.lang.Integer">
+  	select count(0)
+			from admin a left join user_role b
+			on a.id=b.uid left join role c
+			on b.rid=c.id left join department_management d
+			on a.department_id=d.id left join (select aid,count(0) as privateCustomersCount from user group by aid)e
+			on a.id=e.aid left join admin f
+			on d.manager_id=f.id
+			where 1=1
+			and (c.role_name='营销员' or c.role_name='营销经理'or c.role_name='营销管理员')
+	<if test="position != null">
+		and a.department_id = #{departmentId,jdbcType=VARCHAR}
+	</if>
+  </select>
+  
 </mapper>

+ 144 - 0
src/main/java/com/goafanti/report/bo/marketingESBo.java

@@ -0,0 +1,144 @@
+package com.goafanti.report.bo;
+
+public class marketingESBo {
+		private String id;
+		private String name;
+		private String departmentName;
+		private String departmentId;
+		private String departmentManagerName;
+		private String roleName;
+		private String entryTime;
+		private String privateCustomersCount;
+		private String dailyVisitNo;
+		private String dailyTelNo;
+		private String dailyFollowNo;
+		private String weeklyVisitNo;
+		private String weeklyTelNo;
+		private String weeklyFollowNo;
+		private String monthVisitNo;
+		private String monthTelNo;
+		private String monthFollowNo;
+		private String yearVisitNo;
+		private String yearTelNo;
+		private String yearFollowNo;
+		public String getName() {
+			return name;
+		}
+		public void setName(String name) {
+			this.name = name;
+		}
+		public String getDepartmentName() {
+			return departmentName;
+		}
+		public void setDepartmentName(String departmentName) {
+			this.departmentName = departmentName;
+		}
+		public String getRoleName() {
+			return roleName;
+		}
+		public void setRoleName(String roleName) {
+			this.roleName = roleName;
+		}
+		public String getEntryTime() {
+			return entryTime;
+		}
+		public void setEntryTime(String entryTime) {
+			this.entryTime = entryTime;
+		}
+		public String getPrivateCustomersCount() {
+			return privateCustomersCount;
+		}
+		public void setPrivateCustomersCount(String privateCustomersCount) {
+			this.privateCustomersCount = privateCustomersCount;
+		}
+		public String getDailyVisitNo() {
+			return dailyVisitNo;
+		}
+		public void setDailyVisitNo(String dailyVisitNo) {
+			this.dailyVisitNo = dailyVisitNo;
+		}
+		public String getDailyTelNo() {
+			return dailyTelNo;
+		}
+		public void setDailyTelNo(String dailyTelNo) {
+			this.dailyTelNo = dailyTelNo;
+		}
+		public String getDailyFollowNo() {
+			return dailyFollowNo;
+		}
+		public void setDailyFollowNo(String dailyFollowNo) {
+			this.dailyFollowNo = dailyFollowNo;
+		}
+		public String getWeeklyVisitNo() {
+			return weeklyVisitNo;
+		}
+		public void setWeeklyVisitNo(String weeklyVisitNo) {
+			this.weeklyVisitNo = weeklyVisitNo;
+		}
+		public String getWeeklyTelNo() {
+			return weeklyTelNo;
+		}
+		public void setWeeklyTelNo(String weeklyTelNo) {
+			this.weeklyTelNo = weeklyTelNo;
+		}
+		public String getWeeklyFollowNo() {
+			return weeklyFollowNo;
+		}
+		public void setWeeklyFollowNo(String weeklyFollowNo) {
+			this.weeklyFollowNo = weeklyFollowNo;
+		}
+		public String getMonthVisitNo() {
+			return monthVisitNo;
+		}
+		public void setMonthVisitNo(String monthVisitNo) {
+			this.monthVisitNo = monthVisitNo;
+		}
+		public String getMonthTelNo() {
+			return monthTelNo;
+		}
+		public void setMonthTelNo(String monthTelNo) {
+			this.monthTelNo = monthTelNo;
+		}
+		public String getMonthFollowNo() {
+			return monthFollowNo;
+		}
+		public void setMonthFollowNo(String monthFollowNo) {
+			this.monthFollowNo = monthFollowNo;
+		}
+		public String getYearVisitNo() {
+			return yearVisitNo;
+		}
+		public void setYearVisitNo(String yearVisitNo) {
+			this.yearVisitNo = yearVisitNo;
+		}
+		public String getYearTelNo() {
+			return yearTelNo;
+		}
+		public void setYearTelNo(String yearTelNo) {
+			this.yearTelNo = yearTelNo;
+		}
+		public String getYearFollowNo() {
+			return yearFollowNo;
+		}
+		public void setYearFollowNo(String yearFollowNo) {
+			this.yearFollowNo = yearFollowNo;
+		}
+		public String getDepartmentManagerName() {
+			return departmentManagerName;
+		}
+		public void setDepartmentManagerName(String departmentManagerName) {
+			this.departmentManagerName = departmentManagerName;
+		}
+		public String getDepartmentId() {
+			return departmentId;
+		}
+		public void setDepartmentId(String departmentId) {
+			this.departmentId = departmentId;
+		}
+		public String getId() {
+			return id;
+		}
+		public void setId(String id) {
+			this.id = id;
+		}
+}

+ 16 - 1
src/main/java/com/goafanti/report/controller/ReportApiController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseApiController;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.report.enums.OrderBy;
@@ -19,7 +20,7 @@ import com.goafanti.report.enums.SalesReportOrderField;
 import com.goafanti.report.service.SalesReportServiceImpl;
 
 @RestController
-@RequestMapping(value = "/api/admin/report")
+@RequestMapping(value = "/open/api/admin/report")
 public class ReportApiController extends BaseApiController {
 	@Autowired
 	SalesReportServiceImpl reportService;
@@ -107,5 +108,19 @@ public class ReportApiController extends BaseApiController {
 		// 统计从指定日期前一天的17点到指定日期17点的数据,算作改日期数据
 		return res().data(reportService.insertDailyReports(start, now.getTime()));
 	}
+	
+	@RequestMapping(value = "/sales/marketingStatistics", method = RequestMethod.GET)
+	public Result marketingStatistics(String depId,Integer type,Integer pNo,Integer pSize) {
+		Result res=new Result();
+		if (StringUtils.isBlank(depId)) {
+			 res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到部门", "部门"));
+	            return res;
+		}
+		if (null==type||type>1) {
+			 res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到部门", "部门"));
+	            return res;
+		}
+		return res.data(reportService.marketingStatistics(depId, type,pNo,pSize));
+	}
 
 }

+ 37 - 0
src/main/java/com/goafanti/report/service/SalesReportServiceImpl.java

@@ -14,15 +14,18 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 
+import com.goafanti.achievement.bo.AchievementListBo;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.DailySalesReportMapper;
 import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.DailySalesReport;
 import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.report.bo.DepartmentSalesReportBO;
 import com.goafanti.report.bo.PersonalSalesReportBO;
 import com.goafanti.report.bo.ReportDate;
 import com.goafanti.report.bo.SalesValues;
+import com.goafanti.report.bo.marketingESBo;
 import com.goafanti.report.enums.OrderBy;
 import com.goafanti.report.enums.SalesReportOrderField;
 
@@ -243,4 +246,38 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
 		}
 	}
 
+	@SuppressWarnings("unchecked")
+	public Pagination<marketingESBo> marketingStatistics(String depId, Integer type,Integer pNo,Integer pSize) {
+		if (pNo == null || pNo < 0) {
+			pNo = 1;
+		}
+
+		if (pSize == null || pSize < 0 || pSize > 10) {
+			pSize = 10;
+		}
+		Map<String, Object> params=new HashMap<>();
+		if (StringUtils.isNotBlank(depId)) {
+			params.put("depId", depId);
+		}
+		if (null!=type) {
+			params.put("type", type);
+		}
+
+		Pagination<marketingESBo> p=(Pagination<marketingESBo>) findPage("findmarketingStatisticsListByPage",
+				"findmarketingStatisticsCount",params,
+				pNo, pSize);
+		List<marketingESBo> list=(List<marketingESBo>) p.getList();
+		
+		if (type==0) {
+			for (marketingESBo m : list) {
+				ReportDate rd = new ReportDate(new Date());
+				//salesReportMapper.get(m.getId(),rd.getDailyStart(), rd.getDailyStart());
+			}
+			
+		}else {
+			
+		}
+		return p;
+	}
+
 }