经纪人

This commit is contained in:
曹磊 2024-08-05 10:18:01 +08:00
parent 8d494b5744
commit 845fa141c2
50 changed files with 1843 additions and 11 deletions

View File

@ -20,6 +20,8 @@ import com.sqx.modules.artificer.entity.Artificer;
import com.sqx.modules.artificer.entity.Certification; import com.sqx.modules.artificer.entity.Certification;
import com.sqx.modules.artificer.service.ArtificerService; import com.sqx.modules.artificer.service.ArtificerService;
import com.sqx.modules.artificer.service.RealNameService; import com.sqx.modules.artificer.service.RealNameService;
import com.sqx.modules.bl.commission.jjr.entity.JjrData;
import com.sqx.modules.bl.commission.jjr.service.JjrDataService;
import com.sqx.modules.common.service.CommonInfoService; import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.message.entity.MessageInfo; import com.sqx.modules.message.entity.MessageInfo;
import com.sqx.modules.message.service.MessageService; import com.sqx.modules.message.service.MessageService;
@ -75,6 +77,8 @@ public class UserController {
private MessageService messageService; private MessageService messageService;
@Autowired @Autowired
private CommonInfoService commonInfoService; private CommonInfoService commonInfoService;
@Autowired
private JjrDataService jjrDataService;
@GetMapping("/queryByInvitationCode") @GetMapping("/queryByInvitationCode")
@ApiOperation("通过邀请码查询用户") @ApiOperation("通过邀请码查询用户")
@ -96,6 +100,10 @@ public class UserController {
public Result selectUserById(@ApiParam("用户id") @PathVariable Long userId) { public Result selectUserById(@ApiParam("用户id") @PathVariable Long userId) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
UserEntity userEntity = userService.queryByUserId(userId); UserEntity userEntity = userService.queryByUserId(userId);
JjrData jjrData = jjrDataService.getByCode(userEntity.getBlJjrCode());
if(jjrData != null){
userEntity.setJjrName(jjrData.getName());
}
UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId); UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId);
//查询用户钱包 //查询用户钱包
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -119,7 +127,6 @@ public class UserController {
userEntity.setMember(userVip.getIsVip().intValue()); userEntity.setMember(userVip.getIsVip().intValue());
userEntity.setVipEndTime(userVip.getEndTime()); userEntity.setVipEndTime(userVip.getEndTime());
} }
map.put("artificer", artificer); map.put("artificer", artificer);
map.put("userEntity", userEntity); map.put("userEntity", userEntity);
map.put("money", userMoney); map.put("money", userMoney);

View File

@ -245,4 +245,10 @@ public class UserEntity implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String loglataddress; private String loglataddress;
private String blJjrCode;
private BigDecimal blJjrRate;
@TableField(exist = false)
private String jjrName;
} }

View File

@ -120,9 +120,9 @@ public class ArtificerController {
@ApiOperation("查询技师列表") @ApiOperation("查询技师列表")
public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName, public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName,
String longitude,String latitude,Integer sort,Integer authentication, String longitude,String latitude,Integer sort,Integer authentication,
Integer by,Integer status,String city,Long classifyId,String phone,Integer isStart,Integer technicianType){ Integer by,Integer status,String city,Long classifyId,String phone,Integer isStart,Integer technicianType,String isBack){
return artificerService.selectArtificerList(page, limit, massageTypeId, artificerName,longitude,latitude, return artificerService.selectArtificerList(page, limit, massageTypeId, artificerName,longitude,latitude,
sort,authentication,by,status,city,classifyId,phone,null,isStart,technicianType); sort,authentication,by,status,city,classifyId,phone,null,isStart,technicianType,isBack);
} }
@GetMapping("/selectArtificer") @GetMapping("/selectArtificer")

View File

@ -137,9 +137,9 @@ public class AppArtificerController {
@ApiOperation("查询技师列表") @ApiOperation("查询技师列表")
public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName, public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName,
String longitude,String latitude,Integer sort,Integer authentication, String longitude,String latitude,Integer sort,Integer authentication,
Integer by,String city,Long classifyId,String phone, Integer isStart,Integer technicianType){ Integer by,String city,Long classifyId,String phone, Integer isStart,Integer technicianType,String isBack){
return artificerService.selectArtificerList(page, limit, massageTypeId, artificerName,longitude,latitude, return artificerService.selectArtificerList(page, limit, massageTypeId, artificerName,longitude,latitude,
sort,authentication,by,-1,city,classifyId,phone,1,isStart,technicianType); sort,authentication,by,-1,city,classifyId,phone,1,isStart,technicianType,isBack);
} }

View File

