jiangqs
2023-05-17 7b005ca364613c9738dbc66f3e4fe3fb7bec043d
demo补完
41个文件已修改
2个文件已添加
656 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppUserSuggestDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/resources/bootstrap.yml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberAddDto.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberEditDto.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerOrderPageDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ShoppingCartMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ShoppingCartServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ShoppingCartMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerAgencyPageDto.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysUserServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysUserService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteUserService.java
@@ -68,8 +68,8 @@
     * @date 2023/4/30 15:36
     * @version 1.0
     */
    @PostMapping("/user/getSysUserBYmobile")
    public R<SysUser> getSysUserBYmobile(@RequestBody String mobile);
    @PostMapping("/user/getSysUserByMobile")
    public R<SysUser> getSysUserByMobile(@RequestBody String mobile);
    /**
     * @description: 更新用户手机
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -12,6 +12,8 @@
    String USER_NOT_LOGIN = "用户没有登录或登录已失效";
    String MOBILE_USER_DOUBLE = "手机号已创建用户,请直接登录";
    String AUTHORIZE_MISS = "授权信息不完整";
    String AUTHORIZE_FAILED = "授权信息解密失败";
@@ -56,6 +58,8 @@
    String MOBILE_FAILED = "验证手机非绑定手机";
    String MOBILE_DOUBLE = "手机号已被占用";
    String AGREEMENT_FAILED = "获取协议失败";
    String GOODS_DOWN = "商品已下架";
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppUserSuggestDto.java
@@ -15,4 +15,7 @@
    @ApiModelProperty(value = "建议内容")
    private String suggestContent;
    @ApiModelProperty(value = "建议类型1平台2商户")
    private Integer suggestType;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
@@ -50,7 +50,7 @@
            }
            @Override
            public R<SysUser> getSysUserBYmobile(String mobile) {
            public R<SysUser> getSysUserByMobile(String mobile) {
                return null;
            }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java
@@ -24,6 +24,11 @@
    private Long userid;
    /**
     * 商户id
     */
    private Long shopid;
    /**
     * 用户名
     */
    private String username;
@@ -147,4 +152,12 @@
    {
        this.sysUser = sysUser;
    }
    public Long getShopid() {
        return shopid;
    }
    public void setShopid(Long shopid) {
        this.shopid = shopid;
    }
}
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -4,6 +4,7 @@
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -27,6 +28,8 @@
 * @author jqs
 */
@RestController
@Api(value = "系统和小程序登录", tags = "系统和小程序登录")
public class TokenController
{
    @Autowired
@@ -55,15 +58,7 @@
        return R.ok(tokenService.createMiniToken(appMiniLoginVo));
    }
    @ApiOperation("商户端登录")
    @PostMapping("shopLogin")
    public R<?> shopLogin(@RequestBody AppMiniLoginDto appMiniLoginDto)
    {
        // 小程序用户登录
        AppMiniLoginVo appMiniLoginVo = sysLoginService.miniLogin(appMiniLoginDto);
        // 获取登录token
        return R.ok(tokenService.createMiniToken(appMiniLoginVo));
    }
    @DeleteMapping("logout")
    public R<?> logout(HttpServletRequest request)
