jiangqs
2023-05-25 c203ff63489126a94d1be5dbfe32cadb69a70594
完善数据库和框架
26个文件已修改
312 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/util/CodeFactoryUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberTotal.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/HttpUtils.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopStaffService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/CodeFactoryUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/CodeFactoryUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -50,7 +50,7 @@
    String BEYOND_WITHDRAW = "超出可提现金额";
    String BEYOND_WITHDRAW_time = "超出可提现金额";
    String BEYOND_WITHDRAW_TIME = "超出可提现金额";
    String USER_NO_WITHDRAW = "用户没有提现权限";
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -64,6 +64,16 @@
            public R updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto) {
                return R.fail("更新会员商品类型失败:" + throwable.getMessage());
            }
            @Override
            public R<Member> getMemberByMobile(String mobile) {
                return R.fail("获取会员手机失败:" + throwable.getMessage());
            }
            @Override
            public R createNewMember(Member member) {
                return R.fail("订单创建用户失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.model.QwH5LoginVo;
import com.ruoyi.system.api.model.QwUserDetailDto;
import com.ruoyi.system.api.service.RemoteShopService;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.ShopRelUserVo;
@@ -34,6 +36,11 @@
            public R<ShopRelUserVo> getShopByUserId(Long userId) {
                return R.fail("获取商户失败:" + throwable.getMessage());
            }
            @Override
            public R<QwH5LoginVo> qwH5Login(QwUserDetailDto qwUserDetail) {
                return R.fail("获取商户员工失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
@@ -39,10 +39,6 @@
                return R.fail("注册用户失败:" + throwable.getMessage());
            }
            @Override
            public R<QwH5LoginVo> qwH5Login(QwUserDetailDto qwUserDetail) {
                return R.fail("用户登录:" + throwable.getMessage());
            }
            @Override
            public R<SysUser> getSysUser(Long userId) {
@@ -51,7 +47,9 @@
            @Override
            public R<SysUser> getSysUserByMobile(String mobile) {
                return null;
                {
                    return R.fail("获取用户失败:" + throwable.getMessage());
                }
            }
            @Override
@@ -71,7 +69,7 @@
            @Override
            public R<SysTag> getSysTag(Long sysTagId) {
                return null;
                return R.fail("获取系统标签失败:" + throwable.getMessage());
            }
        };
    }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -55,7 +55,27 @@
    @PostMapping("/member/updateMemberBinding")
    public R updateMemberBinding(@RequestBody AppMemberBindingDto appMemberBindingDto);
    /**
     * 更新会员商品类型
     * @param appMemberGoodsTypeDto
     * @return
     */
    @PostMapping("/member/updateMemberGoodsType")
    public R updateMemberGoodsType(@RequestBody AppMemberGoodsTypeDto appMemberGoodsTypeDto);
    /**
     * 通过手机号获取会员
     * @param mobile
     * @return
     */
    @PostMapping("/member/getMemberByMobile")
    public R<Member> getMemberByMobile(@RequestBody String mobile);
    /**
     * 订单创建新用户
     * @param member
     * @return
     */
    @PostMapping("/member/createNewMember")
    public R createNewMember(@RequestBody Member member);
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
@@ -7,6 +7,8 @@
import com.ruoyi.system.api.domain.vo.ShopRelUserVo;
import com.ruoyi.system.api.factory.RemoteShopFallbackFactory;
import com.ruoyi.system.api.factory.RemoteUserFallbackFactory;
import com.ruoyi.system.api.model.QwH5LoginVo;
import com.ruoyi.system.api.model.QwUserDetailDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -20,4 +22,12 @@
    @PostMapping("/shop/getShopByUserId")
    public R<ShopRelUserVo> getShopByUserId(@RequestBody Long userId);
    /**
     * 企业微信H5登录
     * @param qwUserDetail
     * @return
     */
    @PostMapping("/shop/qwH5Login")
    public R<QwH5LoginVo> qwH5Login(@RequestBody QwUserDetailDto qwUserDetail);
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java
@@ -44,13 +44,7 @@
    public R<Boolean> registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    /**
     * 企业微信H5登录
     * @param qwUserDetail
     * @return
     */
    @PostMapping("/user/qwH5Login")
    public R<QwH5LoginVo> qwH5Login(@RequestBody QwUserDetailDto qwUserDetail);
    /**
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ip/IpUtils.java
@@ -304,7 +304,7 @@
        String[] s1 = ipWildCard.split("\\.");
        String[] s2 = ip.split("\\.");
        boolean isMatchedSeg = true;
        for (int i = 0; i < s1.length && !s1[i].equals("*"); i++)
        for (int i = 0; i < s1.length && !"*".equals(s1[i]); i++)
        {
            if (!s1[i].equals(s2[i]))
            {
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -37,7 +37,7 @@
    protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
    private final static long expireTime = CacheConstants.EXPIRATION;
    private final static long EXPIRE_TIME = CacheConstants.EXPIRATION;
    private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY;
@@ -66,7 +66,7 @@
        // 接口返回信息
        Map<String, Object> rspMap = new HashMap<String, Object>();
        rspMap.put("access_token", JwtUtils.createToken(claimsMap));
        rspMap.put("expires_in", expireTime);
        rspMap.put("expires_in", EXPIRE_TIME);
        return rspMap;
    }
@@ -96,7 +96,7 @@
            claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
            claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_MINI_APP);
            rspMap.put("access_token", JwtUtils.createToken(claimsMap));
            rspMap.put("expires_in", expireTime);
            rspMap.put("expires_in", EXPIRE_TIME);
        }
        if(StringUtils.isNotBlank(appMiniLoginVo.getMobile())){
            rspMap.put("mobile",appMiniLoginVo.getMobile() );
@@ -132,7 +132,7 @@
        OauthUserVo oauthUserVo = new OauthUserVo();
        oauthUserVo.setShopId(qwH5LoginVo.getShopId());
        oauthUserVo.setToken(JwtUtils.createToken(claimsMap));
        oauthUserVo.setExpiresIn(expireTime);
        oauthUserVo.setExpiresIn(EXPIRE_TIME);
        oauthUserVo.setUserid(qwH5LoginVo.getUserid());
        oauthUserVo.setMobile(qwH5LoginVo.getMobile());
        return oauthUserVo;
@@ -229,10 +229,10 @@
    public void refreshToken(LoginUser loginUser)
    {
        loginUser.setLoginTime(System.currentTimeMillis());
        loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
        loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_MINUTE);
        // 根据uuid将loginUser缓存
        String userKey = getTokenKey(loginUser.getToken());
        redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
        redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.MINUTES);
    }
    private String getTokenKey(String token)
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -138,7 +138,7 @@
            appGoodsInfoVo.setSalesNum(activityGoods.getSalesNumber());
            appGoodsInfoVo.setActivityDeadline(activityGoods.getActivityDeadline());
            //售罄判断
            if(activityGoods.getActivityNumber()==activityGoods.getSalesNumber()){
            if(activityGoods.getActivityNumber().equals(activityGoods.getSalesNumber())){
                appGoodsInfoVo.setSellOutFlag(1);
            }else{
                appGoodsInfoVo.setSellOutFlag(0);
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/util/CodeFactoryUtil.java
@@ -58,7 +58,7 @@
     * 用户id和随机数总长度
     */
    private static final int maxLength = 4;
    private static final int MAX_LENGTH = 4;
    /**
     * 更具id进行加密+加随机数组成固定长度编码
@@ -78,7 +78,7 @@
     */
    public static String getShopNo(Long shopId) {
        String prefix = SHOP_PREFIX;
        return toFillZeroCode(prefix, maxLength, shopId);
        return toFillZeroCode(prefix, MAX_LENGTH, shopId);
    }
    public static String getShopOrderNo() {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -95,10 +95,39 @@
        return R.ok();
    }
    /**
     * 更新会员商品类型
     * @param appMemberGoodsTypeDto
     * @return
     */
    @PostMapping("/updateMemberGoodsType")
    public R updateMemberGoodsType(@RequestBody AppMemberGoodsTypeDto appMemberGoodsTypeDto)
    {
        memberService.updateMemberGoodsType(appMemberGoodsTypeDto);
        return R.ok();
    }
    /**
     * 通过手机号获取会员
     * @param mobile
     * @return
     */
    @PostMapping("/getMemberByMobile")
    public R<Member> getMemberByMobile(@RequestBody String mobile)
    {
        Member member = memberService.getByMobile(mobile);
        return R.ok(member);
    }
    /**
     * 订单创建新用户
     * @param member
     * @return
     */
    @PostMapping("/createNewMember")
    public R createNewMember(@RequestBody Member member)
    {
        memberService.createNewMember(member);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberTotal.java
@@ -102,7 +102,7 @@
     * 总活动次数
     */
    @TableField("total_activity_count")
    private String totalActivityCount;
    private Integer totalActivityCount;
    /**
     * 最后活动时间
     */
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1,4 +1,5 @@
package com.ruoyi.member.service.impl.member;
import java.util.Date;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
@@ -14,10 +15,12 @@
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.pojo.member.MemberNurse;
import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.member.MemberMapper;
import com.ruoyi.member.service.member.MemberNurseService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.member.service.member.MemberTotalService;
import com.ruoyi.member.util.HttpUtils;
import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto;
import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo;
@@ -46,6 +49,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -92,6 +96,9 @@
    @Resource
    private RedisService redisService;
    @Resource
    private MemberTotalService memberTotalService;
    /**
     * @description: TODO
@@ -180,7 +187,7 @@
            JSONObject jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber);
            String errcode = jsonUserPhoneNumber.getString("errcode");
            String errmsg = jsonUserPhoneNumber.getString("errmsg");
            if (!errcode.equals("0")) {
            if (!"0".equals(errcode)) {
                throw new ServiceException(errmsg);
            }
            String phoneInfo = jsonUserPhoneNumber.getString("phone_info");
@@ -215,10 +222,13 @@
            member.setUserId(sysUser.getUserId());
            member.setDelFlag(0);
            member.setNickName("鸿瑞堂用户");
            member.setRealName("鸿瑞堂用户");
            member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
            member.setMemberId(memberId);
            member.setBindingFlag(0);
            member.setCreateTime(new Date());
            member.setMobile(mobile);
            initMemberTotal(memberId);
        }else{
            sysUser = sysUserService.getSysUser(member.getUserId()).getData();
        }
@@ -493,6 +503,7 @@
            member.setCreateTime(new Date());
            log.info("member-----------------"+member.toString());
            this.saveOrUpdate(member);
            initMemberTotal(memberId);
        }
@@ -570,4 +581,45 @@
            }
        }
    }
    /**
     * 订单创建新用户
     * @param member
     */
    @Override
    public void createNewMember(Member member){
        member.setDelFlag(0);
        member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
        member.setBindingFlag(0);
        member.setCreateTime(new Date());
        this.saveOrUpdate(member);
        initMemberTotal(member.getMemberId());
    }
    /**
     * 生成会员统计
     * @param memberId
     * @return
     */
    private void initMemberTotal(String memberId){
        MemberTotal memberTotal = new MemberTotal();
        memberTotal.setMemberId(memberId);
        memberTotal.setDelFlag(0);
        memberTotal.setTotalIntegral(0);
        memberTotal.setUsedIntegral(0);
        memberTotal.setUseableIntegral(0);
        memberTotal.setTotalPayMoney(new BigDecimal("0.00"));
        memberTotal.setTotalPayCount(0);
        memberTotal.setLastPayMoney(new BigDecimal("0.00"));
        memberTotal.setTotalServiceCount(0);
        memberTotal.setUsedServiceCount(0);
        memberTotal.setUseableServiceCount(0);
        memberTotal.setTotalActivityCount(0);
        memberTotal.setTotalCycleOrder(0);
        memberTotal.setToltaExperienceOrder(0);
        memberTotal.setTotalServiceOrder(0);
        memberTotal.setTotalGoodsOrder(0);
        memberTotalService.saveOrUpdate(memberTotal);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -32,6 +32,7 @@
    * @version 1.0
    */
    Member getByUserId(Long userId);
    /**
     * 小程序登录
     * @param appMiniLoginDto
@@ -122,7 +123,7 @@
    void editMerMember(MerMemberEditDto merMemberEditDto);
    /**
     *
     * 通过手机号获取
     * @param mobile
     * @return
     */
@@ -133,4 +134,10 @@
     * @param appMemberGoodsTypeDto
     */
    void updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto);
    /**
     * 订单创建新用户
     * @param member
     */
    void createNewMember(Member member);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java
@@ -41,7 +41,7 @@
     * 用户id和随机数总长度
     */
    private static final int maxLength = 4;
    private static final int MAX_LENGTH = 4;
    /**
     * 更具id进行加密+加随机数组成固定长度编码
@@ -61,7 +61,7 @@
     */
    public static String getShopNo(Long shopId) {
        String prefix = SHOP_PREFIX;
        return toFillZeroCode(prefix, maxLength, shopId);
        return toFillZeroCode(prefix, MAX_LENGTH, shopId);
    }
    /**
@@ -71,7 +71,7 @@
     */
    public static String getMemberNo(Long userId) {
        String prefix = APP_USER_PREFIX;
        return toFillZeroCode(prefix, maxLength, userId);
        return toFillZeroCode(prefix, MAX_LENGTH, userId);
    }
    /**
@@ -84,7 +84,7 @@
        String prefix = DateUtils.parseDateToStr( "yyyyMMddHHmmss",new Date());
        prefix = ORDER_PREFIX + prefix;
        return toFillZeroCode(prefix, maxLength, userId);
        return toFillZeroCode(prefix, MAX_LENGTH, userId);
    }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/HttpUtils.java
@@ -312,12 +312,15 @@
        try {
            SSLContext ctx = SSLContext.getInstance("TLS");
            X509TrustManager tm = new X509TrustManager() {
                @Override
                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
                @Override
                public void checkClientTrusted(X509Certificate[] xcs, String str) {
                }
                @Override
                public void checkServerTrusted(X509Certificate[] xcs, String str) {
                }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -112,7 +112,7 @@
                }
                consumerGoods.setUsedNum(usedNum+useNum);
                consumerGoods.setUseTime(new Date());
                if(consumerGoods.getUsedNum()==serviceNum){
                if(consumerGoods.getUsedNum().equals(serviceNum)){
                    consumerGoods.setServiceStatus(2);
                    consumerGoods.setCompleteTime(new Date());
                }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.core.utils.uuid.UUID;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.*;
import com.ruoyi.order.domain.pojo.order.ConsumerGoods;
@@ -652,28 +653,38 @@
    @Override
    public void createNewOrder(MerNewOrderDto merNewOrderDto){
        Long userId = merNewOrderDto.getBuyUserId();
        //如果非指定用户判断是否需要通过手机号创建新用户
        if(userId==null){
            String name = merNewOrderDto.getName();
            String mobile = merNewOrderDto.getMobile();
            SysUser sysUser = remoteUserService.getSysUserByMobile(mobile).getData();
            if(sysUser==null){
            Member member = remoteMemberService.getMemberByMobile(mobile).getData();
            SysUser sysUser;
            if(member!=null){
                sysUser = remoteUserService.getSysUser(member.getUserId()).getData();
            }else{
                //创建新用户
                String memberId = IdUtils.simpleUUID();
                sysUser = new SysUser();
                sysUser.setUserName(mobile);
                sysUser.setUserName(memberId);
                sysUser.setUserType("03");
                sysUser.setNickName(name);
                sysUser.setPhonenumber(mobile);
                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{
                userId = sysUser.getUserId();
                member = new Member();
                member.setMemberId(memberId);
                member.setUserId(sysUser.getUserId());
                member.setMobile(mobile);
                member.setRealName(name);
                member.setNickName(name);
                remoteMemberService.createNewMember(member);
            }
            userId = sysUser.getUserId();
        }
        //创建订单
        //创建订单计算
        List<AppBuyGoodsDto> appBuyGoodsDtoList = merNewOrderDto.getAppBuyGoodsDtoList();
        String goodsId;
        Integer buyNum;
@@ -724,6 +735,7 @@
            buyNumBig = BigDecimal.valueOf(buyNum);
            goodsTotalPrice = goodsPrice.multiply(buyNumBig);
            goodsRealPrice = goodsTotalPrice;
            //优惠券计算
            if(memberCouponId!=null){
                appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId);
                if(null != appMemberCouponVo && (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId))){
@@ -773,6 +785,7 @@
            orderGoods.setGoodsType(goods.getGoodsType());
            orderGoodsService.save(orderGoods);
        }
        //创建订单
        Order order = new Order();
        order.setOrderId(orderId);
        order.setDelFlag(0);
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/util/CodeFactoryUtil.java
@@ -58,7 +58,7 @@
     * 用户id和随机数总长度
     */
    private static final int maxLength = 4;
    private static final int MAX_LENGTH = 4;
    /**
     * 更具id进行加密+加随机数组成固定长度编码
@@ -78,7 +78,7 @@
     */
    public static String getShopNo(Long shopId) {
        String prefix = SHOP_PREFIX;
        return toFillZeroCode(prefix, maxLength, shopId);
        return toFillZeroCode(prefix, MAX_LENGTH, shopId);
    }
    public static String getShopOrderNo() {
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -4,11 +4,17 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.shop.domain.pojo.shop.ShopRelUser;
import com.ruoyi.shop.domain.pojo.shop.ShopStaff;
import com.ruoyi.shop.service.shop.ShopRelUserService;
import com.ruoyi.shop.service.shop.ShopService;
import com.ruoyi.shop.service.shop.ShopStaffService;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
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.ShopRelUserVo;
import com.ruoyi.system.api.model.QwH5LoginVo;
import com.ruoyi.system.api.model.QwUserDetailDto;
import com.ruoyi.system.api.service.RemoteUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -32,6 +38,32 @@
    @Resource
    private ShopRelUserService shopRelUserService;
    @Resource
    private ShopStaffService shopStaffService;
    @Resource
    private RemoteUserService remoteUserService;
    /**
     * 企业微信H5登录
     * @param qwUserDetail
     * @return
     */
    @PostMapping("/qwH5Login")
    public R<QwH5LoginVo> qwH5Login(@RequestBody QwUserDetailDto qwUserDetail)
    {
        String mobile = qwUserDetail.getMobile();
        ShopStaff shopStaff = shopStaffService.getByMobile(mobile);
        Long userId = shopStaff.getUserId();
        SysUser sysUser = remoteUserService.getSysUser(userId).getData();
        Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户"));
        // 构造登录返回信息
        QwH5LoginVo qwH5LoginVo = new QwH5LoginVo();
        qwH5LoginVo.setUserid(qwUserDetail.getUserid());
        qwH5LoginVo.setMobile(qwUserDetail.getMobile());
        qwH5LoginVo.setSysUser(sysUser);
        return R.ok(qwH5LoginVo);
    }
    @PostMapping("/getShop")
    public R<Shop> getShop(@RequestBody Long shopId)
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java
@@ -47,6 +47,18 @@
        return this.getOne(queryWrapper,false);
    }
    /**
     * 通过手机号获取商户员工
     * @param mobile
     * @return
     */
    @Override
    public ShopStaff getByMobile(String mobile){
        LambdaQueryWrapper<ShopStaff> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.eq(ShopStaff::getDelFlag, 0).eq(ShopStaff::getStaffMobile, mobile);
        return this.getOne(queryWrapper,false);
    }
    /**
     * 获取商户员工信息
@@ -91,6 +103,8 @@
            case 4:
                shopStaff.setStaffBirthday(merEditUserDto.getEditValue());
                break;
            default:
                break;
        }
        this.saveOrUpdate(shopStaff);
    }
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopStaffService.java
@@ -23,6 +23,13 @@
    ShopStaff getByUserId(Long userId);
    /**
     * 通过手机号获取商户员工
     * @param mobile
     * @return
     */
    ShopStaff getByMobile(String mobile);
    /**
     * 获取商户员工信息
     * @param userId
     * @return
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/util/CodeFactoryUtil.java
@@ -41,7 +41,7 @@
     * 用户id和随机数总长度
     */
    private static final int maxLength = 4;
    private static final int MAX_LENGTH = 4;
    /**
     * 更具id进行加密+加随机数组成固定长度编码
@@ -61,7 +61,7 @@
     */
    public static String getShopNo(Long shopId) {
        String prefix = SHOP_PREFIX;
        return toFillZeroCode(prefix, maxLength, shopId);
        return toFillZeroCode(prefix, MAX_LENGTH, shopId);
    }
    /**
@@ -71,7 +71,7 @@
     */
    public static String getMemberNo(Long userId) {
        String prefix = APP_USER_PREFIX;
        return toFillZeroCode(prefix, maxLength, userId);
        return toFillZeroCode(prefix, MAX_LENGTH, userId);
    }
    /**
@@ -84,7 +84,7 @@
        String prefix = DateUtils.parseDateToStr( "yyyyMMddHHmmss",new Date());
        prefix = ORDER_PREFIX + prefix;
        return toFillZeroCode(prefix, maxLength, userId);
        return toFillZeroCode(prefix, MAX_LENGTH, userId);
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -147,25 +147,7 @@
        return R.ok(userService.registerUser(sysUser)!=null);
    }
    /**
     * 企业微信H5登录
     * @param qwUserDetail
     * @return
     */
    @PostMapping("/qwH5Login")
    public R<QwH5LoginVo> qwH5Login(@RequestBody QwUserDetailDto qwUserDetail)
    {
        String mobile = qwUserDetail.getMobile();
        SysUser sysUser = userService.selectUserByPhoneNumber(mobile,"01");
        Optional.ofNullable(sysUser).orElseThrow(() -> new ServiceException("登录失败,未查询到用户"));
        // 构造登录返回信息
        QwH5LoginVo qwH5LoginVo = new QwH5LoginVo();
        qwH5LoginVo.setUserid(qwUserDetail.getUserid());
        qwH5LoginVo.setMobile(qwUserDetail.getMobile());
        qwH5LoginVo.setSysUser(sysUser);
        return R.ok(qwH5LoginVo);
    }
    /**
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/CodeFactoryUtil.java
@@ -41,7 +41,7 @@
     * 用户id和随机数总长度
     */
    private static final int maxLength = 4;
    private static final int MAX_LENGTH = 4;
    /**
     * 更具id进行加密+加随机数组成固定长度编码
@@ -61,7 +61,7 @@
     */
    public static String getShopNo(Long shopId) {
        String prefix = SHOP_PREFIX;
        return toFillZeroCode(prefix, maxLength, shopId);
        return toFillZeroCode(prefix, MAX_LENGTH, shopId);
    }
    /**
@@ -71,7 +71,7 @@
     */
    public static String getMemberNo(Long userId) {
        String prefix = APP_USER_PREFIX;
        return toFillZeroCode(prefix, maxLength, userId);
        return toFillZeroCode(prefix, MAX_LENGTH, userId);
    }
    /**
@@ -84,7 +84,7 @@
        String prefix = DateUtils.parseDateToStr( "yyyyMMddHHmmss",new Date());
        prefix = ORDER_PREFIX + prefix;
        return toFillZeroCode(prefix, maxLength, userId);
        return toFillZeroCode(prefix, MAX_LENGTH, userId);
    }