Compare commits

..

3 Commits

Author SHA1 Message Date
4418f3cf8e crm功能开发 2025-06-20 15:20:08 +08:00
e00bc0c869 Merge remote-tracking branch 'origin/master' 2025-06-16 18:22:08 +08:00
c0a93a7ae1 bug修复 2025-06-16 15:12:58 +08:00
16 changed files with 341 additions and 116 deletions

View File

@ -71,7 +71,7 @@ public class PayApi {
*/
@ApiOperation(value = "统一下单-统一接口", notes = "统一下单-统一接口")
@GetMapping("/prepayment")
public PrepayWithRequestPaymentResponse transactions( String orderNo) {
public PrepayWithRequestPaymentResponse transactions( String orderNo,String type) {
LambdaQueryWrapper<MemberOrder> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(MemberOrder::getOrderNo,orderNo).last("limit 1");
MemberOrder memberOrder = memberOrderService.getOne(queryWrapper);
@ -86,27 +86,52 @@ public class PayApi {
.merchantSerialNumber(wechatPayConfig.getSerialNo())
.apiV3Key(wechatPayConfig.getApiV3Key())
.build();
// 构建service
JsapiServiceExtension service = new JsapiServiceExtension .Builder().config(config).build();
// request.setXxx(val)设置所需参数具体参数可见Request定义
PrepayRequest request = new PrepayRequest();
Amount amount = new Amount();
Payer payer = new Payer();
BigDecimal goodsPrice = memberOrder.getGoodsPrice();
// 金额单位为分
int totalInFen = goodsPrice.multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_UP).intValue();
amount.setTotal(totalInFen);
payer.setOpenid(user.getWxOpenId());
request.setAmount(amount);
request.setAppid(wechatPayConfig.getAppId());
request.setMchid(wechatPayConfig.getMchId());
request.setDescription("开通会员");
request.setNotifyUrl(wechatPayConfig.getNotifyUrl());
request.setOutTradeNo(orderNo);
request.setPayer(payer);
// 调用下单方法得到应答
// response包含了调起支付所需的所有参数可直接用于前端调起支付
return service.prepayWithRequestPayment(request);
if (type.equals("h5")){
// 构建service
JsapiServiceExtension service = new JsapiServiceExtension .Builder().config(config).build();
// request.setXxx(val)设置所需参数具体参数可见Request定义
PrepayRequest request = new PrepayRequest();
Amount amount = new Amount();
Payer payer = new Payer();
BigDecimal goodsPrice = memberOrder.getGoodsPrice();
// 金额单位为分
int totalInFen = goodsPrice.multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_UP).intValue();
amount.setTotal(totalInFen);
payer.setOpenid(user.getWxOpenId());
request.setAmount(amount);
request.setAppid(wechatPayConfig.getAppId());
request.setMchid(wechatPayConfig.getMchId());
request.setDescription("开通会员");
request.setNotifyUrl(wechatPayConfig.getNotifyUrl());
request.setOutTradeNo(orderNo);
request.setPayer(payer);
// 调用下单方法得到应答
// response包含了调起支付所需的所有参数可直接用于前端调起支付
return service.prepayWithRequestPayment(request);
}else {
// 构建service
JsapiServiceExtension service = new JsapiServiceExtension .Builder().config(config).build();
// request.setXxx(val)设置所需参数具体参数可见Request定义
PrepayRequest request = new PrepayRequest();
Amount amount = new Amount();
Payer payer = new Payer();
BigDecimal goodsPrice = memberOrder.getGoodsPrice();
// 金额单位为分
int totalInFen = goodsPrice.multiply(new BigDecimal(100)).setScale(0, RoundingMode.HALF_UP).intValue();
amount.setTotal(totalInFen);
payer.setOpenid(user.getOpenId());
request.setAmount(amount);
request.setAppid(appConfig.getAppId());
request.setMchid(wechatPayConfig.getMchId());
request.setDescription("开通会员");
request.setNotifyUrl(wechatPayConfig.getNotifyUrl());
request.setOutTradeNo(orderNo);
request.setPayer(payer);
// 调用下单方法得到应答
// response包含了调起支付所需的所有参数可直接用于前端调起支付
return service.prepayWithRequestPayment(request);
}
}

View File

@ -1,6 +1,8 @@
package com.ruoyi.busi.service.impl;
import java.math.BigDecimal;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;
import cn.hutool.core.collection.CollectionUtil;
@ -106,6 +108,28 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
return busiNoticeMapper.queryListPage(query, page);
}
// 方法用于提取URL中的eid参数值
public static String getEidFromUrl(String url) throws URISyntaxException {
URI uri = new URI(url);
String query = uri.getQuery();
Map<String, String> params = new HashMap<>();
for (String param : query.split("&")) {
String[] pair = param.split("=");
params.put(pair[0], pair.length > 1 ? pair[1] : null);
}
return params.get("eid");
}
// 判断两个URL中的eid是否相等
public static boolean isEidEqual(String url1, String url2) throws URISyntaxException {
try {
String eid1 = getEidFromUrl(url1);
String eid2 = getEidFromUrl(url2);
return eid1 != null && eid1.equals(eid2);
}catch (Exception e){
return false;
}
}
/**
* 新增通告
* @param data 通告对象
@ -137,11 +161,26 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
for (BusiNotice busiNotice : list) {
if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){
if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){
//title detail 相似度大于70% 待审核
//两条thirdurl相等
data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500);
result.put("msg","通告查重,下次早点上传哦!");
}else if (busiNotice.getThirdUrl().contains(data.getThirdUrl())||data.getThirdUrl().contains(busiNotice.getThirdUrl())){
//两条thirdurl存在包含情况
data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500);
result.put("msg","通告查重,下次早点上传哦!");
}else if (isEidEqual(data.getThirdUrl(),busiNotice.getThirdUrl())){
//两条thirdurl都存在eid且eid相等
data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500);
result.put("msg","通告查重,下次早点上传哦!");
}
if (data.getApprovalStatus().equals("8")){
break;
}
}
}
@ -235,11 +274,28 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
//删除结尾的最后一个逗号
data.setSimilarityIds(data.getSimilarityIds().substring(0, data.getSimilarityIds().length() - 1));
}
//若是急招扣除对应急招券
if (data.getApprovalStatus().equals("1")&&(StringUtils.isEmpty(oldData.getIsUrgent())||oldData.getIsUrgent().equals("0"))&&StringUtils.isNotEmpty(data.getIsUrgent())&&data.getIsUrgent().equals("1")){
memberCouponService.saveCoupon( data.getUserId(), "2", data.getId(), 1);
}
this.updateById(data);
MemberUserVO memberUserVO = memberUserService.queryByUserId(SecurityUtils.getUserId(), "01");
if(data.getApprovalStatus().equals("1")&&!oldData.getApprovalStatus().equals("1") ){
if (StringUtils.isNotEmpty(memberUserVO.getIdentityType()) && memberUserVO.getIdentityType().equals("05")){
//如果审核通过
//从配置表中获取积分
MemberPoints memberPoints = new MemberPoints();
memberPoints.setUserId(SecurityUtils.getUserId());
memberPoints.setType("1");
memberPoints.setFromCode("fbgg");
memberPointsService.savePoints(memberPoints);
}
//若是急招扣除对应急招券
if (StringUtils.isNotEmpty(data.getIsUrgent())&&data.getIsUrgent().equals("1")){
memberCouponService.saveCoupon( data.getUserId(), "2", data.getId(), 1);
}
cardService.dealMemberRights2(data.getUserId(),null,"add_notice",1);
if (CollectionUtil.isNotEmpty(data.getCustomForm())) {
cardService.dealMemberRights2(data.getUserId(),null,"report_info_collect",1);
}
}
}
//先删除表单数据
busiNoticeFormService.remove(new LambdaQueryWrapper<BusiNoticeForm>().eq(BusiNoticeForm::getNoticeId,data.getId()));
@ -406,16 +462,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
//打乱records的排列顺序
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}
@ -440,17 +491,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
List<BusiNoticeVo> pageList = busiNoticeMapper.appFootprintList(query,num);
List<String> idList = pageList.stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}
@ -576,16 +621,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}
@ -613,16 +653,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = baseMapper.loveList(query, page);
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}
@ -645,16 +680,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = baseMapper.myNoticeList(query, page);
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}
@ -673,16 +703,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = baseMapper.myPublishNoticeList(query, page);
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.getRecords().forEach(item->{
pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}

View File

@ -63,6 +63,7 @@ public class MemberApplyController extends BaseController {
try{
memberApplyService.toApply(memberApply);
}catch (Exception e){
logger.error(e.getMessage());
return error(e.getMessage());
}
return success();

View File

@ -52,6 +52,27 @@ public class MemberUserController extends BaseController {
return success(list);
}
/**
* 博主/通告主列表查询
*
* @param memberUser {@link MemberUserVO}
* @param pageNum 分页参数
* @param pageSize 分页参数
* @return com.ruoyi.common.core.domain.AjaxResult
* @author PQZ
* @date 14:58 2025/3/18
**/
@GetMapping("/crmList")
public AjaxResult crmList(MemberUserVO memberUser,
@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
Page<MemberUserVO> page = new Page<>(pageNum, pageSize);
IPage<MemberUserVO> list = memberUserService.crmList(memberUser, page);
return success(list);
}
/**
* 获取会员详细信息
*

View File

@ -1,6 +1,9 @@
package com.ruoyi.member.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
@ -59,5 +62,9 @@ public class MemberCard extends DlBaseEntity
/** 关联订单id */
@Excel(name = "关联订单id")
private String orderId;
/** 商品价格 */
@Excel(name = "商品价格")
@TableField(exist = false)
private BigDecimal goodsPrice;
}

