Pu Zhibing
2024-11-27 5f21fd4703a6893e4385d55dafbf5b2a1a1d7785
完善部分接口逻辑
2 文件已重命名
14个文件已修改
4个文件已删除
5个文件已添加
531 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/model/ShoppingCart.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsClientFallbackFactory.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/BaseTable.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/RegisterAccount.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/ShoppingCartMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ShoppingCartMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShoppingCartService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShoppingCartServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShoppingCartMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -77,6 +77,10 @@
    @ApiModelProperty(value = "最后一次登录时间")
    @TableField("last_login_time")
    private LocalDateTime lastLoginTime;
    @ApiModelProperty(value = "顶级推广人id")
    @TableField("top_invite_id")
    private Long topInviteId;
    @ApiModelProperty(value = "推广人id")
    @TableField("invite_user_id")
@@ -112,22 +116,62 @@
    @ApiModelProperty(value = "可提现金额")
    @TableField("withdrawable_amount")
    private BigDecimal withdrawal_amount;
    private BigDecimal withdrawableAmount;
    @ApiModelProperty(value = "已提现金额")
    @TableField("withdrawn_amount")
    private BigDecimal withdrawn_amount;
    private BigDecimal withdrawnAmount;
    @ApiModelProperty(value = "充值总金额")
    @TableField("total_recharge_amount")
    private BigDecimal total_recharge_amount;
    private BigDecimal totalRechargeAmount;
    @ApiModelProperty(value = "红包总金额")
    @TableField("total_red_packet_amount")
    private BigDecimal total_red_packet_amount;
    private BigDecimal totalRedPacketAmount;
    @ApiModelProperty(value = "分销总金额")
    @TableField("total_distribution_amount")
    private BigDecimal total_distribution_amount;
    private BigDecimal totalDistributionAmount;
    @ApiModelProperty(value = "剩余积分")
    @TableField("lave_point")
    private BigDecimal lavePoint;
    @ApiModelProperty(value = "是否可更换推广人(0=否,1=是)")
    @TableField("change_promoter")
    private Integer changePromoter;
    @ApiModelProperty(value = "经度")
    @TableField("longitude")
    private String longitude;
    @ApiModelProperty(value = "纬度")
    @TableField("latitude")
    private String latitude;
    @ApiModelProperty(value = "省")
    @TableField("province")
    private String province;
    @ApiModelProperty(value = "省编号")
    @TableField("province_code")
    private String provinceCode;
    @ApiModelProperty(value = "市")
    @TableField("city")
    private String city;
    @ApiModelProperty(value = "市编号")
    @TableField("city_code")
    private String cityCode;
    @ApiModelProperty(value = "区")
    @TableField("district")
    private String district;
    @ApiModelProperty(value = "区编号")
    @TableField("district_code")
    private String districtCode;
}
ruoyi-api/ruoyi-api-order/src/main/java/model/ShoppingCart.java
File was renamed from ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShoppingCart.java
@@ -1,5 +1,6 @@
package com.ruoyi.other.api.domain;
package model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@@ -19,8 +20,10 @@
    @TableId
    private Long id;
    @ApiModelProperty("用户id")
    @TableField("app_user_id")
    private Long appUserId;
    @ApiModelProperty("商品id")
    @TableField("goods_id")
    private Long goodsId;
    @ApiModelProperty("数量")
    private Integer number;
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/GoodsClientFallbackFactory.java
New file
@@ -0,0 +1,29 @@
package com.ruoyi.other.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.api.feignClient.GoodsClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.util.List;
/**
 * @author zhibing.pu
 * @Date 2024/11/27 19:57
 */
