Browse Source

Merge remote-tracking branch 'refs/remotes/origin/lijianlin/feature-20250728171217-三期金豆消费相关' into milestone-20250727-金币重构三期

huangqizheng/feature-20250801180134-消费导出
lijianlin 2 weeks ago
parent
commit
ac12dbc730
  1. 10
      src/main/java/com/example/demo/controller/bean/BeanConsumeController.java
  2. 9
      src/main/java/com/example/demo/controller/bean/BeanRechargeController.java
  3. 39
      src/main/java/com/example/demo/controller/bean/BeanUserController.java
  4. 23
      src/main/java/com/example/demo/domain/vo/bean/BeanPage.java
  5. 28
      src/main/java/com/example/demo/domain/vo/bean/BeanUser.java
  6. 1
      src/main/java/com/example/demo/domain/vo/bean/BeanUserCard.java
  7. 2
      src/main/java/com/example/demo/domain/vo/coin/Page.java
  8. 8
      src/main/java/com/example/demo/mapper/bean/BeanUserMapper.java
  9. 11
      src/main/java/com/example/demo/service/bean/BeanUserService.java
  10. 22
      src/main/java/com/example/demo/serviceImpl/bean/BeanUserServiceImpl.java
  11. 67
      src/main/resources/jindouMapper/BeanUser.xml

10
src/main/java/com/example/demo/controller/bean/BeanConsumeController.java

@ -1,25 +1,15 @@
package com.example.demo.controller.bean; package com.example.demo.controller.bean;
import com.example.demo.Util.JWTUtil;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.bean.BeanConsumeGold; import com.example.demo.domain.vo.bean.BeanConsumeGold;
import com.example.demo.domain.vo.bean.BeanConsumeLive;
import com.example.demo.domain.vo.bean.BeanPage;
import com.example.demo.domain.vo.coin.Gold;
import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.RechargeAudit;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanConsumeService; import com.example.demo.service.bean.BeanConsumeService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**

9
src/main/java/com/example/demo/controller/bean/BeanRechargeController.java

@ -1,25 +1,16 @@
package com.example.demo.controller.bean; package com.example.demo.controller.bean;
import com.example.demo.Util.JWTUtil;
import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.bean.BeanRecharge; import com.example.demo.domain.vo.bean.BeanRecharge;
import com.example.demo.domain.vo.bean.BeanPage;
import com.example.demo.domain.vo.bean.BeanRechargeInfo; import com.example.demo.domain.vo.bean.BeanRechargeInfo;
import com.example.demo.domain.vo.bean.GoldBean; import com.example.demo.domain.vo.bean.GoldBean;
import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanRechargeService; import com.example.demo.service.bean.BeanRechargeService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.Arrays;
import java.util.List;
/** /**
* @program: gold-java * @program: gold-java

39
src/main/java/com/example/demo/controller/bean/BeanUserController.java

@ -1,14 +1,19 @@
package com.example.demo.controller.bean; package com.example.demo.controller.bean;
import com.example.demo.domain.entity.User; import com.example.demo.domain.entity.User;
import com.example.demo.domain.vo.bean.BeanUser;
import com.example.demo.domain.vo.bean.BeanUserCard; import com.example.demo.domain.vo.bean.BeanUserCard;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.service.bean.BeanUserService; import com.example.demo.service.bean.BeanUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* @program: gold-java * @program: gold-java
* @ClassName BeanUserController * @ClassName BeanUserController
@ -37,4 +42,38 @@ public class BeanUserController {
return Result.error("请检查输入精网号格式"); return Result.error("请检查输入精网号格式");
} }
} }
//客户金豆余额
@PostMapping("/userBean")
public Result userBean(@RequestBody Page page) {
try {
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.error("页码数为空!");
}
if (ObjectUtils.isEmpty(page.getPageSize())) {
return Result.error("页大小为空!");
} else {
return Result.success(beanUserService.selectUserBy(page.getPageNum(), page.getPageSize(), page.getBeanUser()));
}
} catch (Exception e) {
e.printStackTrace();
return Result.error(e.toString());
}}
//客户金币余额合计数
@PostMapping("/userBeanSum")
public Result userBeanSum(@RequestBody Page page) {
return Result.success(beanUserService.sumUserGold(page));
}
//查询客户分部
@PostMapping("/getDept")
public Result getDept() {
List<String> deptList = beanUserService.getDept();
return Result.success(deptList);
}
} }

23
src/main/java/com/example/demo/domain/vo/bean/BeanPage.java

@ -1,23 +0,0 @@
package com.example.demo.domain.vo.bean;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @program: gold-java
* @ClassName Page
* @description:
* @author: Ethan
* @create: 202507-30 11:44
* @Version 1.0
**/
@Data
@NoArgsConstructor
public class BeanPage {
private static final long serialVersionUID = 1L;
private String token;
private Integer pageNum; //页码
private Integer pageSize; //每页大小
}