@ -22,7 +22,7 @@ public interface ArtificerDao extends BaseMapper<Artificer> {
@Param("authentication") Integer authentication,@Param("by") Integer by, @Param("authentication") Integer authentication,@Param("by") Integer by,
@Param("status") Integer status,@Param("city") String city, @Param("status") Integer status,@Param("city") String city,
@Param("classifyId") Long classifyId,@Param("phone") String phone, @Param("classifyId") Long classifyId,@Param("phone") String phone,
Integer user,@Param("isStart") Integer isStart,@Param("technicianType")Integer technicianType); Integer user,@Param("isStart") Integer isStart,@Param("technicianType")Integer technicianType,@Param("isBack")String isBack);
Artificer selectArtificerById(@Param("userId") Long userId,@Param("artificerId") Long artificerId,@Param("longitude") String longitude,@Param("latitude") String latitude); Artificer selectArtificerById(@Param("userId") Long userId,@Param("artificerId") Long artificerId,@Param("longitude") String longitude,@Param("latitude") String latitude);

View File

@ -14,7 +14,7 @@ public interface ArtificerService extends IService<Artificer> {
Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName, Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName,
String longitude,String latitude,Integer sort,Integer authentication, String longitude,String latitude,Integer sort,Integer authentication,
Integer by,Integer status,String city,Long classifyId,String phone,Integer user, Integer isStart,Integer technicianType); Integer by,Integer status,String city,Long classifyId,String phone,Integer user, Integer isStart,Integer technicianType,String isBack);
Artificer selectArtificerById(Long userId,Long artificerId,String longitude,String latitude); Artificer selectArtificerById(Long userId,Long artificerId,String longitude,String latitude);

View File