ruoyi-auth/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
@@ -13,6 +13,11 @@
    public static final String DETAILS_USER_ID = "user_id";
    /**
     * 商户ID字段
     */
    public static final String DETAILS_SHOP_ID = "shop_id";
    /**
     * 用户名字段
     */
    public static final String DETAILS_USERNAME = "username";
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -100,7 +100,7 @@
    }
    /**
     * 创建小程序令牌
     * 创建企业微信令牌
     */
    public OauthUserVo createQwH5Token(QwH5LoginVo qwH5LoginVo)
    {
ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
@@ -34,6 +36,7 @@
        ds1:
          nacos:
            server-addr: 47.109.78.184:5000
            #server-addr: 127.0.0.1:8848
            dataId: sentinel-ruoyi-gateway
            groupId: DEFAULT_GROUP
            data-type: json
ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
@@ -19,9 +19,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java
@@ -3,9 +3,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.MerCashMemberPageDto;
import com.ruoyi.member.domain.dto.MerMemberPageDto;
import com.ruoyi.member.domain.dto.MerMemberTagEditDto;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
@@ -98,5 +96,21 @@
        return R.ok();
    }
    @RequestMapping(value = "/addMerMember", method = RequestMethod.POST)
    @ApiOperation(value = "新增会员")
    public R addMerMember(@RequestBody MerMemberAddDto merMemberAddDto) {
        Long userId = SecurityUtils.getUserId();
        merMemberAddDto.setUserId(userId);
        memberService.addMerMember(merMemberAddDto);
        return R.ok();
    }
    @RequestMapping(value = "/editMerMember", method = RequestMethod.POST)
    @ApiOperation(value = "编辑会员")
    public R editMerMember(@RequestBody MerMemberEditDto merMemberAddDto) {
        Long userId = SecurityUtils.getUserId();
        merMemberAddDto.setUserId(userId);
        memberService.editMerMember(merMemberAddDto);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -60,19 +60,22 @@
    }
    /**
    * @description: TODO
    * @description: 获取用户优惠券
    * @author jqs34
    * @date 2023/5/3 1:45
    * @version 1.0
    */
    @PostMapping("/listVoUserCouponByUserId")
    public R<List<AppUserCouponVo>> listVoUserCouponByUserId(@RequestBody Long userId){
        List<AppUserCouponVo> appUserCouponVoList = userCouponService.listVoUserCouponByUserId(userId);
        return R.ok(appUserCouponVoList);
    }
    /**
     * 更新会员绑定商户
     * @param appMemberBindingDto
     * @return
     */
    @PostMapping("/updateMemberBinding")
    public R updateMemberBinding(@RequestBody AppMemberBindingDto appMemberBindingDto)
    {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberAddDto.java
New file
@@ -0,0 +1,45 @@
package com.ruoyi.member.domain.dto;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * @author jqs34
 * @version 1.0
 * @classname MerMeberInfoVo
 * @description: TODO
 * @date 2023 2023/5/4 22:48
 */
@Data
public class MerMemberAddDto extends MerBaseDto {
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "手机号码")
    private String phonenumber;
    @ApiModelProperty(value = "性别0=男,1=女,2=未知")
    private Integer gender;
    @ApiModelProperty(value = "推荐人")
    private String referrer;
    @ApiModelProperty(value = "顾客来源")
    private String customerSource;
    @ApiModelProperty(value = "等级")
    private String level;
    @ApiModelProperty(value = "生日")
    private String birthday;
    @ApiModelProperty(value = "调理问题")
    private List<String> memberNurse;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberEditDto.java
New file
@@ -0,0 +1,49 @@
package com.ruoyi.member.domain.dto;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * @author jqs34
 * @version 1.0
 * @classname MerMeberInfoVo
 * @description: TODO
 * @date 2023 2023/5/4 22:48
 */
@Data
public class MerMemberEditDto extends MerBaseDto {
    @ApiModelProperty(value = "修改用户id")
    private Long editUserId;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @ApiModelProperty(value = "手机号码")
    private String phonenumber;
    @ApiModelProperty(value = "性别0=男,1=女,2=未知")
    private Integer gender;
    @ApiModelProperty(value = "推荐人")
    private String referrer;
    @ApiModelProperty(value = "顾客来源")
    private String customerSource;
    @ApiModelProperty(value = "等级")
    private String level;
    @ApiModelProperty(value = "生日")
    private String birthday;
    @ApiModelProperty(value = "调理问题")
    private List<String> memberNurse;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberPageDto.java
@@ -4,6 +4,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author jqs34
 * @ClassName MerMemberPageDto
@@ -17,4 +19,40 @@
    @ApiModelProperty(value = "关键词")
    private String keyword;
    @ApiModelProperty(value = "成为会员开始时间")
    private String startMemberDate;
    @ApiModelProperty(value = "成为会员结束时间")
    private String endMemberDate;
    @ApiModelProperty(value = "会员类型1.周期2.服务3.体验")
    private Integer memberType;
    @ApiModelProperty(value = "会员来源1.小程序2.推荐3.店铺创建")
    private Integer memberFrom;
    @ApiModelProperty(value = "跟进开始时间")
    private String taskStartDate;
    @ApiModelProperty(value = "跟进结束时间")
    private String taskEndDate;
    @ApiModelProperty(value = "用户标签")
    private String memberTag;
    @ApiModelProperty(value = "剩余次数")
    private Integer surpNum;
    @ApiModelProperty(value = "会员等级")
    private String memberLevel;
    @ApiModelProperty(value = "会员调理问题")
    private String memberNurse;
    @ApiModelProperty(value = "会员性别0男1女")
    private Integer memberGender;
    @ApiModelProperty(value = "会员活跃度1.活跃2.中度活跃3.轻度活跃")
    private Integer memberActivity;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -2,8 +2,9 @@
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.R;
@@ -11,10 +12,7 @@
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.AppUserAuthorizeDto;
import com.ruoyi.member.domain.dto.MerCashMemberPageDto;
import com.ruoyi.member.domain.dto.MerMemberPageDto;
import com.ruoyi.member.domain.dto.MerMemberTagEditDto;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.pojo.member.MemberNurse;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.member.MemberMapper;
@@ -34,17 +32,12 @@
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.AppOrderTotalVo;
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import lombok.extern.log4j.Log4j;
import lombok.extern.log4j.Log4j2;
import lombok.val;
import com.ruoyi.common.core.utils.StringUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.util.EntityUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@@ -191,66 +184,65 @@
    public AppUserAuthorizeVo getAppUserAuthorize(AppUserAuthorizeDto appUserAuthorizeDto){
        Member member = this.getById(appUserAuthorizeDto.getUserId());
        AppUserAuthorizeVo appUserAuthorizeVo = new AppUserAuthorizeVo();
        //获取code接口在redis里存放的sessionkey用于解密
        String sessionkey = stringRedisTemplate.opsForValue().get(SecurityConstant.SESSION_KEY+ member.getMiniOpenid());
        if(StringUtils.isBlank(sessionkey)){
            throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN);
        }
        String mobile = null;
        try {
            //解密微信加密用户信息和手机号
            /*WxMaPhoneNumberInfo wxPhoneInfo;
            if(StringUtils.isNotBlank(appUserAuthorizeDto.getPhoneEncryptedData())&&StringUtils.isNotBlank(appUserAuthorizeDto.getPhoneIv())){
                wxPhoneInfo = wxMaService.getUserService().getPhoneNoInfo(sessionkey, appUserAuthorizeDto.getPhoneEncryptedData(), appUserAuthorizeDto.getPhoneIv());
            }else{
                throw new ServiceException(AppErrorConstant.AUTHORIZE_MISS);
        if(StringUtils.isBlank(member.getMobile())){
            //获取code接口在redis里存放的sessionkey用于解密
            String sessionkey = stringRedisTemplate.opsForValue().get(SecurityConstant.SESSION_KEY+ member.getMiniOpenid());
            if(StringUtils.isBlank(sessionkey)){
                throw new ServiceException(AppErrorConstant.USER_NOT_LOGIN);
            }
            if(StringUtils.isBlank(wxPhoneInfo.getPhoneNumber())){
                throw new ServiceException(AppErrorConstant.AUTHORIZE_FAILED);
            }
            mobile = wxPhoneInfo.getPhoneNumber();*/
            String accessToken = stringRedisTemplate.opsForValue().get("wx_access_token");
            if (StringUtils.isBlank(accessToken)) {
                String responseAccessToken = getAccessTokenByWX();
                JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken);
                accessToken = jsonAccessToken.getString("access_token");
                String errmsg = jsonAccessToken.getString("errmsg");
                Long expiresIn = jsonAccessToken.getLong("expires_in");
            try {
                String accessToken = stringRedisTemplate.opsForValue().get("wx_access_token");
                if (StringUtils.isBlank(accessToken)) {
                    throw new ServiceException(errmsg);
                } else {
                    expiresIn = expiresIn - 100;
                    stringRedisTemplate.opsForValue().set("wx_access_token", accessToken, expiresIn.intValue(), TimeUnit.SECONDS);
                    String responseAccessToken = getAccessTokenByWX();
                    JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken);
                    accessToken = jsonAccessToken.getString("access_token");
                    String errmsg = jsonAccessToken.getString("errmsg");
                    Long expiresIn = jsonAccessToken.getLong("expires_in");
                    if (StringUtils.isBlank(accessToken)) {
                        throw new ServiceException(errmsg);
                    } else {
                        expiresIn = expiresIn - 100;
                        stringRedisTemplate.opsForValue().set("wx_access_token", accessToken, expiresIn.intValue(), TimeUnit.SECONDS);
                    }
                }
                String responseUserPhoneNumber = getMobileByWX(accessToken, appUserAuthorizeDto.getMobileCode());
                JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
                String errcode = jsonUserPhoneNumber.getString("errcode");
                String errmsg = jsonUserPhoneNumber.getString("errmsg");
                if (!errcode.equals("0")) {
                    throw new ServiceException(errmsg);
                }
                String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
                JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo);
                mobile = jsonUserPhoneInfo.getString("purePhoneNumber");
            } catch (Exception e) {
                e.printStackTrace();
            }
            String responseUserPhoneNumber = getMobileByWX(accessToken, appUserAuthorizeDto.getMobileCode());
            JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
            String errcode = jsonUserPhoneNumber.getString("errcode");
            String errmsg = jsonUserPhoneNumber.getString("errmsg");
            if (!errcode.equals("0")) {
                throw new ServiceException(errmsg);
            Member oldMember = this.getByMobile(mobile);
            if(oldMember!=null){
                member.setNickName(oldMember.getNickName());
                member.setGender(oldMember.getGender());
                member.setReferrer(oldMember.getReferrer());
                member.setBirthday(oldMember.getBirthday());
                member.setBindingFlag(1);
                member.setRelationShopId(oldMember.getRelationShopId());
                oldMember.setDelFlag(1);
                oldMember.setMiniOpenid(oldMember.getMiniOpenid()+"已删除");
                this.saveOrUpdate(oldMember);
            }else{
                //更新用户手机信息
                SysUser sysUser = new SysUser();
                sysUser.setUserId(appUserAuthorizeDto.getUserId());
                sysUser.setPhonenumber(mobile);
                sysUserService.updateUserMobile(sysUser);
                member.setNickName(sysUser.getNickName());
            }
            String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
            JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo);
            mobile = jsonUserPhoneInfo.getString("purePhoneNumber");
        } catch (Exception e) {
            e.printStackTrace();
        }
        SysUser sysUser1 = sysUserService.getSysUserBYmobile(mobile).getData();
        if(sysUser1!=null){
            member.setUserId(sysUser1.getUserId());
            member.setNickName(sysUser1.getNickName());
            member.setMobile(mobile);
            this.saveOrUpdate(member);
        }else{
            //更新用户手机信息
            SysUser sysUser = new SysUser();
            sysUser.setUserId(appUserAuthorizeDto.getUserId());
            sysUser.setPhonenumber(mobile);
            sysUserService.updateUserMobile(sysUser);
            member.setNickName(sysUser.getNickName());
            mobile = member.getMobile();
        }
        member.setMobile(mobile);
        this.saveOrUpdate(member);
        appUserAuthorizeVo.setMobile(mobile);
        appUserAuthorizeVo.setNickName(member.getNickName());
        appUserAuthorizeVo.setOpenid(member.getMiniOpenid());
