diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java b/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java index 9a0312e3..981c8b54 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/tool/WxController.java @@ -1,5 +1,6 @@ package com.ghy.web.controller.tool; +import cn.hutool.core.collection.ListUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -190,6 +191,72 @@ public class WxController extends BaseController { String data = HttpUtils.sendGet(url, null); JSONObject result = JSONObject.parseObject(data); // 如果是师傅端,需要调用公众号的获取用户列表接口 -- 遍历列表去找到unionId和openid关联并入库 +// if(!"customer".equals(from)){ +// String openid = result.getString("openid"); +// String unionId = result.getString("unionid"); +// // 查询openid是否入库,已经入库则不管 +// Worker param = new Worker(); +// param.setOpenId(openid); +// Worker worker = workerService.selectByOpenId(param); +// if(worker != null && StringUtils.isEmpty(worker.getWxOpenId())){ +// // 公众号token +// String wxToken = WechatMsgUtils.getToken(); +// String wxUserOpenidList = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/user/get?access_token="+wxToken+"&next_openid="); +// logger.info("公众号获取的用户列表集合:{}", wxUserOpenidList); +// JSONObject wxOpenidJson = JSONObject.parseObject(wxUserOpenidList); +// JSONObject openIdListJson = wxOpenidJson.getJSONObject("data"); +// List openidList = openIdListJson.getObject("openid", ArrayList.class); +// JSONArray openidJsonArray = new JSONArray(); +// openidList.forEach(model->{ +// JSONObject openidJson = new JSONObject(); +// openidJson.put("openid", model); +// openidJson.put("lang", "zh_CN"); +// openidJsonArray.add(openidJson); +// }); +// JSONObject jsonParam = new JSONObject(); +// xw jsonParam.put("user_list", openidJsonArray); +// String unionUrl = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token="+WechatMsgUtils.getToken();; +// logger.info("调用获取用户信息,请求url:{}, 请求body:{}", unionUrl, jsonParam.toJSONString()); +// String getUnionResult = HttpUtil.post(unionUrl, jsonParam.toJSONString()); +// logger.info("获取公众号union列表:{}", getUnionResult); +// JSONObject unionJson = JSONObject.parseObject(getUnionResult); +// JSONArray unionJsonArray = unionJson.getJSONArray("user_info_list"); +// for (int index = 0 ; index openidList = openIdListJson.getObject("openid", ArrayList.class); - JSONArray openidJsonArray = new JSONArray(); - openidList.forEach(model->{ - JSONObject openidJson = new JSONObject(); - openidJson.put("openid", model); - openidJson.put("lang", "zh_CN"); - openidJsonArray.add(openidJson); - }); - JSONObject jsonParam = new JSONObject(); - jsonParam.put("user_list", openidJsonArray); - String unionUrl = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token="+WechatMsgUtils.getToken();; - logger.info("调用获取用户信息,请求url:{}, 请求body:{}", unionUrl, jsonParam.toJSONString()); - String getUnionResult = HttpUtil.post(unionUrl, jsonParam.toJSONString()); - logger.info("获取公众号union列表:{}", getUnionResult); - JSONObject unionJson = JSONObject.parseObject(getUnionResult); - JSONArray unionJsonArray = unionJson.getJSONArray("user_info_list"); - for (int index = 0 ; index> batchList = ListUtil.partition(openidList, 99); + for (List childOpenidList : batchList) { + JSONArray openidJsonArray = new JSONArray(); + childOpenidList.forEach(model->{ + JSONObject openidJson = new JSONObject(); + openidJson.put("openid", model); + openidJson.put("lang", "zh_CN"); + openidJsonArray.add(openidJson); + }); + JSONObject jsonParam = new JSONObject(); + jsonParam.put("user_list", openidJsonArray); + String unionUrl = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token="+WechatMsgUtils.getToken();; + logger.info("调用获取用户信息,请求url:{}, 请求body:{}", unionUrl, jsonParam.toJSONString()); + String getUnionResult = HttpUtil.post(unionUrl, jsonParam.toJSONString()); + logger.info("获取公众号union列表:{}", getUnionResult); + JSONObject unionJson = JSONObject.parseObject(getUnionResult); + JSONArray unionJsonArray = unionJson.getJSONArray("user_info_list"); + for (int index = 0 ; index openidList = openIdListJson.getObject("openid", ArrayList.class); + List> batchList = ListUtil.partition(openidList, 99); + for (List childOpenidList : batchList) { + JSONArray openidJsonArray = new JSONArray(); + childOpenidList.forEach(model->{ + JSONObject openidJson = new JSONObject(); + openidJson.put("openid", model); + openidJson.put("lang", "zh_CN"); + openidJsonArray.add(openidJson); + }); + JSONObject jsonParam = new JSONObject(); + jsonParam.put("user_list", openidJsonArray); + String unionUrl = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token="+WechatMsgUtils.getToken();; + logger.info("调用获取用户信息,请求url:{}, 请求body:{}", unionUrl, jsonParam.toJSONString()); + String getUnionResult = HttpUtil.post(unionUrl, jsonParam.toJSONString()); + logger.info("获取公众号union列表:{}", getUnionResult); + JSONObject unionJson = JSONObject.parseObject(getUnionResult); + JSONArray unionJsonArray = unionJson.getJSONArray("user_info_list"); + for (int index = 0 ; index list = workerAreaService.getWorkerAreaList(workerArea); + return getDataTable(list); + } + + @GetMapping() + public String area(Long workerId, ModelMap mmap) + { + mmap.put("workerId", workerId); + return "worker/areaDetail"; + } + /** * 查询某个师傅的所有接单地区 * diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java index de0e917b..d919beb7 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerController.java @@ -100,11 +100,13 @@ public class WorkerController extends BaseController { @ResponseBody public AjaxResult register(@RequestBody Worker request){ try { + logger.info("注册师傅信息:{}", request); if (CacheUtils.get(request.getPhone()) == null){ return AjaxResult.error("验证码无效!"); } // 验证码校验正确 if(CacheUtils.get(request.getPhone()).toString().equals(request.getRegisterCode())){ + logger.info("验证码信息:{}", CacheUtils.get(request.getPhone())); int result = workerService.updateWorker(request); if(result > 0){ CacheUtils.remove(request.getPhone()); diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java index 54efcd65..51282844 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/worker/WorkerGoodsCategoryController.java @@ -1,11 +1,14 @@ package com.ghy.web.controller.worker; import com.ghy.common.constant.Constants; +import com.ghy.common.core.controller.BaseController; import com.ghy.common.core.domain.AjaxResult; +import com.ghy.common.core.page.TableDataInfo; import com.ghy.common.core.text.Convert; import com.ghy.common.utils.StringUtils; import com.ghy.goods.domain.GoodsCategory; import com.ghy.goods.service.GoodsCategoryService; +import com.ghy.worker.domain.WorkerArea; import com.ghy.worker.domain.WorkerGoodsCategory; import com.ghy.worker.request.WorkerGoodsCategorySaveRequest; import com.ghy.worker.service.WorkerGoodsCategoryService; @@ -13,6 +16,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.ui.ModelMap; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; @@ -28,7 +32,7 @@ import java.util.stream.Collectors; @Slf4j @Controller @RequestMapping("worker/goods/category") -public class WorkerGoodsCategoryController { +public class WorkerGoodsCategoryController extends BaseController { @Resource private WorkerGoodsCategoryService workerGoodsCategoryService; @@ -36,6 +40,33 @@ public class WorkerGoodsCategoryController { @Autowired private GoodsCategoryService goodsCategoryService; + + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(WorkerGoodsCategory workerGoodsCategory) { + startPage(); + List list = workerGoodsCategoryService.getByWorker(workerGoodsCategory.getWorkerId()); + for (WorkerGoodsCategory item: list) { + List nameList = new ArrayList(); + // 查询所有父级服务类目,拼接服务名称 + GoodsCategory goodsCategory = goodsCategoryService.selectById(item.getGoodsCategoryId()); + while (goodsCategory.getParentCategoryId() != null) { + nameList.add(goodsCategory.getGoodsCategoryName()); + goodsCategory = goodsCategoryService.selectById(goodsCategory.getParentCategoryId()); + } + Collections.reverse(nameList); + item.setMergeName(StringUtils.join(nameList, Constants.JOIN_SYMBOL)); + } + return getDataTable(list); + } + + @GetMapping() + public String category(Long workerId, ModelMap mmap) + { + mmap.put("workerId", workerId); + return "worker/categoryDetail"; + } + /** * 查询某个师傅的所有服务类目 * diff --git a/ghy-admin/src/main/resources/templates/worker/areaDetail.html b/ghy-admin/src/main/resources/templates/worker/areaDetail.html new file mode 100644 index 00000000..9765621d --- /dev/null +++ b/ghy-admin/src/main/resources/templates/worker/areaDetail.html @@ -0,0 +1,73 @@ + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/ghy-admin/src/main/resources/templates/worker/categoryDetail.html b/ghy-admin/src/main/resources/templates/worker/categoryDetail.html new file mode 100644 index 00000000..35a8495f --- /dev/null +++ b/ghy-admin/src/main/resources/templates/worker/categoryDetail.html @@ -0,0 +1,73 @@ + + + + + + + + + + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/ghy-admin/src/main/resources/templates/worker/worker.html b/ghy-admin/src/main/resources/templates/worker/worker.html index 265b8b99..da772d05 100644 --- a/ghy-admin/src/main/resources/templates/worker/worker.html +++ b/ghy-admin/src/main/resources/templates/worker/worker.html @@ -152,6 +152,8 @@ formatter: function(value, row, index) { if (row.workerId != 1) { var actions = []; + actions.push('服务区域 '); + actions.push('服务技能 '); actions.push('删除 '); return actions.join(''); } else { @@ -170,6 +172,15 @@ $.modal.open("重置密码", url, '800', '300'); } + function areaDetail(id) { + var url = "worker/area?workerId=" + id; + $.modal.open("区域信息", url); + } + + function categoryDetail(id) { + var url = "worker/goods/category?workerId=" + id; + $.modal.open("技能信息", url); + } /* 用户状态显示 */ function statusTools(row) { diff --git a/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java b/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java index 95bf1a39..4f3d84e3 100644 --- a/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java +++ b/ghy-payment/src/main/java/com/ghy/payment/service/AdapayService.java @@ -259,6 +259,7 @@ public class AdapayService { // 目前仅支持:bank_account(银行卡) settleCountParams.put("channel", "bank_account"); settleCountParams.put("account_info", accountInfo); + log.info("创建结算账户请求,会员:{}, 内容:{}", memberId, settleCountParams); return (JSONObject) SettleAccount.create(settleCountParams, deptId.toString()); } diff --git a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerMapper.java b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerMapper.java index bfe9300f..ed750ae7 100644 --- a/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerMapper.java +++ b/ghy-worker/src/main/java/com/ghy/worker/mapper/WorkerMapper.java @@ -14,6 +14,8 @@ public interface WorkerMapper { */ List getWorkerList(Worker worker); + Worker getWorkerByOpenId(@Param("openId") String openId); + /** * @param worker 师傅端 * @return 师傅集合 diff --git a/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml b/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml index aaec7f47..f0daa3c2 100644 --- a/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml +++ b/ghy-worker/src/main/resources/mapper/worker/WorkerMapper.xml @@ -121,6 +121,11 @@ ) + +