@ -75,10 +75,10 @@ public class ArtificerServiceImpl extends ServiceImpl<ArtificerDao, Artificer> i
@Override @Override
public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName, public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName,
String longitude,String latitude,Integer sort,Integer authentication, String longitude,String latitude,Integer sort,Integer authentication,
Integer by,Integer status,String city,Long classifyId,String phone,Integer user, Integer isStart,Integer technicianType){ Integer by,Integer status,String city,Long classifyId,String phone,Integer user, Integer isStart,Integer technicianType,String isBack){
Page<Artificer> pages=new Page<>(page,limit); Page<Artificer> pages=new Page<>(page,limit);
IPage<Artificer> artificerIPage = baseMapper.selectArtificerList(pages, massageTypeId, artificerName, IPage<Artificer> artificerIPage = baseMapper.selectArtificerList(pages, massageTypeId, artificerName,
longitude, latitude, sort, authentication, by, status, city, classifyId,phone,user,isStart,technicianType); longitude, latitude, sort, authentication, by, status, city, classifyId,phone,user,isStart,technicianType,isBack);
List<Artificer> records = artificerIPage.getRecords(); List<Artificer> records = artificerIPage.getRecords();
String value = commonInfoService.findOne(392).getValue(); String value = commonInfoService.findOne(392).getValue();
if("30".equals(value)){ if("30".equals(value)){
@ -663,7 +663,7 @@ public class ArtificerServiceImpl extends ServiceImpl<ArtificerDao, Artificer> i
public Result getHomeArtificerList(Integer page, Integer limit, Integer isStart,Integer status, String city, String longitude, String latitude){ public Result getHomeArtificerList(Integer page, Integer limit, Integer isStart,Integer status, String city, String longitude, String latitude){
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
Page<Artificer> pages=new Page<>(page,limit); Page<Artificer> pages=new Page<>(page,limit);
IPage<Artificer> artificerIPage = baseMapper.selectArtificerList(pages, null, "",longitude, latitude, 1, 2, 1, status, city, null,"",1,0,null); IPage<Artificer> artificerIPage = baseMapper.selectArtificerList(pages, null, "",longitude, latitude, 1, 2, 1, status, city, null,"",1,0,null,"");
map.put("nearData",new PageUtils(artificerIPage)); map.put("nearData",new PageUtils(artificerIPage));
map.put("startData",new PageUtils(baseMapper.getHomeStartArtificerList(pages,isStart,status,city))); map.put("startData",new PageUtils(baseMapper.getHomeStartArtificerList(pages,isStart,status,city)));
return Result.success(map); return Result.success(map);

View File

@ -0,0 +1,63 @@
package com.sqx.modules.bl.commission.fxy.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.fxy.entity.FxyApply;
import com.sqx.modules.bl.commission.fxy.service.FxyApplyService;
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/fxyApply")
@Api(value = "分佣管理", tags = {"分销员申请"})
public class FxyApplyController {
@Autowired
private FxyApplyService service;
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(FxyApply fxyApply){
return service.findPage(fxyApply);
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(FxyApply fxyApply){
service.add(fxyApply);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(FxyApply fxyApply){
service.update(fxyApply);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(FxyApply fxyApply){
service.removeById(fxyApply.getId());
return Result.success();
}
@PostMapping("/approve")
@ApiOperation("审批")
public Result approve(FxyApply fxyApply){
service.approve(fxyApply);
return Result.success();
}
@GetMapping("/findUserPage")
@ApiOperation("查询(分页)")
public Result findUserPage(FxyApply fxyApply){
return service.findUserPage(fxyApply);
}
}

View File

@ -0,0 +1,49 @@
package com.sqx.modules.bl.commission.fxy.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.fxy.entity.FxyConfig;
import com.sqx.modules.bl.commission.fxy.service.FxyConfigService;
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/fxyConfig")
@Api(value = "分佣管理", tags = {"分销员配置"})
public class FxyConfigController {
@Autowired
private FxyConfigService service;
@GetMapping("/info")
@ApiOperation("查询分销员配置")
public Result info(FxyConfig fxyConfig){
FxyConfig entity = service.getById(fxyConfig);
if(entity == null){
entity = service.getOne(new QueryWrapper<FxyConfig>());
}
return Result.success().put("data",entity);
}
@PostMapping("/save")
@ApiOperation("添加分销员")
public Result save(FxyConfig fxyConfig){
FxyConfig entity = service.getById(fxyConfig);
if(entity!=null){
service.updateById(fxyConfig);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
fxyConfig.setCreateTime(sdf.format(new Date()));
service.save(fxyConfig);
}
return Result.success();
}
}

View File

@ -0,0 +1,34 @@
package com.sqx.modules.bl.commission.fxy.controller.app;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.fxy.entity.FxyApply;
import com.sqx.modules.bl.commission.fxy.entity.FxyConfig;
import com.sqx.modules.bl.commission.fxy.service.FxyApplyService;
import com.sqx.modules.bl.commission.fxy.service.FxyConfigService;
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("/app/commission/fxy")
@Api(value = "分佣管理", tags = {"分销员管理app"})
public class AppFxyController {
@Autowired
private FxyApplyService service;
@PostMapping("/apply")
@ApiOperation("申请分销员")
public Result apply(FxyApply fxyApply){
service.add(fxyApply);
return Result.success();
}
}

View File

@ -0,0 +1,17 @@
package com.sqx.modules.bl.commission.fxy.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.fxy.entity.FxyApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface FxyApplyDao extends BaseMapper<FxyApply> {
IPage<FxyApply> findPage(Page<FxyApply> page, @Param("params") FxyApply fxyApply);
int add(FxyApply fxyApply);
int update(FxyApply fxyApply);
int approve(FxyApply fxyApply);
IPage<FxyApply> findUserPage(Page<FxyApply> page, @Param("params") FxyApply fxyApply);
}

View File

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

View File

@ -0,0 +1,104 @@
package com.sqx.modules.bl.commission.fxy.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_apply
* 分销员申请表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_fxy_apply")
public class FxyApply 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;
/**
*头像
*/
@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;
public FxyApply() {}
}

View File

@ -0,0 +1,98 @@
package com.sqx.modules.bl.commission.fxy.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_fxy_config
* 分销员配置表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_fxy_config")
public class FxyConfig 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 isApprove;
/**
*提成方式 1人员 2项目 暂无用预留
*/
private Integer type;
/**
*一级分销返佣
*/
private BigDecimal oneRate;
/**
*二级分销返佣
*/
private BigDecimal twoRate;
/**
*技师承担
*/
private BigDecimal artificerRate;
/**
*代理商承担
*/
private BigDecimal agentRate;
/**
*邀请用户/下级返佣最高比例
*/
private BigDecimal mostRate;
/**
*邀请用户推广海报背景图
*/
private String userImage;
/**
*邀请分销员推广海报背景图
*/
private String fxyImage;
/**
*一级分销员门槛费
*/
private BigDecimal oneFee;
/**
*一级推荐提成
*/
private BigDecimal oneRecommendRate;
/**
*二级分销员门槛费
*/
private BigDecimal twoFee;
/**
*二级推荐提成
*/
private BigDecimal twoRecommendRate;
/**
*分销码时效性 1永久 2限制时效天数
*/
private Integer fxmLimit;
/**
*时效天数
*/
private Integer fxmLimitDays;
/**
*创建时间
*/
private String createTime;
public FxyConfig() {}
}

View File

@ -0,0 +1,14 @@
package com.sqx.modules.bl.commission.fxy.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.fxy.entity.FxyApply;
public interface FxyApplyService extends IService<FxyApply> {
Result findPage(FxyApply fxyApply);
int add(FxyApply fxyApply);
int update(FxyApply fxyApply);
int approve(FxyApply fxyApply);
Result findUserPage(FxyApply fxyApply);
}

View File

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

View File

@ -0,0 +1,51 @@
package com.sqx.modules.bl.commission.fxy.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.fxy.dao.FxyApplyDao;
import com.sqx.modules.bl.commission.fxy.entity.FxyApply;
import com.sqx.modules.bl.commission.fxy.service.FxyApplyService;
import com.sqx.modules.sys.entity.SysUserEntity;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
@Service
public class FxyApplyServiceImpl extends ServiceImpl<FxyApplyDao, FxyApply> implements FxyApplyService {
@Override
public Result findPage(FxyApply fxyApply){
Page<FxyApply> pages=new Page<>(fxyApply.getPage(),fxyApply.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,fxyApply)));
}
@Override
public int add(FxyApply fxyApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
fxyApply.setCreateTime(sdf.format(new Date()));
return baseMapper.add(fxyApply);
}
@Override
public int update(FxyApply fxyApply){
return baseMapper.update(fxyApply);
}
@Override
public int approve(FxyApply fxyApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
fxyApply.setApproveTime(sdf.format(new Date()));
fxyApply.setApproveUser(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId());
return baseMapper.approve(fxyApply);
}
@Override
public Result findUserPage(FxyApply fxyApply){
Page<FxyApply> pages=new Page<>(fxyApply.getUserPage(),fxyApply.getUserLimit());
return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,fxyApply)));
}
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.commission.fxy.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.commission.fxy.dao.FxyConfigDao;
import com.sqx.modules.bl.commission.fxy.entity.FxyConfig;
import com.sqx.modules.bl.commission.fxy.service.FxyConfigService;
import org.springframework.stereotype.Service;
@Service
public class FxyConfigServiceImpl extends ServiceImpl<FxyConfigDao, FxyConfig> implements FxyConfigService {
}

View File

@ -0,0 +1,63 @@
package com.sqx.modules.bl.commission.jjr.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.fxy.entity.FxyApply;
import com.sqx.modules.bl.commission.jjr.entity.JjrApply;
import com.sqx.modules.bl.commission.jjr.service.JjrApplyService;
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/jjrApply")
@Api(value = "分佣管理", tags = {"经纪人申请"})
public class JjrApplyController {
@Autowired
private JjrApplyService service;
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(JjrApply jjrApply){
return service.findPage(jjrApply);
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(JjrApply jjrApply){
service.add(jjrApply);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(JjrApply jjrApply){
service.update(jjrApply);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(JjrApply jjrApply){
service.removeById(jjrApply.getId());
return Result.success();
}
@PostMapping("/approve")
@ApiOperation("审批")
public Result approve(JjrApply jjrApply){
service.approve(jjrApply);
return Result.success();
}
@GetMapping("/findUserPage")
@ApiOperation("查询(分页)")
public Result findUserPage(JjrApply jjrApply){
return service.findUserPage(jjrApply);
}
}

View File

@ -0,0 +1,53 @@
package com.sqx.modules.bl.commission.jjr.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.jjr.entity.JjrConfig;
import com.sqx.modules.bl.commission.jjr.service.JjrApplyService;
import com.sqx.modules.bl.commission.jjr.service.JjrConfigService;
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/jjrConfig")
@Api(value = "分佣管理", tags = {"经纪人配置"})
public class JjrConfigController {
@Autowired
private JjrConfigService service;
@Autowired
private JjrApplyService applyService;
@GetMapping("/info")
@ApiOperation("查询经纪人配置")
public Result info(JjrConfig jjrConfig){
JjrConfig entity = service.getById(jjrConfig);
if(entity == null){
entity = service.getOne(new QueryWrapper<JjrConfig>());
}
return Result.success().put("data",entity);
}
@PostMapping("/save")
@ApiOperation("添加经纪人")
public Result save(JjrConfig jjrConfig){
JjrConfig entity = service.getById(jjrConfig);
if(entity!=null){
service.updateById(jjrConfig);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jjrConfig.setCreateTime(sdf.format(new Date()));
service.save(jjrConfig);
}
applyService.setJjrRate(null);
return Result.success();
}
}

View File

@ -0,0 +1,41 @@
package com.sqx.modules.bl.commission.jjr.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.jjr.entity.JjrData;
import com.sqx.modules.bl.commission.jjr.service.JjrDataService;
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/jjrData")
@Api(value = "分佣管理", tags = {"经纪人数据"})
public class JjrDataController {
@Autowired
private JjrDataService service;
@GetMapping("/jjrList")
@ApiOperation("经纪人列表")
public Result jjrList(Integer page,Integer limit,String name,String phone){
JjrData jjrData = new JjrData();
jjrData.setPage(page);
jjrData.setLimit(limit);
jjrData.setName(name);
jjrData.setPhone(phone);
return service.findJjrPage(jjrData);
}
@GetMapping("/modifyJjr")
@ApiOperation("技师修改经纪人")
public Result modifyJjr(Long artificerUserId, String invitationCode){
JjrData jjrData = new JjrData();
jjrData.setArtificerUserId(artificerUserId);
jjrData.setInvitationCode(invitationCode);
service.modifyJjr(jjrData);
return Result.success();
}
}

View File

@ -0,0 +1,35 @@
package com.sqx.modules.bl.commission.jjr.controller.app;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.jjr.entity.JjrApply;
import com.sqx.modules.bl.commission.jjr.entity.JjrData;
import com.sqx.modules.bl.commission.jjr.service.JjrApplyService;
import com.sqx.modules.bl.commission.jjr.service.JjrDataService;
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;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestController
@RequestMapping("/app/commission/jjr")
@Api(value = "分佣管理", tags = {"经纪人管理app"})
public class AppJjrController {
@Autowired
private JjrApplyService applyService;
@GetMapping("/apply")
@ApiOperation("申请经纪人")
public Result apply(JjrApply jjrApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jjrApply.setCreateTime(sdf.format(new Date()));
applyService.add(jjrApply);
return Result.success();
}
}

View File

@ -0,0 +1,21 @@
package com.sqx.modules.bl.commission.jjr.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 org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface JjrApplyDao extends BaseMapper<JjrApply> {
IPage<JjrApply> findPage(Page<JjrApply> page, @Param("params") JjrApply jjrApply);
List<JjrApply> findList(JjrApply jjrApply);
int add(JjrApply jjrApply);
int update(JjrApply jjrApply);
int approve(JjrApply jjrApply);
IPage<JjrApply> findUserPage(Page<JjrApply> page, @Param("params") JjrApply jjrApply);
int setRate(JjrApply jjrApply);
}

View File

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

View File

@ -0,0 +1,18 @@
package com.sqx.modules.bl.commission.jjr.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.jjr.entity.JjrData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface JjrDataDao extends BaseMapper<JjrData> {
IPage<JjrData> findJjrPage(Page<JjrData> page, @Param("params") JjrData jjrData);
JjrData getByCode(String invitationCode);
void modifyJjr(JjrData jjrData);
}

View File

@ -0,0 +1,110 @@
package com.sqx.modules.bl.commission.jjr.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_jjr_apply
* 经纪人申请表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_jjr_apply")
public class JjrApply 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;
/**
*头像
*/
@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 JjrApply() {}
}

View File

@ -0,0 +1,62 @@
package com.sqx.modules.bl.commission.jjr.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_jjr_config
* 经纪人配置表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_jjr_config")
public class JjrConfig 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;
/**
*经纪人返佣 1固定返佣 2浮动比例提成
*/
private Integer type;
/**
*经纪人返佣比例
*/
private BigDecimal rate;
/**
*技师承担
*/
private BigDecimal artificerRate;
/**
*代理商承担
*/
private BigDecimal agentRate;
/**
*邀请技师推广海报背景图
*/
private String artificerImage;
/**
*创建时间
*/
private String createTime;
public JjrConfig() {}
}

View File

@ -0,0 +1,92 @@
package com.sqx.modules.bl.commission.jjr.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_jjr_data
* 经纪人数据
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_jjr_data")
public class JjrData implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* ID
*/
private Long id;
/**
*技师用户ID
*/
@TableField(exist = false)
private Long artificerUserId;
/**
*经纪人用户ID
*/
@TableField(exist = false)
private Long userId;
/**
*姓名
*/
@TableField(exist = false)
private String name;
/**
*电话
*/
@TableField(exist = false)
private String phone;
/**
*头像
*/
@TableField(exist = false)
private String avatar;
/**
*昵称
*/
@TableField(exist = false)
private String userName;
/**
*邀请码
*/
@TableField(exist = false)
private String invitationCode;
/**
*备注
*/
@TableField(exist = false)
private String remarks;
/**
*状态
*/
@TableField(exist = false)
private Integer status;
/**
*开始时间
*/
@TableField(exist = false)
private String startTime;
/**
*结束时间
*/
@TableField(exist = false)
private String endTime;
@TableField(exist = false)
private Integer page;
@TableField(exist = false)
private Integer limit;
public JjrData() {}
}

View File

@ -0,0 +1,14 @@
package com.sqx.modules.bl.commission.jjr.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.jjr.entity.JjrApply;
public interface JjrApplyService extends IService<JjrApply> {
Result findPage(JjrApply jjrApply);
int add(JjrApply jjrApply);
int update(JjrApply jjrApply);
void approve(JjrApply jjrApply);
Result findUserPage(JjrApply jjrApply);
void setJjrRate(JjrApply jjrApply);
}

View File

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

View File

@ -0,0 +1,11 @@
package com.sqx.modules.bl.commission.jjr.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.jjr.entity.JjrData;
public interface JjrDataService extends IService<JjrData> {
Result findJjrPage(JjrData jjrData);
JjrData getByCode(String invitationCode);
void modifyJjr(JjrData jjrData);
}

View File

@ -0,0 +1,84 @@
package com.sqx.modules.bl.commission.jjr.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.jjr.dao.JjrApplyDao;
import com.sqx.modules.bl.commission.jjr.entity.JjrApply;
import com.sqx.modules.bl.commission.jjr.entity.JjrConfig;
import com.sqx.modules.bl.commission.jjr.service.JjrApplyService;
import com.sqx.modules.bl.commission.jjr.service.JjrConfigService;
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.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
public class JjrApplyServiceImpl extends ServiceImpl<JjrApplyDao, JjrApply> implements JjrApplyService {
@Autowired
private JjrConfigService configService;
@Override
public Result findPage(JjrApply jjrApply){
Page<JjrApply> pages=new Page<>(jjrApply.getPage(),jjrApply.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,jjrApply)));
}
@Override
public int add(JjrApply jjrApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jjrApply.setCreateTime(sdf.format(new Date()));
jjrApply.setStatus(0);
return baseMapper.add(jjrApply);
}
@Override
public int update(JjrApply jjrApply){
return baseMapper.update(jjrApply);
}
@Override
public void approve(JjrApply jjrApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jjrApply.setApproveTime(sdf.format(new Date()));
jjrApply.setApproveUser(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId());
baseMapper.approve(jjrApply);
setJjrRate(jjrApply);
}
@Override
public Result findUserPage(JjrApply jjrApply){
Page<JjrApply> pages=new Page<>(jjrApply.getUserPage(),jjrApply.getUserLimit());
return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,jjrApply)));
}
@Override
public void setJjrRate(JjrApply jjrApply){
JjrConfig jjrConfig = configService.getOne(new QueryWrapper<JjrConfig>());
if(jjrConfig != null){
if(jjrApply == null){
List<JjrApply> list = baseMapper.findList(null);
for(int i=0;i<list.size();i++){
JjrApply entity = list.get(i);
entity.setRate(jjrConfig.getRate());
baseMapper.setRate(entity);
}
}else{
JjrApply entity = baseMapper.selectById(jjrApply.getId());
if(jjrApply.getStatus() == 1){
entity.setRate(jjrConfig.getRate());
}else if(jjrApply.getStatus() == 2){
entity.setRate(BigDecimal.ZERO);
}
baseMapper.setRate(entity);
}
}
}
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.commission.jjr.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.commission.jjr.dao.JjrConfigDao;
import com.sqx.modules.bl.commission.jjr.entity.JjrConfig;
import com.sqx.modules.bl.commission.jjr.service.JjrConfigService;
import org.springframework.stereotype.Service;
@Service
public class JjrConfigServiceImpl extends ServiceImpl<JjrConfigDao, JjrConfig> implements JjrConfigService {
}

