jiangqs
2023-07-11 7109e2fefaa46caffcd36b44828f48e0f8a790ba
管理台bug和用户端
1 文件已重命名
21个文件已修改
195 ■■■■ 已修改文件
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/AgreementServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
@@ -1,5 +1,6 @@
package com.ruoyi.auth.controller;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.auth.service.QywxInnerService;
import com.ruoyi.auth.service.SysLoginService;
import com.ruoyi.common.core.domain.R;
@@ -59,11 +60,11 @@
    @ApiOperation("通过code获取访问用户登录")
    public R<OauthUserVo> oauthUser(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException {
        // 通过code获取访问用户敏感信息
        //JSONObject result = qywxInnerService.getOauthUser(code);
        //QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class);
        QwUserDetailDto qwUserDetail = new QwUserDetailDto();
        qwUserDetail.setMobile("13882237106");
        qwUserDetail.setUserid("146");
        JSONObject result = qywxInnerService.getOauthUser(code);
        QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class);
        //QwUserDetailDto qwUserDetail = new QwUserDetailDto();
        //qwUserDetail.setMobile("13882237106");
        //qwUserDetail.setUserid("146");
        // 1、查数据库获取人员
        QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5Login(qwUserDetail);
        // 2、生成Token
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -1,17 +1,7 @@
package com.ruoyi.common.security.service;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.system.api.model.OauthUserVo;
import com.ruoyi.system.api.model.QwH5LoginVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.utils.JwtUtils;
import com.ruoyi.common.core.utils.ServletUtils;
@@ -20,7 +10,17 @@
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.system.api.model.LoginUser;
import com.ruoyi.system.api.model.OauthUserVo;
import com.ruoyi.system.api.model.QwH5LoginVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
 * token验证处理
@@ -81,6 +81,8 @@
        // 接口返回信息
        Map<String, Object> rspMap = new HashMap<String, Object>();
        //用户为空只返回openid
        rspMap.put("mobile","");
        rspMap.put("access_token", "");
        if(appMiniLoginVo.getSysUser()!=null){
            loginUser.setSysUser(appMiniLoginVo.getSysUser());
            String token = IdUtils.fastUUID();
@@ -95,11 +97,13 @@
            claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
            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", EXPIRE_TIME);
        }
        if(StringUtils.isNotBlank(appMiniLoginVo.getMobile())){
            rspMap.put("mobile",appMiniLoginVo.getMobile() );
            }else{
                rspMap.put("mobile","");
            }
            rspMap.put("access_token", JwtUtils.createToken(claimsMap));
            rspMap.put("expires_in", EXPIRE_TIME);
        }
        rspMap.put("wx_unionid", appMiniLoginVo.getWxUnionid());
        rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -89,7 +89,7 @@
        COUNT(ag.activity_id) goodsNum
        FROM t_activity ta
        LEFT JOIN t_activity_goods ag ON ta.activity_id = ag.activity_id
        WHERE ta.del_flag = 0 AND FIND_IN_SET(#{param.shopId}, ta.applicable_shop) &gt; 0
        WHERE ta.del_flag = 0 AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{param.shopId}, ta.applicable_shop) &gt; 0)
        group by ta.activity_id
        ORDER BY ta.activity_status ASC,ta.create_time DESC
    </select>
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java
@@ -3,7 +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.vo.AppUnGetCouponPageVo;
import com.ruoyi.member.domain.vo.AppGetAbleCouponPageVo;
import com.ruoyi.member.service.coupon.CouponService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.domain.dto.AppPageDto;
@@ -25,7 +25,7 @@
 * @Date 2023/7/9 11:44
 * @Version 1.0
 */
