Просмотр исходного кода

[会员结构][新增]根据年龄查询接口

release_toaliyun_real
jinguo24@163.com 7 лет назад
Родитель
Сommit
fe821c9d7f
9 измененных файлов: 91 добавлений и 30 удалений
  1. +38
    -5
      mallinkAdmin/src/main/java/com/simple/controller/WxCUserBasicInfoController.java
  2. +4
    -4
      mallinkAdmin/src/main/java/com/simple/controller/WxLevelConfigController.java
  3. +5
    -5
      mallinkService/src/main/java/com/simple/enums/EnumAgeInfo.java
  4. +5
    -2
      mallinkService/src/main/java/com/simple/mapper/WxCUserMapper.java
  5. +7
    -3
      mallinkService/src/main/java/com/simple/service/WxCUserService.java
  6. +6
    -6
      mallinkService/src/main/java/com/simple/service/impl/WxCUserBasicInfoServiceImpl.java
  7. +7
    -0
      mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java
  8. +9
    -5
      mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml
  9. +10
    -0
      mallinkService/src/main/resources/mapper/WxCUserMapper.xml

+ 38
- 5
mallinkAdmin/src/main/java/com/simple/controller/WxCUserBasicInfoController.java Просмотреть файл

@@ -2,6 +2,7 @@ package com.simple.controller;

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