View File

@ -0,0 +1,31 @@
package com.sqx.modules.bl.commission.jjr.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.jjr.dao.JjrDataDao;
import com.sqx.modules.bl.commission.jjr.entity.JjrApply;
import com.sqx.modules.bl.commission.jjr.entity.JjrData;
import com.sqx.modules.bl.commission.jjr.service.JjrDataService;
import org.springframework.stereotype.Service;
@Service
public class JjrDataServiceImpl extends ServiceImpl<JjrDataDao, JjrData> implements JjrDataService {
@Override
public Result findJjrPage(JjrData jjrData){
Page<JjrData> pages=new Page<>(jjrData.getPage(),jjrData.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findJjrPage(pages,jjrData)));
}
@Override
public JjrData getByCode(String invitationCode){
return baseMapper.getByCode(invitationCode);
}
@Override
public void modifyJjr(JjrData jjrData){
baseMapper.modifyJjr(jjrData);
}
}

View File

@ -0,0 +1,62 @@
package com.sqx.modules.bl.commission.ywy.controller;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.ywy.entity.YwyApply;
import com.sqx.modules.bl.commission.ywy.service.YwyApplyService;
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/ywyApply")
@Api(value = "分佣管理", tags = {"业务员申请"})
public class YwyApplyController {
@Autowired
private YwyApplyService service;
@GetMapping("/findPage")
@ApiOperation("查询(分页)")
public Result findPage(YwyApply ywyApply){
return service.findPage(ywyApply);
}
@PostMapping("/add")
@ApiOperation("添加")
public Result add(YwyApply ywyApply){
service.add(ywyApply);
return Result.success();
}
@PostMapping("/update")
@ApiOperation("修改")
public Result update(YwyApply ywyApply){
service.update(ywyApply);
return Result.success();
}
@PostMapping("/delete")
@ApiOperation("删除")
public Result delete(YwyApply ywyApply){
service.removeById(ywyApply.getId());
return Result.success();
}
@PostMapping("/approve")
@ApiOperation("审批")
public Result approve(YwyApply ywyApply){
service.approve(ywyApply);
return Result.success();
}
@GetMapping("/findUserPage")
@ApiOperation("查询(分页)")
public Result findUserPage(YwyApply ywyApply){
return service.findUserPage(ywyApply);
}
}

