| | |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | |
| | | @ApiModelProperty(value = "最后一次登录时间") |
| | | @TableField("last_login_time") |
| | | private LocalDateTime lastLoginTime; |
| | | @ApiModelProperty(value = "邀请人id") |
| | | @TableField("invite_user_id") |
| | | private Long inviteUserId; |
| | | |
| | | |
| | | |
| | |
| | | @NotBlank(message = "获取用户信息加密串不能为空") |
| | | private String token; |
| | | |
| | | @ApiModelProperty(value = "邀请用户id") |
| | | private Long inviteUserId; |
| | | |
| | | } |
| | |
| | | String phoneNumber = new AliAppletTools(aliProperties).getPhoneNumber(appletUserLogin.getToken()); |
| | | log.info("获取支付宝用户信息:{}", phoneNumber); |
| | | // 用户信息封装 |
| | | return AjaxResult.success(appUserService.aliLogin(response,phoneNumber)); |
| | | return AjaxResult.success(appUserService.aliLogin(response,phoneNumber,appletUserLogin.getInviteUserId())); |
| | | } else { |
| | | String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); |
| | | log.warn("诊断结果:{}",diagnosisUrl); |
| | |
| | | } |
| | | AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey, data.getIv()); |
| | | appletUserDecodeData.setOpenId(openid); |
| | | return AjaxResult.success(appUserService.wxLogin(appletUserDecodeData)); |
| | | return AjaxResult.success(appUserService.wxLogin(appletUserDecodeData,data.getInviteUserId())); |
| | | } |
| | | } |
| | |
| | | * @param appletUserDecodeData |
| | | * @return |
| | | */ |
| | | Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData); |
| | | Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData,Long inviteUserId); |
| | | |
| | | /** |
| | | * 支付宝小程序登录用户封装 |
| | |
| | | * @return |
| | | */ |
| | | // Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse userInfo); |
| | | Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone); |
| | | Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone,Long inviteUserId); |
| | | |
| | | /** |
| | | * 封装用户信息和token |
| | |
| | | */ |
| | | public interface TInviteUserService extends IService<TInviteUser> { |
| | | |
| | | /** |
| | | * 添加邀请用户 |
| | | * @param appUserId |
| | | * @param beInvitedAppUserId |
| | | */ |
| | | void saveInviteUser(Long appUserId, Long beInvitedAppUserId); |
| | | |
| | | } |
| | |
| | | import com.ruoyi.account.api.model.TAppUser; |
| | | import com.ruoyi.account.mapper.TAppUserMapper; |
| | | import com.ruoyi.account.service.TAppUserService; |
| | | import com.ruoyi.account.service.TInviteUserService; |
| | | import com.ruoyi.account.wx.model.WeixinProperties; |
| | | import com.ruoyi.account.wx.pojo.AppletUserDecodeData; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | |
| | | public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { |
| | | @Autowired |
| | | private TokenService tokenService; |
| | | @Autowired |
| | | private TInviteUserService inviteUserService; |
| | | @Override |
| | | public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData) { |
| | | public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData,Long inviteUserId) { |
| | | // 通过手机号查询用户,是否已存在手动导入用户,包含支付宝用户 |
| | | TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber()) |
| | |
| | | if(Objects.nonNull(appUser.getStatus())){ |
| | | throwInfo(appUser.getStatus()); |
| | | } |
| | | appUser.setInviteUserId(inviteUserId); |
| | | appUser.setAvatar(appletUserDecodeData.getAvatarUrl()); |
| | | appUser.setCity(appletUserDecodeData.getCity()); |
| | | appUser.setName(appletUserDecodeData.getNickName()); |
| | | appUser.setProvince(appletUserDecodeData.getProvince()); |
| | | appUser.setWxOpenid(appletUserDecodeData.getOpenId()); |
| | | this.saveOrUpdate(appUser); |
| | | inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); |
| | | return this.getUserInfo(appUser); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone) { |
| | | public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone,Long inviteUserId) { |
| | | // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户 |
| | | TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | .eq(TAppUser::getPhone, phone) |
| | |
| | | if(Objects.nonNull(appUser.getStatus())){ |
| | | throwInfo(appUser.getStatus()); |
| | | } |
| | | appUser.setInviteUserId(inviteUserId); |
| | | appUser.setAliOpenid(response.getOpenId()); |
| | | this.saveOrUpdate(appUser); |
| | | inviteUserService.saveInviteUser(appUser.getId(), inviteUserId); |
| | | return this.getUserInfo(appUser); |
| | | } |
| | | // @Override |
| | |
| | | import com.ruoyi.account.service.TInviteUserService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.time.LocalDateTime; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务实现类 |
| | |
| | | @Service |
| | | public class TInviteUserServiceImpl extends ServiceImpl<TInviteUserMapper, TInviteUser> implements TInviteUserService { |
| | | |
| | | @Override |
| | | public void saveInviteUser(Long appUserId, Long beInvitedAppUserId) { |
| | | TInviteUser inviteUser = new TInviteUser(); |
| | | inviteUser.setAppUserId(appUserId); |
| | | inviteUser.setBeInvitedAppUserId(beInvitedAppUserId); |
| | | inviteUser.setCreateTime(LocalDateTime.now()); |
| | | this.save(inviteUser); |
| | | } |
| | | } |
| | |
| | | package com.ruoyi.account.wx.pojo; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | |
| | | private String rawData; |
| | | private String signature; |
| | | private String code; |
| | | @ApiModelProperty(value = "邀请用户id") |
| | | private Long inviteUserId; |
| | | } |
| | |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="del_flag" property="delFlag" /> |
| | | <result column="last_login_time" property="lastLoginTime" /> |
| | | <result column="invite_user_id" property="inviteUserId" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, name, phone, avatar, vip_id, vip_end_time, company_id, id_card, auth_status, wx_openid, ali_openid, points, province, province_code, city, city_code, status, create_time, del_flag, last_login_time |
| | | id, name, phone, avatar, vip_id, vip_end_time, company_id, id_card, auth_status, wx_openid, ali_openid, points, province, province_code, city, city_code, status, create_time, del_flag, last_login_time,invite_user_id |
| | | </sql> |
| | | |
| | | </mapper> |
| | |
| | | |
| | | @ApiOperation(tags = {"小程序-广告管理"},value = "广告列表查询") |
| | | @GetMapping(value = "/list") |
| | | public AjaxResult<List<TAdvertising>> list() { |
| | | public AjaxResult<List<TAdvertising>> list(@RequestParam("position") Integer position) { |
| | | return AjaxResult.ok(advertisingService.list(Wrappers.lambdaQuery(TAdvertising.class) |
| | | .eq(TAdvertising::getStatus, AdvertisingStatusEnum.YES.getCode()))); |
| | | .eq(TAdvertising::getStatus, AdvertisingStatusEnum.YES.getCode()) |
| | | .eq(TAdvertising::getPosition,position))); |
| | | } |
| | | } |
| | | |
| | |
| | | package com.ruoyi.other.controller; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.core.web.domain.AjaxResult; |
| | | import com.ruoyi.other.api.domain.TNotice; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | |
| | | } |
| | | |
| | | @ApiOperation(tags = {"小程序-首页-公告管理"},value = "查询") |
| | | @GetMapping(value = "/list") |
| | | public AjaxResult<List<TNotice>> list() { |
| | | return AjaxResult.success(noticeService.list(Wrappers.lambdaQuery(TNotice.class) |
| | | .ge(TNotice::getStartTime, LocalDateTime.now()) |
| | | .le(TNotice::getEndTime,LocalDateTime.now()))); |
| | | |
| | | } |
| | | |
| | | } |
| | | |