28
src/main/java/com/example/demo/domain/vo/bean/BeanUser.java

@ -0,0 +1,28 @@
package com.example.demo.domain.vo.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @program: gold-java
* @ClassName BeanUser
* @description:
* @author: Ethan
* @create: 202508-01 10:40
* @Version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BeanUser {
private String name; //姓名
private Integer jwcode; //精网号
private String dept; //分部
private Integer beanNum; //金豆数量
private Integer buyBean; //付费金豆
private Integer freeBean; //免费金豆
private Integer totalCostBean; //历史消费
private String sortField; //排序字段
private String sortOrder; //排序顺序
}

1
src/main/java/com/example/demo/domain/vo/bean/BeanUserCard.java

@ -22,6 +22,7 @@ public class BeanUserCard {
private String name; // 客户姓名 private String name; // 客户姓名
private Integer jwcode; // 精网号 private Integer jwcode; // 精网号
private String market; // 所属地区 private String market; // 所属地区
private Integer sumBean; // 所有金豆
private Integer freeBean; // 免费豆 private Integer freeBean; // 免费豆
private Integer permanentBean; // 永久豆 private Integer permanentBean; // 永久豆
private Integer consumeSum; // 消费金额 private Integer consumeSum; // 消费金额

2
src/main/java/com/example/demo/domain/vo/coin/Page.java

@ -36,4 +36,6 @@ public class Page {
private BeanConsumeArticle beanConsumeArticle; //文章金豆消费 private BeanConsumeArticle beanConsumeArticle; //文章金豆消费
private BeanRechargeInfo beanRechargeInfo; //金豆充值信息 private BeanRechargeInfo beanRechargeInfo; //金豆充值信息
private BeanConsumeGold beanConsumeGold; //金豆消费合计数 private BeanConsumeGold beanConsumeGold; //金豆消费合计数
private BeanUser beanUser; //客户金豆余额明细
private BeanUserCard beanUserCard; //客户金豆卡片
} }

8
src/main/java/com/example/demo/mapper/bean/BeanUserMapper.java

@ -1,6 +1,7 @@
package com.example.demo.mapper.bean; package com.example.demo.mapper.bean;
import com.example.demo.domain.vo.bean.BeanUser;
import com.example.demo.domain.vo.bean.BeanUserCard; import com.example.demo.domain.vo.bean.BeanUserCard;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -18,6 +19,13 @@ import java.util.List;
@Mapper @Mapper
public interface BeanUserMapper { public interface BeanUserMapper {
//查询客户金豆余额
List<BeanUser> selectUserBy(@Param("beanUser") BeanUser beanUser);
//查询用户卡片 //查询用户卡片
BeanUserCard userCard(@Param("jwcode")String jwcode, @Param("markets")List<String> markets); BeanUserCard userCard(@Param("jwcode")String jwcode, @Param("markets")List<String> markets);
//查询客户金豆余额合计
BeanUserCard SumUserBy(@Param("beanUser")BeanUser beanUser);
//查询客户分部
List<String> getDept();
} }

11
src/main/java/com/example/demo/service/bean/BeanUserService.java