View File

@ -0,0 +1,49 @@
package com.sqx.modules.bl.commission.ywy.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.ywy.entity.YwyConfig;
import com.sqx.modules.bl.commission.ywy.service.YwyConfigService;
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/ywyConfig")
@Api(value = "分佣管理", tags = {"业务员配置"})
public class YwyConfigController {
@Autowired
private YwyConfigService service;
@GetMapping("/info")
@ApiOperation("查询业务员配置")
public Result info(YwyConfig ywyConfig){
YwyConfig entity = service.getById(ywyConfig);
if(entity == null){
entity = service.getOne(new QueryWrapper<YwyConfig>());
}
return Result.success().put("data",entity);
}
@PostMapping("/save")
@ApiOperation("添加业务员")
public Result save(YwyConfig ywyConfig){
YwyConfig entity = service.getById(ywyConfig);
if(entity!=null){
service.updateById(ywyConfig);
}else{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ywyConfig.setCreateTime(sdf.format(new Date()));
service.save(ywyConfig);
}
return Result.success();
}
}

View File

@ -0,0 +1,31 @@
package com.sqx.modules.bl.commission.ywy.controller.app;
import com.sqx.common.utils.Result;
import com.sqx.modules.bl.commission.ywy.entity.YwyApply;
import com.sqx.modules.bl.commission.ywy.service.YwyApplyService;
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;
import java.text.SimpleDateFormat;
import java.util.Date;
@RestController
@RequestMapping("/app/commission/ywy")
@Api(value = "分佣管理", tags = {"业务员管理app"})
public class AppYwyController {
@Autowired
private YwyApplyService service;
@GetMapping("/apply")
@ApiOperation("申请业务员")
public Result apply(YwyApply ywyApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ywyApply.setCreateTime(sdf.format(new Date()));
service.add(ywyApply);
return Result.success();
}
}