@Slf4j
public class GoodsClientFallbackFactory implements FallbackFactory<GoodsClient> {
    @Override
    public GoodsClient create(Throwable cause) {
        return new GoodsClient(){
            @Override
            public R<List<Goods>> getGoodsByType(Integer type) {
                return R.fail("根据类型(1=服务商品,2=单品商品)获取商品数据失败:" + cause.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/GoodsClient.java
New file
@@ -0,0 +1,29 @@
package com.ruoyi.other.api.feignClient;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.api.factory.GoodsClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
 * @author zhibing.pu
 * @Date 2024/11/27 19:56
 */
@FeignClient(contextId = "GoodsClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = GoodsClientFallbackFactory.class)
public interface GoodsClient{
    /**
     * 根据类型(1=服务商品,2=单品商品)获取商品数据
     * @param type
     * @return
     */
    @PostMapping("/goods/getGoodsByType")
    R<List<Goods>> getGoodsByType(@RequestParam("type") Integer type);
}
ruoyi-api/ruoyi-api-other/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
com.ruoyi.other.api.factory.GoodsClientFallbackFactory
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java
@@ -4,24 +4,28 @@
import java.util.Objects;
import com.ruoyi.common.core.constant.HttpStatus;
import com.ruoyi.common.core.utils.StringUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 操作消息提醒
 * 
 * @author ruoyi
 */
public class AjaxResult<T> extends HashMap<String, Object>
{
    private static final long serialVersionUID = 1L;
@ApiModel
public class AjaxResult<T> extends HashMap {
    /** 状态码 */
    public static final String CODE_TAG = "code";
    @ApiModelProperty("状态码")
    private int code;
    /** 返回内容 */
    public static final String MSG_TAG = "msg";
    @ApiModelProperty("描述内容")
    private String msg = "";
    /** 数据对象 */
    public static final String DATA_TAG = "data";
    @ApiModelProperty("结果集")
    private T data;
    /**
     * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
@@ -38,8 +42,8 @@
     */
    public AjaxResult(int code, String msg)
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
        this.code = code;
        this.msg = msg;
    }
    /**
@@ -49,12 +53,12 @@
     * @param msg 返回内容
     * @param data 数据对象
     */
    public AjaxResult(int code, String msg, Object data)
    public AjaxResult(int code, String msg, T data)
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
        this.code = code;
        this.msg = msg;
        if (StringUtils.isNotNull(data)) {
            super.put(DATA_TAG, data);
            this.data = data;
        }
    }
@@ -181,7 +185,7 @@
     */
    public boolean isSuccess()
    {
        return Objects.equals(HttpStatus.SUCCESS, this.get(CODE_TAG));
        return Objects.equals(HttpStatus.SUCCESS, this.code);
    }
    /**
@@ -195,19 +199,4 @@
    }
    /**
     * 方便链式调用
     *
     * @param key
     * @param value
     * @return
     */
    @Override
    public AjaxResult put(String key, Object value)
    {
        super.put(key, value);
        return this;
    }
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/BaseTable.java
File was deleted
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/page/TableDataInfo.java
@@ -8,7 +8,7 @@
 * 
 * @author ruoyi
 */
public class TableDataInfo implements Serializable
public class TableDataInfo<T> implements Serializable
{
    private static final long serialVersionUID = 1L;
@@ -16,7 +16,7 @@
    private long total;
    /** 列表数据 */
    private List<?> rows;
    private List<T> rows;
    /** 消息状态码 */
    private int code;
@@ -37,7 +37,7 @@
     * @param list 列表数据
     * @param total 总记录数
     */
    public TableDataInfo(List<?> list, int total)
    public TableDataInfo(List<T> list, int total)
    {
        this.rows = list;
        this.total = total;
@@ -58,7 +58,7 @@
        return rows;
    }
    public void setRows(List<?> rows)
    public void setRows(List<T> rows)
    {
        this.rows = rows;
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -148,7 +148,7 @@
        ajax.put("posts", postService.selectPostAll());
        if (StringUtils.isNotNull(userId)) {
            SysUser sysUser = userService.selectUserById(userId);
            ajax.put(AjaxResult.DATA_TAG, sysUser);
            ajax.put("data", sysUser);
            ajax.put("postIds", postService.selectPostListByUserId(userId));
            ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
        }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -1,6 +1,7 @@
package com.ruoyi.account.controller;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.vo.*;
import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -63,8 +64,7 @@
    @PostMapping("/registerAccount")
    @ApiOperation(value = "注册新账号")
    public AjaxResult<LoginVo> registerAccount(@RequestBody RegisterAccount registerAccount){
        // todo 待完善 pu
        return AjaxResult.success();
        return appUserService.registerAccount(registerAccount);
    }
    
    
@@ -75,8 +75,10 @@
            @ApiImplicitParam(name = "id", value = "推荐人id", required = true, dataType = "long")
    })
    public AjaxResult<String> getReferrer(@PathVariable("id") Long id){
        // todo 待完善 pu
        return AjaxResult.success();
        AppUser appUser = appUserService.getById(id);
        String phone = appUser.getPhone();
        phone = phone.substring(0, 3) + "****" + phone.substring(7);
        return AjaxResult.success(appUser.getName() + "-" + phone);
    }
    
    
@@ -85,9 +87,13 @@
    @GetMapping("/getNearbyReferrer")
    @ApiOperation(value = "获取附近推荐人列表")
    public AjaxResult<BaseTable<NearbyReferrerVo>> getNearbyReferrer(NearbyReferrer nearbyReferrer){
        // todo 待完善 pu
        return AjaxResult.success();
        BaseTable<NearbyReferrerVo> baseTable = appUserService.getNearbyReferrer(nearbyReferrer);
        return AjaxResult.success(baseTable);
    }
    
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/AppUserMapper.java
@@ -2,6 +2,11 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.vo.NearbyReferrer;
import com.ruoyi.account.vo.NearbyReferrerVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
@@ -12,5 +17,15 @@
 * @since 2024-11-21
 */
public interface AppUserMapper extends BaseMapper<AppUser> {
    /**
     * 获取附件推广人
     * @param cityCode
     * @return
     */
    List<NearbyReferrerVo> getNearbyReferrer(@Param("cityCode") String cityCode, @Param("nearbyReferrer") NearbyReferrer nearbyReferrer);
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/AppUserService.java
@@ -4,6 +4,7 @@
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.vo.*;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BaseTable;
import org.springframework.web.bind.annotation.RequestBody;
/**
@@ -47,4 +48,12 @@
     * @return
     */
    AjaxResult<LoginVo> registerAccount(RegisterAccount registerAccount);
    /**
     * 获取附近的推广人
     * @param nearbyReferrer
     * @return
     */
    BaseTable<NearbyReferrerVo> getNearbyReferrer(NearbyReferrer nearbyReferrer);
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java
@@ -8,13 +8,17 @@
import com.ruoyi.account.util.weChat.WeChatUtil;
import com.ruoyi.account.vo.*;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BaseTable;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@@ -164,6 +168,119 @@
     */
    @Override
    public AjaxResult<LoginVo> registerAccount(RegisterAccount registerAccount) {
        return null;
        //校验验证码
        String code = redisService.getCacheObject(registerAccount.getPhone());
        if(null == code || !code.equals(registerAccount.getCode())){
            return AjaxResult.error("验证码错误");
        }
        //使用jscode获取微信openid
        Map<String, Object> map = weChatUtil.code2Session(registerAccount.getJscode());
        Integer errcode = Integer.valueOf(map.get("errcode").toString());
        if(0 != errcode){
            return AjaxResult.error(map.get("msg").toString());
        }
        String openid = map.get("openid").toString();
        //查询用户是否注册
        AppUser appUser = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getWxOpenid, openid).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0));
        if(null != appUser){
            return AjaxResult.error("此微信号已注册,请直接登录!");
        }
        AppUser appUser1 = this.getOne(new LambdaQueryWrapper<AppUser>().eq(AppUser::getPhone, registerAccount.getPhone()).ne(AppUser::getStatus, 3).eq(AppUser::getDelFlag, 0));
        if(null != appUser1){
            return AjaxResult.error("手机号已注册,请直接登录!");
        }
        if(null == appUser){
            appUser = new AppUser();
            appUser.setName(registerAccount.getName());
            appUser.setPhone(registerAccount.getPhone());
            appUser.setWxOpenid(openid);
            //注册默认为普通会员
            appUser.setVipId(1);
            appUser.setStatus(1);
            appUser.setCreateTime(LocalDateTime.now());
            appUser.setDelFlag(false);
            appUser.setFirstAdd(1);
            appUser.setLastLoginTime(LocalDateTime.now());
            //顶级推广人
            AppUser topAppUser = getTopAppUser(registerAccount.getPromoter());
            appUser.setTopInviteId(topAppUser.getId());
            //绑定门店为推荐人绑定的门店
            AppUser appUser2 = this.getById(registerAccount.getPromoter());
            appUser.setInviteUserId(registerAccount.getPromoter());
            appUser.setShopId(appUser2.getShopId());
            appUser.setPartPoint(BigDecimal.ZERO);
            appUser.setPartGrowPoint(BigDecimal.ZERO);
            appUser.setShopPoint(BigDecimal.ZERO);
            appUser.setSharePoint(BigDecimal.ZERO);
            appUser.setShopAmount(BigDecimal.ZERO);
            appUser.setWithdrawableAmount(BigDecimal.ZERO);
            appUser.setWithdrawnAmount(BigDecimal.ZERO);
            appUser.setTotalRechargeAmount(BigDecimal.ZERO);
            appUser.setTotalRedPacketAmount(BigDecimal.ZERO);
            appUser.setTotalDistributionAmount(BigDecimal.ZERO);
            appUser.setLavePoint(BigDecimal.ZERO);
            //根据平台的配置未达标,则标注为可修改推广人
            appUser.setChangePromoter(0);
            appUser.setLongitude(registerAccount.getLongitude());
            appUser.setLatitude(registerAccount.getLatitude());
            //调用地图获取省市区数据
            appUser.setProvince();
            appUser.setProvinceCode();
            appUser.setCity();
            appUser.setCityCode();
            appUser.setDistrict();
            appUser.setDistrictCode();
            this.save(appUser);
        }
        LoginVo loginVo = new LoginVo();
        loginVo.setSkipPage(1);
        loginVo.setFirstTime(false);
        loginVo.setPhone(appUser.getPhone());
        //构建token
        LoginUser loginUser = new LoginUser();
        loginUser.setUserid(appUser.getId());
        loginUser.setUsername(appUser.getName());
        Map<String, Object> tokenApplet = tokenService.createTokenApplet(loginUser);
        loginVo.setToken(tokenApplet.get("access_token").toString());
        loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString()));
        return AjaxResult.success(loginVo);
    }
    /**
     * 递归查询顶级推广人
     * @param id
     * @return
     */
    public AppUser getTopAppUser(Long id){
        List<AppUser> list = this.list(new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0));
        return getTopAppUser(list, id);
    }
    public AppUser getTopAppUser(List<AppUser> list, Long id){
        AppUser appUser = list.stream().filter(s -> s.getInviteUserId().equals(id)).findFirst().get();
        if(null == appUser.getInviteUserId()){
            return appUser;
        }
        return getTopAppUser(list, appUser.getId());
    }
    /**
     * 获取附近推广人
     * @param nearbyReferrer
     * @return
     */
    @Override
    public BaseTable<NearbyReferrerVo> getNearbyReferrer(NearbyReferrer nearbyReferrer) {
        //使用地图获取省市区数据
        String longitude = nearbyReferrer.getLongitude();
        String latitude = nearbyReferrer.getLatitude();
        String cityCode = "";
        List<NearbyReferrerVo> list = this.baseMapper.getNearbyReferrer(cityCode, nearbyReferrer);
        BaseTable baseTable = new BaseTable();
        baseTable.setRows(list);
        baseTable.setTotal(list.size());
        return baseTable;
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/RegisterAccount.java
@@ -11,7 +11,9 @@
@Data
@ApiModel
public class RegisterAccount {
    @ApiModelProperty(value = "推广人id", required = false)
    @ApiModelProperty(value = "微信jscode", required = true)
    private String jscode;
    @ApiModelProperty(value = "推广人id", required = true)
    private Long promoter;
    @ApiModelProperty(value = "头像", required = true)
    private String avatar;
@@ -21,4 +23,8 @@
    private String phone;
    @ApiModelProperty(value = "短信验证码", required = true)
    private String code;
    @ApiModelProperty(value = "经度", required = true)
    private String longitude;
    @ApiModelProperty(value = "纬度", required = true)
    private String latitude;
}
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml
@@ -31,4 +31,24 @@
        id, name, phone, avatar, vip_id, wx_openid, ali_openid, status, create_time, del_flag, first_add, last_login_time, invite_user_id, shop_id, part_point, part_grow_point, shop_point, share_point, shop_amount, last_shop_time
    </sql>
    <select id="getNearbyReferrer" resultType="com.ruoyi.account.vo.NearbyReferrerVo">
        select * from (
            select
                id,
                avatar,
                `name`,
                vip_id as vip,
                ST_Distance_Sphere(
                    point(#{nearbyReferrer.longitude},#{nearbyReferrer.latitude}),
                    point(longitude, latitude)
                ) as distance
            from t_app_user where city_code = #{cityCode} and del_flag = 0 and status = 1
            <if test="null != nearbyReferrer.name and '' != nearbyReferrer.name">
                and `name` like CONCAT('%', #{nearbyReferrer.name}, '%')
            </if>
        ) as aa order by aa.distance
    </select>
</mapper>
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java
@@ -1,7 +1,10 @@
package com.ruoyi.order.controller;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.BaseTable;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.order.service.ShoppingCartService;
import com.ruoyi.order.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -9,12 +12,15 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("/shopping-cart")
@Api(tags = "购物车")
public class ShoppingCartController {
public class ShoppingCartController extends BaseController {
    
    @Resource
    private ShoppingCartService shoppingCartService;
    
    
    @ResponseBody
@@ -24,9 +30,9 @@
            @ApiImplicitParam(name = "type", value = "商品类型(1=服务商品,2=单品商品)", required = true, dataType = "int"),
            @ApiImplicitParam(name = "shopId", value = "核销门店id", required = true, dataType = "int")
    })
    public AjaxResult<BaseTable<MyShoppingCartVo>> getMyShoppingCart(@PathVariable("type") Integer type, @PathVariable("shopId") Integer shopId){
        // todo 待完善 pu
        return AjaxResult.success();
    public TableDataInfo<MyShoppingCartVo> getMyShoppingCart(@PathVariable("type") Integer type, @PathVariable("shopId") Integer shopId){
        startPage();
        return getDataTable(shoppingCartService.getMyShoppingCart(type, shopId));
    }
    
    
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/ShoppingCartMapper.java
File was renamed from ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/ShoppingCartMapper.java
@@ -1,7 +1,8 @@
package com.ruoyi.other.mapper;
package com.ruoyi.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.other.api.domain.ShoppingCart;
import model.ShoppingCart;
public interface ShoppingCartMapper extends BaseMapper<ShoppingCart> {
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java
New file
@@ -0,0 +1,19 @@
package com.ruoyi.order.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.order.vo.MyShoppingCartVo;
import model.ShoppingCart;
import java.util.List;
public interface ShoppingCartService extends IService<ShoppingCart> {
    /**
     * 获取购物车列表数据
     * @param type
     * @param shopId
     * @return
     */
    List<MyShoppingCartVo> getMyShoppingCart(Integer type, Integer shopId);
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
New file
@@ -0,0 +1,63 @@
package com.ruoyi.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.mapper.ShoppingCartMapper;
import com.ruoyi.order.service.ShoppingCartService;
import com.ruoyi.order.vo.MyShoppingCartVo;
import com.ruoyi.other.api.domain.Goods;
import com.ruoyi.other.api.feignClient.GoodsClient;
import model.ShoppingCart;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ShoppingCartServiceImpl extends ServiceImpl<ShoppingCartMapper, ShoppingCart> implements ShoppingCartService {
    @Resource
    private TokenService tokenService;
    @Resource
    private GoodsClient goodsClient;
    /**
     * 获取购物车列表
     * @param type
     * @param shopId
     * @return
     */
    @Override
    public List<MyShoppingCartVo> getMyShoppingCart(Integer type, Integer shopId) {
        Long userid = tokenService.getLoginUserApplet().getUserid();
        //获取对应类型的商品数据
        List<Goods> data = goodsClient.getGoodsByType(type).getData();
        if(null == data){
            throw new RuntimeException("根据类型(1=服务商品,2=单品商品)获取商品数据失败");
        }
        List<Long> goodsIds = data.stream().map(Goods::getId).collect(Collectors.toList());
        //查询符合商品类型的商品数据
        List<ShoppingCart> list = this.list(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid).in(ShoppingCart::getGoodsId, goodsIds));
        List<MyShoppingCartVo> page = new ArrayList<>();
        //构建返回数据
        for (ShoppingCart shoppingCart : list) {
            MyShoppingCartVo vo = new MyShoppingCartVo();
            page.add(vo);
        }
        return page;
    }
}
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ShoppingCartMapper.xml
New file
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.order.mapper.ShoppingCartMapper">
</mapper>
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsController.java
@@ -1,6 +1,7 @@
package com.ruoyi.other.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
@@ -62,10 +63,19 @@
    public R<GoodsVO> goodsDetail(@PathVariable("goodsId") Long goodsId){
        return R.ok(goodsService.goodsDetail(goodsId));
    }
    
    
    /**
     * 根据类型(1=服务商品,2=单品商品)获取商品数据
     * @param type
     * @return
     */
    @ResponseBody
    @PostMapping("/getGoodsByType")
    public R<List<Goods>> getGoodsByType(@RequestParam("type") Integer type){
        List<Goods> list = goodsService.list(new LambdaQueryWrapper<Goods>().eq(Goods::getType, type).eq(Goods::getDelFlag, 0).eq(Goods::getStatus, 2));
        return R.ok(list);
    }
    
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
@@ -10,6 +10,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@@ -35,7 +36,7 @@
    /**
     * 查询指定门店手机号
     */
    @RequestMapping("/selectPhoneByShopId")
    @GetMapping("/selectPhoneByShopId")
    @ApiOperation(value = "查询指定门店手机号", tags = {"小程序-门店详情"})
    public R<List<Phone>> getPhoneByShopId(@ApiParam("门店id") @RequestParam Integer shopId) {
        return R.ok(phoneService.list(new LambdaQueryWrapper<Phone>()
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShoppingCartService.java
File was deleted
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShoppingCartServiceImpl.java
File was deleted
ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShoppingCartMapper.xml
File was deleted