@@ -358,7 +350,7 @@
    /**
     * @description: TODO
     * @description: 商户获取会员信息
     * @author jqs34
     * @date 2023/5/4 22:50
     * @version 1.0
@@ -391,7 +383,7 @@
    }
    /**
     *
     * 更新会员绑定商户
     * @param appMemberBindingDto
     */
    @Override
@@ -403,7 +395,7 @@
    }
    /**
     *
     * 获取会员基础档案
     * @param userId
     * @return
     */
@@ -422,7 +414,7 @@
    }
    /**
     *
     * 获取会员标签
     * @param userId
     * @return
     */
@@ -455,7 +447,7 @@
    }
    /**
     *
     * 编辑会员标签
     * @param merMemberTagEditDto
     */
    @Override
@@ -464,4 +456,94 @@
        member.setUserTags(merMemberTagEditDto.getUserTags());
        this.saveOrUpdate(member);
    }
    /**
     * 添加会员
     * @param merMemberAddDto
     */
    @Override
    public void addMerMember(MerMemberAddDto merMemberAddDto){
        String phonenumber = merMemberAddDto.getPhonenumber();
        Member oldMember = this.getByMobile(phonenumber);
        if(oldMember!=null){
            throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE);
        }
        SysUser sysUser = sysUserService.getSysUserByMobile(phonenumber).getData();
        if(sysUser==null){
            sysUser = new SysUser();
            sysUser.setUserName(phonenumber);
            sysUser.setUserType("03");
            sysUser.setNickName(merMemberAddDto.getNickName());
            sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
            String password = "hongruitang";
            sysUser.setPassword(SecurityUtils.encryptPassword(password));
            log.debug("sysUser"+sysUser.toString());
            sysUser = sysUserService.registerUser(sysUser).getData();
        }
        log.info("sysUser1-----------------"+sysUser.toString());
        String memberId = IdUtils.simpleUUID();
        Member member = new Member();
        member.setUserId(sysUser.getUserId());
        member.setDelFlag(0);
        member.setNickName(merMemberAddDto.getNickName());
        member.setGender(merMemberAddDto.getGender());
        member.setMobile(phonenumber);
        member.setReferrer(merMemberAddDto.getReferrer());
        member.setBirthday(merMemberAddDto.getBirthday());
        member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
        member.setMemberId(memberId);
        member.setRelationShopId(1L);
        member.setWxUnionid(null);
        member.setMiniOpenid(null);
        member.setBindingFlag(1);
        member.setRelationShopId(merMemberAddDto.getShopId());
        member.setCreateTime(new Date());
        log.info("member-----------------"+member.toString());
        this.saveOrUpdate(member);
    }
    /**
     * 编辑会员
     * @param merMemberEditDto
     */
    @Override
    public void editMerMember(MerMemberEditDto merMemberEditDto){
        Member member = this.getByUserId(merMemberEditDto.getEditUserId());
        if(!member.getMobile().equals(merMemberEditDto.getPhonenumber())){
            Member memberOld = getByMobile(merMemberEditDto.getPhonenumber());
            if(memberOld!=null){
                throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE);
            }
        }
        member.setRealName(merMemberEditDto.getNickName());
        member.setMobile(merMemberEditDto.getPhonenumber());
        member.setGender(merMemberEditDto.getGender());
        member.setReferrer(merMemberEditDto.getReferrer());
        member.setCustomerSource(merMemberEditDto.getCustomerSource());
        member.setLevel(merMemberEditDto.getLevel());
        member.setBirthday(merMemberEditDto.getBirthday());
        member.setUpdateUserId(merMemberEditDto.getUserId());
        member.setUpdateTime(new Date());
        log.info("member-----------------"+member.toString());
        this.saveOrUpdate(member);
        SysUser sysUser = new SysUser();
        sysUser.setUserId(merMemberEditDto.getEditUserId());
        sysUser.setPhonenumber(merMemberEditDto.getPhonenumber());
        sysUserService.updateUserMobile(sysUser);
    }
    /**
     *
     * @param mobile
     * @return
     */
    @Override
    public Member getByMobile(String mobile){
        LambdaQueryWrapper<Member> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.eq(Member::getDelFlag, 0).eq(Member::getMobile, mobile);
        Member member = this.getOne(queryWrapper);
        return member;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java
@@ -51,6 +51,7 @@
        memberSuggest.setCreateUserId(appUserSuggestDto.getUserId());
        memberSuggest.setSuggestContent(appUserSuggestDto.getSuggestContent());
        memberSuggest.setCreateTime(new Date());
        memberSuggest.setSuggestType(appUserSuggestDto.getSuggestType());
        this.saveOrUpdate(memberSuggest);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -1,9 +1,7 @@
package com.ruoyi.member.service.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.member.domain.dto.MerCashMemberPageDto;
import com.ruoyi.member.domain.dto.MerMemberPageDto;
import com.ruoyi.member.domain.dto.MerMemberTagEditDto;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
@@ -11,7 +9,6 @@
import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo;
import com.ruoyi.system.api.model.AppMiniLoginDto;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.member.domain.dto.AppUserAuthorizeDto;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -27,7 +24,7 @@
public interface MemberService extends IService<Member> {
    /**
    * @description: TODO
    * @description: 通过userId获取会员
    * @author jqs34
    * @date 2023/4/30 12:41
    * @version 1.0
@@ -69,7 +66,7 @@
    List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto);
    /**
    * @description: TODO
    * @description: 商户获取会员信息
    * @author jqs34
    * @date 2023/5/4 23:55
    * @version 1.0
@@ -77,7 +74,7 @@
    MerMemberInfoVo getMerMemberInfo(Long userId);
    /**
     * 分页获取收银用户列表
     * 分页获取收银会员列表
     * @param page
     * @param merCashMemberPageDto
     * @return
@@ -85,28 +82,47 @@
    List<MerCashMemberPageVo> pageMerCashMember(Page page, MerCashMemberPageDto merCashMemberPageDto);
    /**
     *
     * 更新会员绑定商户
     * @param appMemberBindingDto
     */
    void updateMemberBinding(AppMemberBindingDto appMemberBindingDto);
    /**
     *
     * 获取会员基础档案
     * @param userId
     * @return
     */
    MerMemberBasicFileVo getMerMemberBasicFile(Long userId);
    /**
     *
     * 获取会员标签
     * @param userId
     * @return
     */
    List<MerMemberTagVo> getMerMemberTags(Long userId);
    /**
     *
     * 编辑会员标签
     * @param merMemberTagEditDto
     */
    void editMerMemberTags(MerMemberTagEditDto merMemberTagEditDto);
    /**
     * 添加会员
     * @param merMemberAddDto
     */
    void addMerMember(MerMemberAddDto merMemberAddDto);
    /**
     * 编辑会员
     * @param merMemberEditDto
     */
    void editMerMember(MerMemberEditDto merMemberEditDto);
    /**
     *
     * @param mobile
     * @return
     */
    Member getByMobile(String mobile);
}
ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -137,7 +137,7 @@
    <select id="getOneByMiniOpenid" resultType="com.ruoyi.system.api.domain.poji.member.Member">
        SELECT * FROM t_member WHERE mini_openid = #{miniOpenid}
        SELECT * FROM t_member WHERE del_flag = 0 AND mini_openid = #{miniOpenid}
    </select>
    <select id="pageMerMember" resultType="com.ruoyi.member.domain.vo.MerMemberPageVo">
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml
@@ -8,7 +8,8 @@
        replay_content replayContent,
        create_time createTime
        FROM t_member_suggest
        WHERE del_flag = 0 AND create_user_id = #{param.userId} AND suggest_type = #{param.suggestType}
        WHERE del_flag = 0 AND create_user_id = #{param.userId}
        AND suggest_type = #{param.suggestType}
    </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerOrderPageDto.java
@@ -25,4 +25,12 @@
    @ApiModelProperty(value = "1.全部2.待核销3.已核销")
    private Integer type;
    @ApiModelProperty(value = "订单开始时间")
    private String startOrderDate;
    @ApiModelProperty(value = "订单结束时间")
    private String endOrderDate;
    @ApiModelProperty(value = "订单来源1.店铺商品2.平台秒杀活动3.线下创建")
    private Integer orderFrom;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/ShoppingCartMapper.java
@@ -17,6 +17,8 @@
 */
public interface ShoppingCartMapper extends BaseMapper<ShoppingCart> {
    void deleteShoppingCartById(@Param("id") Long id);
    /**
     * 批量删除
     * @param ids
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -426,6 +426,11 @@
        appUserOrderGetVo.setPayMoney(order.getPayMoney());
        appUserOrderGetVo.setOrderRemark(order.getOrderRemark());
        appUserOrderGetVo.setShopId(order.getShopId());
        appUserOrderGetVo.setCreateTime(order.getCreateTime());
        appUserOrderGetVo.setPayTime(order.getCreateTime());
        appUserOrderGetVo.setUseTime(order.getUseTime());
        appUserOrderGetVo.setCancelTime(order.getCancelTime());
        appUserOrderGetVo.setOrderRemark(order.getOrderRemark());
        Shop shop = remoteShopService.getShop(order.getShopId()).getData();
        appUserOrderGetVo.setShopName(shop.getShopName());
        appUserOrderGetVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
@@ -618,17 +623,18 @@
        if(userId==null){
            String name = merNewOrderDto.getName();
            String mobile = merNewOrderDto.getMobile();
            SysUser sysUser = remoteUserService.getSysUserBYmobile(mobile).getData();
            SysUser sysUser = remoteUserService.getSysUserByMobile(mobile).getData();
            if(sysUser==null){
                //创建新用户
                String memberId = IdUtils.simpleUUID();
                sysUser = new SysUser();
                sysUser.setUserName(name);
                sysUser.setUserName(mobile);
                sysUser.setUserType("03");
                sysUser.setNickName(name);
                sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
                String password = "hongruitang";
                sysUser.setPassword(SecurityUtils.encryptPassword(password));
                log.debug("sysUser"+sysUser.toString());
                sysUser = remoteUserService.registerUser(sysUser).getData();
                userId = sysUser.getUserId();
            }else{
@@ -789,7 +795,7 @@
            consumerGoodsService.save(consumerGoods);
        }
        Member member = remoteMemberService.getMember(userId).getData();
        if(member.getBindingFlag()!=1){
        if(member!=null&&member.getBindingFlag()!=1){
            //绑定商户
            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
            appMemberBindingDto.setShopId(merNewOrderDto.getShopId());
@@ -816,10 +822,28 @@
            for(MerOrderPageVo merOrderPageVo : merOrderPageVoList){
                userId = merOrderPageVo.getUserId();
                member = remoteMemberService.getMember(userId).getData();
                merOrderPageVo.setUserName(member.getNickName());
                merOrderPageVo.setUserMobile(member.getMobile());
                if(member!=null){
                    if(StringUtils.isNotBlank(member.getNickName())){
                        merOrderPageVo.setUserName(member.getNickName());
                    }
                    merOrderPageVo.setUserMobile(member.getMobile());
                }else{
                    SysUser sysUser = remoteUserService.getSysUser(userId).getData();
                    if(StringUtils.isNotBlank(sysUser.getNickName())){
                        merOrderPageVo.setUserName(sysUser.getNickName());
                    }
                    merOrderPageVo.setUserMobile(sysUser.getPhonenumber());
                }
                orderFrom = merOrderPageVo.getOrderFrom();
                orderFromDesc = "商城订单";
                if(orderFrom!=null){
                    if(orderFrom == 1){
                        orderFromDesc = "商城订单";
                    }else{
                        orderFromDesc = "线下创建";
                    }
                }else{
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
            }
        }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ShoppingCartServiceImpl.java
@@ -97,8 +97,11 @@
    @Override
    public void deleteShoppingCart(AppBaseBathDto appBaseBathDto){
        String[] ids = appBaseBathDto.getIds().split(",");
        List<String> list = Arrays.asList(ids);
        shoppingCartMapper.deleteShoppingCartByIds(list);
        for(String str : ids){
            shoppingCartMapper.deleteShoppingCartById(Long.valueOf(str));
        }
        /*List<String> list = Arrays.asList(ids);
        shoppingCartMapper.deleteShoppingCartByIds(list);*/
    }
    /**
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java
@@ -2,13 +2,16 @@
import com.ruoyi.common.redis.service.RedisService;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.poi.ss.usermodel.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import java.security.SecureRandom;
import java.util.Date;
import java.util.Random;
import java.util.concurrent.TimeUnit;
/**
 * @author jqs34
@@ -18,6 +21,16 @@
 * @version: 1.0
 */
public class CodeFactoryUtil {
    //静态住入到自己的类中
    private static RedisService redisService;
    //将静态属性以入参(形参)的方式传入一个方法中,然后将此方法通过 @Autowired 注入到Spring容器中
    @Autowired
    public  void setService(RedisService redisService) {
        CodeFactoryUtil.redisService = redisService;
    }
    /**
     * APP用户编码
@@ -69,11 +82,38 @@
    public static String getShopOrderNo() {
        String orderNo;
        String timeTemp = DateFormatUtils.format(new Date(), "yyyyMMdd");
        String suffixNumber = "0001";
        orderNo = ORDER_PREFIX + timeTemp + suffixNumber;
        String prefix = ORDER_PREFIX + timeTemp;
        String suffixNumber = getSuffixNumber(prefix);
        orderNo = prefix + suffixNumber;
        return orderNo;
    }
    private static String getSuffixNumber(String prefix){
        Integer suffixNumberInt;
        String suffixNumber = "0001";
        if(redisService.hasKey(prefix)){
            suffixNumberInt = redisService.getCacheObject(prefix);
            suffixNumber = toFillZeroSuffixNumber(suffixNumberInt);
            suffixNumberInt = suffixNumberInt + 1;
            redisService.setCacheObject(prefix, suffixNumberInt, 24L, TimeUnit.HOURS);
        }else{
            redisService.setCacheObject(prefix, 1, 24L, TimeUnit.HOURS);
        }
        return suffixNumber;
    }
    private static String toFillZeroSuffixNumber(Integer suffixNumberInt){
        String suffixNumberStr = suffixNumberInt.toString();
        int length = suffixNumberStr.length();
        int fillLength = 4 - length;
        StringBuilder idsbs = new StringBuilder();
        for (int i = 0; i < fillLength; i++) {
            idsbs.append("0");
        }
        return idsbs.append(suffixNumberStr).toString();
    }
    /**
     * 0补位
     *
ruoyi-modules/ruoyi-order/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -222,7 +222,7 @@
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tg.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
        ORDER BY toc.create_time DESC
    </select>
@@ -277,7 +277,7 @@
            AND toc.order_status = 3
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tg.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
        ORDER BY toc.create_time DESC
    </select>
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ShoppingCartMapper.xml
@@ -72,7 +72,7 @@
        update t_shopping_cart set del_flag = 1 where id = #{id}
    </delete>
    <delete id="deleteShoppingCartByIds" parameterType="String">
    <delete id="deleteShoppingCartByIds">
        update t_shopping_cart set del_flag = 1 where id in
        <foreach item="id" collection="ids" open="(" separator="," close=")">
            #{id}
@@ -100,7 +100,7 @@
        INNER JOIN t_goods tg ON tsc.goods_id = tg.goods_id
        LEFT JOIN t_goods_file tgf ON tg.goods_id = tgf.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1
        LEFT JOIN t_shop_goods tsg ON tg.goods_id = tsg.goods_id AND tsg.shop_id = #{shopId}
        WHERE tg.del_flag = 0 AND tsc.shop_id = #{shopId} AND tsc.user_id = #{userId} AND tg.del_flag = 0 AND tg.goods_status = 1 AND tg.recommend_flag = 1
        WHERE tsc.del_flag = 0 AND tg.del_flag = 0 AND tsc.shop_id = #{shopId} AND tsc.user_id = #{userId} AND tg.del_flag = 0 AND tg.goods_status = 1 AND tg.recommend_flag = 1
        ORDER BY tg.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MerAgencyPageDto.java
@@ -20,5 +20,15 @@
    @ApiModelProperty(value = "搜索关键词")
    private String keyword ;
    @ApiModelProperty(value = "商户进度1.准店铺2.开业中3.停业中")
    private Integer shopSchedule ;
    @ApiModelProperty(value = "合作开始时间")
    private String startCooperDate;
    @ApiModelProperty(value = "合作结束时间")
    private String endCooperDate;
    @ApiModelProperty(value = "商户状态1.正常0.已冻结2.已到期")
    private Integer shopStatus ;
}
ruoyi-modules/ruoyi-shop/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java
@@ -24,7 +24,11 @@
    @Resource
    private SysTagService sysTagService;
    /**
     * 获取系统标签
     * @param sysTagId
     * @return
     */
    @PostMapping("/getSysTag")
    public R<SysTag> getSysTag(@RequestBody Long sysTagId)
    {
@@ -32,6 +36,11 @@
        return R.ok(sysTag);
    }
    /**
     * 获取系统标签列表
     * @param tagType
     * @return
     */
    @PostMapping("/listSysTag")
    public R<List<SysTag>> listSysTag(@RequestBody Integer tagType)
    {
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -156,7 +156,7 @@
    public R<QwH5LoginVo> qwH5Login(@RequestBody QwUserDetailDto qwUserDetail)
    {
        String mobile = qwUserDetail.getMobile();
        SysUser sysUser = userService.selectUserByPhoneNumber(mobile);
        SysUser sysUser = userService.selectUserByPhoneNumber(mobile,"01");
        Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户"));
        // 构造登录返回信息
@@ -370,9 +370,9 @@
        return R.ok(sysUser);
    }
    @PostMapping("/getSysUserBYmobile")
    public R<SysUser> getSysUserBYmobile(@RequestBody String mobile){
        SysUser sysUser = userService.getSysUserBYmobile(mobile);
    @PostMapping("/getSysUserByMobile")
    public R<SysUser> getSysUserByMobile(@RequestBody String mobile){
        SysUser sysUser = userService.getSysUserByMobile(mobile);
        return R.ok(sysUser);
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java
@@ -16,14 +16,14 @@
public interface SysTagService extends IService<SysTag> {
    /**
     *
     * 通过id获取系统标签
     * @param tagId
     * @return
     */
    SysTag getByTagId(Long tagId);
    /**
     *
     * 通过type获取系统标签列表
     * @param tagType
     * @return
     */
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java
@@ -23,7 +23,7 @@
    /**
     *
     * 通过id获取系统标签
     * @param tagId
     * @return
     */
@@ -33,7 +33,7 @@
    }
    /**
     *
     * 通过type获取系统标签列表
     * @param tagType
     * @return
     */
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysUserServiceImpl.java
@@ -11,6 +11,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.api.domain.dto.AppEditUserDto;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.domain.pojo.coupon.Coupon;
import com.ruoyi.system.mapper.coupon.CouponMapper;
@@ -86,13 +87,17 @@
    }
    @Override
    public SysUser selectUserByPhoneNumber(String phoneNumber) {
    public SysUser selectUserByPhoneNumber(String phoneNumber,String userType) {
        SysUser sysUser = new SysUser();
        sysUser.setPhonenumber(phoneNumber);
        List<SysUser> userList = this.selectUserList(sysUser);
        SysUser queryUser = null;
        if(!userList.isEmpty()){
            queryUser = userList.get(0);
           for(SysUser sysUser1 : userList){
               if(sysUser1.getUserType().equals(userType)){
                   queryUser = sysUser1;
               }
           }
        }
        return queryUser;
    }
@@ -308,8 +313,8 @@
     * @return
     */
    @Override
    public SysUser getSysUserBYmobile(String mobile){
        SysUser sysUser = this.selectUserByPhoneNumber(mobile);
    public SysUser getSysUserByMobile(String mobile){
        SysUser sysUser = this.selectUserByPhoneNumber(mobile,"00");
        return sysUser;
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysUserService.java
@@ -26,7 +26,7 @@
     * 通过电话号码查询用户
     *
     */
    public SysUser selectUserByPhoneNumber(String phonenumber);
    public SysUser selectUserByPhoneNumber(String phonenumber,String userType);
    /**
     * 根据条件分页查询已分配用户角色列表
@@ -135,7 +135,7 @@
     * @param mobile
     * @return
     */
    SysUser getSysUserBYmobile(String mobile);
    SysUser getSysUserByMobile(String mobile);
    /**
     * 修改用户信息
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置
ruoyi-modules/ruoyi-system/src/main/resources/mapper/sys/SysUserMapper.xml
@@ -11,6 +11,7 @@
        <result property="nickName"     column="nick_name"    />
        <result property="email"        column="email"        />
        <result property="phonenumber"  column="phonenumber"  />
        <result property="userType"     column="user_type"          />
        <result property="sex"          column="sex"          />
        <result property="avatar"       column="avatar"       />
        <result property="password"     column="password"     />
@@ -47,7 +48,7 @@
    </resultMap>
    
    <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.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.user_type, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, 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,
        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
        from sys_user u
@@ -57,7 +58,7 @@
    </sql>
    
    <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.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.user_type, u.email, u.avatar, u.phonenumber, u.sex, u.status, 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
        where u.del_flag = '0'
        <if test="userId != null and userId != 0">
@@ -86,7 +87,7 @@
    </select>
    
    <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.create_time
        select distinct u.user_id, u.dept_id, u.user_name,u.user_type, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
        from sys_user u
             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
@@ -103,7 +104,7 @@
    </select>
    
    <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.create_time
        select distinct u.user_id, u.dept_id, u.user_name,u.user_type, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
        from sys_user u
             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
ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
@@ -15,9 +15,11 @@
      discovery:
        # 服务注册地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
      config:
        # 配置中心地址
        server-addr: 47.109.78.184:5000
        #server-addr: 127.0.0.1:8848
        # 配置文件格式
        file-extension: yml
        # 共享配置