From 4418f3cf8ec03acb5c9ad9822536da77bdb82ecc Mon Sep 17 00:00:00 2001 From: 13405411873 <1994398261@qq.com> Date: Fri, 20 Jun 2025 15:20:08 +0800 Subject: [PATCH] =?UTF-8?q?crm=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/api/PayApi.java | 69 +++++++++++++------ .../controller/MemberUserController.java | 21 ++++++ .../com/ruoyi/member/domain/MemberCard.java | 9 ++- .../ruoyi/member/mapper/MemberCardMapper.java | 4 +- .../ruoyi/member/mapper/MemberUserMapper.java | 3 + .../member/service/IMemberUserService.java | 8 ++- .../service/impl/MemberApplyServiceImpl.java | 17 +++-- .../impl/MemberBusiCardServiceImpl.java | 8 ++- .../service/impl/MemberCardServiceImpl.java | 10 +-- .../service/impl/MemberUserServiceImpl.java | 42 +++++++++++ .../mapper/busi/BusiNoticeMapper.xml | 6 +- .../mapper/member/MemberCardMapper.xml | 14 +++- .../mapper/member/MemberUserMapper.xml | 66 +++++++++++++++++- 13 files changed, 229 insertions(+), 48 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/PayApi.java b/ruoyi-admin/src/main/java/com/ruoyi/api/PayApi.java index 1174827..a0c41d7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/PayApi.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/PayApi.java @@ -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 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); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/controller/MemberUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/member/controller/MemberUserController.java index 5f2cda4..cc7b2af 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/controller/MemberUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/controller/MemberUserController.java @@ -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 page = new Page<>(pageNum, pageSize); + IPage list = memberUserService.crmList(memberUser, page); + return success(list); + } + /** * 获取会员详细信息 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberCard.java b/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberCard.java index f6a1c0e..94ee635 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberCard.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberCard.java @@ -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; @@ -11,7 +14,7 @@ import com.ruoyi.common.core.domain.DlBaseEntity; /** * 会员开卡记录对象 dl_member_card - * + * * @author pqz * @date 2025-03-17 */ @@ -59,5 +62,9 @@ public class MemberCard extends DlBaseEntity /** 关联订单id */ @Excel(name = "关联订单id") private String orderId; + /** 商品价格 */ + @Excel(name = "商品价格") + @TableField(exist = false) + private BigDecimal goodsPrice; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberCardMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberCardMapper.java index 78e9ec3..9df3ef8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberCardMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberCardMapper.java @@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param; /** * 会员开卡记录Mapper接口 - * + * * @author pqz * @date 2025-03-17 */ @@ -31,4 +31,6 @@ public interface MemberCardMapper extends BaseMapper * @date 14:14 2025/4/25 **/ List selectMemberCardList(@Param("userId")Long userId,@Param("userType")String userType,@Param("nowDate")String nowDate); + List listByUserId(@Param("userId")Long userId,@Param("userType")String userType); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberUserMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberUserMapper.java index c6f961e..05fa6cd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberUserMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberUserMapper.java @@ -30,6 +30,9 @@ public interface MemberUserMapper extends BaseMapper { **/ IPage queryListPage(@Param("entity") MemberUserVO entity, Page page); + IPage crmList(@Param("entity") MemberUserVO entity, Page page); + + /** * 通过userId和用户类型查询用户信息 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java index 133e978..ce81724 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java @@ -28,6 +28,10 @@ public interface IMemberUserService extends IService { **/ IPage queryListPage(MemberUserVO pageReqVO, Page page); + IPage crmList(MemberUserVO pageReqVO, Page page); + + + /** * 根据用户表id获取通告主信息 * @@ -96,9 +100,9 @@ public interface IMemberUserService extends IService { /** * 发布通告数量统计 * @author PQZ - * @date 15:20 2025/6/16 + * @date 15:20 2025/6/16 * @param userId 用户id **/ void setTotalNum(Long userId); -} \ No newline at end of file +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberApplyServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberApplyServiceImpl.java index 61378a2..4d4eb91 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberApplyServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberApplyServiceImpl.java @@ -80,13 +80,16 @@ public class MemberApplyServiceImpl extends ServiceImpl 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 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); + } + } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberBusiCardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberBusiCardServiceImpl.java index fbf44aa..242c57e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberBusiCardServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberBusiCardServiceImpl.java @@ -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 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 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--; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java index 6bdea80..54de7cf 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java @@ -64,14 +64,8 @@ public class MemberCardServiceImpl extends ServiceImpl listByUserId(Long userId, String userType) { - //查询列表 - LambdaUpdateWrapper 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); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java index 3216ae8..fe3e5da 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java @@ -137,6 +137,45 @@ public class MemberUserServiceImpl extends ServiceImpl crmList(MemberUserVO pageReqVO, Page page) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + SysUser user = loginUser.getUser(); + // 管理员拥有所有权限 + if (!user.isAdmin()) { + Set 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 rtnPage=memberUserMapper.crmList(pageReqVO, page); + LambdaQueryWrapper 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 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 SELECT dbn.*, - dbnv.view_num AS viewNum, +-- dbnv.view_num AS viewNum, su.avatar, - su.nick_name AS userNickName, + 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 diff --git a/ruoyi-admin/src/main/resources/mapper/member/MemberCardMapper.xml b/ruoyi-admin/src/main/resources/mapper/member/MemberCardMapper.xml index d3440d4..aca9e8d 100644 --- a/ruoyi-admin/src/main/resources/mapper/member/MemberCardMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/member/MemberCardMapper.xml @@ -56,6 +56,18 @@ ORDER BY dmc.end_date DESC + - \ No newline at end of file + diff --git a/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml b/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml index 948ea3c..4df896a 100644 --- a/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/member/MemberUserMapper.xml @@ -84,9 +84,19 @@ and su.nick_name like concat('%',#{entity.nickName},'%') and su.invite_id = #{entity.userId} and main.tel like CONCAT('%',#{entity.tel},'%') + and main.ttotal_num >= #{entity.params.minnum} + and main.ttotal_num <= #{entity.params.maxnum} GROUP BY main.user_id - ORDER BY mc.create_time desc + + + ORDER BY ${entity.params.orderBy} + + + ORDER BY mc.create_time desc + + + +