Browse Source

微信公众号相关接口开发,问题修改

dev
wangfukang 1 year ago
parent
commit
a2c9d903c6
  1. 2
      hiver-admin/src/main/resources/application.yml
  2. 16
      hiver-admin/test-output/test-report.html
  3. 7
      hiver-core/src/main/java/cc/hiver/core/serviceimpl/UserServiceImpl.java
  4. 22
      hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
  5. 3
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java
  6. 12
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java
  7. 2
      hiver-modules/hiver-mall/src/main/resources/mapper/CustomerMapper.xml
  8. 5
      hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml

2
hiver-admin/src/main/resources/application.yml

@ -381,6 +381,8 @@ ignored:
# 关注微信公众号回调
- /hiver/user/officialAccount
- /hiver/social/wechat/echo
- /hiver/user/getUserInfo
- /hiver/app/customer/updateUserId
# 临时增加

16
hiver-admin/test-output/test-report.html

@ -35,7 +35,7 @@
<a href="#"><span class="badge badge-primary">Hiver</span></a>
</li>
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">一月 07, 2025 16:21:35</span></a>
<a href="#"><span class="badge badge-primary">一月 09, 2025 17:32:09</span></a>
</li>
</ul>
</div>
@ -84,7 +84,7 @@
<div class="test-detail">
<span class="meta text-white badge badge-sm"></span>
<p class="name">passTest</p>
<p class="text-sm"><span>16:21:35 下午</span> / <span>0.016 secs</span></p>
<p class="text-sm"><span>17:32:10 下午</span> / <span>0.028 secs</span></p>
</div>
<div class="test-contents d-none">
<div class="detail-head">
@ -92,9 +92,9 @@
<div class="info">
<div class='float-right'><span class='badge badge-default'>#test-id=1</span></div>
<h5 class="test-status text-pass">passTest</h5>
<span class='badge badge-success'>01.07.2025 16:21:35</span>
<span class='badge badge-danger'>01.07.2025 16:21:35</span>
<span class='badge badge-default'>0.016 secs</span>
<span class='badge badge-success'>01.09.2025 17:32:10</span>
<span class='badge badge-danger'>01.09.2025 17:32:10</span>
<span class='badge badge-default'>0.028 secs</span>
</div>
<div class="m-t-10 m-l-5"></div>
</div>
@ -104,7 +104,7 @@
<tbody>
<tr class="event-row">
<td><span class="badge log pass-bg">Pass</span></td>
<td>16:21:35</td>
<td>17:32:10</td>
<td>
Test passed
</td>
@ -128,13 +128,13 @@
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Started</p>
<h3>一月 07, 2025 16:21:35</h3>
<h3>一月 09, 2025 17:32:09</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Ended</p>
<h3>一月 07, 2025 16:21:35</h3>
<h3>一月 09, 2025 17:32:10</h3>
</div></div>
</div>
<div class="col-md-3">

7
hiver-core/src/main/java/cc/hiver/core/serviceimpl/UserServiceImpl.java

