Compare commits

...

3 Commits

Author SHA1 Message Date
cb9e98a4de bug修复 2025-06-06 16:20:16 +08:00
e321804d46 Merge remote-tracking branch 'origin/master' 2025-06-06 16:18:43 +08:00
2269c0eb42 bug修复 2025-05-30 12:27:27 +08:00
9 changed files with 74 additions and 15 deletions

View File

@ -10,13 +10,18 @@ import com.ruoyi.busi.utils.WeChatUtils;
import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.GzhLoginBody; import com.ruoyi.common.core.domain.model.GzhLoginBody;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.member.service.IMemberUserService; import com.ruoyi.member.service.IMemberUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set;
@RestController @RestController
@RequestMapping("/wxApi") @RequestMapping("/wxApi")
@ -29,6 +34,9 @@ public class WxApi {
private IBusiNoticeService busiNoticeService; private IBusiNoticeService busiNoticeService;
@Autowired @Autowired
private IBaseCategoryService baseCategoryService; private IBaseCategoryService baseCategoryService;
@Autowired
private SysPermissionService permissionService;
@GetMapping("/getCodeUrl") @GetMapping("/getCodeUrl")
@ -65,6 +73,13 @@ public class WxApi {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("path", path); map.put("path", path);
map.put("query", "noticeId="+query+"&navigatePath=index"); map.put("query", "noticeId="+query+"&navigatePath=index");
LoginUser loginUser = SecurityUtils.getLoginUser();
SysUser user = loginUser.getUser();
// 角色集合
Set<String> roles = permissionService.getRolePermission(user);
if (roles.contains("xsry")) {
map.put("query", "noticeId="+query+"&navigatePath=index"+"&inviteId="+user.getUserId());
}
map.put("expire_type", 1); map.put("expire_type", 1);
map.put("expire_interval", 30); map.put("expire_interval", 30);
String post = HttpUtil.post("https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + token, com.alibaba.fastjson2.JSONObject.toJSONString(map)); String post = HttpUtil.post("https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + token, com.alibaba.fastjson2.JSONObject.toJSONString(map));

View File

@ -138,10 +138,10 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){ if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){
if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){ if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){
//title detail 相似度大于70% 待审核 //title detail 相似度大于70% 待审核
data.setApprovalStatus("0"); data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+","); data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500); result.put("code",500);
result.put("msg","该通告已被人抢先一步上传,等待平台审核"); result.put("msg","通告查重,下次早点上传哦!");
} }
} }
} }
@ -223,10 +223,10 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){ if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){
if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){ if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){
//title detail 相似度大于70% 待审核 //title detail 相似度大于70% 待审核
data.setApprovalStatus("0"); data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+","); data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500); result.put("code",500);
result.put("msg","该通告已被人抢先一步上传,等待平台审核"); result.put("msg","通告查重,下次早点上传哦!");
} }
} }
} }
@ -325,7 +325,7 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){ if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){
if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){ if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){
//title detail 相似度大于70% 待审核 //title detail 相似度大于70% 待审核
data.setApprovalStatus("0"); data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+","); data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
} }
} }

View File

