渠道商

This commit is contained in:
曹磊 2024-12-03 10:21:40 +08:00
parent ad959443ab
commit 896696390a
32 changed files with 1512 additions and 0 deletions

View File

@ -262,4 +262,12 @@ public class UserEntity implements Serializable {
private String blYwyCode;
private Integer blIsQds;
private String blQdsCode;
private Integer blIsDls;
private String blDlsCode;
}

View File

@ -360,6 +360,9 @@ public class UserMoneyDetailsServiceImpl extends ServiceImpl<UserMoneyDetailsDao
case 7:
queryWrapper.eq("bl_role", 7);//代理
break;
case 8:
queryWrapper.eq("bl_role", 8);//代理
break;
}
}
// if(StringUtil.isNotEmpty(period.getStartFundData().toString())){

View File

@ -0,0 +1,62 @@
package com.sqx.modules.bl.commission.qds.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsApply;
import com.sqx.modules.bl.commission.qds.service.QdsApplyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/commission/qdsApply")
@Api(value = "分佣管理", tags = {"渠道商申请"})
public class QdsApplyController {
@Autowired
private QdsApplyService service;
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(QdsApply qdsApply){
return service.findPage(qdsApply);
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(QdsApply qdsApply){
service.add(qdsApply);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(QdsApply qdsApply){
service.update(qdsApply);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(QdsApply qdsApply){
service.removeById(qdsApply.getId());
return Result.success();
}
@PostMapping("/approve")
@ApiOperation("审批")
public Result approve(QdsApply qdsApply){
service.approve(qdsApply);
return Result.success();
}
@GetMapping("/findUserPage")
@ApiOperation("查询(分页)")
public Result findUserPage(QdsApply qdsApply){
return service.findUserPage(qdsApply);
}
}

View File

@ -0,0 +1,63 @@
package com.sqx.modules.bl.commission.qds.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsCode;
import com.sqx.modules.bl.commission.qds.service.QdsCodeService;
import com.sqx.modules.bl.commission.qds.service.QdsLmService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/commission/qdsCode")
@Api(value = "分佣管理", tags = {"渠道商渠道码"})
public class QdsCodeController {
@Autowired
private QdsCodeService service;
@Autowired
private QdsLmService lmService;
@GetMapping("/lmList")
@ApiOperation("类目列表")
public Result lmList(){
return lmService.findList(null);
}
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(QdsCode qdsCode){
return service.findPage(qdsCode);
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(QdsCode qdsCode){
service.add(qdsCode);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(QdsCode qdsCode){
service.update(qdsCode);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(QdsCode qdsCode){
service.removeById(qdsCode.getId());
return Result.success();
}
@GetMapping("/findUserPage")
@ApiOperation("查询用户(分页)")
public Result findUserPage(QdsCode qdsCode){
return service.findUserPage(qdsCode);
}
}

View File

@ -0,0 +1,49 @@
package com.sqx.modules.bl.commission.qds.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsConfig;
import com.sqx.modules.bl.commission.qds.service.QdsConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestController
@RequestMapping("/commission/qdsConfig")
@Api(value = "分佣管理", tags = {"渠道商配置"})
public class QdsConfigController {
@Autowired
private QdsConfigService service;
@GetMapping("/info")
@ApiOperation("查询渠道商配置")
public Result info(QdsConfig qdsConfig){
QdsConfig entity = service.getById(qdsConfig);
if(entity == null){
entity = service.getOne(new QueryWrapper<QdsConfig>());
}
return Result.success().put("data",entity);
}
@PostMapping("/save")
@ApiOperation("添加渠道商")
public Result save(QdsConfig qdsConfig){
QdsConfig entity = service.getById(qdsConfig);
if(entity!=null){
service.updateById(qdsConfig);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qdsConfig.setCreateTime(sdf.format(new Date()));
service.save(qdsConfig);
}
return Result.success();
}
}

View File

@ -0,0 +1,33 @@
package com.sqx.modules.bl.commission.qds.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsData;
import com.sqx.modules.bl.commission.qds.service.QdsDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/commission/qdsData")
@Api(value = "分佣管理", tags = {"渠道商数据"})
public class QdsDataController {
@Autowired
private QdsDataService service;
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(QdsData qdsData){
return service.findPage(qdsData);
}
@GetMapping("/invitationPage")
@ApiOperation("邀请用户(分页)")
public Result invitationPage(QdsData qdsData){
return service.invitationPage(qdsData);
}
}

View File

@ -0,0 +1,53 @@
package com.sqx.modules.bl.commission.qds.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsLm;
import com.sqx.modules.bl.commission.qds.service.QdsLmService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestController
@RequestMapping("/commission/qdsLm")
@Api(value = "分佣管理", tags = {"渠道商类目"})
public class QdsLmController {
@Autowired
private QdsLmService service;
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(QdsLm qdsLm){
return service.findPage(qdsLm);
}
@PostMapping("/add")
@ApiOperation("添加类目")
public Result add(QdsLm qdsLm){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qdsLm.setCreateTime(sdf.format(new Date()));
service.save(qdsLm);
return Result.success();
}
@PostMapping("/modify")
@ApiOperation("修改类目")
public Result modify(QdsLm qdsLm){
service.updateById(qdsLm);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除类目")
public Result delete(QdsLm qdsLm){
service.removeById(qdsLm.getId());
return Result.success();
}
}

View File

@ -0,0 +1,75 @@
package com.sqx.modules.bl.commission.qds.controller.app;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.annotation.Login;
import com.sqx.modules.bl.commission.qds.entity.QdsApply;
import com.sqx.modules.bl.commission.qds.service.QdsApplyService;
import com.sqx.modules.bl.commission.qds.service.QdsDataService;
import com.sqx.modules.bl.commission.qds.service.QdsLmService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestController
@RequestMapping("/app/commission/qds")
@Api(value = "分佣管理", tags = {"渠道商管理app"})
public class AppQdsController {
@Autowired
private QdsLmService lmService;
@Autowired
private QdsApplyService applyService;
@Autowired
private QdsDataService dataService;
@GetMapping("/lmList")
@ApiOperation("类目列表")
public Result lmList(){
return lmService.findList(null);
}
@Login
@GetMapping("/apply")
@ApiOperation("申请渠道商")
public Result apply(@RequestAttribute Long userId, String name, String phone, String lm, String remarks){
QdsApply entity = applyService.findByUserId(userId);
if(entity!=null){
if(entity.getStatus().equals(0)){
return Result.error("申请审批中");
}
if(entity.getStatus().equals(1)){
return Result.error("申请审批通过,请重新登录");
}
if(entity.getStatus().equals(2)){
return Result.error("申请审批被驳回,驳回原因如下:"+entity.getOpinion());
}
}
QdsApply qdsApply = new QdsApply();
qdsApply.setUserId(userId);
qdsApply.setName(name);
qdsApply.setPhone(phone);
qdsApply.setLm(lm);
qdsApply.setRemarks(remarks);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qdsApply.setCreateTime(sdf.format(new Date()));
applyService.add(qdsApply);
return Result.success("申请成功,等待审批");
}
@Login
@GetMapping("/myQds")
@ApiOperation("我是渠道商")
public Result myQds(@RequestAttribute Long userId){
return dataService.myQds(userId);
}
}

View File

@ -0,0 +1,21 @@
package com.sqx.modules.bl.commission.qds.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.modules.bl.commission.jjr.entity.JjrApply;
import com.sqx.modules.bl.commission.qds.entity.QdsApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface QdsApplyDao extends BaseMapper<QdsApply> {
QdsApply findByUserId(Long userId);
int add(QdsApply qdsApply);
int update(QdsApply qdsApply);
int approve(QdsApply qdsApply);
IPage<QdsApply> findUserPage(Page<QdsApply> page, @Param("params") QdsApply qdsApply);
IPage<QdsApply> findPage(Page<QdsApply> page, @Param("params") QdsApply qdsApply);
}

View File

@ -0,0 +1,16 @@
package com.sqx.modules.bl.commission.qds.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.modules.bl.commission.qds.entity.QdsCode;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface QdsCodeDao extends BaseMapper<QdsCode> {
IPage<QdsCode> findPage(Page<QdsCode> page, @Param("params") QdsCode qdsCode);
int add(QdsCode qdsCode);
int update(QdsCode qdsCode);
IPage<QdsCode> findUserPage(Page<QdsCode> page, @Param("params") QdsCode qdsCode);
}

View File

@ -0,0 +1,10 @@
package com.sqx.modules.bl.commission.qds.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.bl.commission.qds.entity.QdsConfig;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface QdsConfigDao extends BaseMapper<QdsConfig> {
}

View File

@ -0,0 +1,14 @@
package com.sqx.modules.bl.commission.qds.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.modules.bl.commission.qds.entity.QdsData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface QdsDataDao extends BaseMapper<QdsData> {
IPage<QdsData> findPage(Page<QdsData> page, @Param("params") QdsData qdsData);
IPage<QdsData> invitationUserPage(Page<QdsData> page, @Param("params") QdsData qdsData);
}

View File

@ -0,0 +1,15 @@
package com.sqx.modules.bl.commission.qds.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.modules.bl.commission.qds.entity.QdsLm;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface QdsLmDao extends BaseMapper<QdsLm> {
IPage<QdsLm> findPage(Page<QdsLm> page, @Param("params") QdsLm qdsLm);
List<QdsLm> findList(QdsLm qdsLm);
}

View File

@ -0,0 +1,114 @@
package com.sqx.modules.bl.commission.qds.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description bl_qds_apply
* 渠道商申请表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_qds_apply")
public class QdsApply implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* ID
*/
private Long id;
/**
*用户ID
*/
private Long userId;
/**
*姓名
*/
private String name;
/**
*电话
*/
private String phone;
/**
*类目
*/
private String lm;
/**
*头像
*/
@TableField(exist = false)
private String avatar;
/**
*昵称
*/
@TableField(exist = false)
private String userName;
/**
*邀请码
*/
@TableField(exist = false)
private String invitationCode;
/**
*备注
*/
private String remarks;
/**
*状态
*/
private Integer status;
/**
*审批意见
*/
private String opinion;
/**
*创建时间
*/
private String createTime;
/**
*审批时间
*/
private String approveTime;
/**
*审批人
*/
private Long approveUser;
/**
*开始时间
*/
@TableField(exist = false)
private String startTime;
/**
*结束时间
*/
@TableField(exist = false)
private String endTime;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer limit;
@TableField(exist = false)
private Integer userPage;
@TableField(exist = false)
private Integer userLimit;
/**
*比例
*/
@TableField(exist = false)
private BigDecimal rate;
public QdsApply() {}
}

View File

@ -0,0 +1,111 @@
package com.sqx.modules.bl.commission.qds.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description bl_qds_code
* 渠道商渠道码表
* @author caolei
* @date 2024-11-12
*/
@Data
@TableName("bl_qds_code")
public class QdsCode implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* ID
*/
private Long id;
/**
*用户ID
*/
private Long userId;
/**
*姓名
*/
private String name;
/**
*编码
*/
private String code;
/**
*类目
*/
private Long lm;
/**
*渠道分成
*/
private BigDecimal rate;
/**
*成本
*/
private BigDecimal cost;
/**
*开始日期
*/
private String startDate;
/**
*结束日期
*/
private String endDate;
/**
*投放地
*/
private String address;
/**
*备注
*/
private String remarks;
/**
*渠道码
*/
private String codeImage;
/**
*创建时间
*/
private String createTime;
/**
*渠道商
*/
@TableField(exist = false)
private String qdsName;
/**
*头像
*/
@TableField(exist = false)
private String avatar;
/**
*昵称
*/
@TableField(exist = false)
private String userName;
/**
*昵称
*/
@TableField(exist = false)
private String phone;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer limit;
@TableField(exist = false)
private Integer userPage;
@TableField(exist = false)
private Integer userLimit;
public QdsCode() {}
}

View File

@ -0,0 +1,58 @@
package com.sqx.modules.bl.commission.qds.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description bl_qds_config
* 渠道商配置表
* @author caolei
* @date 2024-11-11
*/
@Data
@TableName("bl_qds_config")
public class QdsConfig implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* ID
*/
private Long id;
/**
*是否启用 1启用 0关闭
*/
private Integer isOpen;
/**
*渠道商申请入口 1启用 0关闭
*/
private Integer isApply;
/**
*渠道商返佣比例
*/
private BigDecimal rate;
/**
*技师承担
*/
private BigDecimal artificerRate;
/**
*代理商承担
*/
private BigDecimal agentRate;
/**
*邀请技师推广海报背景图
*/
private String artificerImage;
/**
*创建时间
*/
private String createTime;
public QdsConfig() {}
}

View File

@ -0,0 +1,126 @@
package com.sqx.modules.bl.commission.qds.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @description bl_fxy_data
* 分销员数据
* @author caolei
* @date 2024-08-06
*/
@Data
public class QdsData implements Serializable {
private static final long serialVersionUID = 1L;
@TableField(exist = false)
/**
* ID
*/
private Long id;
/**
*渠道码名称
*/
@TableField(exist = false)
private String qdmName;
/**
*渠道码
*/
@TableField(exist = false)
private String qdsCode;
/**
*渠道商
*/
@TableField(exist = false)
private String qdsName;
/**
*类目
*/
@TableField(exist = false)
private Long lm;
/**
*开始时间
*/
@TableField(exist = false)
private String startTime;
/**
*结束时间
*/
@TableField(exist = false)
private String endTime;
/**
*绑定人员
*/
@TableField(exist = false)
private String userName;
/**
*渠道分成比列
*/
@TableField(exist = false)
private BigDecimal rate;
/**
*扫码数量
*/
@TableField(exist = false)
private Integer smCount;
/**
*当日成交订单数量
*/
@TableField(exist = false)
private Integer ordersCount;
/**
*累计获得佣金
*/
@TableField(exist = false)
private BigDecimal money;
/**
*创建时间
*/
@TableField(exist = false)
private String createTime;
/**
*邀请用户
*/
@TableField(exist = false)
private String invitationName;
/**
*邀请用户手机
*/
@TableField(exist = false)
private String invitationPhone;
/**
*用户ID
*/
@TableField(exist = false)
private Long userId;
/**
*头像
*/
@TableField(exist = false)
private String avatar;
/**
*姓名
*/
@TableField(exist = false)
private String name;
/**
*电话
*/
@TableField(exist = false)
private String phone;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer limit;
public QdsData() {}
}

View File

@ -0,0 +1,43 @@
package com.sqx.modules.bl.commission.qds.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @description bl_qds_lm
* 渠道商类目
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_qds_lm")
public class QdsLm implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* ID
*/
private Long id;
/**
* 类目名称
*/
private String name;
/**
* 创建时间
*/
private String createTime;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer limit;
public QdsLm() {}
}

View File

@ -0,0 +1,14 @@
package com.sqx.modules.bl.commission.qds.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsApply;
public interface QdsApplyService extends IService<QdsApply> {
QdsApply findByUserId(Long userId);
int add(QdsApply qdsApply);
int update(QdsApply qdsApply);
void approve(QdsApply qdsApply);
Result findUserPage(QdsApply qdsApply);
Result findPage(QdsApply qdsApply);
}

View File

@ -0,0 +1,13 @@
package com.sqx.modules.bl.commission.qds.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsCode;
public interface QdsCodeService extends IService<QdsCode> {
Result findPage(QdsCode qdsCode);
int add(QdsCode qdsCode);
int update(QdsCode qdsCode);
Result findUserPage(QdsCode qdsCode);
}

View File

@ -0,0 +1,7 @@
package com.sqx.modules.bl.commission.qds.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.bl.commission.qds.entity.QdsConfig;
public interface QdsConfigService extends IService<QdsConfig> {
}

View File

@ -0,0 +1,11 @@
package com.sqx.modules.bl.commission.qds.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsData;
public interface QdsDataService extends IService<QdsData> {
Result findPage(QdsData qdsData);
Result invitationPage(QdsData qdsData);
Result myQds(Long userId);
}

View File

@ -0,0 +1,10 @@
package com.sqx.modules.bl.commission.qds.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsLm;
public interface QdsLmService extends IService<QdsLm> {
Result findPage(QdsLm qdsLm);
Result findList(QdsLm qdsLm);
}

View File

@ -0,0 +1,71 @@
package com.sqx.modules.bl.commission.qds.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.bl.commission.qds.dao.QdsApplyDao;
import com.sqx.modules.bl.commission.qds.entity.QdsApply;
import com.sqx.modules.bl.commission.qds.service.QdsApplyService;
import com.sqx.modules.sys.entity.SysUserEntity;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
@Service
public class DqsApplyServiceImpl extends ServiceImpl<QdsApplyDao, QdsApply> implements QdsApplyService {
@Autowired
private UserService userService;
@Override
public QdsApply findByUserId(Long userId){
return baseMapper.findByUserId(userId);
}
@Override
public int add(QdsApply qdsApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qdsApply.setCreateTime(sdf.format(new Date()));
qdsApply.setStatus(0);
return baseMapper.add(qdsApply);
}
@Override
public int update(QdsApply qdsApply){
return baseMapper.update(qdsApply);
}
@Override
public void approve(QdsApply qdsApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qdsApply.setApproveTime(sdf.format(new Date()));
qdsApply.setApproveUser(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId());
UserEntity userEntity = userService.selectUserById(qdsApply.getUserId());
if(qdsApply.getStatus().equals(1)){
userEntity.setBlIsQds(1);
}else{
userEntity.setBlIsQds(0);
}
userService.updateById(userEntity);
baseMapper.approve(qdsApply);
}
@Override
public Result findUserPage(QdsApply qdsApply){
Page<QdsApply> pages=new Page<>(qdsApply.getUserPage(),qdsApply.getUserLimit());
return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,qdsApply)));
}
@Override
public Result findPage(QdsApply qdsApply){
Page<QdsApply> pages=new Page<>(qdsApply.getPage(),qdsApply.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,qdsApply)));
}
}

