123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- package com.kmall.admin.controller.statistics;
- import com.kmall.admin.entity.WechatFollowersEntity;
- import com.kmall.admin.fromcomm.entity.SysUserEntity;
- import com.kmall.admin.service.statistics.MonthlyCustomersService;
- import com.kmall.admin.utils.ShiroUtils;
- import com.kmall.common.utils.R;
- import org.apache.shiro.SecurityUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * @author zhangchuangbiao
- * @version 1.0
- * 2020-09-01 14:35
- */
- @RestController
- @RequestMapping("/monthly")
- public class MonthlyCustomersController {
- @Autowired
- private MonthlyCustomersService monthlyCustomersService;
- private void calculateDifferentMonth(List<String> monthList, String startMonth, String endMonth) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
- Calendar bef = Calendar.getInstance();
- Calendar aft = Calendar.getInstance();
- bef.setTime(sdf.parse(startMonth));
- aft.setTime(sdf.parse(endMonth));
- do {
- monthList.add(sdf.format(bef.getTime()));
- bef.add(Calendar.MONTH, 1);
- }
- while (bef.compareTo(aft) <= 0);
- }
- @RequestMapping("/customersQuery")
- public R queryMonthlyCustomers(@RequestParam("startMonth") String startMonth, @RequestParam("endMonth") String endMonth) {
- List<String> dateList = new ArrayList<>();
- Map<String, Object> returnMap = new HashMap<>();
- try {
- calculateDifferentMonth(dateList, startMonth, endMonth);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- try {
- String merchSn = null;
- SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
- if(!"1".equals(sysUser.getRoleType())){
- merchSn = sysUser.getMerchSn();
- }
- Map<String,Object> map = monthlyCustomersService.queryMonthlyCustomers(startMonth,endMonth,merchSn);
- returnMap.put("dateList", dateList);
- returnMap.putAll(map);
- } catch (Exception e) {
- e.printStackTrace();
- return R.error(e.getMessage());
- }
- return R.ok(returnMap);
- }
- @RequestMapping("/top10ForProduct")
- public R top10ForProduct(@RequestParam("month") String month, @RequestParam("week") String week){
- Map<String,Object> map = monthlyCustomersService.top10ForProduct(month,week);
- return R.ok(map);
- }
- @RequestMapping("/top10ByBrandAndSupplier")
- public R top10ByBrandAndSupplier(@RequestParam("startDate") String startDate,
- @RequestParam("endDate") String endDate){
- Map<String,Object> map = monthlyCustomersService.top10ByBrandAndSupplier(startDate,endDate);
- return R.ok(map);
- }
- @RequestMapping("/customersQueryByWeek")
- public R queryWeeklyCustomers(@RequestParam("startWeek") String startWeek, @RequestParam("endWeek") String endWeek) throws ParseException {
- List<String> dateList = new ArrayList<>();
- try {
- calculateDifferentWeek(dateList, startWeek, endWeek);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- String merchSn = null;
- SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
- if(!"1".equals(sysUser.getRoleType())){
- merchSn = sysUser.getMerchSn();
- }
- SimpleDateFormat weekSdf = new SimpleDateFormat("yyyy");
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- Calendar bef = Calendar.getInstance();
- Calendar aft = Calendar.getInstance();
- bef.setFirstDayOfWeek(Calendar.MONDAY);
- aft.setFirstDayOfWeek(Calendar.MONDAY);
- bef.setTime(sdf.parse(startWeek));
- aft.setTime(sdf.parse(endWeek));
- int befWeek = bef.get(Calendar.WEEK_OF_YEAR);
- int aftWeek = aft.get(Calendar.WEEK_OF_YEAR);
- if(befWeek<10){
- startWeek =weekSdf.format(bef.getTime())+"-0"+befWeek;
- }else{
- startWeek =weekSdf.format(bef.getTime())+"-"+befWeek;
- }
- if(aftWeek<10){
- endWeek =weekSdf.format(aft.getTime())+"-0"+aftWeek;
- }else{
- endWeek =weekSdf.format(aft.getTime())+"-"+aftWeek;
- }
- Map<String,Object> map = monthlyCustomersService.queryWeeklyCustomers(startWeek,endWeek,merchSn);
- Map<String, Object> returnMap = new HashMap<>();
- returnMap.put("dateList", dateList);
- returnMap.putAll(map);
- return R.ok(returnMap);
- }
- // todo
- private void calculateDifferentWeek(List<String> weekList, String startWeek, String endWeek) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- SimpleDateFormat weekSdf = new SimpleDateFormat("yyyy");
- Calendar bef = Calendar.getInstance();
- Calendar aft = Calendar.getInstance();
- bef.setFirstDayOfWeek(Calendar.MONDAY);
- aft.setFirstDayOfWeek(Calendar.MONDAY);
- bef.setTime(sdf.parse(startWeek));
- aft.setTime(sdf.parse(endWeek));
- do {
- int i = bef.get(Calendar.WEEK_OF_YEAR);
- if (i<10){
- weekList.add(weekSdf.format(bef.getTime())+"-0"+i);
- }else{
- weekList.add(weekSdf.format(bef.getTime())+"-"+i);
- }
- bef.set(Calendar.DAY_OF_MONTH,bef.get(Calendar.DAY_OF_MONTH)+7); //给当前时间增加一周
- }
- while (bef.compareTo(aft) <= 0);
- }
- @RequestMapping("/queryMonthlyWechatFollowers")
- public R queryMonthlyWechatFollowers(@RequestParam("startMonth") String startMonth, @RequestParam("endMonth") String endMonth) {
- List<String> dateList = new ArrayList<>();
- Map<String, Object> returnMap = new HashMap<>();
- try {
- calculateDifferentMonth(dateList, startMonth, endMonth);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- try {
- String merchSn = null;
- SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
- if(!"1".equals(sysUser.getRoleType())){
- merchSn = sysUser.getMerchSn();
- }
- Map<String,Object> map = monthlyCustomersService.queryMonthlyWechatFollowers(startMonth,endMonth,merchSn);
- returnMap.put("dateList", dateList);
- returnMap.putAll(map);
- } catch (Exception e) {
- e.printStackTrace();
- return R.error(e.getMessage());
- }
- return R.ok(returnMap);
- }
- @RequestMapping("/addWechatFollowers")
- public R addWechatFollowers( @RequestParam("wechatFollowers") Integer wechatFollowers) {
- try {
- String merchSn = null;
- SysUserEntity sysUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
- if(!"1".equals(sysUser.getRoleType())){
- merchSn = sysUser.getMerchSn();
- }
- WechatFollowersEntity wechatFollowersEntity = new WechatFollowersEntity();
- wechatFollowersEntity.setCreaterSn(ShiroUtils.getUserId().toString());
- wechatFollowersEntity.setCreateTime(new Date());
- wechatFollowersEntity.setWechatFollowers(wechatFollowers);
- wechatFollowersEntity.setMerchSn(merchSn);
- monthlyCustomersService.addWechatFollowers(wechatFollowersEntity);
- } catch (Exception e) {
- e.printStackTrace();
- return R.error(e.getMessage());
- }
- return R.ok("添加成功");
- }
- }
|