@ -4,6 +4,7 @@ import cc.hiver.core.common.constant.CommonConstant;
import cc.hiver.core.common.constant.UserConstant;
import cc.hiver.core.common.utils.PageUtil;
import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.utils.StringUtils;
import cc.hiver.core.common.vo.PageVo;
import cc.hiver.core.common.vo.SearchVo;
import cc.hiver.core.dao.UserDao;
@ -280,6 +281,11 @@ public class UserServiceImpl implements UserService {
final Map<String, Object> resultMap = new HashMap<>();
if (wechatUser != null) {
wechatUser.setOfficialAccountOpenid(openid);
if (!wechatUser.getType().contains(UserConstant.USER_TYPE_CUSTOM)) {
// 不包含,赋予下游客户身份
final String newUserType = StringUtils.isEmpty(wechatUser.getType()) ? UserConstant.USER_TYPE_CUSTOM : wechatUser.getType() + ',' + UserConstant.USER_TYPE_CUSTOM;
wechatUser.setType(newUserType);
}
} else {
try {
// 新增用户信息
@ -287,6 +293,7 @@ public class UserServiceImpl implements UserService {
wechatUser.setUnionid(unionid);
wechatUser.setOfficialAccountOpenid(openid);
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL);
wechatUser.setType(UserConstant.USER_TYPE_CUSTOM);
wechatUser = save(wechatUser);
// 设置用户角色
final UserRole userRole = new UserRole();

22
hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java

@ -593,6 +593,7 @@ public class UserController {
final String sessionKey = jsonObject.get("session_key").getAsString();
final String openId = jsonObject.get("openid").getAsString();
final String unionid = jsonObject.get("unionid").getAsString();
log.info("微信登录的传参==openId==:{};unionid==:{}",openId,unionid);
// 判断是否绑定用户
User wechatUser = null;
final Map<String, Object> resultMap = new HashMap<>();
@ -600,12 +601,26 @@ public class UserController {
wechatUser = userService.findByUnionid(unionid);
}else{
wechatUser = userService.findById(wechatVo.getUserId());
if (wechatUser == null) {
// 如果根据userid没查到,再根据unionid查询一遍
wechatUser = userService.findByUnionid(unionid);
}
}
if (wechatUser == null) {
log.info("微信登录未根据userid和unionid查询到用户,准备新增用户userId:{};unionid:{}",wechatVo.getUserId(),unionid);
try {
// 新增用户信息
wechatUser = new User();
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL);
// 去掉特殊符号(只保留字母和数字)
String cleanedOpenid = openId.replaceAll("[^a-zA-Z0-9]", "");
// 截取前 10 位,作为username
String username = cleanedOpenid.length() > 10 ? cleanedOpenid.substring(0, 10) : cleanedOpenid;
wechatUser.setUsername(username);
final String encryptPass = new BCryptPasswordEncoder().encode("123456");
wechatUser.setPassword(encryptPass);
wechatUser.setType(UserConstant.USER_TYPE_CUSTOM);
wechatUser = userService.save(wechatUser);
// 设置用户角色
final UserRole userRole = new UserRole();
@ -630,6 +645,12 @@ public class UserController {
} else {
// 更新客户信息,绑定登录用户
customerService.updateUserId(wechatVo.getCustomId(), wechatUser.getId());
final String type = wechatUser.getType();
if (!type.contains(UserConstant.USER_TYPE_CUSTOM)) {
// 不包含,赋予下游客户身份
final String newUserType = StringUtils.isEmpty(type) ? UserConstant.USER_TYPE_CUSTOM : type + ',' + UserConstant.USER_TYPE_CUSTOM;
wechatUser.setType(newUserType);
}
}
wechatUser.setUnionid(unionid);
wechatUser.setWechatName(wechatVo.getWechatName());
@ -688,6 +709,7 @@ public class UserController {
wechatUser.setUnionid(unionid);
wechatUser.setOfficialAccountOpenid(openid);
wechatUser.setStatus(UserConstant.USER_STATUS_NORMAL);
wechatUser.setType(UserConstant.USER_TYPE_CUSTOM);
wechatUser = userService.save(wechatUser);
// 设置用户角色
final UserRole userRole = new UserRole();

3
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/ProductPageQuery.java

@ -49,6 +49,9 @@ public class ProductPageQuery extends HiverBasePageQuery {
@ApiModelProperty("货号")
private String productSn;
@ApiModelProperty("供应商id")
private String supplierId;
@ApiModelProperty("供应商名称")
private String supplierName;

12
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/SalesAndDetailsServiceImpl.java

@ -455,9 +455,8 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService {
String customerId = "";
if (StringUtils.isNotEmpty(saleQueryDTO.getMobile())) {
// 20240906如果前台传了客户id了,不要新增客户了就
byMobile = userService.findByMobile(saleQueryDTO.getMobile());
if(StringUtils.isEmpty(saleQueryDTO.getUserId())){
// byMobile = userService.findByMobile(saleQueryDTO.getMobile());
byMobile = userService.findByMobile(saleQueryDTO.getMobile());
if (byMobile == null) {
//默认密码
final String encryptPass = new BCryptPasswordEncoder().encode("123456");
@ -544,14 +543,7 @@ public class SalesAndDetailsServiceImpl implements SalesAndDetailsService {
dealingsRecordService.save(dealingsRecord);
}else{
// 客户id拿前台传的
String byMobileMobile = byMobile.getMobile();
if(byMobileMobile.equals(saleQueryDTO.getUserId())){
customerId = saleQueryDTO.getUserId();
}else{
// 根据手机号查询的用户id和前台传的不一样,则根据 userPhone 查customer表(所有数据)更新 userid 为传过来的这个
customerService.updateUserIdByUserPhone(saleQueryDTO.getMobile(),saleQueryDTO.getUserId());
}
customerId = saleQueryDTO.getUserId();
}
} else {
log.error("下游客户未填写手机号!");

2
hiver-modules/hiver-mall/src/main/resources/mapper/CustomerMapper.xml

@ -526,7 +526,7 @@
and a.shop_id = #{shopId,jdbcType=VARCHAR}
</if>
<if test=" userPhone != null and userPhone != ''">
and a.user_id = #{userPhone,jdbcType=VARCHAR}
and (a.phone = #{userPhone,jdbcType=VARCHAR} or a.user_id = #{userPhone,jdbcType=VARCHAR})
</if>
</select>

5
hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml

@ -631,6 +631,11 @@
AND t.category_id =#{queryParams.categoryId}
</if>
<!--供应商id-->
<if test='queryParams.supplierId!=null and queryParams.supplierId.trim() neq ""'>
AND t.supplier_id =#{queryParams.supplierId}
</if>
<!--商品名称-->
<if test='queryParams.productName!=null and queryParams.productName.trim() neq ""'>
AND t.product_name like concat('%',#{queryParams.productName},'%')

Loading…
Cancel
Save