View File

@ -31,4 +31,6 @@ public interface MemberCardMapper extends BaseMapper<MemberCard>
* @date 14:14 2025/4/25
**/
List<MemberCard> selectMemberCardList(@Param("userId")Long userId,@Param("userType")String userType,@Param("nowDate")String nowDate);
List<MemberCard> listByUserId(@Param("userId")Long userId,@Param("userType")String userType);
}

View File

@ -30,6 +30,9 @@ public interface MemberUserMapper extends BaseMapper<MemberUser> {
**/
IPage<MemberUserVO> queryListPage(@Param("entity") MemberUserVO entity, Page<MemberUserVO> page);
IPage<MemberUserVO> crmList(@Param("entity") MemberUserVO entity, Page<MemberUserVO> page);
/**
* 通过userId和用户类型查询用户信息
*

View File

@ -28,6 +28,10 @@ public interface IMemberUserService extends IService<MemberUser> {
**/
IPage<MemberUserVO> queryListPage(MemberUserVO pageReqVO, Page<MemberUserVO> page);
IPage<MemberUserVO> crmList(MemberUserVO pageReqVO, Page<MemberUserVO> page);
/**
* 根据用户表id获取通告主信息
*

View File

@ -80,13 +80,16 @@ public class MemberApplyServiceImpl extends ServiceImpl<MemberApplyMapper, Membe
memberApply.setApprovalTime(nowDate);
memberApply.setApprovalUserName(sysUser.getNickName());
updateById(memberApply);
//通过userId更新会员表身份类型
LambdaUpdateWrapper<MemberUser> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(MemberUser::getUserId, memberApply.getUserId())
.eq(DlBaseEntity::getDelFlag, 0)
.eq(MemberUser::getUserType, "01")
.set(MemberUser::getIdentityType, memberApply.getIdentityType());
memberUserService.update(lambdaUpdateWrapper);
if (memberApply.getApprovalStatus().equals("1")) {
//通过userId更新会员表身份类型
LambdaUpdateWrapper<MemberUser> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(MemberUser::getUserId, memberApply.getUserId())
.eq(DlBaseEntity::getDelFlag, 0)
.eq(MemberUser::getUserType, "01")
.set(MemberUser::getIdentityType, memberApply.getIdentityType());
memberUserService.update(lambdaUpdateWrapper);
}
}
/**

View File

@ -18,6 +18,7 @@ import com.ruoyi.member.mapper.MemberBusiCardMapper;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.service.IMemberBusiCardService;
import com.ruoyi.member.vo.MemberBusiCardVO;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -45,6 +46,8 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
private IBusiNoticeService noticeService;
@Autowired
private ISysUserService userService;
@Autowired
private ISysConfigService configService;
/**
* 分页查询博主名片信息
@ -134,7 +137,8 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
List<BaseCategory> list = categoryService.selectByCode(memberBusiCard.getPlatformCode());
memberBusiCard.setPlatformName(list.get(0).getTitle());
//设置用户审核状态
memberBusiCard.setApprovalStatus("0");
String status = configService.selectConfigByKey("isPass");
memberBusiCard.setApprovalStatus(status);
saveOrUpdate(memberBusiCard);
}
/**
@ -163,7 +167,7 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
//获取通告的粉丝限制
//获取通告的粉丝限制
for (MemberBusiCardVO re : resList) {
if ((null != busiNotice.getFansUp() &&re.getFansNum() > busiNotice.getFansUp())||(null !=busiNotice.getFansDown() && re.getFansNum() < busiNotice.getFansDown()) ) {
if (((null != busiNotice.getFansUp()&&0 != busiNotice.getFansUp()) &&re.getFansNum() > busiNotice.getFansUp())||(null !=busiNotice.getFansDown() && re.getFansNum() < busiNotice.getFansDown()) ) {
re.setCanUse("0");
canUseNum--;
}

View File

@ -64,14 +64,8 @@ public class MemberCardServiceImpl extends ServiceImpl<MemberCardMapper, MemberC
**/
@Override
public List<MemberCard> listByUserId(Long userId, String userType) {
//查询列表
LambdaUpdateWrapper<MemberCard> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper
.eq(DlBaseEntity::getDelFlag, 0)
.eq(MemberCard::getUserId, userId)
.eq(MemberCard::getUserType, userType)
.orderByDesc(DlBaseEntity::getCreateTime);
return list(lambdaUpdateWrapper);
return baseMapper.listByUserId(userId, userType);
}
/**

View File

@ -137,6 +137,45 @@ public class MemberUserServiceImpl extends ServiceImpl<MemberUserMapper, MemberU
return rtnPage;
}
@Override
public IPage<MemberUserVO> crmList(MemberUserVO pageReqVO, Page<MemberUserVO> page) {
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser user = loginUser.getUser();
// 管理员拥有所有权限
if (!user.isAdmin()) {
Set<String> strings = roleService.selectRolePermissionByUserId(user.getUserId());
if (strings.contains("xsry")){
pageReqVO.setUserId(user.getUserId());
}
}
//当前日期--年月日
String today= DateUtil.today();
//截取年月
String yearMonth = today.substring(0, Math.min(today.length(), 7));
IPage<MemberUserVO> rtnPage=memberUserMapper.crmList(pageReqVO, page);
LambdaQueryWrapper<MemberOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MemberOrder::getIsPay,1);
for (MemberUserVO item: rtnPage.getRecords()){
BigDecimal monthMoney = BigDecimal.valueOf(0);
BigDecimal allMoney = BigDecimal.valueOf(0);
queryWrapper.eq(MemberOrder::getUserId,item.getUserId());
List<MemberOrder> orderList = orderService.list(queryWrapper);
for (MemberOrder order:orderList){
String payTimeStr =DateUtil.formatDate(order.getPayTime());
//截取年月
String orderYearMonth = payTimeStr.substring(0, Math.min(payTimeStr.length(), 7));
if(orderYearMonth.equals(yearMonth)){
//本月的订单
monthMoney =monthMoney.add(order.getGoodsPrice());
}
allMoney = allMoney.add(order.getGoodsPrice());
}
item.setMonthMoney(monthMoney);
item.setAllMoney(allMoney);
}
return rtnPage;
}
/**
* 根据用户表id获取通告主信息
*
@ -178,6 +217,8 @@ public class MemberUserServiceImpl extends ServiceImpl<MemberUserMapper, MemberU
result.setAddresses(addressService.listByUserId(userId));
//会员开通记录
result.setCards(cardService.listByUserId(userId, "02"));
//获取会员开卡记录
return result;
}
@ -255,6 +296,7 @@ public class MemberUserServiceImpl extends ServiceImpl<MemberUserMapper, MemberU
user.setNickName("微信用户");
user.setOpenId(openid);
user.setPhonenumber(phone);
user.setPassword(SecurityUtils.encryptPassword("123456"));
user.setSex("2");
user.setCreateTime(DateUtils.getNowDate());
user.setUnionId(unionid);

View File

@ -66,15 +66,15 @@ order by dbns.create_time desc
<select id="queryAppListPage" resultType="com.ruoyi.busi.vo.BusiNoticeVo">
SELECT
dbn.*,
dbnv.view_num AS viewNum,
-- dbnv.view_num AS viewNum,
su.avatar,
su.nick_name AS userNickName,
count(sign.id) as reportNum
su.nick_name AS userNickName
-- count(sign.id) as reportNum
FROM
dl_busi_notice dbn
LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id
-- LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id
LEFT JOIN sys_user su ON dbn.user_id = su.user_id
left join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0
-- left join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0
<if test="entity.userId!=null and entity.userId!=''">
left join dl_member_blacklist blacklist on blacklist.black_user_id = dbn.user_id and blacklist.del_flag = 0 and blacklist.user_id = #{entity.userId}
</if>
@ -85,7 +85,7 @@ order by dbns.create_time desc
and blacklist.id is null
</if>
<if test="entity.gift!=null and entity.gift!=''">
AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail != '' )
AND (( dbn.fee_down is null or dbn.fee_down = 0 ) and dbn.fee_up = 0)
</if>
<if test="entity.cityName!=null and entity.cityName!=''">
AND dbn.city =#{entity.cityName}
@ -108,18 +108,46 @@ order by dbns.create_time desc
<if test="entity.rewardType=='gift'">
AND ( dbn.have_gift = '1' )
</if>
<if test="entity.fansUp!=null">
AND ( dbn.fans_up &lt;= #{entity.fansUp} )
</if>
<if test="entity.fansDown!=null">
AND ( dbn.fans_down &lt;= #{entity.fansDown} )
</if>
<if test="entity.feeUp!=null">
AND ( dbn.fee_up &lt;= #{entity.feeUp} )
</if>
<if test="entity.feeDown!=null">
AND ( dbn.fee_down &lt;=#{entity.feeDown} )
</if>
<choose>
<!-- 情况一:同时填写了下限和上限 -->
<when test="entity.fansDown != null and entity.fansUp != null">
AND (
dbn.fans_down <![CDATA[ <= ]]> #{entity.fansUp}
AND (dbn.fans_up IS NULL OR dbn.fans_up >= #{entity.fansDown})
)
</when>
<!-- 情况二:只填写了下限 -->
<when test="entity.fansDown != null">
AND (dbn.fans_up IS NULL OR dbn.fans_up >= #{entity.fansDown})
</when>
<!-- 情况三:只填写了上限 -->
<when test="entity.fansUp != null">
AND dbn.fans_down <![CDATA[ <= ]]> #{entity.fansUp}
</when>
</choose>
<choose>
<!-- 情况一:同时填写了下限和上限 -->
<when test="entity.feeDown != null and entity.feeUp != null">
AND (
dbn.fee_down <![CDATA[ <= ]]> #{entity.feeUp}
AND (dbn.fee_up IS NULL OR dbn.fee_up >= #{entity.feeDown})
)
</when>
<!-- 情况二:只填写了下限 -->
<when test="entity.feeDown != null">
AND (dbn.fee_up IS NULL OR dbn.fee_up >= #{entity.feeDown})
</when>
<!-- 情况三:只填写了上限 -->
<when test="entity.feeUp != null">
AND dbn.fee_down <![CDATA[ <= ]]> #{entity.feeUp}
</when>
</choose>
group by dbn.id
ORDER BY
<choose>
@ -201,20 +229,10 @@ order by dbns.create_time desc
</if>
group by dbn.id
ORDER BY
<choose>
<when test="entity.sortBy=='new'">
-- 查最新的 --
dbn.create_time DESC
</when>
<when test="entity.sortBy=='money'">
-- 查高奖励 --
dbn.fee_up DESC
</when>
<otherwise>
-- 默认正序排列 --
dbn.create_time ASC
</otherwise>
</choose>
-- 默认正序排列 --
footprint.create_time desc
limit #{num}
</select>
<select id="subscribeList" resultType="com.ruoyi.busi.vo.BusiNoticeVo">

View File

@ -56,6 +56,18 @@
ORDER BY dmc.end_date DESC
</select>
<select id="listByUserId" resultType="com.ruoyi.member.domain.MemberCard">
SELECT
dmc.*,orderInfo.goods_price
FROM
dl_member_card dmc
LEFT JOIN dl_base_card dbc ON dmc.card_id = dbc.id
left join dl_member_order orderInfo on orderInfo.id = dmc.order_id
WHERE dmc.user_id = #{userId}
AND dmc.user_type = #{userType}
AND dmc.del_flag = 0
ORDER BY dmc.end_date DESC
</select>
</mapper>

View File

@ -81,12 +81,22 @@
<if test="entity.identityType != null and entity.identityType != ''">and main.identity_type =
#{entity.identityType}
</if>
<if test="entity.nickName != null and entity.nickName != '' ">and su.nack_name = #{entity.nickName}</if>
<if test="entity.nickName != null and entity.nickName != '' ">and su.nick_name like concat('%',#{entity.nickName},'%') </if>
<if test="entity.userId != null "> and su.invite_id = #{entity.userId}</if>
<if test="entity.tel != null and entity.tel !='' "> and main.tel like CONCAT('%',#{entity.tel},'%') </if>
<if test="entity.params.minnum != null"> and main.ttotal_num &gt;= #{entity.params.minnum} </if>
<if test="entity.params.maxnum != null"> and main.ttotal_num &lt;= #{entity.params.maxnum} </if>
</where>
GROUP BY main.user_id
ORDER BY mc.create_time desc
<choose>
<when test="entity.params.orderBy != null and entity.params.orderBy != ''">
ORDER BY ${entity.params.orderBy}
</when>
<otherwise>
ORDER BY mc.create_time desc
</otherwise>
</choose>
</select>
<select id="queryByUserId" resultType="com.ruoyi.member.vo.MemberUserVO">
select main.id AS id,
@ -126,6 +136,60 @@
and main.user_type = #{userType}
GROUP BY main.user_id
</select>
<select id="crmList" resultType="com.ruoyi.member.vo.MemberUserVO">
select main.id AS id,
main.user_type AS userType,
main.identity_type AS identityType,
main.user_id AS userId,
main.tel AS tel,
main.tremaining AS tremaining,
main.ttotal_num AS ttotalNum,
main.tfans_num AS tfansNum,
main.topen_disturb AS topenDisturb,
main.trecipient_name AS trecipientName,
main.trecipient_image AS trecipientImage,
main.bpoints AS bpoints,
su.nick_name AS nickName,
su.status AS status,
su.avatar AS avatar,
su.phonenumber AS phonenumber,
su_temp.nick_name AS inviteName,
GROUP_CONCAT(mc.card_name SEPARATOR ', ') AS memberCardName,
main.create_time
from dl_member_user main
LEFT JOIN sys_user su ON main.user_id = su.user_id AND su.del_flag = 0
LEFT JOIN sys_user su_temp ON su.invite_id = su_temp.user_id AND su_temp.del_flag = 0
LEFT JOIN dl_member_card mc
ON main.user_id = mc.user_id
AND mc.start_date &lt;= CURDATE()
AND mc.end_date &gt;= CURDATE()
AND mc.del_flag = 0
AND mc.user_type = #{entity.userType}
<where>
main.del_flag = 0
<if test="entity.userType != null and entity.userType != ''">
and main.user_type = #{entity.userType}
</if>
<if test="entity.identityType != null and entity.identityType != ''">and main.identity_type =
#{entity.identityType}
</if>
<if test="entity.nickName != null and entity.nickName != '' ">and su.nick_name like concat('%',#{entity.nickName},'%') </if>
<if test="entity.userId != null "> and su.invite_id = #{entity.userId}</if>
<if test="entity.tel != null and entity.tel !='' "> and main.tel like CONCAT('%',#{entity.tel},'%') </if>
<if test="entity.params.minnum != null"> and main.ttotal_num &gt;= #{entity.params.minnum} </if>
<if test="entity.params.maxnum != null"> and main.ttotal_num &lt;= #{entity.params.maxnum} </if>
</where>
GROUP BY main.user_id
<choose>
<when test="entity.params.orderBy != null and entity.params.orderBy != ''">
ORDER BY ${entity.params.orderBy}
</when>
<otherwise>
ORDER BY mc.create_time desc
</otherwise>
</choose>
</select>
</mapper>

View File

@ -68,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND u.user_id = #{userId}
</if>
<if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%')
AND u.nick_name like concat('%', #{userName}, '%')
</if>
<if test="status != null and status != ''">
AND u.status = #{status}