@Api(value = "小程序配置相关接口", tags = "小程序配置相关接口", description = "小程序配置相关接口")
@Api(value = "小程序优惠券相关接口", tags = "小程序优惠券相关接口", description = "小程序优惠券相关接口")
@RestController
@RequestMapping("/app/coupon")
public class AppCouponController {
@@ -39,7 +39,7 @@
    @RequestMapping(value = "/pageAppUserGetAbleCoupon", method = RequestMethod.POST)
    @ApiOperation(value = "用户分页获取可领取优惠券列表")
    public R<Page<AppUnGetCouponPageVo>> pagePlatformMerCoupon(@RequestBody AppPageDto appPageDto) {
    public R<Page<AppGetAbleCouponPageVo>> pagePlatformMerCoupon(@RequestBody AppPageDto appPageDto) {
        Long userId = SecurityUtils.getUserId();
        if(userId!=null){
            Member member = memberService.getByUserId(userId);
@@ -47,10 +47,10 @@
            }
        }
        appPageDto.setUserId(userId);
        Page<AppUnGetCouponPageVo> page = new Page<>();
        Page<AppGetAbleCouponPageVo> page = new Page<>();
        page.setSize(appPageDto.getPageSize());
        page.setCurrent(appPageDto.getPageNum());
        List<AppUnGetCouponPageVo> unGetCouponPageVoList = couponService.pageAppUserGetAbleCoupon(page,appPageDto);
        List<AppGetAbleCouponPageVo> unGetCouponPageVoList = couponService.pageAppUserGetAbleCoupon(page,appPageDto);
        return R.ok(page.setRecords(unGetCouponPageVoList));
    }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -34,7 +34,7 @@
 * @date 2023年04月19日
 * @version: 1.0
 */
@Api(value = "小程序配置相关接口", tags = "小程序配置相关接口", description = "小程序配置相关接口")
@Api(value = "小程序会员相关接口", tags = "小程序会员相关接口", description = "小程序会员相关接口")
@RestController
@RequestMapping("/app/member")
public class AppMemberController {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerCouponEditDto.java
@@ -27,9 +27,12 @@
    @ApiModelProperty("优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义")
    @ApiModelProperty(value = "发送类型1.手动领取2.指定发放")
    private Integer sendType;
    @ApiModelProperty(value = "发送对象2.全部用户3.会员用户4非会员用户5自定义")
    private Integer sendTarget;
    @ApiModelProperty("发送时间类型1立即2定时")
    private Integer sendTimeType;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java
File was renamed from ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppUnGetCouponPageVo.java
@@ -13,7 +13,7 @@
 * @Version 1.0
 */
@Data
public class AppUnGetCouponPageVo {
public class AppGetAbleCouponPageVo {
    @ApiModelProperty(value = "优惠券id")
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponGetVo.java
@@ -28,9 +28,12 @@
    @ApiModelProperty("优惠券名称")
    private String couponName;
    @ApiModelProperty(value = "发送类型1.手动领取2.全部用户3.会员用户4非会员用户5自定义")
    @ApiModelProperty(value = "发送类型1.手动领取2.指定发放")
    private Integer sendType;
    @ApiModelProperty(value = "发送对象2.全部用户3.会员用户4非会员用户5自定义")
    private Integer sendTarget;
    @ApiModelProperty("发送时间类型1立即2定时")
    private Integer sendTimeType;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java
@@ -55,6 +55,9 @@
    @ApiModelProperty(value = "发送对象")
    private String sendTarget;
    @ApiModelProperty(value = "领取限制数量 0为不限")
    private Integer limitNumber;
    @ApiModelProperty(value = "门槛金额",hidden = true)
    private BigDecimal moneyThreshold;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java
@@ -4,6 +4,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -40,9 +41,15 @@
    @ApiModelProperty(value = "男人")
    private Integer manTotal;
    @ApiModelProperty(value = "男人比例")
    private BigDecimal manPercent;
    @ApiModelProperty(value = "女人")
    private Integer womenTotal;
    @ApiModelProperty(value = "女人比例")
    private BigDecimal womenPercent;
    @ApiModelProperty(value = "会员年龄key")
    private String[] ageKey;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
@@ -95,4 +95,7 @@
     * @return  List<Long>
     */
    List<String> listUserUnGetCoupon(@Param("userId")Long userId);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -168,5 +168,5 @@
     * @param appPageDto
     * @return  List<AppUnGetCouponPageVo>
     */
    List<AppUnGetCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto);
    List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -101,8 +101,8 @@
        }
        // 设置创建时间
        birthdayCard.setCreateTime(new Date());
        // 如果店铺ID不为空,则进行相关设置
        if(mgtBirthdayEditDto.getShopId()!=null){
        // 如果店铺ID为空,则进行相关设置
        if(mgtBirthdayEditDto.getShopId()==null){
            birthdayCard.setAreaFlag(mgtBirthdayEditDto.getAreaFlag());
            if(mgtBirthdayEditDto.getAreaFlag()==2){
                birthdayCard.setDesignatedArea(mgtBirthdayEditDto.getDesignatedArea());
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -191,6 +191,10 @@
        MerCouponGetVo merCouponGetVo = new MerCouponGetVo();
        Coupon coupon = this.getById(couponId);
        BeanUtils.copyProperties(coupon, merCouponGetVo);
        if(merCouponGetVo.getSendType()>1){
            merCouponGetVo.setSendType(2);
            merCouponGetVo.setSendTarget(merCouponGetVo.getSendType());
        }
        //判断优惠券是否为指定商品
        if(coupon.getUseScope()==2){
            String relGoodsIds = coupon.getRelGoodsIds();
@@ -757,6 +761,9 @@
        coupon.setCouponType(merCouponEditDto.getCouponType());
        coupon.setCouponName(merCouponEditDto.getCouponName());
        coupon.setSendType(merCouponEditDto.getSendType());
        if(merCouponEditDto.getSendType()!=1){
            coupon.setSendType(merCouponEditDto.getSendTarget());
        }
        coupon.setSendTimeType(merCouponEditDto.getSendTimeType());
        coupon.setSendTime(merCouponEditDto.getSendTime());
        coupon.setMoneyThreshold(merCouponEditDto.getMoneyThreshold());
@@ -886,9 +893,10 @@
     * @return  List<AppUnGetCouponPageVo>
     */
    @Override
    public List<AppUnGetCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto){
    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto){
        //获取当前已领取完优惠券
        List<String> unGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId());
        //List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList( unGetList);
        return null;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -240,12 +240,14 @@
            member.setCreateTime(new Date());
            member.setMobile(mobile);
            initMemberTotal(memberId);
            log.info("sysUser01-----------------" + sysUser.toString());
        } else {
            sysUser = sysUserService.getSysUser(member.getUserId()).getData();
            log.info("sysUser02-----------------" + sysUser.toString());
        }
        member.setWxUnionid(appUserRegisterDto.getWxUnionid());
        member.setMiniOpenid(appUserRegisterDto.getMiniOpenid());
        log.info("member-----------------" + member.toString());
        log.info("member02-----------------" + member.toString());
        this.saveOrUpdate(member);
        appUserRegisterVo.setMobile(mobile);
        appUserRegisterVo.setNickName(member.getNickName());
@@ -1070,6 +1072,31 @@
        // 获取总会员数和不同年龄段的会员数
        MgtTotalMemberTotalVo mgtTotalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto);
        MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getTotalMemberTotalAge(mgtBaseShopDto);
        Integer manTotal = mgtAgeTotalVo.getManTotal();
        Integer womenTotal = mgtAgeTotalVo.getWomenTotal();
        mgtTotalMemberTotalVo.setManTotal(manTotal);
        mgtTotalMemberTotalVo.setWomenTotal(womenTotal);
        Integer personTotal = manTotal + womenTotal;
        BigDecimal manTotalBig = new BigDecimal(manTotal);
        BigDecimal personTotalBig = new BigDecimal(personTotal);
        BigDecimal bigTen = new BigDecimal("100.00");
        BigDecimal menPercent = new BigDecimal("100.00");
        BigDecimal womenPercent = new BigDecimal("100.00");
        if(manTotal==0&&womenTotal==0){
            menPercent = new BigDecimal("50.00");
            womenPercent = new BigDecimal("50.00");
        }else if(manTotal==0&&womenTotal>0){
            menPercent = new BigDecimal("0.00");
            womenPercent = new BigDecimal("100.00");
        }else if(manTotal>0&&womenTotal==0){
            menPercent = new BigDecimal("100.00");
            womenPercent = new BigDecimal("0.00");
        }else{
            menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
            womenPercent = bigTen.subtract(menPercent);
        }
        mgtTotalMemberTotalVo.setManPercent(menPercent);
        mgtTotalMemberTotalVo.setWomenPercent(womenPercent);
        // 年龄段数组
        String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
        // 不同年龄段的会员数数组
@@ -1410,8 +1437,21 @@
        BigDecimal manTotalBig = new BigDecimal(manTotal);
        BigDecimal personTotalBig = new BigDecimal(personTotal);
        BigDecimal bigTen = new BigDecimal("100.00");
        BigDecimal menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
        BigDecimal womenPercent = bigTen.subtract(menPercent);
        BigDecimal menPercent = new BigDecimal("100.00");
        BigDecimal womenPercent = new BigDecimal("100.00");
        if(manTotal==0&&womenTotal==0){
            menPercent = new BigDecimal("50.00");
            womenPercent = new BigDecimal("50.00");
        }else if(manTotal==0&&womenTotal>0){
            menPercent = new BigDecimal("0.00");
            womenPercent = new BigDecimal("100.00");
        }else if(manTotal>0&&womenTotal==0){
            menPercent = new BigDecimal("100.00");
            womenPercent = new BigDecimal("0.00");
        }else{
            menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
            womenPercent = bigTen.subtract(menPercent);
        }
        memberFixedTotalVo.setManPercent(menPercent);
        memberFixedTotalVo.setWomenPercent(womenPercent);
        // 年龄段数组
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -331,7 +331,8 @@
            tc.discount_money  discountMoney,
            tc.discount_percent  discountPercent,
            tc.create_time  createTime,
            tc.audit_reason auditReason
            tc.audit_reason auditReason,
            tc.limit_number limitNumber
        FROM t_coupon tc
                 LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id
        WHERE tc.del_flag = 0 AND tc.coupon_status = 2 AND tc.coupon_from = 2 AND tc.shop_id = #{param.shopId}
@@ -345,7 +346,7 @@
            tc.coupon_id
        FROM t_coupon tc
        LEFT JOIN t_member_coupon_record tmcr ON tc.coupon_id = tmcr.coupon_id AND tmcr.user_id = #{userId}
        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND send_type = 1 AND (tmcr.limit_flag IS NULL OR tmcr.limit_flag = 0)
        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND send_type = 1 AND tmcr.limit_flag = 1
    </select>
</mapper>
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -58,7 +58,7 @@
        where user_id = #{userId}
    </select>
    <select id="selectMemberByMobile" parameterType="Long" resultMap="MemberResult">
    <select id="selectMemberByMobile" parameterType="String" resultMap="MemberResult">
        <include refid="selectMemberVo"/>
        where mobile = #{mobile}
    </select>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java
@@ -8,7 +8,6 @@
import com.ruoyi.shop.service.shop.ShopService;
import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.service.RemoteConfigService;
import com.ruoyi.system.api.service.RemoteMemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -37,7 +36,6 @@
    @Resource
    private RemoteMemberService memberService;
    RemoteConfigService remoteConfigService;
    @Resource
    private ShopService shopService;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopDto.java
@@ -29,6 +29,10 @@
    @NotNull(message = "商户类型不能为空")
    private Integer shopType;
    @ApiModelProperty("商户编号")
    @NotNull(message = "商户编号不能为空")
    private String shopNumber;
    @ApiModelProperty("营业开始时间")
    private String businessStartTime;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -30,6 +30,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.util.*;
import java.util.function.Function;
@@ -202,6 +203,12 @@
            newShop = true;
        }
        BeanUtils.copyProperties(mgtEditShopDto,shop);
        String shopDetail = shop.getShopDetail();
        if(StringUtils.isNotBlank(shopDetail)){
            byte[] decodedBytes = Base64.getDecoder().decode(shopDetail);
            shopDetail = new String(decodedBytes, StandardCharsets.UTF_8);
            shop.setShopDetail(shopDetail);
        }
        //商户编号
        if(mgtEditShopDto.getShopId()==null){
            String shopNo = CodeFactoryUtil.getShopNo();
@@ -495,6 +502,12 @@
        Shop shop = this.getById(shopId);
        //基本信息拷贝
        BeanUtils.copyProperties(shop,mgtShopInfoVo);
        String shopDetail = mgtShopInfoVo.getShopDetail();
        if(StringUtils.isNotBlank(shopDetail)){
            byte[] encodedBytes = Base64.getEncoder().encode(shopDetail.getBytes(StandardCharsets.UTF_8));
            shopDetail = new String(encodedBytes, StandardCharsets.UTF_8);
            mgtShopInfoVo.setShopDetail(shopDetail);
        }
        //商户标签
        List<ShopRelTag> shopRelTagList = shopRelTagService.listShopRelTagByShopId(shopId);
        if(shopRelTagList!=null&&!shopRelTagList.isEmpty()){
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -504,10 +504,13 @@
        shop_id,
        shop_name
        FROM t_shop
        WHERE del_flag = 0 AND shop_city_code IN
        WHERE del_flag = 0 AND shop_status = 1
          <if test="param.cityCodeList !=null and param.cityCodeList.size()>0" >
              AND shop_city_code IN
        <foreach collection="param.cityCodeList" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
          </if>
    </select>
    <select id="pageMgtShopAuth" resultType="com.ruoyi.shop.domain.vo.MgtShopAuthPageVo">
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/AgreementServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.domain.dto.AppAgreementDto;
import com.ruoyi.system.domain.dto.MgtAgreementEditDto;
@@ -13,6 +14,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Date;
/**
@@ -42,6 +45,12 @@
        if(appAgreementVo==null){
            throw new ServiceException(AppErrorConstant.AGREEMENT_FAILED);
        }
        /*String agreementContent = appAgreementVo.getAgreementContent();
        if(StringUtils.isNotBlank(agreementContent)){
            byte[] decodedBytes = Base64.getDecoder().decode(agreementContent);
            agreementContent = new String(decodedBytes, StandardCharsets.UTF_8);
            appAgreementVo.setAgreementContent(agreementContent);
        }*/
        return appAgreementVo;
    }
@@ -65,7 +74,12 @@
        }
        // 更新协议内容和创建者信息
        agreement.setAgreementType(mgtAgreementEditDto.getAgreementType());
        agreement.setAgreementContent(mgtAgreementEditDto.getAgreementContent());
        String agreementContent = mgtAgreementEditDto.getAgreementContent();
        if(StringUtils.isNotBlank(agreementContent)){
            byte[] decodedBytes = Base64.getDecoder().decode(agreementContent);
            agreementContent = new String(decodedBytes, StandardCharsets.UTF_8);
            agreement.setAgreementContent(agreementContent);
        }
        agreement.setCreateUserId(mgtAgreementEditDto.getUserId());
        agreement.setCreateTime(new Date());
        // 保存或更新协议