Pu Zhibing
2024-11-29 d2542a6123fa6834e01ed3af23c7ba0a02696bc6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.ruoyi.other.controller;
 
 
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.security.utils.SecurityUtils;
import com.ruoyi.other.api.domain.Shop;
import com.ruoyi.other.enums.ShopStatus;
import com.ruoyi.other.service.ShopService;
import com.ruoyi.other.service.TechnicianService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.other.vo.NearbyShopVO;
import com.ruoyi.other.vo.ShopDetailVO;
import com.ruoyi.other.vo.VerifiableShopVo;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author luodangjia
 * @since 2024-11-20
 */
@RestController
@RequestMapping("/shop")
@Api(tags = "门店")
public class ShopController extends BaseController {
    @Resource
    private TechnicianService technicianService;
    @Resource
    private ShopService shopService;
    @Resource
    private AppUserClient appUserClient;
 
 
    @PostMapping("/getDetailById")
    public R<Shop> getDetailById(@RequestParam("id") Long id){
        Shop byId = shopService.getById(id);
        return R.ok(byId);
    }
 
 
    /**
     * 附近门店列表
     */
    @GetMapping("/nearbyShopList")
    @ApiOperation(value = "附近门店列表", tags = {"小程序-首页-附近门店列表"})
    public R<List<NearbyShopVO>> nearbyShopList(@ApiParam("经度") @RequestParam String longitude,
                                                @ApiParam("纬度") @RequestParam String latitude) {
        return R.ok(shopService.nearbyShopList(longitude, latitude));
    }
 
    /**
     * 门店详情
     */
    @GetMapping("/technicianList")
    @ApiOperation(value = "技师列表", tags = {"技师列表-小程序"})
    public AjaxResult technicianList(@ApiParam("门店id") @RequestParam String shopId){
        return success(technicianService.list(new LambdaQueryWrapper<Technician>()
                .eq(Technician::getShopId,shopId)
                .eq(Technician::getStatus,2)
                .eq(Technician::getSubscribeStatus,1)));
    }
 
    @GetMapping("/shopDetail")
    @ApiOperation(value = "门店详情", tags = {"小程序-首页-门店详情"})
    public R<ShopDetailVO> shopDetail(@ApiParam("门店id") @RequestParam Integer shopId,
                                      @ApiParam("经度") @RequestParam String longitude,
                                      @ApiParam("纬度") @RequestParam String latitude) {
        return R.ok(shopService.getShopDetail(shopId, longitude, latitude));
    }
 
    /**
     * 查询当前店长所属门店
     */
    @GetMapping("/shopByUser")
    @ApiOperation(value = "查询当前店长所属门店", tags = {"小程序-个人中心-首页"}, notes = "可绑定的门店列表")
    public R<List<Shop>> shopByUser() {
        List<Shop> list = shopService.list(new LambdaQueryWrapper<Shop>()
                .eq(Shop::getAppUserId, SecurityUtils.getUserId())
                .eq(Shop::getStatus, ShopStatus.SHOP_STATUS_NORMAL.getCode()));
        return R.ok(list);
    }
 
    /**
     * 绑定门店
     */
    @GetMapping("/bindShop")
    @ApiOperation(value = "绑定门店", tags = {"小程序-个人中心-绑定门店"})
    public R<Void> bindShop(@ApiParam("门店id") @RequestParam Long shopId) {
        AppUser appUser = appUserClient.getAppUserById(SecurityUtils.getUserId());
        appUser.setShopId(shopId);
        appUserClient.editAppUserById(appUser);
        return R.ok();
    }
 
 
 
    @ResponseBody
    @GetMapping("/getVerifiableShop")
    @ApiOperation(value = "获取可核销门店列表", tags = {"购物车-小程序"})
    public R<List<VerifiableShopVo>> getVerifiableShop(){
        // todo 待完善 pu
        return R.ok();
    }
    
    
    /**
     * 根据id获取门店信息
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/getShopById")
    public R<Shop> getShopById(@RequestParam("id") Integer id){
        Shop shop = shopService.getById(id);
        return R.ok(shop);
    }
}