From 653da44273cac47058e28a3cad2831ff2e83d864 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 28 十一月 2024 16:31:25 +0800 Subject: [PATCH] 11.28 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TechnicianSubscribeService.java | 1 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/StoreFallbackFactory.java | 35 +++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java | 18 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java | 13 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 14 + ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/TechnicianSubscribeVO.java | 2 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java | 31 +++++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 89 ++++++++++++-- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java | 57 +++++++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java | 4 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml | 31 +++++ ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/StoreClient.java | 24 ++++ 13 files changed, 297 insertions(+), 24 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java index 3e54505..cda2ba0 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java @@ -81,10 +81,20 @@ @ApiModelProperty(value = "推广人id") @TableField("invite_user_id") private Long inviteUserId; + @ApiModelProperty(value = "推广人姓名") + @TableField(exist = false) + private String inviteUserName; + + @ApiModelProperty(value = "当前用户顶级的推广人id") + @TableField("top_invite_id") + private Long topInviteId; @ApiModelProperty(value = "绑定门店id") @TableField("shop_id") private Long shopId; + @ApiModelProperty(value = "绑定门店名称") + @TableField(exist = false) + private String shopName; @ApiModelProperty(value = "合伙人积分数") @TableField("part_point") @@ -130,4 +140,25 @@ @TableField("total_distribution_amount") private BigDecimal total_distribution_amount; + @ApiModelProperty("等级1会员数") + private Long count1; + + @ApiModelProperty("等级2会员数") + private Long count2; + + @ApiModelProperty("等级3会员数") + private Long count3; + + @ApiModelProperty("等级4会员数") + private Long count4; + + @ApiModelProperty("等级5会员数") + private Long count5; + + @ApiModelProperty("等级6会员数") + private Long count6; + + @ApiModelProperty("等级7会员数") + private Long count7; + } diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/StoreFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/StoreFallbackFactory.java new file mode 100644 index 0000000..5c2081e --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/StoreFallbackFactory.java @@ -0,0 +1,35 @@ +package com.ruoyi.other.api.factory; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.Shop; +import com.ruoyi.other.api.feignClient.OrderClient; +import com.ruoyi.other.api.feignClient.StoreClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 充电订单服务降级处理 + * + * @author ruoyi + */ +@Component +public class StoreFallbackFactory implements FallbackFactory<StoreClient> +{ + private static final Logger log = LoggerFactory.getLogger(StoreFallbackFactory.class); + + + @Override + public StoreClient create(Throwable cause) { + log.error("商品订单调用失败:{}", cause.getMessage()); + return new StoreClient() { + + + @Override + public R<Shop> getStoreById(Long id) { + return R.fail("根据门店id查询详情:" + cause.getMessage()); + } + }; + } +} diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/StoreClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/StoreClient.java new file mode 100644 index 0000000..79cc539 --- /dev/null +++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/StoreClient.java @@ -0,0 +1,24 @@ +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.Shop; +import com.ruoyi.other.api.factory.OrderFallbackFactory; +import com.ruoyi.other.api.factory.StoreFallbackFactory; +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 ruoyi + */ +@FeignClient(contextId = "StoreClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = StoreFallbackFactory.class) +public interface StoreClient { + @PostMapping(value = "/shop/getDetailById") + public R<Shop> getStoreById(@RequestParam("id") Long id); + + +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index 3318a24..1443c9e 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -1,10 +1,15 @@ package com.ruoyi.account.controller; +import java.time.LocalDateTime; import com.ruoyi.account.api.model.AppUser; +import com.ruoyi.account.api.model.UserCancellationLog; import com.ruoyi.account.service.AppUserService; +import com.ruoyi.account.service.UserCancellationLogService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.other.api.domain.Shop; +import com.ruoyi.other.api.feignClient.StoreClient; import org.junit.Test; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -37,6 +42,12 @@ + @Resource + private TokenService tokenService; + @Resource + private AppUserService appUserService; + @Resource + private StoreClient storeClient; @@ -99,26 +110,74 @@ return AjaxResult.success(); } - @Resource - private TokenService tokenService; - @Resource - private AppUserService appUserService; + + @ResponseBody + @PostMapping("/info") + @ApiOperation(value = "我的资料", tags = {"小程序-个人中心首页-我的资料"}) + public R<AppUser> info(){ + Long userId = tokenService.getLoginUserApplet().getUserId(); + AppUser user = appUserService.getById(userId); + return R.ok(user); + } + @Resource + private UserCancellationLogService userCancellationLogService; + + @ResponseBody + @PostMapping("/unregis") + @ApiOperation(value = "注销", tags = {"小程序-个人中心首页-我的资料"}) + public R unregis(){ + Long userId = tokenService.getLoginUserApplet().getUserId(); + AppUser user = appUserService.getById(userId); + + //添加注销记录 + UserCancellationLog userCancellationLog = new UserCancellationLog(); + userCancellationLog.setAppUserId(user.getId()); + userCancellationLog.setVipId(user.getVipId()); + userCancellationLogService.save(userCancellationLog); + + + return R.ok(); + } + + @PostMapping("/index") @ApiOperation(value = "个人中心首页", tags = {"小程序-个人中心首页"}) - @Test - public void index(){ + public R<AppUser> index(){ System.err.println("=-===="); -// Long userId = tokenService.getLoginUserApplet().getUserId(); - } - public void test(Long userId,Integer count){ - List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, userId).list(); - count = count + list.size(); - for (AppUser appUser : list) { - test(appUser.getId(),count); - } + Long userId = tokenService.getLoginUserApplet().getUserId(); + //当前用户信息 + AppUser user = appUserService.getById(userId); + //当前用户的推荐人信息 + if (user.getInviteUserId()!=null){ + AppUser inviteUser = appUserService.getById(user.getInviteUserId()); + user.setInviteUserName(inviteUser.getName()); + } + //当前绑定门店的店铺信息 + if (user.getShopId()!=null){ + R<Shop> storeById = storeClient.getStoreById(user.getShopId()); + if (storeById.getData()!=null){ + user.setShopName(storeById.getData().getName()); + } + } + Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getTopInviteId, userId).count(); + Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getTopInviteId, userId).count(); + Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getTopInviteId, userId).count(); + Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getTopInviteId, userId).count(); + Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getTopInviteId, userId).count(); + Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getTopInviteId, userId).count(); + Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getTopInviteId, userId).count(); + user.setCount1(count1); + user.setCount2(count2); + user.setCount3(count3); + user.setCount4(count4); + user.setCount5(count5); + user.setCount6(count6); + user.setCount7(count7); + return R.ok(user); - } + } + } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java index 0139d23..6d0bdf9 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserAddressController.java @@ -1,8 +1,16 @@ package com.ruoyi.account.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.account.api.model.AppUser; +import com.ruoyi.account.api.model.UserAddress; +import com.ruoyi.account.service.UserAddressService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.security.service.TokenService; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -16,5 +24,50 @@ @RequestMapping("/user-address") public class UserAddressController { + @Resource + private TokenService tokenService; + @Resource + private UserAddressService userAddressService; + @ResponseBody + @PostMapping("/add") + @ApiOperation(value = "添加", tags = {"小程序-个人中心首页-我的地址"}) + public R add(@RequestBody UserAddress userAddress){ + Long userId = tokenService.getLoginUserApplet().getUserId(); + userAddress.setAppUserId(userId); + userAddressService.save(userAddress); + return R.ok(); + } + @ResponseBody + @PostMapping("/edit") + @ApiOperation(value = "编辑", tags = {"小程序-个人中心首页-我的地址"}) + public R edit(@RequestBody UserAddress userAddress){ + userAddressService.updateById(userAddress); + return R.ok(); + } + @ResponseBody + @PostMapping("/delete") + @ApiOperation(value = "删除", tags = {"小程序-个人中心首页-我的地址"}) + public R edit(@RequestParam Integer id){ + userAddressService.removeById(id); + return R.ok(); + } + + @ResponseBody + @PostMapping("/set") + @ApiOperation(value = "设为默认", tags = {"小程序-个人中心首页-我的地址"}) + public R set(@RequestParam Integer id){ + Long userId = tokenService.getLoginUserApplet().getUserId(); + List<UserAddress> list = userAddressService.lambdaQuery().eq(UserAddress::getAppUserId, userId).list(); + for (UserAddress userAddress : list) { + userAddress.setIsDefault(0); + } + userAddressService.updateBatchById(list); + + UserAddress byId = userAddressService.getById(id); + byId.setIsDefault(1); + userAddressService.updateById(byId); + return R.ok(); + } + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java index fd5ea9f..2ff4a44 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.AppUser; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.security.utils.SecurityUtils; @@ -15,10 +16,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; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -42,6 +40,14 @@ @Resource private AppUserClient appUserClient; + + @PostMapping("/getDetailById") + public R<Shop> getDetailById(@RequestParam("id") Long id){ + Shop byId = shopService.getById(id); + return R.ok(byId); + } + + /** * 附近门店列表 */ diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java index 36b76f0..5c14a3f 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java @@ -52,7 +52,7 @@ * 取消服务 */ @GetMapping("/cancel") - @ApiOperation(value = "取消服务", notes = "取消服务", tags = {"小程序-个人中心-门店管理-预约列表-取消服务"}) + @ApiOperation(value = "取消服务", notes = "取消服务", tags = {"小程序-个人中心-门店管理-预约列表-取消服务","小程序-个人中心-我的预约"}) public AjaxResult cancel(@ApiParam(value = "预约id") @RequestParam Long id){ TechnicianSubscribe subscribe = technicianSubscribeService.getOne(new LambdaQueryWrapper<TechnicianSubscribe>() @@ -66,5 +66,16 @@ return success(); } + + @GetMapping("/home/list") + @ApiOperation(value = "列表", notes = "列表", tags = {"小程序-个人中心-我的预约"}) + public TableDataInfo homelist(@ApiParam(value = "状态 0=待服务,1=已服务,2=已取消 4 已到期") @RequestParam Integer status){ + startPage(); + List<TechnicianSubscribeVO> list = technicianSubscribeService + .getTechnicianSubscribeByUser(SecurityUtils.getUserId(),status); + return getDataTable(list); + } + + } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java index 2854a20..5c8bce3 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VipSettingController.java @@ -1,8 +1,17 @@ package com.ruoyi.other.controller; +import com.ruoyi.account.api.model.AppUser; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.other.api.domain.VipSetting; +import com.ruoyi.other.service.VipSettingService; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -15,6 +24,13 @@ @RestController @RequestMapping("/vip-setting") public class VipSettingController { - + @Resource + private VipSettingService vipSettingService; + @PostMapping("/info") + @ApiOperation(value = "获取各级会员信息", tags = {"小程序-个人中心首页"}) + public R<List<VipSetting>> info(){ + List<VipSetting> list = vipSettingService.list(); + return R.ok(list); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java index 372bfbb..b3a3294 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TechnicianSubscribeMapper.java @@ -24,4 +24,6 @@ */ public List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(@Param("userId") Long userId, @Param("shopId") Long shopId); + public List<TechnicianSubscribeVO> getTechnicianSubscribeByUser(@Param("userId") Long userId, + @Param("status") Integer status); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TechnicianSubscribeService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TechnicianSubscribeService.java index 2bbdf42..b93273d 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TechnicianSubscribeService.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TechnicianSubscribeService.java @@ -20,5 +20,6 @@ * 查询用于指定门店的相关预约记录 */ List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(Long userId, Long shopId); + List<TechnicianSubscribeVO> getTechnicianSubscribeByUser(Long userId, Integer status); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java index a1e6e7f..341e3b9 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java @@ -28,4 +28,8 @@ public List<TechnicianSubscribeVO> getTechnicianSubscribeByUserAndShop(Long userId, Long shopId) { return technicianSubscribeMapper.getTechnicianSubscribeByUserAndShop(userId, shopId); } + @Override + public List<TechnicianSubscribeVO> getTechnicianSubscribeByUser(Long userId, Integer status) { + return technicianSubscribeMapper.getTechnicianSubscribeByUser(userId, status); + } } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/TechnicianSubscribeVO.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/TechnicianSubscribeVO.java index 699342d..1ec6886 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/TechnicianSubscribeVO.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/TechnicianSubscribeVO.java @@ -49,6 +49,6 @@ /** * 预约状态:0=待服务,1=已服务,2=已取消 */ - @ApiModelProperty(value = "预约状态:0=待服务,1=已服务,2=已取消") + @ApiModelProperty(value = "预约状态:0=待服务,1=已服务,2=已取消 4 已到期") private Integer status; } diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml index c9c6dd8..db3137e 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TechnicianSubscribeMapper.xml @@ -24,4 +24,35 @@ AND tts.del_flag = 0 ORDER BY tts.create_time DESC </select> + + <select id="getTechnicianSubscribeByUser" resultType="com.ruoyi.other.vo.TechnicianSubscribeVO"> + SELECT * from ( + SELECT + tts.user_address, + ts.`name` shopName, + ts.address shopAddress, + tt.name technicianName, + tts.subscribe_time, + tts.service_mode, + CASE + WHEN tts.subscribe_time lt; NOW() THEN 4 + ELSE tts.status + END AS status + FROM + t_technician_subscribe tts + LEFT JOIN t_technician tt ON tts.technician_id = tt.id AND tt.del_flag = 0 + LEFT JOIN t_shop ts ON tt.shop_id = ts.id AND ts.del_flag = 0 + WHERE + tts.app_user_id = #{userId} + AND tts.del_flag = 0 + ORDER BY tts.create_time DESC + + ) o + <where> + <if test="status !=null"> + o.status = #{status} + </if> + </where> + + </select> </mapper> \ No newline at end of file -- Gitblit v1.7.1