Merge remote-tracking branch 'origin/feature-20240104' into feature-20240104

master
elliott 2 years ago
commit 0f324e0b34

@ -3,6 +3,7 @@ package com.flossom.common.core.domain.req;
import com.flossom.common.core.web.domain.BaseEntity;
import java.util.Date;
import java.util.List;
/**
*
@ -18,7 +19,7 @@ public class WxUserMemberVm extends BaseEntity {
private String id;
/**
*
*
*/
private String nickname;
@ -77,12 +78,12 @@ public class WxUserMemberVm extends BaseEntity {
private Date endTime;
/**
*
*
*/
private Integer deviceNumStart;
/**
*
*
*/
private Integer deviceNumEnd;
@ -93,14 +94,17 @@ public class WxUserMemberVm extends BaseEntity {
/**
*
*/
List<Integer> purchaseChannels;
/**
*
*/
List<Integer> wecomTags;
/**
*
*/
List<Integer> miniProgramTags;
public WxUserMemberVm() {
}
@ -231,4 +235,28 @@ public class WxUserMemberVm extends BaseEntity {
public void setDeviceNumEnd(Integer deviceNumEnd) {
this.deviceNumEnd = deviceNumEnd;
}
public List<Integer> getPurchaseChannels() {
return purchaseChannels;
}
public void setPurchaseChannels(List<Integer> purchaseChannels) {
this.purchaseChannels = purchaseChannels;
}
public List<Integer> getWecomTags() {
return wecomTags;
}
public void setWecomTags(List<Integer> wecomTags) {
this.wecomTags = wecomTags;
}
public List<Integer> getMiniProgramTags() {
return miniProgramTags;
}
public void setMiniProgramTags(List<Integer> miniProgramTags) {
this.miniProgramTags = miniProgramTags;
}
}

@ -41,6 +41,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, nickname, headimg, username, credit, openid, unionid, user_type, level, mobile, province_id, city_id, area_id, province, city, area, birthday, clock, activity, wechat, is_abutment, login_time, is_complete_information, devices_num, status, create_by, create_time, update_by, update_time, remark from wx_user_member
</sql>
<sql id="fieldList">
member.id, member.nickname, member.headimg, member.username, member.credit, member.openid, member.unionid, member.user_type, member.level, member.mobile,
member.province_id, member.city_id, member.area_id, member.province, member.city, member.area, member.birthday, member.clock, member.activity,
member.wechat, member.is_abutment, member.login_time, member.is_complete_information, member.devices_num, member.status, member.create_by,
member.create_time, member.update_by, member.update_time, member.remark
FROM wx_user_member as member
</sql>
<select id="selectWxUserMemberList" parameterType="WxUserMember" resultMap="WxUserMemberResult">
<include refid="selectWxUserMemberVo"/>
<where>
@ -82,36 +90,64 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectWxUserMemberListByVm" parameterType="WxUserMemberVm" resultMap="WxUserMemberResult">
<include refid="selectWxUserMemberVo"/>
SELECT <include refid="fieldList" />
<where>
<if test="id!=null and id !=''">
and
<foreach collection="id.split(',')" index="index" item="item" open="(" separator="OR"
close=")">
id = #{item}
member.id = #{item}
</foreach>
</if>
<if test="nickname != null and nickname != ''"> and nickname like concat('%', #{nickname}, '%')</if>
<if test="creditStart != null and creditEnd != null"> and credit &gt;= #{creditStart} and credit &lt;= #{creditEnd}</if>
<if test="userType != null "> and user_type = #{userType}</if>
<if test="nickname != null and nickname != ''"> and member.nickname like concat('%', #{nickname}, '%')</if>
<if test="creditStart != null and creditEnd != null"> and member.credit &gt;= #{creditStart} and member.credit &lt;= #{creditEnd}</if>
<if test="userType != null "> and member.user_type = #{userType}</if>
<if test="mobile!=null and mobile !=''">
and
<foreach collection="mobile.split(',')" index="index" item="item" open="(" separator="OR"
close=")">
mobile like concat('%', #{item}, '%')
member.mobile like concat('%', #{item}, '%')
</foreach>
</if>
<if test="provinceId != null and provinceId != ''"> and province = #{provinceId}</if>
<if test="cityId != null and cityId != ''"> and city = #{cityId}</if>
<if test="areaId != null and areaId != ''"> and area = #{areaId}</if>
<if test="birthday != null "> and birthday = #{birthday}</if>
<if test="provinceId != null and provinceId != ''"> and member.province_id = #{provinceId}</if>
<if test="cityId != null and cityId != ''"> and member.city_id = #{cityId}</if>
<if test="areaId != null and areaId != ''"> and member.area_id = #{areaId}</if>
<if test="birthday != null "> and member.birthday = #{birthday}</if>
<if test="params.beginTime != null and params.beginTime != ''">
and create_time &gt;= #{params.beginTime}
and member.create_time &gt;= #{params.beginTime}
</if>
<if test="params.endTime != null and params.endTime != ''">
and create_time &lt;= #{params.endTime}
and member.create_time &lt;= #{params.endTime}
</if>
<if test="deviceNumStart != null and deviceNumEnd != null"> and member.devices_num &gt;= #{deviceNumStart} and member.devices_num &lt;= #{deviceNumEnd}</if>
<if test="wecomTags != null and wecomTags.size > 0" >
and id in (
SELECT
DISTINCT user_id
FROM
wx_user_tag
WHERE
tag_id IN
<foreach item="wecomTag" collection="wecomTags" open="(" separator="," close=")">
#{wecomTag}
</foreach>
)
</if>
<if test="miniProgramTags != null and miniProgramTags.size > 0" >
and id in (
SELECT
DISTINCT user_id
FROM
wx_user_tag
WHERE
tag_id IN
<foreach item="miniProgramTag" collection="miniProgramTags" open="(" separator="," close=")">
#{miniProgramTag}
</foreach>
)
</if>
and status = 0
and member.status = 0
</where>
</select>

@ -2,6 +2,7 @@ package com.flossom.system.controller;
import javax.servlet.http.HttpServletResponse;
import com.flossom.common.core.domain.R;
import com.flossom.common.core.domain.entity.SysRegion;
import com.flossom.common.core.utils.poi.ExcelUtil;
import com.flossom.common.core.web.controller.BaseController;
@ -11,14 +12,7 @@ import com.flossom.common.log.annotation.Log;
import com.flossom.common.log.enums.BusinessType;
import com.flossom.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.flossom.system.service.ISysRegionService;
import java.util.List;
@ -97,4 +91,12 @@ public class SysRegionController extends BaseController {
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(sysRegionService.deleteSysRegionByIds(ids));
}
/**
*
*/
@GetMapping("/getRegionByPid")
public R getRegionByPid(@RequestParam(value = "pid",required = false) Long pid) {
return R.ok(sysRegionService.getRegionByPid(pid));
}
}

@ -60,4 +60,6 @@ public interface ISysRegionService {
* @return
*/
public int deleteSysRegionById(Long id);
List<SysRegion> getRegionByPid(Long pid);
}

@ -85,4 +85,12 @@ public class SysRegionServiceImpl implements ISysRegionService {
public int deleteSysRegionById(Long id) {
return sysRegionMapper.deleteSysRegionById(id);
}
@Override
public List<SysRegion> getRegionByPid(Long pid) {
if (pid == null) {
pid = 0L;
}
return sysRegionMapper.selectSysAreaByPid(pid.intValue());
}
}

@ -71,4 +71,12 @@ export function getPurchaseChannel() {
})
}
export function getRegionByPid(pid) {
return request({
url: '/system/region/getRegionByPid',
method: 'get',
params: {
pid : pid
}
})
}

@ -47,21 +47,33 @@
</el-date-picker>
</el-form-item>
<el-form-item label="省" prop="provinceId">
<el-select v-model="queryParams.provinceId" @keyup.enter.native="handleQuery">
<el-option label="广东省" value="19"></el-option>
<el-option label="湖南省" value="18"></el-option>
<el-select v-model="queryParams.provinceId" @change="getCityList(queryParams.provinceId)" @keyup.enter.native="handleQuery" filterable clearable>
<el-option
v-for="item in provinceList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="市" prop="cityId">
<el-select v-model="queryParams.cityId" @keyup.enter.native="handleQuery">
<el-option label="广州市" value="234"></el-option>
<el-option label="珠海市" value="237"></el-option>
<el-select v-model="queryParams.cityId" @change="getAreaByPid(queryParams.cityId)" @keyup.enter.native="handleQuery" filterable clearable placeholder="请选择省">
<el-option
v-for="item in cityList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="区" prop="areaId">
<el-select v-model="queryParams.areaId" @keyup.enter.native="handleQuery">
<el-option label="天河区" value="2314"></el-option>
<el-option label="黄埔区" value="2317"></el-option>
<el-select v-model="queryParams.areaId" @keyup.enter.native="handleQuery" filterable clearable placeholder="请选择市">
<el-option
v-for="item in areaList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="用户注册时间" prop="createTime">
@ -75,29 +87,29 @@
</el-date-picker>
</el-form-item>
<el-form-item label="仪器数量" prop="credit">
<el-input-number v-model="queryParams.devicesNumStart" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number v-model="queryParams.deviceNumStart" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number v-model="queryParams.devicesNumEnd" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number v-model="queryParams.deviceNumEnd" @keyup.enter.native="handleQuery"></el-input-number>
</el-form-item>
<el-form-item label="积分范围" prop="credit">
<el-input-number v-model="queryParams.creditStart" @keyup.enter.native="handleQuery"></el-input-number>
<el-input-number v-model="queryParams.creditEnd" @keyup.enter.native="handleQuery"></el-input-number>
</el-form-item>
<el-form-item label="仪器绑定" prop="devicesTags">
<el-select v-model="queryParams.devicesTags" multiple placeholder="请选择">
<el-option
v-for="item in devicesTags"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="购买渠道" prop="purchaseChannel">
<el-select v-model="queryParams.purchaseChannel" multiple placeholder="请选择">
<!-- <el-form-item label="仪器绑定" prop="devicesTags">-->
<!-- <el-select v-model="queryParams.devicesTags" multiple placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in devicesTags"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="购买渠道" prop="purchaseChannels">
<el-select v-model="queryParams.purchaseChannels" multiple placeholder="请选择">
<el-option
v-for="item in purchaseChannel"
v-for="item in purchaseChannels"
:key="item.value"
:label="item.label"
:value="item.value">
@ -107,7 +119,7 @@
<el-form-item label="企微标签" prop="wecomTags">
<el-select v-model="queryParams.wecomTags" multiple placeholder="请选择">
<el-option
v-for="item in miniProgramTags"
v-for="item in wecomTags"
:key="item.value"
:label="item.label"
:value="item.value">
@ -117,7 +129,7 @@
<el-form-item label="小程序标签" prop="miniProgramTags">
<el-select v-model="queryParams.miniProgramTags" multiple placeholder="请选择">
<el-option
v-for="item in wecomTags"
v-for="item in miniProgramTags"
:key="item.value"
:label="item.label"
:value="item.value">
@ -178,7 +190,9 @@
<el-table v-loading="loading" :data="memberList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="头像" align="center" prop="headimg" />
<el-table-column label="头像" align="center">
<el-avatar shape="circle" :size="50" :src="headimg"/>
</el-table-column>
<el-table-column label="会员昵称" align="center" prop="nickname" />
<el-table-column label="用户编号" align="center" prop="id" />
<el-table-column label="手机号码" align="center" prop="mobile" />
@ -342,6 +356,7 @@ import {
getMiniProgramTags,
getWecomTags,
getPurchaseChannel,
getRegionByPid,
} from "@/api/system/member";
export default {
@ -360,7 +375,10 @@ export default {
}],
miniProgramTags: [],
wecomTags: [],
purchaseChannel: null,
purchaseChannels: null,
provinceList: null,
cityList: null,
areaList: null,
//
loading: true,
//
@ -393,8 +411,8 @@ export default {
nickname: null,
headimg: null,
username: null,
devicesNumStart: undefined,
devicesNumEnd: undefined,
deviceNumStart: undefined,
deviceNumEnd: undefined,
creditStart: undefined,
creditEnd: undefined,
openid: null,
@ -424,7 +442,7 @@ export default {
devicesTags: [], //
wecomTags:[], //
miniProgramTags: [], //
purchaseChannel: null, //
purchaseChannels: [], //
},
//
form: {},
@ -440,6 +458,8 @@ export default {
this.getList();
//
this.getTags();
//
this.getProvinceList();
},
methods: {
/** 查询用户列表 */
@ -469,7 +489,27 @@ export default {
})
//
getPurchaseChannel().then(Response => {
this.purchaseChannel = Response.data
this.purchaseChannels = Response.data
})
},
//
getProvinceList() {
getRegionByPid(0).then(Response => {
this.provinceList = Response.data
})
},
getCityList(pid) {
console.log(pid);
getRegionByPid(pid).then(Response => {
console.log(Response.data)
this.cityList = Response.data
})
},
getAreaByPid(pid) {
console.log(pid);
getRegionByPid(pid).then(Response => {
console.log(Response.data)
this.areaList = Response.data
})
},
//

Loading…
Cancel
Save