View File

@ -0,0 +1,17 @@
package com.sqx.modules.bl.commission.ywy.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.ywy.entity.YwyApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface YwyApplyDao extends BaseMapper<YwyApply> {
IPage<YwyApply> findPage(Page<YwyApply> page, @Param("params") YwyApply ywyApply);
int add(YwyApply ywyApply);
int update(YwyApply ywyApply);
int approve(YwyApply ywyApply);
IPage<YwyApply> findUserPage(Page<YwyApply> page, @Param("params") YwyApply ywyApply);
}

View File

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

View File

@ -0,0 +1,103 @@
package com.sqx.modules.bl.commission.ywy.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_ywy_apply
* 业务员申请表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_ywy_apply")
public class YwyApply 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;
/**
*头像
*/
@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;
public YwyApply() {}
}

View File

@ -0,0 +1,62 @@
package com.sqx.modules.bl.commission.ywy.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_ywy_config
* 业务员配置表
* @author caolei
* @date 2024-08-03
*/
@Data
@TableName("bl_ywy_config")
public class YwyConfig 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 isApprove;
/**
*业务员返佣
*/
private BigDecimal salesmanRate;
/**
*技师承担
*/
private BigDecimal artificerRate;
/**
*代理商承担
*/
private BigDecimal agentRate;
/**
*业务员与渠道商分佣方式
*/
private Integer type;
/**
*邀请业务员推广海报背景图
*/
private String salesmanImage;
/**
*创建时间
*/
private String createTime;
public YwyConfig() {}
}