@ -69,7 +69,7 @@ public interface IMemberUserService extends IService<MemberUser> {
* @author vinjor-M * @author vinjor-M
* @date 15:55 2025/3/26 * @date 15:55 2025/3/26
**/ **/
String wxLogin(String openid, String decryptResult,String unionId); String wxLogin(String openid, String decryptResult,String unionId,Long inviteId);
/** /**
* uniApp保存会员信息 * uniApp保存会员信息

View File

@ -1,19 +1,25 @@
package com.ruoyi.member.service.impl; package com.ruoyi.member.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.DlBaseEntity; import com.ruoyi.common.core.domain.DlBaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.member.domain.MemberOrder; import com.ruoyi.member.domain.MemberOrder;
import com.ruoyi.member.domain.MemberPoints;
import com.ruoyi.member.mapper.MemberOrderMapper; import com.ruoyi.member.mapper.MemberOrderMapper;
import com.ruoyi.member.service.IMemberCardService; import com.ruoyi.member.service.IMemberCardService;
import com.ruoyi.member.service.IMemberCouponService; import com.ruoyi.member.service.IMemberCouponService;
import com.ruoyi.member.service.IMemberOrderService; import com.ruoyi.member.service.IMemberOrderService;
import com.ruoyi.member.service.IMemberPointsService;
import com.ruoyi.member.vo.MemberOrderVO; import com.ruoyi.member.vo.MemberOrderVO;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -37,6 +43,12 @@ public class MemberOrderServiceImpl extends ServiceImpl<MemberOrderMapper, Membe
private IMemberCardService cardService; private IMemberCardService cardService;
@Resource @Resource
private IMemberCouponService couponService; private IMemberCouponService couponService;
@Autowired
private IMemberPointsService memberPointsService;
@Autowired
private ISysConfigService sysConfigService;
@Autowired
private ISysUserService userService;
/** /**
@ -75,11 +87,26 @@ public class MemberOrderServiceImpl extends ServiceImpl<MemberOrderMapper, Membe
} else { } else {
couponService.dealMemberCoupon(memberOrder); couponService.dealMemberCoupon(memberOrder);
} }
//如果当前用户存在邀请人则给邀请人回传
/*3、处理订单表数据*/ /*3、处理订单表数据*/
memberOrder.setPayTime(new Date()); memberOrder.setPayTime(new Date());
memberOrder.setIsPay(1); memberOrder.setIsPay(1);
memberOrder.setPayWay("02"); memberOrder.setPayWay("02");
updateById(memberOrder); updateById(memberOrder);
SysUser sysUser = userService.selectUserById(memberOrder.getUserId());
String tc = sysConfigService.selectConfigByKey("tc");
double v = Double.parseDouble(tc);
if (ObjectUtil.isNotEmpty(sysUser.getInviteId())&&v>0){
double points = memberOrder.getGoodsPrice().doubleValue()*v;
//如果审核通过
MemberPoints memberPoints =new MemberPoints();
memberPoints.setUserId(sysUser.getInviteId());
memberPoints.setPoints(points);
memberPoints.setType("1");
memberPoints.setTitle("邀请用户消费"+memberOrder.getGoodsPrice()+"元,得"+points*10+"积分");
memberPointsService.savePoints(memberPoints);
}
} }
} }

View File