@ -2,9 +2,13 @@ package com.example.demo.service.bean;
import com.example.demo.domain.vo.bean.BeanUser;
import com.example.demo.domain.vo.bean.BeanUserCard; import com.example.demo.domain.vo.bean.BeanUserCard;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import java.util.List;
/** /**
* @program: gold-java * @program: gold-java
* @ClassName BeanUserService * @ClassName BeanUserService
@ -17,4 +21,11 @@ import com.example.demo.domain.vo.coin.Result;
public interface BeanUserService { public interface BeanUserService {
//查询用户卡片 //查询用户卡片
Result userCard(String jwcode); Result userCard(String jwcode);
//查询客户金豆余额
Object selectUserBy(Integer pageNum, Integer pageSize, BeanUser beanUser);
//客户金豆余额合计数
BeanUserCard sumUserGold(Page page);
//客户 部门
List<String> getDept();
} }

22
src/main/java/com/example/demo/serviceImpl/bean/BeanUserServiceImpl.java

@ -2,10 +2,15 @@ package com.example.demo.serviceImpl.bean;
import com.example.demo.Util.JWTUtil; import com.example.demo.Util.JWTUtil;
import com.example.demo.domain.entity.Admin; import com.example.demo.domain.entity.Admin;
import com.example.demo.domain.vo.bean.BeanConsumeArticle;
import com.example.demo.domain.vo.bean.BeanUser;
import com.example.demo.domain.vo.bean.BeanUserCard; import com.example.demo.domain.vo.bean.BeanUserCard;
import com.example.demo.domain.vo.coin.Page;
import com.example.demo.domain.vo.coin.Result; import com.example.demo.domain.vo.coin.Result;
import com.example.demo.mapper.bean.BeanUserMapper; import com.example.demo.mapper.bean.BeanUserMapper;
import com.example.demo.service.bean.BeanUserService; import com.example.demo.service.bean.BeanUserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -51,4 +56,21 @@ public class BeanUserServiceImpl implements BeanUserService {
return Result.error("用户查找不到"); return Result.error("用户查找不到");
} }
} }
//查询客户金豆余额
@Override
public Object selectUserBy(Integer pageNum, Integer pageSize, BeanUser beanUser) {
PageHelper.startPage(pageNum, pageSize);
List<BeanUser> beanUsers = beanUserMapper.selectUserBy(beanUser);
return new PageInfo<>(beanUsers);
}
//客户金豆余额合计数
@Override
public BeanUserCard sumUserGold(Page page) {
return beanUserMapper.SumUserBy(page.getBeanUser());
}
@Override
public List<String> getDept() {
return beanUserMapper.getDept();
}
} }

67
src/main/resources/jindouMapper/BeanUser.xml

@ -20,5 +20,72 @@
m.jwcode = #{jwcode} m.jwcode = #{jwcode}
</where> </where>
</select> </select>
<!--查询客户金豆余额-->
<select id="selectUserBy" resultType="com.example.demo.domain.vo.bean.BeanUser">
SELECT fm.nickname AS name,
fm.jwcode,
fm.dept,
fy.jinbi AS beanNum,
fy.jinbi_free AS freeBean,
fy.jinbi_buy AS buyBean,
fy.jinbi_cost_total AS totalCostBean
FROM fx_member fm
INNER JOIN fx_yaoqing fy ON fy.uid = fm.id
<where>
<if test="beanUser.jwcode != null and beanUser.jwcode != ''">
AND fm.jwcode = #{beanUser.jwcode}
</if>
<if test="beanUser.dept != null and beanUser.dept != ''">
AND fm.dept = #{beanUser.dept}
</if>
</where>
<choose>
<when test="beanUser.sortField != null and beanUser.sortField != '' and beanUser.sortOrder != null and beanUser.sortOrder != ''">
ORDER BY ${beanUser.sortField} ${beanUser.sortOrder}
</when>
<otherwise>
ORDER BY beanNum DESC
</otherwise>
</choose>
</select>
<!--查询客户金豆余额合计数-->
<select id="SumUserBy" resultType="com.example.demo.domain.vo.bean.BeanUserCard">
SELECT
IFNULL(SUM(t.jinbi), 0) AS sumBean,
IFNULL(SUM(t.jinbi_buy), 0) AS permanentBean,
IFNULL(SUM(t.jinbi_free), 0) AS freeBean,
IFNULL(SUM(t.jinbi_cost_total),0) AS consumeSum
FROM (
SELECT
fy.jinbi,
fy.jinbi_buy,
fy.jinbi_free,
fy.jinbi_cost_total
FROM fx_member fm
INNER JOIN fx_yaoqing fy ON fy.uid = fm.id
<where>
<if test="beanUser.jwcode != null and beanUser.jwcode != ''">
AND fm.jwcode = #{beanUser.jwcode}
</if>
<if test="beanUser.dept != null and beanUser.dept != ''">
AND fm.dept = #{beanUser.dept}
</if>
</where>
) AS t
</select>
<select id="getDept" resultType="java.lang.String">
select distinct fm.dept
from fx_member fm
inner join fx_yaoqing fy on fy.uid = fm.id
where fm.dept is not null and fm.dept != ''
</select>
</mapper> </mapper>
Loading…
Cancel
Save