From 83430e4bd60f9a44ec76698fa04ee8d3373a1087 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 15 七月 2024 13:40:06 +0800
Subject: [PATCH] 代码提交
---
server/service/src/main/java/com/doumee/service/business/ShopService.java | 15 +++
server/web/src/main/java/com/doumee/api/web/CustomerApi.java | 47 ++++++++
server/service/src/main/java/com/doumee/dao/business/model/Users.java | 18 +++
server/service/src/main/java/com/doumee/dao/business/model/Shop.java | 26 +++++
server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java | 21 ++++
server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 90 +++++++++++++++++
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 35 +++++++
server/service/src/main/java/com/doumee/service/business/UsersService.java | 2
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 25 ++--
9 files changed, 255 insertions(+), 24 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Shop.java b/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
index c58df25..ce9b58c 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Shop.java
@@ -9,6 +9,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -120,7 +122,7 @@
@ApiModelProperty(value = "鎵�灞炲叧鑱擲鐮�", example = "1")
@ExcelColumn(name="鎵�灞炲叧鑱擲鐮�")
private String scode;
- @ApiModelProperty(value = "娉ㄥ唽鍦�" )
+ @ApiModelProperty(value = "娉ㄥ唽鍦�(IAM)" )
@ExcelColumn(name="娉ㄥ唽鍦�")
private String regAddr;
@ApiModelProperty(value = "娉曚汉韬唤璇佸彿" )
@@ -188,6 +190,19 @@
@ApiModelProperty(value = "閮ㄩ棬绾у埆璺緞", example = "1")
@ExcelColumn(name="閮ㄩ棬绾у埆璺緞")
private String namePath;
+
+ @ApiModelProperty(value = "缁忓害", example = "1")
+ @ExcelColumn(name="缁忓害")
+ private BigDecimal longitude;
+
+ @ApiModelProperty(value = "绾害", example = "1")
+ @ExcelColumn(name="绾害")
+ private BigDecimal latitude;
+
+ @ApiModelProperty(value = "鍦板潃")
+ @ExcelColumn(name="鍦板潃")
+ private String address;
+
@ApiModelProperty(value = "鐖剁骇閮ㄩ棬绾у埆璺緞", example = "1")
@TableField(exist = false)
private String parentIdPath;
@@ -215,4 +230,13 @@
@ApiModelProperty(value = "涓嬬骇閮ㄩ棬闆嗗悎", example = "1")
@TableField(exist = false)
private List<Shop> childList;
+
+ @ApiModelProperty(value = "璺濈 ", example = "1")
+ @TableField(exist = false)
+ private BigDecimal distance;
+
+ @ApiModelProperty(value = "闂ㄥ簵瀵艰喘鍒楄〃 ", example = "1")
+ @TableField(exist = false)
+ private List<Users> usersList;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Users.java b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
index 54c9563..13c869f 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Users.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
@@ -134,8 +134,8 @@
@ExcelColumn(name="鏈嶅姟瀹㈡埛鏁�")
private Integer costomerNum;
- @ApiModelProperty(value = "浠庝笟骞存湀(yyyy-MM)")
- @ExcelColumn(name="浠庝笟骞存湀(yyyy-MM)")
+ @ApiModelProperty(value = "浠庝笟骞翠唤")
+ @ExcelColumn(name="浠庝笟骞存湀")
private String jobDate;
@ApiModelProperty(value = "瀹d紶璇�")
@@ -145,6 +145,10 @@
@ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
@ExcelColumn(name="涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
private String qrcodeImg;
+
+ @ApiModelProperty(value = "浼佷笟浜岀淮鐮佸浘鐗囧湴鍧�")
+ @ExcelColumn(name="浼佷笟浜岀淮鐮佸浘鐗囧湴鍧�")
+ private String companyQrcodeImg;
@ApiModelProperty(value = "閭")
@ExcelColumn(name="閭")
@@ -179,7 +183,15 @@
@ApiModelProperty(value = "瀹屾暣澶村儚褰�")
@TableField(exist = false)
private String imgurlFull;
- @ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧湴鍧�")
+ @ApiModelProperty(value = "涓汉浜岀淮鐮佸浘鐗囧畬鏁村湴鍧�")
@TableField(exist = false)
private String qrcodeImgFull;
+ @ApiModelProperty(value = "闂ㄥ簵鍦板潃")
+ @TableField(exist = false)
+ private String shopAddress;
+
+ @ApiModelProperty(value = "浼佷笟浜岀淮鐮佸浘鐗囧畬鏁村湴鍧�")
+ @TableField(exist = false)
+ private String companyQrcodeImgFull;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java b/server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java
new file mode 100644
index 0000000..756b2f4
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/web/reqeust/ShopQueryByLLDTO.java
@@ -0,0 +1,21 @@
+package com.doumee.dao.web.reqeust;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+public class ShopQueryByLLDTO {
+
+ @ApiModelProperty(value = "缁忓害")
+ private String longitude;
+
+ @ApiModelProperty(value = "绾害")
+ private String latitude;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/ShopService.java b/server/service/src/main/java/com/doumee/service/business/ShopService.java
index e087c15..38bd705 100644
--- a/server/service/src/main/java/com/doumee/service/business/ShopService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ShopService.java
@@ -5,6 +5,7 @@
import com.doumee.dao.admin.request.UpdateShopSortDTO;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.vo.ShopTreeVo;
+import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -110,4 +111,18 @@
void dealShopNamePath();
List<Shop> listByParent(String parentId);
+
+ /**
+ * 鏍规嵁缁忕含搴� 鑾峰彇闂ㄥ簵鍒楄〃
+ * @param pageWrap
+ * @return
+ */
+ PageData<Shop> queryShopByLL(PageWrap<Shop> pageWrap);
+
+ /**
+ * 闂ㄥ簵璇︽儏
+ * @param id
+ * @return
+ */
+ Shop shopDetail(Long id,Long memberId);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/UsersService.java b/server/service/src/main/java/com/doumee/service/business/UsersService.java
index e31e89b..0aad93d 100644
--- a/server/service/src/main/java/com/doumee/service/business/UsersService.java
+++ b/server/service/src/main/java/com/doumee/service/business/UsersService.java
@@ -105,4 +105,6 @@
void bindingOpenid(String code,Long userId);
String importBatch(MultipartFile file);
+
+ Users usersDetail(Long userId);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 18e6aa8..f6e2164 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -259,14 +259,13 @@
@Override
public AccountResponse wxLogin(String code){
-// try {
- //鑾峰彇寰俊鏁忔劅鏁版嵁
-// WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
-// String openId = session.getOpenid();
-// if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
-// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
-// }
- String openId = code;
+ try {
+// 鑾峰彇寰俊鏁忔劅鏁版嵁
+ WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
+ String openId = session.getOpenid();
+ if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
+ }
Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId));
if (member == null) {
member = new Member();
@@ -281,13 +280,13 @@
String token = JwtTokenUtil.generateToken(payLoad);
AccountResponse accountResponse = new AccountResponse();
accountResponse.setToken(token);
-// accountResponse.setSessionKey(session.getSessionKey());
+ accountResponse.setSessionKey(session.getSessionKey());
accountResponse.setMember(member);
return accountResponse;
-// } catch (WxErrorException e) {
-// e.printStackTrace();
-// }
-// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
+ } catch (WxErrorException e) {
+ e.printStackTrace();
+ }
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
}
@Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index 2a03951..62ed2f3 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
@@ -12,15 +13,15 @@
import com.doumee.dao.admin.request.FcodeImport;
import com.doumee.dao.admin.request.ShopImport;
import com.doumee.dao.admin.request.UpdateShopSortDTO;
-import com.doumee.dao.business.CategoryMapper;
import com.doumee.dao.business.CategorySegMapper;
+import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.SegmentsMapper;
-import com.doumee.dao.business.ShopMapper;
+import com.doumee.dao.business.UsersMapper;
import com.doumee.dao.business.join.ShopJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ShopTree;
import com.doumee.dao.business.vo.ShopTreeVo;
-import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.reqeust.ShopQueryByLLDTO;
import com.doumee.service.business.ShopService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -41,7 +42,6 @@
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
/**
* 蹇楅偊缁勭粐淇℃伅琛⊿ervice瀹炵幇
@@ -55,10 +55,17 @@
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private ShopJoinMapper shopMapper;
+
@Autowired
private SegmentsMapper segmentsMapper;
@Autowired
private CategorySegMapper categorySegMapper;
+ @Autowired
+ private UsersMapper usersMapper;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private MemberMapper memberMapper;
@Override
public Long create(Shop shop) {
@@ -858,4 +865,79 @@
}
}
}
+
+
+
+ @Override
+ public PageData<Shop> queryShopByLL(PageWrap<Shop> pageWrap) {
+ if(Objects.isNull(pageWrap.getModel())
+ || Objects.isNull(pageWrap.getModel().getLatitude())
+ || Objects.isNull(pageWrap.getModel().getLongitude())){
+ return null;
+ }
+ IPage<Shop> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MPJLambdaWrapper<Shop> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+ " CONVERT (ST_Distance_Sphere (point ("+pageWrap.getModel().getLongitude()+", "+pageWrap.getModel().getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ")
+ .eq("isdeleted",Constants.ZERO)
+ .isNotNull("LATITUDE")
+ .isNotNull("LONGITUDE")
+ .eq("ATTRIBUTE",Constants.ONE)
+ .orderByAsc(" distance ");
+ Utils.MP.blankToNull(pageWrap.getModel());
+ PageData<Shop> pageData = PageData.from(shopMapper.selectPage(page, queryWrapper));
+ String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+ StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+ for (Shop shop:pageData.getRecords()) {
+ //鏌ヨ闂ㄥ簵涓嬪璐暟鎹�
+ List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
+ .eq(Users::getIsdeleted,Constants.ZERO)
+ .eq(Users::getStatus,Constants.ONE)
+ .eq(Users::getType,Constants.ZERO)
+ );
+ for (Users users:usersList) {
+ if(StringUtils.isNotBlank(users.getImgurl())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ }
+ shop.setUsersList(usersList);
+ }
+ return pageData;
+ }
+
+ @Override
+ public Shop shopDetail(Long id,Long memberId) {
+ Member member = memberMapper.selectById(memberId);
+ if(Objects.isNull(member)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鐢ㄦ埛淇℃伅");
+ }
+ QueryWrapper<Shop> queryWrapper = new QueryWrapper<Shop>();
+ //濡傛灉浜哄憳娌℃湁缁忕含搴︿俊鎭紝鍒欎笉鏌ヨ璺濈
+ if(Objects.nonNull(member.getLatitude())&&Objects.nonNull(member.getLongitude())){
+ queryWrapper.select("ID,NAME,ADDRESS,PROVINCE_NAME,CITY_NAME,AREA_NAME,TOWN,AREA_NAME,LEGAL_PHONE," +
+ " CONVERT (ST_Distance_Sphere (point ("+member.getLongitude()+", "+member.getLatitude()+" ), point ( LONGITUDE, LATITUDE )) /1000,decimal(15,2)) as distance ");
+ }
+ queryWrapper.eq("id",id);
+ Shop shop = shopMapper.selectOne(queryWrapper);
+ if(Objects.isNull(shop)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+ StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+ List<Users> usersList =usersMapper.selectList(new QueryWrapper<Users>().lambda().eq(Users::getDepartmentId,shop.getId())
+ .eq(Users::getIsdeleted,Constants.ZERO)
+ .eq(Users::getStatus,Constants.ONE)
+ .eq(Users::getType,Constants.ZERO)
+ );
+ for (Users users:usersList) {
+ if(StringUtils.isNotBlank(users.getImgurl())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ }
+ shop.setUsersList(usersList);
+ return shop;
+ }
+
+
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 64a7de6..e92832d 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -600,5 +600,40 @@
return null;
}
+
+
+ @Override
+ public Users usersDetail(Long userId){
+ Users users = usersMapper.selectById(userId);
+ if(Objects.isNull(users)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
+ StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
+ if(StringUtils.isNotBlank(users.getImgurl())){
+ users.setImgurlFull(prefix + users.getImgurl());
+ }
+ if(StringUtils.isNotBlank(users.getQrcodeImg())){
+ users.setQrcodeImgFull(prefix + users.getQrcodeImg());
+ }
+ if(StringUtils.isNotBlank(users.getCompanyQrcodeImg())){
+ users.setCompanyQrcodeImgFull(prefix + users.getCompanyQrcodeImg());
+ }
+ if(Objects.nonNull(users.getDepartmentId())){
+ Shop shop = shopMapper.selectById(users.getDepartmentId());
+ if(Objects.nonNull(shop)){
+ users.setShopName(shop.getName());
+ if(StringUtils.isNotBlank(shop.getAddress())){
+ users.setShopAddress(shop.getAddress());
+ }else{
+ users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName()+shop.getTown()+shop.getRegAddr());
+ }
+ }
+ }
+ return users;
+ }
+
+
+
}
diff --git a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
index 3c9c591..ac281c0 100644
--- a/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -4,19 +4,22 @@
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.CustomerLog;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.dao.web.response.BjParamConfigResponse;
-import com.doumee.service.business.BjParamService;
-import com.doumee.service.business.CustomerService;
-import com.doumee.service.business.MemberService;
+import com.doumee.service.business.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -48,6 +51,12 @@
@Autowired
private ZbomCRMService zbomCRMService;
+
+ @Autowired
+ private ShopService shopService;
+
+ @Autowired
+ private UsersService usersService;
@ApiOperation(value = "瀹㈡埛绔皬绋嬪簭鐧婚檰", notes = "瀹㈡埛绔皬绋嬪簭")
@GetMapping("/wxLoginCustomer")
@@ -146,5 +155,37 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @LoginRequired
+ @ApiOperation("闂ㄥ簵鍒楄〃")
+ @PostMapping("/shopPage") @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse<PageData<Shop>> shopPage (@RequestBody PageWrap<Shop> pageWrap) {
+ return ApiResponse.success(shopService.queryShopByLL(pageWrap));
+ }
+
+
+ @LoginRequired
+ @ApiOperation("闂ㄥ簵璇︽儏")
+ @GetMapping("/shopDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "shopId", value = "闂ㄥ簵涓婚敭", required = true)
+ })
+ public ApiResponse<Shop> shopDetail (@RequestParam Long shopId) {
+ Long memberId = this.getMemberId();
+ return ApiResponse.success(shopService.shopDetail(shopId,memberId));
+ }
+
+ @LoginRequired
+ @ApiOperation("瀵艰喘璇︽儏")
+ @GetMapping("/usersDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "Long", name = "userId", value = "瀵艰喘涓婚敭", required = true)
+ })
+ public ApiResponse<Users> usersDetail (@RequestParam Long userId) {
+ return ApiResponse.success(usersService.usersDetail(userId));
+ }
}
--
Gitblit v1.9.3