View File

@ -0,0 +1,79 @@
package com.sqx.modules.bl.commission.qds.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.dao.QdsCodeDao;
import com.sqx.modules.bl.commission.qds.entity.QdsCode;
import com.sqx.modules.bl.commission.qds.service.QdsCodeService;
import com.sqx.modules.common.service.CommonInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
@Service
public class DqsCodeServiceImpl extends ServiceImpl<QdsCodeDao, QdsCode> implements QdsCodeService {
@Autowired
private CommonInfoService commonRepository;
@Override
public Result findPage(QdsCode qdsCode){
Page<QdsCode> pages=new Page<>(qdsCode.getPage(),qdsCode.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,qdsCode)));
}
@Override
public int add(QdsCode qdsCode){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
qdsCode.setCreateTime(sdf.format(date));
String code = String.valueOf(date.getTime());
qdsCode.setCode(code);
String codeImage = genOrGetQrCodePath(code);
qdsCode.setCodeImage(codeImage);
return baseMapper.add(qdsCode);
}
@Override
public int update(QdsCode qdsCode){
return baseMapper.update(qdsCode);
}
@Override
public Result findUserPage(QdsCode qdsCode){
Page<QdsCode> pages=new Page<>(qdsCode.getUserPage(),qdsCode.getUserLimit());
return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,qdsCode)));
}
public String genOrGetQrCodePath(String code) {
//去附件里找有没有
String http = commonRepository.findOne(19).getValue();
String[] split = http.split("://");
// 上传文件路径
String baseAudioUploadPath = "/www/wwwroot/"+split[1]+"/file/uploadPath";
String baseFilePath = baseAudioUploadPath + "/" + "QrCode" + "/";
//创建文件
String filePath = baseFilePath + code + ".jpg";
File QRCodeFile = FileUtil.file(filePath);
//判断文件存不存在
if(!FileUtil.exist(filePath)){
//生成并保存并返回二维码
FileUtil.touch(filePath);
//获取前台地址
QrCodeUtil.generate(commonRepository.findOne(19).getValue() + "/pages/public/login?blQdsCode=" + code, 300, 300, QRCodeFile);
}
//返回可访问地址
String url = StringUtils.replace(filePath,"/www/wwwroot/"+split[1],http);
return url;
}
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.commission.qds.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.commission.qds.dao.QdsConfigDao;
import com.sqx.modules.bl.commission.qds.entity.QdsConfig;
import com.sqx.modules.bl.commission.qds.service.QdsConfigService;
import org.springframework.stereotype.Service;
@Service
public class QdsConfigServiceImpl extends ServiceImpl<QdsConfigDao, QdsConfig> implements QdsConfigService {
}