View File

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

View File

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

View File

@ -0,0 +1,53 @@
package com.sqx.modules.bl.commission.ywy.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.ywy.dao.YwyApplyDao;
import com.sqx.modules.bl.commission.ywy.entity.YwyApply;
import com.sqx.modules.bl.commission.ywy.service.YwyApplyService;
import com.sqx.modules.sys.entity.SysUserEntity;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
@Service
public class YwyApplyServiceImpl extends ServiceImpl<YwyApplyDao, YwyApply> implements YwyApplyService {
@Override
public Result findPage(YwyApply ywyApply){
Page<YwyApply> pages=new Page<>(ywyApply.getPage(),ywyApply.getLimit());
return Result.success().put("data",new PageUtils(baseMapper.findPage(pages,ywyApply)));
}
@Override
public int add(YwyApply ywyApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ywyApply.setCreateTime(sdf.format(new Date()));
ywyApply.setStatus(0);
return baseMapper.add(ywyApply);
}
@Override
public int update(YwyApply ywyApply){
return baseMapper.update(ywyApply);
}
@Override
public int approve(YwyApply ywyApply){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ywyApply.setApproveTime(sdf.format(new Date()));
ywyApply.setApproveUser(((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUserId());
return baseMapper.approve(ywyApply);
}
@Override
public Result findUserPage(YwyApply ywyApply){
Page<YwyApply> pages=new Page<>(ywyApply.getUserPage(),ywyApply.getUserLimit());
return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,ywyApply)));
}
}

View File