@ -186,7 +186,7 @@ public class MemberUserServiceImpl extends ServiceImpl<MemberUserMapper, MemberU
**/ **/
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String wxLogin(String openid, String decryptResult,String unionid) { public String wxLogin(String openid, String decryptResult,String unionid,Long inviteId) {
//字符串转json //字符串转json
JSONObject jsonObject = JSONObject.parseObject(decryptResult); JSONObject jsonObject = JSONObject.parseObject(decryptResult);
//手机号 //手机号
@ -214,6 +214,7 @@ public class MemberUserServiceImpl extends ServiceImpl<MemberUserMapper, MemberU
user.setSex("2"); user.setSex("2");
user.setCreateTime(DateUtils.getNowDate()); user.setCreateTime(DateUtils.getNowDate());
user.setUnionId(unionid); user.setUnionId(unionid);
user.setInviteId(inviteId);
//新增 用户 //新增 用户
userMapper.insertUser(user); userMapper.insertUser(user);
//插入用户扩展信息表数据 //插入用户扩展信息表数据

View File

@ -101,7 +101,7 @@ public class SysLoginController
if (StringUtils.hasText(decryptResult)){ if (StringUtils.hasText(decryptResult)){
//如果解析成功,获取token //如果解析成功,获取token
String token = memberUserService.wxLogin(openid,decryptResult,jsonObject.getString("unionid")); String token = memberUserService.wxLogin(openid,decryptResult,jsonObject.getString("unionid"),wxLoginBody.getInviteId());
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put(Constants.TOKEN, token); ajax.put(Constants.TOKEN, token);
return ajax; return ajax;

View File

@ -28,7 +28,8 @@ public class SysUser extends BaseEntity
/** 部门ID */ /** 部门ID */
@Excel(name = "部门编号", type = Type.IMPORT) @Excel(name = "部门编号", type = Type.IMPORT)
private Long deptId; private Long deptId;
// 邀请人id
private Long inviteId;
/** 用户账号 */ /** 用户账号 */
@Excel(name = "登录名称") @Excel(name = "登录名称")
private String userName; private String userName;
@ -355,4 +356,12 @@ public class SysUser extends BaseEntity
public void setUnionId(String unionId) { public void setUnionId(String unionId) {
this.unionId = unionId; this.unionId = unionId;
} }
public Long getInviteId() {
return inviteId;
}
public void setInviteId(Long inviteId) {
this.inviteId = inviteId;
}
} }

View File

@ -12,6 +12,7 @@ public class WxLoginBody {
/** 加密数据 */ /** 加密数据 */
private String encryptedData; private String encryptedData;
private Long inviteId;
@Override @Override
public String toString() { public String toString() {

View File

@ -18,7 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="openId" column="open_id" /> <result property="openId" column="open_id" />
<result property="wxOpenId" column="wx_open_id" /> <result property="wxOpenId" column="wx_open_id" />
<result property="unionId" column="union_id" /> <result property="unionId" column="union_id" />
<result property="delFlag" column="del_flag" /> <result property="inviteId" column="invite_id" />
<result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" /> <result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" /> <result property="loginDate" column="login_date" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -50,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status,u.open_id,u.wx_open_id,u.union_id, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status,u.open_id,u.wx_open_id,u.union_id,u.invite_id,u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u from sys_user u
@ -60,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,u.open_id,u.wx_open_id,u.union_id, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,u.open_id,u.wx_open_id,u.union_id,u.invite_id,u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">
@ -89,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status,u.open_id,u.wx_open_id,u.union_id, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status,u.open_id,u.wx_open_id,u.union_id,u.invite_id,u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@ -106,7 +107,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status,u.open_id,u.wx_open_id,u.union_id, u.create_time select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status,u.open_id,u.wx_open_id,u.union_id,u.invite_id,u.create_time
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
@ -160,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="openId != null and openId != ''">open_id,</if> <if test="openId != null and openId != ''">open_id,</if>
<if test="wxOpenId != null and wxOpenId != ''">wx_open_id,</if> <if test="wxOpenId != null and wxOpenId != ''">wx_open_id,</if>
<if test="unionId != null and unionId != ''">union_id,</if> <if test="unionId != null and unionId != ''">union_id,</if>
<if test="inviteId != null and inviteId != ''">invite_id,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
create_time create_time
@ -177,6 +179,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="openId != null and openId != ''">#{openId},</if> <if test="openId != null and openId != ''">#{openId},</if>
<if test="wxOpenId != null and wxOpenId != ''">#{wxOpenId},</if> <if test="wxOpenId != null and wxOpenId != ''">#{wxOpenId},</if>
<if test="unionId != null and unionId != ''">#{unionId},</if> <if test="unionId != null and unionId != ''">#{unionId},</if>
<if test="inviteId != null and inviteId != ''">#{inviteId},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
sysdate() sysdate()
@ -197,7 +200,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="openId != null and openId != ''">open_id = #{openId},</if> <if test="openId != null and openId != ''">open_id = #{openId},</if>
<if test="wxOpenId != null and wxOpenId != ''">wx_open_id = #{wxOpenId},</if> <if test="wxOpenId != null and wxOpenId != ''">wx_open_id = #{wxOpenId},</if>
<if test="unionId != null and unionId != ''">union_id =#{unionId},</if> <if test="unionId != null and unionId != ''">union_id =#{unionId},</if>
<if test="inviteId != null and inviteId != ''">invite_id =#{inviteId},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if> <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
<if test="loginDate != null">login_date = #{loginDate},</if> <if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
@ -241,6 +244,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="unionId!=null and unionId!=''"> <if test="unionId!=null and unionId!=''">
and u.union_id = #{unionId} and u.union_id = #{unionId}
</if> </if>
<if test="inviteId!=null and inviteId!=''">
and u.invite_id = #{inviteId}
</if>
<if test="phone!=null and phone!=''"> <if test="phone!=null and phone!=''">
and u.user_name = #{phone} and u.user_name = #{phone}
</if> </if>