View File

@ -0,0 +1,108 @@
package com.sqx.modules.bl.commission.qds.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.artificer.entity.Period;
import com.sqx.modules.bl.commission.qds.dao.QdsDataDao;
import com.sqx.modules.utils.PeriodUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.entity.QdsData;
import com.sqx.modules.bl.commission.qds.service.QdsDataService;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class QdsDataServiceImpl extends ServiceImpl<QdsDataDao, QdsData> implements QdsDataService {
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@Override
public Result findPage(QdsData qdsData){
Page<QdsData> pages=new Page<>(qdsData.getPage(),qdsData.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,qdsData)));
}
@Override
public Result invitationPage(QdsData qdsData){
Page<QdsData> pages=new Page<>(qdsData.getPage(),qdsData.getLimit());
IPage<QdsData> iPage = baseMapper.invitationUserPage(pages,qdsData);
return Result.success().put("data",new PageUtils(iPage));
}
@Override
public Result myQds(Long userId){
Map<String,Object> result=new HashMap<>();
//可提现
Date CurrentPeriod = new Date();//获取当前时间
//获取当前时间周期的上一个周期
Period periodDate= PeriodUtil.previousIssue(CurrentPeriod);
Period period = new Period();
period.setArtificerId(String.valueOf(userId));
period.setDetailsType(1);
period.setEndFundData(periodDate.getEndFundData());
period.setFundType(8);//渠道商
List<UserMoneyDetails> filteredPersons = userMoneyDetailsService.selectIncome(period);
//进账
double incomeLong= filteredPersons.stream()
.filter(UserMoneyDetails -> UserMoneyDetails.getType() == 1)
.filter(UserMoneyDetails -> UserMoneyDetails.getState() == 2)
.mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue())
.sum();
//出账
double outgoingLong= filteredPersons.stream()
.filter(UserMoneyDetails -> UserMoneyDetails.getType() == 2)
// .filter(UserMoneyDetails -> UserMoneyDetails.getState() == 2)
.filter(UserMoneyDetails -> !UserMoneyDetails.getContent().contains("管理端减少"))
.mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue())
.sum();
BigDecimal incomeMoney= BigDecimal.valueOf(incomeLong).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal outgoingMoney = BigDecimal.valueOf(outgoingLong).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal withdrawableAmount = incomeMoney.subtract(outgoingMoney).setScale(2,BigDecimal.ROUND_HALF_UP);
result.put("withdrawableAmount",withdrawableAmount);//可提现金额
//累计佣金
Period period2 = new Period();
period2.setArtificerId(String.valueOf(userId));
period2.setDetailsType(1);
period2.setFundType(8);//渠道商
List<UserMoneyDetails> filteredPersons2 = userMoneyDetailsService.selectIncome(period2);
double income= filteredPersons2.stream()
.filter(UserMoneyDetails -> UserMoneyDetails.getType() == 1)
.filter(UserMoneyDetails -> UserMoneyDetails.getState() == 2)
.mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue())
.sum();
result.put("income",income);//累计佣金
//已提现金额
double withdrawal=0;
for(int i=0;i<filteredPersons2.size();i++){
UserMoneyDetails umd = filteredPersons2.get(i);
if(umd.getType() == 2 && umd.getState() == 2 ){
if(umd.getClassify() !=null && umd.getClassify() == 3){
withdrawal += umd.getMoney().doubleValue();
}
}
}
result.put("withdrawal",withdrawal);//已提现金额
double notCredited = filteredPersons2.stream()
.filter(UserMoneyDetails -> UserMoneyDetails.getType() == 1)
.filter(UserMoneyDetails -> UserMoneyDetails.getState() == 1)
.mapToDouble(UserMoneyDetails -> UserMoneyDetails.getMoney().doubleValue())
.sum();
result.put("notCredited",notCredited);//未入账
return Result.success().put("data",result);
}
}