@ -0,0 +1,12 @@
package com.sqx.modules.bl.commission.ywy.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.bl.commission.ywy.dao.YwyConfigDao;
import com.sqx.modules.bl.commission.ywy.entity.YwyConfig;
import com.sqx.modules.bl.commission.ywy.service.YwyConfigService;
import org.springframework.stereotype.Service;
@Service
public class YwyConfigServiceImpl extends ServiceImpl<YwyConfigDao, YwyConfig> implements YwyConfigService {
}

View File

@ -48,7 +48,9 @@
and a.longitude is not null and a.latitude is not null and a.longitude is not null and a.latitude is not null
</if> </if>
) b ) b
where distance &lt;= 5000 <if test="isBack==null or isBack==''">
where distance &lt;= 5000
</if>
<if test="by!=null and by==1"> <if test="by!=null and by==1">
order by order by
<if test="status!=null and status==-1"> <if test="status!=null and status==-1">

View File

@ -0,0 +1,74 @@
<?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.fxy.dao.FxyApplyDao">
<select id="findPage" resultType="com.sqx.modules.bl.commission.fxy.entity.FxyApply">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.create_time,a.status,a.opinion
from bl_fxy_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.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>
<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="com.sqx.modules.bl.commission.fxy.entity.FxyApply">
insert into bl_fxy_apply(user_id,name,phone,remarks,create_time)
values(#{userId},#{name},#{phone},#{remarks},#{createTime})
</insert>
<update id="update" parameterType="com.sqx.modules.bl.commission.fxy.entity.FxyApply">
update bl_fxy_apply
set
user_id=#{userId},
name=#{name},
phone=#{phone},
remarks=#{remarks}
where id=#{id}
</update>
<update id="approve" parameterType="com.sqx.modules.bl.commission.fxy.entity.FxyApply">
update bl_fxy_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.fxy.entity.FxyApply">
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_fxy_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>
</mapper>

View File

@ -0,0 +1,88 @@
<?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.jjr.dao.JjrApplyDao">
<select id="findPage" resultType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.create_time,a.status,a.opinion
from bl_jjr_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.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>
<select id="findList" resultType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.create_time,a.status,a.opinion,b.invitation_code
from bl_jjr_apply a
inner join tb_user b on a.user_id = b.user_id
where a.status = 1
order by id desc
</select>
<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
insert into bl_jjr_apply(user_id,name,phone,remarks,create_time,status)
values(#{userId},#{name},#{phone},#{remarks},#{createTime},0)
</insert>
<update id="update" parameterType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
update bl_jjr_apply
set
user_id=#{userId},
name=#{name},
phone=#{phone},
remarks=#{remarks}
where id=#{id}
</update>
<update id="approve" parameterType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
update bl_jjr_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.jjr.entity.JjrApply">
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_jjr_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>
<update id="setRate" parameterType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
update tb_user
set shop_rate=#{rate}
where user_id=#{userId}
</update>
</mapper>

View File

@ -0,0 +1,39 @@
<?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.jjr.dao.JjrDataDao">
<select id="findJjrPage" resultType="com.sqx.modules.bl.commission.jjr.entity.JjrData">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.create_time,a.status,a.opinion
from bl_jjr_apply a
inner join tb_user b on a.user_id = b.user_id
where a.status= 1
<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.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>
<select id="getByCode" resultType="com.sqx.modules.bl.commission.jjr.entity.JjrData">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.create_time,a.status,a.opinion
from bl_jjr_apply a
inner join tb_user b on a.user_id = b.user_id
where b.invitation_code= #{invitationCode}
</select>
<update id="modifyJjr" parameterType="com.sqx.modules.bl.commission.jjr.entity.JjrApply">
update tb_user
set bl_jjr_code=#{invitationCode}
where user_id=#{artificerUserId}
</update>
</mapper>

View File

@ -0,0 +1,74 @@
<?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.ywy.dao.YwyApplyDao">
<select id="findPage" resultType="com.sqx.modules.bl.commission.ywy.entity.YwyApply">
select a.id,a.user_id,b.avatar,b.user_name,a.name,a.phone,a.remarks,a.create_time,a.status,a.opinion
from bl_ywy_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.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>
<insert id="add" useGeneratedKeys="true" keyProperty="id" parameterType="com.sqx.modules.bl.commission.ywy.entity.YwyApply">
insert into bl_ywy_apply(user_id,name,phone,remarks,create_time,status)
values(#{userId},#{name},#{phone},#{remarks},#{createTime},0)
</insert>
<update id="update" parameterType="com.sqx.modules.bl.commission.ywy.entity.YwyApply">
update bl_ywy_apply
set
user_id=#{userId},
name=#{name},
phone=#{phone},
remarks=#{remarks}
where id=#{id}
</update>
<update id="approve" parameterType="com.sqx.modules.bl.commission.ywy.entity.YwyApply">
update bl_ywy_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.ywy.entity.YwyApply">
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_ywy_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>
</mapper>