diff --git a/src/main/java/com/sqx/modules/app/controller/UserController.java b/src/main/java/com/sqx/modules/app/controller/UserController.java index 75173ad..f5da807 100644 --- a/src/main/java/com/sqx/modules/app/controller/UserController.java +++ b/src/main/java/com/sqx/modules/app/controller/UserController.java @@ -20,6 +20,8 @@ import com.sqx.modules.artificer.entity.Artificer; import com.sqx.modules.artificer.entity.Certification; import com.sqx.modules.artificer.service.ArtificerService; 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.message.entity.MessageInfo; import com.sqx.modules.message.service.MessageService; @@ -75,6 +77,8 @@ public class UserController { private MessageService messageService; @Autowired private CommonInfoService commonInfoService; + @Autowired + private JjrDataService jjrDataService; @GetMapping("/queryByInvitationCode") @ApiOperation("通过邀请码查询用户") @@ -96,6 +100,10 @@ public class UserController { public Result selectUserById(@ApiParam("用户id") @PathVariable Long userId) { Map map = new HashMap<>(); UserEntity userEntity = userService.queryByUserId(userId); + JjrData jjrData = jjrDataService.getByCode(userEntity.getBlJjrCode()); + if(jjrData != null){ + userEntity.setJjrName(jjrData.getName()); + } UserMoney userMoney = userMoneyService.selectUserMoneyByUserId(userId); //查询用户钱包 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -119,7 +127,6 @@ public class UserController { userEntity.setMember(userVip.getIsVip().intValue()); userEntity.setVipEndTime(userVip.getEndTime()); } - map.put("artificer", artificer); map.put("userEntity", userEntity); map.put("money", userMoney); diff --git a/src/main/java/com/sqx/modules/app/entity/UserEntity.java b/src/main/java/com/sqx/modules/app/entity/UserEntity.java index 9fc326a..e53e926 100644 --- a/src/main/java/com/sqx/modules/app/entity/UserEntity.java +++ b/src/main/java/com/sqx/modules/app/entity/UserEntity.java @@ -245,4 +245,10 @@ public class UserEntity implements Serializable { @TableField(exist = false) private String loglataddress; + private String blJjrCode; + private BigDecimal blJjrRate; + + @TableField(exist = false) + private String jjrName; + } diff --git a/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java index b95c8b2..95764fa 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/ArtificerController.java @@ -120,9 +120,9 @@ public class ArtificerController { @ApiOperation("查询技师列表") public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName, 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, - sort,authentication,by,status,city,classifyId,phone,null,isStart,technicianType); + sort,authentication,by,status,city,classifyId,phone,null,isStart,technicianType,isBack); } @GetMapping("/selectArtificer") diff --git a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java index 5885547..deaaa19 100644 --- a/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java +++ b/src/main/java/com/sqx/modules/artificer/controller/app/AppArtificerController.java @@ -137,9 +137,9 @@ public class AppArtificerController { @ApiOperation("查询技师列表") public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName, 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, - sort,authentication,by,-1,city,classifyId,phone,1,isStart,technicianType); + sort,authentication,by,-1,city,classifyId,phone,1,isStart,technicianType,isBack); } diff --git a/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java b/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java index 318f0b3..1ece737 100644 --- a/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java +++ b/src/main/java/com/sqx/modules/artificer/dao/ArtificerDao.java @@ -22,7 +22,7 @@ public interface ArtificerDao extends BaseMapper { @Param("authentication") Integer authentication,@Param("by") Integer by, @Param("status") Integer status,@Param("city") String city, @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); diff --git a/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java b/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java index 91621ae..a8dfdf2 100644 --- a/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java +++ b/src/main/java/com/sqx/modules/artificer/service/ArtificerService.java @@ -14,7 +14,7 @@ public interface ArtificerService extends IService { Result selectArtificerList(Integer page, Integer limit, Long massageTypeId, String artificerName, 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); diff --git a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java index 22ba454..66780d9 100644 --- a/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java +++ b/src/main/java/com/sqx/modules/artificer/service/impl/ArtificerServiceImpl.java @@ -75,10 +75,10 @@ public class ArtificerServiceImpl extends ServiceImpl i @Override public Result selectArtificerList(Integer page, Integer limit, Long massageTypeId,String artificerName, 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 pages=new Page<>(page,limit); IPage 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 records = artificerIPage.getRecords(); String value = commonInfoService.findOne(392).getValue(); if("30".equals(value)){ @@ -663,7 +663,7 @@ public class ArtificerServiceImpl extends ServiceImpl i public Result getHomeArtificerList(Integer page, Integer limit, Integer isStart,Integer status, String city, String longitude, String latitude){ Map map = new HashMap(); Page pages=new Page<>(page,limit); - IPage artificerIPage = baseMapper.selectArtificerList(pages, null, "",longitude, latitude, 1, 2, 1, status, city, null,"",1,0,null); + IPage artificerIPage = baseMapper.selectArtificerList(pages, null, "",longitude, latitude, 1, 2, 1, status, city, null,"",1,0,null,""); map.put("nearData",new PageUtils(artificerIPage)); map.put("startData",new PageUtils(baseMapper.getHomeStartArtificerList(pages,isStart,status,city))); return Result.success(map); diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/controller/FxyApplyController.java b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/FxyApplyController.java new file mode 100644 index 0000000..6519344 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/FxyApplyController.java @@ -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); + } + + +} diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/controller/FxyConfigController.java b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/FxyConfigController.java new file mode 100644 index 0000000..a19aaf3 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/FxyConfigController.java @@ -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()); + } + 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(); + } +} diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java new file mode 100644 index 0000000..ba6e480 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/controller/app/AppFxyController.java @@ -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(); + } +} diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/dao/FxyApplyDao.java b/src/main/java/com/sqx/modules/bl/commission/fxy/dao/FxyApplyDao.java new file mode 100644 index 0000000..802a6a8 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/dao/FxyApplyDao.java @@ -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 { + IPage findPage(Page page, @Param("params") FxyApply fxyApply); + int add(FxyApply fxyApply); + int update(FxyApply fxyApply); + int approve(FxyApply fxyApply); + IPage findUserPage(Page page, @Param("params") FxyApply fxyApply); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/dao/FxyConfigDao.java b/src/main/java/com/sqx/modules/bl/commission/fxy/dao/FxyConfigDao.java new file mode 100644 index 0000000..607eb1c --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/dao/FxyConfigDao.java @@ -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 { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/entity/FxyApply.java b/src/main/java/com/sqx/modules/bl/commission/fxy/entity/FxyApply.java new file mode 100644 index 0000000..18418ae --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/entity/FxyApply.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/entity/FxyConfig.java b/src/main/java/com/sqx/modules/bl/commission/fxy/entity/FxyConfig.java new file mode 100644 index 0000000..227320f --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/entity/FxyConfig.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/service/FxyApplyService.java b/src/main/java/com/sqx/modules/bl/commission/fxy/service/FxyApplyService.java new file mode 100644 index 0000000..8c1738a --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/service/FxyApplyService.java @@ -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 { + Result findPage(FxyApply fxyApply); + int add(FxyApply fxyApply); + int update(FxyApply fxyApply); + int approve(FxyApply fxyApply); + Result findUserPage(FxyApply fxyApply); + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/service/FxyConfigService.java b/src/main/java/com/sqx/modules/bl/commission/fxy/service/FxyConfigService.java new file mode 100644 index 0000000..097c1ec --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/service/FxyConfigService.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/service/impl/FxyApplyServiceImpl.java b/src/main/java/com/sqx/modules/bl/commission/fxy/service/impl/FxyApplyServiceImpl.java new file mode 100644 index 0000000..1c4b254 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/service/impl/FxyApplyServiceImpl.java @@ -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 implements FxyApplyService { + + @Override + public Result findPage(FxyApply fxyApply){ + Page 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 pages=new Page<>(fxyApply.getUserPage(),fxyApply.getUserLimit()); + return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,fxyApply))); + } +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/fxy/service/impl/FxyConfigServiceImpl.java b/src/main/java/com/sqx/modules/bl/commission/fxy/service/impl/FxyConfigServiceImpl.java new file mode 100644 index 0000000..924570a --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/fxy/service/impl/FxyConfigServiceImpl.java @@ -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 implements FxyConfigService { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrApplyController.java b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrApplyController.java new file mode 100644 index 0000000..a2bed0c --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrApplyController.java @@ -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); + } + +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrConfigController.java b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrConfigController.java new file mode 100644 index 0000000..56156a7 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrConfigController.java @@ -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()); + } + 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(); + } +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrDataController.java b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrDataController.java new file mode 100644 index 0000000..6b9e514 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/JjrDataController.java @@ -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(); + } +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/controller/app/AppJjrController.java b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/app/AppJjrController.java new file mode 100644 index 0000000..64ae913 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/controller/app/AppJjrController.java @@ -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(); + } + +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrApplyDao.java b/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrApplyDao.java new file mode 100644 index 0000000..6c7ae54 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrApplyDao.java @@ -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 { + IPage findPage(Page page, @Param("params") JjrApply jjrApply); + List findList(JjrApply jjrApply); + int add(JjrApply jjrApply); + int update(JjrApply jjrApply); + int approve(JjrApply jjrApply); + IPage findUserPage(Page page, @Param("params") JjrApply jjrApply); + int setRate(JjrApply jjrApply); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrConfigDao.java b/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrConfigDao.java new file mode 100644 index 0000000..b158500 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrConfigDao.java @@ -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 { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrDataDao.java b/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrDataDao.java new file mode 100644 index 0000000..f9ad1d7 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/dao/JjrDataDao.java @@ -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 { + IPage findJjrPage(Page page, @Param("params") JjrData jjrData); + JjrData getByCode(String invitationCode); + void modifyJjr(JjrData jjrData); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrApply.java b/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrApply.java new file mode 100644 index 0000000..8d14d7c --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrApply.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrConfig.java b/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrConfig.java new file mode 100644 index 0000000..bca3ee9 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrConfig.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrData.java b/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrData.java new file mode 100644 index 0000000..8df8937 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/entity/JjrData.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrApplyService.java b/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrApplyService.java new file mode 100644 index 0000000..3c0e989 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrApplyService.java @@ -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 { + Result findPage(JjrApply jjrApply); + int add(JjrApply jjrApply); + int update(JjrApply jjrApply); + void approve(JjrApply jjrApply); + Result findUserPage(JjrApply jjrApply); + void setJjrRate(JjrApply jjrApply); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrConfigService.java b/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrConfigService.java new file mode 100644 index 0000000..7879b49 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrConfigService.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrDataService.java b/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrDataService.java new file mode 100644 index 0000000..bdbb842 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/service/JjrDataService.java @@ -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 { + Result findJjrPage(JjrData jjrData); + JjrData getByCode(String invitationCode); + void modifyJjr(JjrData jjrData); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/service/impl/JjrApplyServiceImpl.java b/src/main/java/com/sqx/modules/bl/commission/jjr/service/impl/JjrApplyServiceImpl.java new file mode 100644 index 0000000..9da4670 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/service/impl/JjrApplyServiceImpl.java @@ -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 implements JjrApplyService { + + @Autowired + private JjrConfigService configService; + + @Override + public Result findPage(JjrApply jjrApply){ + Page 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 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()); + if(jjrConfig != null){ + if(jjrApply == null){ + List list = baseMapper.findList(null); + for(int i=0;i implements JjrConfigService { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/jjr/service/impl/JjrDataServiceImpl.java b/src/main/java/com/sqx/modules/bl/commission/jjr/service/impl/JjrDataServiceImpl.java new file mode 100644 index 0000000..bbb265f --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/jjr/service/impl/JjrDataServiceImpl.java @@ -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 implements JjrDataService { + + @Override + public Result findJjrPage(JjrData jjrData){ + Page 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); + } +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/controller/YwyApplyController.java b/src/main/java/com/sqx/modules/bl/commission/ywy/controller/YwyApplyController.java new file mode 100644 index 0000000..555a136 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/controller/YwyApplyController.java @@ -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); + } + +} diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/controller/YwyConfigController.java b/src/main/java/com/sqx/modules/bl/commission/ywy/controller/YwyConfigController.java new file mode 100644 index 0000000..be0e126 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/controller/YwyConfigController.java @@ -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()); + } + 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(); + } +} diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/controller/app/AppYwyController.java b/src/main/java/com/sqx/modules/bl/commission/ywy/controller/app/AppYwyController.java new file mode 100644 index 0000000..8ef2bf6 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/controller/app/AppYwyController.java @@ -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(); + } +} diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/dao/YwyApplyDao.java b/src/main/java/com/sqx/modules/bl/commission/ywy/dao/YwyApplyDao.java new file mode 100644 index 0000000..9bda9a1 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/dao/YwyApplyDao.java @@ -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 { + IPage findPage(Page page, @Param("params") YwyApply ywyApply); + int add(YwyApply ywyApply); + int update(YwyApply ywyApply); + int approve(YwyApply ywyApply); + IPage findUserPage(Page page, @Param("params") YwyApply ywyApply); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/dao/YwyConfigDao.java b/src/main/java/com/sqx/modules/bl/commission/ywy/dao/YwyConfigDao.java new file mode 100644 index 0000000..ec4c9e2 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/dao/YwyConfigDao.java @@ -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 { + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/entity/YwyApply.java b/src/main/java/com/sqx/modules/bl/commission/ywy/entity/YwyApply.java new file mode 100644 index 0000000..2ec2033 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/entity/YwyApply.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/entity/YwyConfig.java b/src/main/java/com/sqx/modules/bl/commission/ywy/entity/YwyConfig.java new file mode 100644 index 0000000..2a0e5ea --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/entity/YwyConfig.java @@ -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() {} +} diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/service/YwyApplyService.java b/src/main/java/com/sqx/modules/bl/commission/ywy/service/YwyApplyService.java new file mode 100644 index 0000000..536cab2 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/service/YwyApplyService.java @@ -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 { + Result findPage(YwyApply ywyApply); + int add(YwyApply ywyApply); + int update(YwyApply ywyApply); + int approve(YwyApply ywyApply); + Result findUserPage(YwyApply ywyApply); +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/service/YwyConfigService.java b/src/main/java/com/sqx/modules/bl/commission/ywy/service/YwyConfigService.java new file mode 100644 index 0000000..4eeac7d --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/service/YwyConfigService.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/service/impl/YwyApplyServiceImpl.java b/src/main/java/com/sqx/modules/bl/commission/ywy/service/impl/YwyApplyServiceImpl.java new file mode 100644 index 0000000..fbd4b11 --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/service/impl/YwyApplyServiceImpl.java @@ -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 implements YwyApplyService { + + @Override + public Result findPage(YwyApply ywyApply){ + Page 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 pages=new Page<>(ywyApply.getUserPage(),ywyApply.getUserLimit()); + return Result.success().put("data",new PageUtils(baseMapper.findUserPage(pages,ywyApply))); + } + +} \ No newline at end of file diff --git a/src/main/java/com/sqx/modules/bl/commission/ywy/service/impl/YwyConfigServiceImpl.java b/src/main/java/com/sqx/modules/bl/commission/ywy/service/impl/YwyConfigServiceImpl.java new file mode 100644 index 0000000..ae3038a --- /dev/null +++ b/src/main/java/com/sqx/modules/bl/commission/ywy/service/impl/YwyConfigServiceImpl.java @@ -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 implements YwyConfigService { + +} \ No newline at end of file diff --git a/src/main/resources/mapper/artificer/ArtificerDao.xml b/src/main/resources/mapper/artificer/ArtificerDao.xml index eb65f99..5da717c 100644 --- a/src/main/resources/mapper/artificer/ArtificerDao.xml +++ b/src/main/resources/mapper/artificer/ArtificerDao.xml @@ -48,7 +48,9 @@ and a.longitude is not null and a.latitude is not null ) b - where distance <= 5000 + + where distance <= 5000 + order by diff --git a/src/main/resources/mapper/bl/commission/fxy/FxyApplyDao.xml b/src/main/resources/mapper/bl/commission/fxy/FxyApplyDao.xml new file mode 100644 index 0000000..ded8201 --- /dev/null +++ b/src/main/resources/mapper/bl/commission/fxy/FxyApplyDao.xml @@ -0,0 +1,74 @@ + + + + + + + + + insert into bl_fxy_apply(user_id,name,phone,remarks,create_time) + values(#{userId},#{name},#{phone},#{remarks},#{createTime}) + + + + update bl_fxy_apply + set + user_id=#{userId}, + name=#{name}, + phone=#{phone}, + remarks=#{remarks} + where id=#{id} + + + + update bl_fxy_apply + set status=#{status}, + opinion=#{opinion}, + approve_time=#{approveTime}, + approve_user=#{approveUser} + where id=#{id} + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/bl/commission/jjr/JjrApplyDao.xml b/src/main/resources/mapper/bl/commission/jjr/JjrApplyDao.xml new file mode 100644 index 0000000..7e2f187 --- /dev/null +++ b/src/main/resources/mapper/bl/commission/jjr/JjrApplyDao.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + insert into bl_jjr_apply(user_id,name,phone,remarks,create_time,status) + values(#{userId},#{name},#{phone},#{remarks},#{createTime},0) + + + + update bl_jjr_apply + set + user_id=#{userId}, + name=#{name}, + phone=#{phone}, + remarks=#{remarks} + where id=#{id} + + + + update bl_jjr_apply + set status=#{status}, + opinion=#{opinion}, + approve_time=#{approveTime}, + approve_user=#{approveUser} + where id=#{id} + + + + + + update tb_user + set shop_rate=#{rate} + where user_id=#{userId} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/bl/commission/jjr/JjrDataDao.xml b/src/main/resources/mapper/bl/commission/jjr/JjrDataDao.xml new file mode 100644 index 0000000..cc91445 --- /dev/null +++ b/src/main/resources/mapper/bl/commission/jjr/JjrDataDao.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + update tb_user + set bl_jjr_code=#{invitationCode} + where user_id=#{artificerUserId} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/bl/commission/ywy/YwyApplyDao.xml b/src/main/resources/mapper/bl/commission/ywy/YwyApplyDao.xml new file mode 100644 index 0000000..e92d93b --- /dev/null +++ b/src/main/resources/mapper/bl/commission/ywy/YwyApplyDao.xml @@ -0,0 +1,74 @@ + + + + + + + + + insert into bl_ywy_apply(user_id,name,phone,remarks,create_time,status) + values(#{userId},#{name},#{phone},#{remarks},#{createTime},0) + + + + update bl_ywy_apply + set + user_id=#{userId}, + name=#{name}, + phone=#{phone}, + remarks=#{remarks} + where id=#{id} + + + + update bl_ywy_apply + set status=#{status}, + opinion=#{opinion}, + approve_time=#{approveTime}, + approve_user=#{approveUser} + where id=#{id} + + + + + \ No newline at end of file