View File

@ -0,0 +1,26 @@
package com.sqx.modules.bl.commission.qds.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.qds.dao.QdsLmDao;
import com.sqx.modules.bl.commission.qds.entity.QdsLm;
import com.sqx.modules.bl.commission.qds.service.QdsLmService;
import org.springframework.stereotype.Service;
@Service
public class QdsLmServiceImpl extends ServiceImpl<QdsLmDao, QdsLm> implements QdsLmService {
@Override
public Result findPage(QdsLm qdsLm){
Page<QdsLm> pages=new Page<>(qdsLm.getPage(),qdsLm.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,qdsLm)));
}
@Override
public Result findList(QdsLm qdsLm){
return Result.success().put("data",baseMapper.findList(qdsLm));
}
}

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sqx.modules.bl.commission.qds.dao.QdsApplyDao">
<select id="findByUserId" resultType="com.sqx.modules.bl.commission.qds.entity.QdsApply">
select a.*
from bl_qds_apply a
where user_id = #{userId}
limit 1
</select>
<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="com.sqx.modules.bl.commission.qds.entity.QdsApply">
insert into bl_qds_apply(user_id,name,phone,lm,remarks,create_time,status)
values(#{userId},#{name},#{phone},#{lm},#{remarks},#{createTime},0)
</insert>
<update id="update" parameterType="com.sqx.modules.bl.commission.qds.entity.QdsApply">
update bl_qds_apply
set
user_id=#{userId},
name=#{name},
phone=#{phone},
lm=#{lm},
remarks=#{remarks}
where id=#{id}
</update>
<update id="approve" parameterType="com.sqx.modules.bl.commission.qds.entity.QdsApply">
update bl_qds_apply
set status=#{status},
opinion=#{opinion},
approve_time=#{approveTime},
approve_user=#{approveUser}
where id=#{id}
</update>
<select id="findUserPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsApply">
select b.user_id,b.avatar,b.user_name,b.phone,b.invitation_code
from tb_user b
where b.status = 1
and b.user_id not in (
select a.user_id
from bl_qds_apply a
where a.status != 2
)
<if test="params.userName!=null and params.userName!=''">
and b.user_name like concat('%',#{params.userName},'%')
</if>
<if test="params.phone!=null and params.phone!=''">
and b.phone like concat('%',#{params.phone},'%')
</if>
<if test="params.invitationCode!=null and params.invitationCode!=''">
and b.invitation_code like concat('%',#{params.invitationCode},'%')
</if>
order by b.user_id
</select>
<select id="findPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsApply">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.lm,a.create_time,a.status,a.opinion
from bl_qds_apply a
inner join tb_user b on a.user_id = b.user_id
where 1=1
<if test="params.status!=null">
and a.status=#{params.status}
</if>
<if test="params.name!=null and params.name!=''">
and a.name like concat('%',#{params.name},'%')
</if>
<if test="params.phone!=null and params.phone!=''">
and a.phone like concat('%',#{params.phone},'%')
</if>
<if test="params.lm!=null and params.lm!=''">
and a.lm like concat('%',#{params.lm},'%')
</if>
<if test="params.startTime!=null and params.startTime!=''">
and a.create_time >= #{params.startTime}
</if>
<if test="params.endTime!=null and params.endTime!=''">
and a.create_time &lt;= #{params.endTime}
</if>
order by id desc
</select>
</mapper>

View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sqx.modules.bl.commission.qds.dao.QdsCodeDao">
<select id="findPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsCode">
select
a.id,
a.name,
a.code,
a.lm,
a.user_id as userId,
b.user_name as userName,
b.phone,
b.avatar,
c.name as qdsName,
a.rate,
a.cost,
a.start_date as startDate,
a.end_date as endDate,
a.address,
a.create_time as createTime,
a.remarks,
a.code_image as codeImage
from bl_qds_code a
left join tb_user b on a.user_id = b.user_id
left join bl_qds_apply c on a.user_id = c.user_id
where 1=1
<if test="params.name!=null and params.name!=''">
and a.name like concat('%',#{params.name},'%')
</if>
<if test="params.code!=null and params.code!=''">
and a.code like concat('%',#{params.code},'%')
</if>
order by a.id desc
</select>
<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="com.sqx.modules.bl.commission.qds.entity.QdsCode">
insert into bl_qds_code(
name,
code,
lm,
user_id,
rate,
cost,
start_date,
end_date,
address,
create_time,
remarks,
code_image
)
values(#{name},#{code},#{lm},#{userId},#{rate},#{cost},#{startDate},#{endDate},#{address},#{createTime},#{remarks},#{codeImage})
</insert>
<update id="update" parameterType="com.sqx.modules.bl.commission.qds.entity.QdsCode">
update bl_qds_code
set
name=#{name},
lm=#{lm},
user_id=#{userId},
rate=#{rate},
cost=#{cost},
address=#{address},
start_date=#{startDate},
end_date=#{endDate},
remarks=#{remarks}
where id=#{id}
</update>
<select id="findUserPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsCode">
select b.user_id,b.avatar,b.user_name,b.phone
from tb_user b
where b.status = 1
and b.user_id in (
select a.user_id
from bl_qds_apply a
where a.status = 1
)
<if test="params.userName!=null and params.userName!=''">
and b.user_name like concat('%',#{params.userName},'%')
</if>
<if test="params.phone!=null and params.phone!=''">
and b.phone like concat('%',#{params.phone},'%')
</if>
order by b.user_id
</select>
</mapper>

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sqx.modules.bl.commission.qds.dao.QdsDataDao">
<select id="findPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsData">
select bqc.id,bqc.name as qdmName,bqc.code as qdsCode,bqc.lm,y.user_name as userName,x.name as qdsName,bqc.rate,
bqc.start_date as startTime,bqc.end_date as endTime,bqc.create_time as createTime,
ifnull((select count(*) from tb_user ac where ac.bl_qds_code = bqc.code and ifnull(bl_is_qds,0) = 0),0) as smCount,
ifnull(t1.ordersCount,0) as ordersCount,
ifnull(t3.money,0) as money
from bl_qds_code bqc
inner join bl_qds_apply x on bqc.user_id = x.user_id and x.status = 1
inner join tb_user y on x.user_id = y.user_id
left join (
select count(*) as ordersCount, aa.user_id, bb.bl_qds_code
from (
select o1.orders_id,o1.user_id
from orders o1
left join orders o2 on o1.old_orders_id = o2.orders_id and o2.status != 4
left join orders o3 on o2.old_orders_id = o3.orders_id and o3.status != 4
where o1.old_orders_id is not null
and o1.status in (3,5)
union all
select o1.orders_id,o1.user_id
from orders o1
where o1.parent_id = 0
and o1.old_orders_id is null
and o1.orders_id not in (
select orders_id from orders
where old_orders_id is not null
and status != 4
)
and o1.orders_id not in (
select old_orders_id from orders
where old_orders_id is not null
and status != 4
)
and o1.status in (3,5)
) aa inner join tb_user bb on aa.user_id = bb.user_id
group by aa.user_id, bb.bl_qds_code
) t1 on t1.bl_qds_code = bqc.code
left join (
select sum(ifnull(qds_code_money,0)) money,user_id
from orders
where status in (3,5,15)
group by user_id
) t3 on t3.user_id = x.user_id
where x.status= 1
<if test="params.qdmName!=null and params.qdmName!=''">
and bqc.name like concat('%',#{params.qdmName},'%')
</if>
<if test="params.qdsCode!=null and params.qdsCode!=''">
and bqc.code like concat('%',#{params.qdsCode},'%')
</if>
<if test="params.qdsName!=null and params.qdsName!=''">
and x.name like concat('%',#{params.qdsName},'%')
</if>
<if test="params.lm!=null and params.lm!=''">
and bqc.lm = #{params.lm}
</if>
order by x.id desc
</select>
<select id="invitationUserPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsData">
select b.user_id,b.avatar,b.user_name as name,b.phone
from tb_user b
where b.bl_qds_code = #{params.qdsCode}
and ifnull(b.bl_is_qds,0) = 0
<if test="params.name!=null and params.name!=''">
and b.user_name like concat('%',#{params.name},'%')
</if>
<if test="params.phone!=null and params.phone!=''">
and b.phone like concat('%',#{params.phone},'%')
</if>
order by b.user_id desc
</select>
</mapper>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sqx.modules.bl.commission.qds.dao.QdsLmDao">
<select id="findPage" resultType="com.sqx.modules.bl.commission.qds.entity.QdsLm">
select
id,
name,
create_time
from bl_qds_lm x
<where>
<if test="params.name!=null and params.name!=''">
and x.name like concat('%',#{params.name},'%')
</if>
</where>
order by x.id desc
</select>
<select id="findList" resultType="com.sqx.modules.bl.commission.qds.entity.QdsLm">
select
id,
name,
create_time
from bl_qds_lm x
<where>
<if test="name!=null and ame!=''">
and x.name like concat('%',#{name},'%')
</if>
</where>
order by x.id desc
</select>
</mapper>