gc-core/src/main/java/com/xzx/gc/entity/AccountInfo.java
@@ -42,6 +42,8 @@ private Short adjustFlag; private String isProhibit; public static final String IS_PROHIBIT_Y = "1"; public static final String IS_PROHIBIT_N = "0"; private String createTime; private String updateTime; @@ -70,5 +72,10 @@ // @ApiModelProperty("用户所在区域ID") // private transient String townId; private Integer isHead; public static final Integer IS_HEAD_Y = 1; public static final Integer IS_HEAD_N = 2; } gc-core/src/main/resources/application.properties
@@ -11,7 +11,7 @@ #log project.log.path=/xzx/logs project.log.path=xzx/logs logstash.server.url=localhost:4560 #spring gc-user/src/main/java/com/xzx/gc/user/controller/ApiDistribController.java
New file @@ -0,0 +1,42 @@ package com.xzx.gc.user.controller; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.model.JsonResult; import com.xzx.gc.user.dto.DistribJoinDto; import com.xzx.gc.user.service.DistribService; import com.xzx.gc.user.vo.HeadInfoVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; /** * @author wzy * @date 2021-07-14 **/ @Api(tags = "分销-小程序") @Slf4j @RestController public class ApiDistribController extends BaseController { @Autowired private DistribService distribService; @ApiOperation("加入团队") @PostMapping(value = "/distrib/join") public JsonResult<String> join(DistribJoinDto distribJoinDto, HttpServletRequest request) { distribService.join(distribJoinDto.getHeadId(), getUserId(request)); return JsonResult.success(); } @ApiOperation("获取团长信息") @PostMapping(value = "/distrib/headInfo") public JsonResult<HeadInfoVo> headInfo(HttpServletRequest request) { return JsonResult.success(distribService.findHeadInfo(getUserId(request))); } } gc-user/src/main/java/com/xzx/gc/user/controller/UserController.java
@@ -31,6 +31,7 @@ import com.xzx.gc.user.dto.*; import com.xzx.gc.user.mapper.*; import com.xzx.gc.user.service.*; import com.xzx.gc.user.vo.UserIdentityVo; import com.xzx.gc.util.DoubleUtil; import com.xzx.gc.util.SessionUtil; import io.swagger.annotations.*; @@ -204,6 +205,11 @@ return result; } @ApiOperation(value = "获取用户身份状态") @PostMapping("/user/query/userIdentity") public JsonResult<UserIdentityVo> userIdentity(HttpServletRequest request) { return JsonResult.success(userService.userIdentity(getUserId(request))); } /** * 验证支付密码 gc-user/src/main/java/com/xzx/gc/user/dto/DistribJoinDto.java
New file @@ -0,0 +1,17 @@ package com.xzx.gc.user.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author wzy * @date 2021-07-14 **/ @Data @ApiModel(value = "DistribJoinDto", description = "加入团长参数接收类") public class DistribJoinDto { @ApiModelProperty(value = "团长ID") private String headId; } gc-user/src/main/java/com/xzx/gc/user/mapper/UserHeadRelateMapper.java
New file @@ -0,0 +1,13 @@ package com.xzx.gc.user.mapper; import com.xzx.gc.entity.UserHeadRelate; import com.xzx.gc.user.vo.HeadInfoVo; import com.xzx.gc.util.GcMapper; import org.apache.ibatis.annotations.Param; public interface UserHeadRelateMapper extends GcMapper<UserHeadRelate> { UserHeadRelate selectMemberByUserId(@Param("userId") String userId); HeadInfoVo selectHeadStatisticsData(@Param("userId") String userId); } gc-user/src/main/java/com/xzx/gc/user/mapper/UserShareInfoMapper.java
@@ -2,12 +2,13 @@ import com.xzx.gc.entity.UserShareInfo; import com.xzx.gc.util.GcMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @Repository public interface UserShareInfoMapper extends GcMapper<UserShareInfo> { UserShareInfo selectByRegistPhone(@Param("registPhone") String registPhone); } gc-user/src/main/java/com/xzx/gc/user/service/DistribService.java
@@ -1,5 +1,17 @@ package com.xzx.gc.user.service; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.xzx.gc.common.exception.RestException; import com.xzx.gc.entity.AccountInfo; import com.xzx.gc.entity.SysMessage; import com.xzx.gc.entity.UserHeadRelate; import com.xzx.gc.entity.UserShareInfo; import com.xzx.gc.user.mapper.AccountMapper; import com.xzx.gc.user.mapper.SysMessageMapper; import com.xzx.gc.user.mapper.UserHeadRelateMapper; import com.xzx.gc.user.mapper.UserShareInfoMapper; import com.xzx.gc.user.vo.HeadInfoVo; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.xzx.gc.entity.RedPaperRule; @@ -7,6 +19,7 @@ import com.xzx.gc.user.dto.UpdateSettingDto; import com.xzx.gc.user.mapper.RedPaperRuleMapper; import com.xzx.gc.user.vo.ViewSettingVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -14,12 +27,24 @@ import java.math.BigDecimal; import java.util.List; import java.math.BigDecimal; import java.util.Date; @Service @Transactional public class DistribService { @Resource private RedPaperRuleMapper redPaperRuleMapper; @Autowired private UserHeadRelateMapper userHeadRelateMapper; @Autowired private AccountMapper accountMapper; @Autowired private UserShareInfoMapper userShareInfoMapper; @Autowired private SysMessageMapper sysMessageMapper; public ViewSettingVo viewSetting(String ruleStr) { ViewSettingVo viewSettingVo = new ViewSettingVo(); @@ -60,6 +85,57 @@ return viewSettingVo; } public void join(String headId, String userId) { AccountInfo headInfo = accountMapper.selectOneByUserId(headId); if (AccountInfo.IS_HEAD_N.equals(headInfo.getIsHead())) { throw new RestException(-3, "不是团长"); } if (AccountInfo.IS_PROHIBIT_Y.equals(headInfo.getIsProhibit())) { throw new RestException(-3, "该用户被冻结"); } UserHeadRelate existHeadRelate = userHeadRelateMapper.selectMemberByUserId(userId); if (existHeadRelate != null) { throw new RestException(-3, "已加入其他团队"); } AccountInfo accountInfo = accountMapper.selectOneByUserId(userId); UserShareInfo userShareInfo = userShareInfoMapper.selectByRegistPhone(accountInfo.getAccountName()); if (userShareInfo != null) { throw new RestException(-3, "您已与推广员绑定, 无法加入"); } UserHeadRelate userHeadRelate = new UserHeadRelate(); userHeadRelate.setHeadUserId(headId); userHeadRelate.setUserId(userId); userHeadRelate.setScore(BigDecimal.ZERO); userHeadRelate.setAmount(BigDecimal.ZERO); userHeadRelateMapper.insert(userHeadRelate); SysMessage sysMessage = new SysMessage(); sysMessage.setCreateTime(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); sysMessage.setCreateUserId(userId); sysMessage.setMobilePhone(accountInfo.getAccountName()); sysMessage.setMessageType("4"); sysMessage.setMessage("手机号:" + accountInfo.getAccountName() + "的用户, 成功加入您的团队"); sysMessage.setFlag("2"); sysMessageMapper.insert(sysMessage); } public HeadInfoVo findHeadInfo(String userId) { AccountInfo accountInfo = accountMapper.selectOneByUserId(userId); HeadInfoVo headInfoVo = userHeadRelateMapper.selectHeadStatisticsData(userId); if (headInfoVo == null) { headInfoVo = new HeadInfoVo(); } headInfoVo.setIsHead(accountInfo.getIsHead()); return headInfoVo; } public void addSetting(UpdateSettingDto model) { RedPaperRule redPaperRule = new RedPaperRule(); StringBuffer stringBuffer = new StringBuffer(); gc-user/src/main/java/com/xzx/gc/user/service/UserService.java
@@ -25,6 +25,7 @@ import com.xzx.gc.user.dto.RayaltyDto; import com.xzx.gc.user.mapper.*; import com.xzx.gc.user.vo.CategaryVo; import com.xzx.gc.user.vo.UserIdentityVo; import com.xzx.gc.util.DoubleUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; @@ -109,6 +110,15 @@ return userInfo1; } public UserIdentityVo userIdentity(String userId) { AccountInfo accountInfo = accountService.findByUserIdForbidden(userId); UserIdentityVo userIdentityVo = new UserIdentityVo(); userIdentityVo.setIsHead(accountInfo.getIsHead()); return userIdentityVo; } public List<AccountVo> queryMyMoney(AccountReq accountReq) { Map map = new HashMap(); gc-user/src/main/java/com/xzx/gc/user/vo/HeadInfoVo.java
New file @@ -0,0 +1,29 @@ package com.xzx.gc.user.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; import lombok.Data; import java.math.BigDecimal; /** * @author wzy * @date 2021-07-14 **/ @Data @ApiModel(value = "HeadInfoVo", description = "团长信息接口返回参数类") public class HeadInfoVo { @ApiModelProperty(value = "是否团长 1-是 2-否") private Integer isHead; @ApiModelProperty(value = "环保币") private BigDecimal amount; @ApiModelProperty(value = "积分") private BigDecimal score; @ApiModelProperty(value = "团队") private Integer cnt; } gc-user/src/main/java/com/xzx/gc/user/vo/UserIdentityVo.java
New file @@ -0,0 +1,17 @@ package com.xzx.gc.user.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author wzy * @date 2021-07-14 **/ @Data @ApiModel(value = "UserIdentityVo", description = "获取用户身份类型返回参数类") public class UserIdentityVo { @ApiModelProperty(value = "是否团长 1-是 2-否") private Integer isHead; } gc-user/src/main/resources/mapper/user/UserHeadRelateMapper.xml
New file @@ -0,0 +1,19 @@ <?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.xzx.gc.user.mapper.UserHeadRelateMapper"> <select id="selectMemberByUserId" resultType="com.xzx.gc.entity.UserHeadRelate"> select * from xzx_user_head_relate where user_id=#{userId} </select> <select id="selectHeadStatisticsData" resultType="com.xzx.gc.user.vo.HeadInfoVo"> select IFNULL(sum(a.score), 0) score, IFNULL(sum(a.amount), 0) amount, IFNULL(count(1), 0) cnt from xzx_user_head_relate a where a.head_user_id=#{userId} group by a.head_user_id </select> </mapper> gc-user/src/main/resources/mapper/user/UserShareInfoMapper.xml
New file @@ -0,0 +1,8 @@ <?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.xzx.gc.user.mapper.UserShareInfoMapper"> <select id="selectByRegistPhone" resultType="com.xzx.gc.entity.UserShareInfo"> select * from xzx_user_share_info where register_mobile_phone=#{registPhone} </select> </mapper>