@@ -28,6 +29,7 @@ import com.simple.domain.po.WxCoupon;
import com.simple.domain.po.WxCouponOrder;
import com.simple.domain.po.WxTags;
import com.simple.domain.vo.UserStructureVo;
import com.simple.enums.EnumAgeInfo;
import com.simple.service.WxCUserBasicInfoService;
import com.simple.service.WxCUserService;
import com.simple.service.WxCUserTagsService;
@@ -206,30 +208,61 @@ public class WxCUserBasicInfoController extends BaseController
WxCuerBasicInfoDto dto = new WxCuerBasicInfoDto();
dto.setStartTime(startTime);
dto.setEndTime(endTime);
dto.setSex(0);
//保密
long secrecy = wxCUserBasicInfoService.findCountBySex(dto);
dto.setSex(0);
long secrecy = getCount(dto);
dto.setSex(1);
long boy = wxCUserBasicInfoService.findCountBySex(dto);
long boy = getCount(dto);
dto.setSex(2);
long girl=wxCUserBasicInfoService.findCountBySex(dto);
long girl=getCount(dto);
Long all =secrecy+boy+girl;
List<UserStructureVo> vos = new ArrayList<>();
vos.add(getVo(secrecy, all, "保密"));
vos.add(getVo(boy, all, "男"));
vos.add(getVo(girl, all, "女"));
vos.add(getVo(secrecy, all, "保密"));
return new ResultData(vos);
}
@ApiOperation("查询会员年龄结构")
@GetMapping("/findUserAgeStructure")
public ResultData findUserAgeStructure() {
Calendar c = Calendar.getInstance();
for(EnumAgeInfo a:EnumAgeInfo.values()) {
c.clear();
c.setTime(new Date());
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
long count = getCountByAge(a, c);
}
return new ResultData();
}
private long getCountByAge(EnumAgeInfo a,Calendar c) {
WxCuerBasicInfoDto dto =new WxCuerBasicInfoDto();
c.add(Calendar.YEAR, -a.getEnd());
Date startTime = c.getTime();
c.clear();
c.setTime(startTime);
c.add(Calendar.YEAR,a.getEnd()-a.getStart());
Date endTime = c.getTime();
dto.setStartTime(startTime);
dto.setEndTime(endTime);
return wxCUserBasicInfoService.findCountByAge(dto);
}
//通过性别获取数量
private long getCount(WxCuerBasicInfoDto dto) {
//TODO 考虑性能问题,暂不处理少量重复问题,后续可考虑大数据处理
return wxCUserBasicInfoService.findCountBySex(dto)+
wxCUserService.findCountBySex(dto);
}
private UserStructureVo getVo(long count,long all,String name) {
UserStructureVo vo = new UserStructureVo();
vo.setName(name);


+ 4
- 4
mallinkAdmin/src/main/java/com/simple/controller/WxLevelConfigController.java Просмотреть файл

@@ -72,10 +72,10 @@ public class WxLevelConfigController extends BaseController
// }

@ApiOperation("根据id删除接口")
@GetMapping("/del")
@ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
public ResultData delete(Long id) {
wxLevelConfigService.deleteById(id);
@PostMapping("/del")
// @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true)
public ResultData delete(@RequestBody WxLevelConfig wxLevelConfig) {
wxLevelConfigService.deleteById(wxLevelConfig.getId());
return new ResultData(Result.SUCCESS, "删除成功", null);
}


+ 5
- 5
mallinkService/src/main/java/com/simple/enums/EnumAgeInfo.java Просмотреть файл

@@ -3,11 +3,11 @@ package com.simple.enums;
public enum EnumAgeInfo {
FIRST_SLOT(1,0,18,"18岁以下"),
SECOND_SLOT(2,18,24,"18岁-24岁"),
THIRD_SLOT(3,18,24,"18岁-24岁"),
FOURTH_SLOT(4,18,24,"18岁-24岁"),
FIFTH_SLOT(5,18,24,"18岁-24岁"),
SIXTH_SLOT(6,18,24,"18岁-24岁"),
SEVENTH_SLOT(7,18,24,"18岁-24岁")
THIRD_SLOT(3,18,24,"25岁-34岁"),
FOURTH_SLOT(4,18,24,"35岁-44岁"),
FIFTH_SLOT(5,18,24,"45岁-54岁"),
SIXTH_SLOT(6,18,24,"55岁-60岁"),
SEVENTH_SLOT(7,18,24,"60岁以上")
;
private EnumAgeInfo(Integer sortNum,Integer start,Integer end,String desc) {


+ 5
- 2
mallinkService/src/main/java/com/simple/mapper/WxCUserMapper.java Просмотреть файл

@@ -1,8 +1,9 @@
package com.simple.mapper;

import java.util.*;
import java.util.List;

import com.simple.common.CommonMapper;
import org.apache.ibatis.annotations.Param;
import com.simple.domain.dto.WxCuerBasicInfoDto;
import com.simple.domain.po.WxCUser;

public interface WxCUserMapper extends CommonMapper<WxCUser, Long> {
@@ -13,4 +14,6 @@ public interface WxCUserMapper extends CommonMapper<WxCUser, Long> {
WxCUser findByOpenId(WxCUser record);

WxCUser findByToken(String token);
long findCountBySex(WxCuerBasicInfoDto dto);
}

+ 7
- 3
mallinkService/src/main/java/com/simple/service/WxCUserService.java Просмотреть файл

@@ -1,8 +1,7 @@
package com.simple.service;

import java.util.*;

import com.github.pagehelper.PageInfo;
import com.simple.domain.dto.WxCuerBasicInfoDto;
import com.simple.domain.po.WxCUser;

public interface WxCUserService {
@@ -55,5 +54,10 @@ public interface WxCUserService {
*/
void deleteById(Long id);


/**
* 根据性别统计数量
* @param dto
* @return
*/
long findCountBySex(WxCuerBasicInfoDto dto);
}

+ 6
- 6
mallinkService/src/main/java/com/simple/service/impl/WxCUserBasicInfoServiceImpl.java Просмотреть файл

@@ -1,15 +1,15 @@
package com.simple.service.impl;

import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.simple.common.IdWorker;
import com.simple.domain.dto.WxCuerBasicInfoDto;
import com.simple.domain.po.WxCUserBasicInfo;
import com.simple.mapper.WxCUserBasicInfoMapper;
import com.simple.service.WxCUserBasicInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.simple.common.IdWorker;

@Service
public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
@@ -72,8 +72,8 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {

@Override
public long findCountByAge(WxCuerBasicInfoDto dto) {
// TODO Auto-generated method stub
return 0;
return wxCUserBasicInfoMapper.findCountByAge(dto);
}


+ 7
- 0
mallinkService/src/main/java/com/simple/service/impl/WxCUserServiceImpl.java Просмотреть файл

@@ -3,6 +3,7 @@ package com.simple.service.impl;
import java.util.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.simple.domain.dto.WxCuerBasicInfoDto;
import com.simple.domain.po.WxCUser;
import com.simple.mapper.WxCUserMapper;
import com.simple.service.WxCUserService;
@@ -60,6 +61,12 @@ public class WxCUserServiceImpl implements WxCUserService {
public void deleteById(Long id) {
wxCUserMapper.deleteByPrimaryKey(id);
}

@Override
public long findCountBySex(WxCuerBasicInfoDto dto) {
return wxCUserMapper.findCountBySex(dto);
}
}

+ 9
- 5
mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml Просмотреть файл

@@ -141,7 +141,7 @@

</update>

<select id="findCountBySex" parameterType="com.simple.domain.dto.WxCuerBasicInfoDto">
<select id="findCountBySex" parameterType="com.simple.domain.dto.WxCuerBasicInfoDto" resultType="java.lang.Long">
select count(id) from wx_c_user_basic_info where sex =#{sex}
<if test=" null != startTime ">
and create_date &gt;= #{startTime}
@@ -152,10 +152,14 @@
</select>
<select id="findCountByAge" parameterType="com.simple.domain.dto.WxCuerBasicInfoDto">
select count(id) from wx_c_user_basic_info where
create_date &gt;= #{startTime}
and create_date &lt;= #{endTime}
<select id="findCountByAge" parameterType="com.simple.domain.dto.WxCuerBasicInfoDto" resultType="java.lang.Long">
select count(id) from wx_c_user_basic_info where 1=1
<if test=" null != startTime ">
and birthdate &gt;= #{startTime}
</if>
<if test=" null != endTime">
and birthdate &lt;= #{endTime}
</if>
</select>
</mapper>

+ 10
- 0
mallinkService/src/main/resources/mapper/WxCUserMapper.xml Просмотреть файл

@@ -183,4 +183,14 @@
select * from wx_c_user
where `token` = #{token}
</select>
<select id="findCountBySex" parameterType="com.simple.domain.dto.WxCuerBasicInfoDto" resultType="java.lang.Long">
select count(id) from wx_c_user where gender =#{sex}
<if test=" null != startTime ">
and create_date &gt;= #{startTime}
</if>
<if test=" null != endTime">
and create_date &lt;= #{endTime}
</if>
</select>
</mapper>

Загрузка…
Отмена
Сохранить