From 0ef04f3572223bcee3b3496e3b8a863b12f6526a Mon Sep 17 00:00:00 2001 From: fengjundan <1436525664@qq.com> Date: Wed, 21 Jul 2021 18:56:48 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=202?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=94=AF=E4=BB=98=E5=AE=9Dsdk=203=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=94=A8=E6=88=B7=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 + .../system/controller/SysUserController.java | 1 + xhpc-modules/xhpc-user/pom.xml | 5 +- .../controller/XhpcAppUserController.java | 82 ++++++++- .../XhpcInternetUserController.java | 16 +- .../controller/XhpcOperatorController.java | 29 +-- ...pcOperatorInternetBlacklistController.java | 3 +- ...hpcStationInternetBlacklistController.java | 3 +- .../user/controller/XhpcUserController.java | 43 +++-- .../com/xhpc/user/domain/XhpcAppUser.java | 34 +++- .../xhpc/user/domain/XhpcInternetUser.java | 16 +- .../com/xhpc/user/domain/XhpcOperator.java | 13 +- .../domain/XhpcOperatorInternetBlacklist.java | 6 +- .../domain/XhpcStationInternetBlacklist.java | 6 +- .../xhpc/user/mapper/XhpcAppUserMapper.java | 23 +++ .../user/openfeign/RemoteSystemService.java | 9 +- .../user/service/IXhpcAppUserUserService.java | 36 ++++ .../service/impl/XhpcAppUserServiceImpl.java | 173 ++++++++++++++++++ .../service/impl/XhpcUserServiceImpl.java | 2 +- .../resources/mapper/XhpcAppUserMapper.xml | 129 ++++++++++++- .../resources/mapper/XhpcOperatorMapper.xml | 13 +- .../main/resources/mapper/XhpcUserMapper.xml | 11 +- 22 files changed, 579 insertions(+), 81 deletions(-) diff --git a/pom.xml b/pom.xml index b00c9c21..1ff79310 100644 --- a/pom.xml +++ b/pom.xml @@ -38,6 +38,7 @@ 4.1.2 2.6.2 3.2.2 + 4.15.14.ALL @@ -236,6 +237,12 @@ ${ruoyi.version} + + + com.alipay.sdk + alipay-sdk-java + ${alipay.sdk} + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index d5357950..3a706b55 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -55,6 +55,7 @@ public class SysUserController extends BaseController { @PreAuthorize(hasPermi = "system:user:list") @GetMapping("/list") public TableDataInfo list(SysUser user) { + Long userId = SecurityUtils.getUserId(); startPage(); List list = userService.selectUserList(user); return getDataTable(list); diff --git a/xhpc-modules/xhpc-user/pom.xml b/xhpc-modules/xhpc-user/pom.xml index 23994037..52e96c91 100644 --- a/xhpc-modules/xhpc-user/pom.xml +++ b/xhpc-modules/xhpc-user/pom.xml @@ -85,7 +85,10 @@ org.projectlombok lombok - + + com.alipay.sdk + alipay-sdk-java + diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java index 044e90b2..1b52ce31 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcAppUserController.java @@ -1,5 +1,10 @@ package com.xhpc.user.controller; +import com.alipay.api.AlipayClient; +import com.alipay.api.DefaultAlipayClient; +import com.alipay.api.request.AlipaySystemOauthTokenRequest; +import com.alipay.api.response.AlipaySystemOauthTokenResponse; +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.core.web.page.TableDataInfo; @@ -9,6 +14,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -30,7 +36,7 @@ public class XhpcAppUserController extends BaseController { @ApiOperation("C端用户详情") @PreAuthorize(hasPermi = "app:user:info") @GetMapping("/info") - public AjaxResult info(@RequestBody Long appUserId) { + public AjaxResult info(@RequestParam Long appUserId) { return AjaxResult.success(iXhpcAppUserUserService.info(appUserId)); } @@ -51,8 +57,80 @@ public class XhpcAppUserController extends BaseController { @ApiOperation("禁用/启用C端用户") @PreAuthorize(hasPermi = "app:user:status") @PostMapping("/status") - public AjaxResult status(@RequestBody Long appUserId) { + public AjaxResult status(@RequestParam Long appUserId) { iXhpcAppUserUserService.status(appUserId); return AjaxResult.success(); } + + /** + * 以下为小程序接口 + */ + + /** + * C端用户注册 + */ + @ApiOperation("注册") + @PostMapping("/register") + public R register(@RequestBody Map map) { + return iXhpcAppUserUserService.register(map); + } + + /** + * C端用户登录 + */ + @ApiOperation("登录") + @PostMapping("/login") + public R login(@RequestBody Map map) { + return iXhpcAppUserUserService.login(map); + } + + /** + * 小程序用户详情 + */ + @ApiOperation("小程序用户详情") + @GetMapping("/appInfo") + public AjaxResult appInfo(@RequestBody Long appUserId) { + return AjaxResult.success(iXhpcAppUserUserService.info(appUserId)); + } + + /** + * 小程序用户退出 + */ + @ApiOperation("小程序用户退出") + @PostMapping("/loginOut") + public R loginOut(HttpServletRequest request, @RequestParam String type) { + return iXhpcAppUserUserService.loginOut(request, type); + } + + /** + * C端用户自动登录 + */ + @ApiOperation("C端用户自动登录") + @PostMapping("/voluntaryLogin") + public R voluntaryLogin(@RequestBody Map map) { + return iXhpcAppUserUserService.voluntaryLogin(map); + } + + /** + * 支付宝授权 + */ + @ApiOperation("支付宝授权") + @PostMapping("/alipayEmpower") + public AjaxResult alipayEmpower(@RequestParam String code) throws Exception { + String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjHDksTgZTpf0wh7oeTVRp0h3SqzTM2smjEJnx9jF1+q3WSXLRB4OzSzq7VsJ/szcyK10ZGO5PxeQ4u9GAG/U+7xhs7ei1cJB/Er55Sg9SbjfkTpwlDv181UJCRJJ/IAcqyqezwTpB8e2trYmHKovUdt0KR9/tVkGa7hsNd5GfxTOUaAFc3zADqRVM+wGimtG0NYfOF2f8tkmBEAiMMLKq5pbAnHU723a1cm/nfVp7gvXfsnO0k2GvRuHzb8mxIhWLiAnwdK9gEu5za/jWxo/xIvf2sdJPYdWj+yfyzA2e1fJkx4uRUzX31CXxZvP2/tfEcnTdI0gxN+OH2eAMiPVswIDAQAB"; + String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCw3YH8KMvE7yH6C/rgnbXjml5NMvCcRNl+tbR9QEjl/9AdDIZaYvlQ72oKiOIk7GmDh3sB0YmiFnTcCj7cmKpZd2wLEP0nwwxTGTbBXi1bo/wQUI1a/mNA8rYZfwxfQZ07E28M2kMB+PE29clu+xo8TtjgiX7jofzEyQfES1uZMMDNLA+1cAYc0ZYo0NCJYEFpXm5SJHauC5+biQnOte49EbmzoXuYRap2RBf6suHEflAEgovk9L+hfPelXKG88lQNtg4w6jzNYRcuBa3IZlTJbLPGxH35eCMu0UGpa5EyH/nK+QrycESvEOfJ60urIU5FmOB2ikly2bgLLXZ43oedAgMBAAECggEBAKWt2qYsUTYaDOn/bvQayNh9Mvl+TocUt+lKrdjm72MFUB7mLLVfIc3/eIaF09Ji5DSiJUh+0T9VagL2VgyvtmQ4yq1TLNKilFkDtZdOcY72/pkJ3GDxDGk68/rOWPiirnc4rT6M91hRqySg+iFMeDcmZWNxabwzcmWlK/Fl5liJD03WNEuUNKE5qD9lQwgJEH9x8XxOtfgTk84UPoscOkHTsK7rhgcagbqT6q40DMfqzjoE0BxdTHAtuXbkhWP49UHFMzyilTbk/fQhpxngqnTXsnS8R8gzg/r5xFmss88yVTWCcjonjkBQGuyuyXIgEHhIrAt8WwXHODqlnttglMECgYEA+bE2G6zKoeQ4ZMmCgj9s894BB8dwtY3u4veM/F2g7b1qt6gh6KCRb+yHv0sOUCVLGsc6mbh/pcw2Ply68ZRleysAog7tAnNIw3YQJtYM1+5To9dCElq0oLBCU8szYgvIrwla00uHFkovrspn4HCwVDmJyQC3Dk9zICP44RlXCyMCgYEAtVVQ4c/mTtkym0iy10YY1HskWiOwAjb0/VnTkXsclePfX/ld3EfUwCeRn93ANhm7Fql8emiU9K5nTx1n/erGhT4AyzMLf3/y4KhIJRa+4dhae6J0W3Sd9oZOnXUiC0WsVxEMVn2BIa9HMFaKdyrKGiu2Vmzqn0Y39xpjPzwrrj8CgYB1MpmMCeGedUmG/RJ14iFYocZoCVO8097hx4H0XloP3M1/YLpxvxQkrafVwPv54FdNPWAjEPdRMfXv9YSFqbqsQjXs2waiFMx9eigAoo2quKGnkHzhspN/rNulCwaWKaPLjJ+F97hzXOTerQBu11XcYplqsBw76kzGNDw4I7W4cwKBgGkAHxay6PyNXnV2kkB/kY8wQyuC8L9HjXNK2WyrajENQ2JypjwQyAwAnZ2BrXRmT+ReffrvphlNB/tS3s20bgHnllQTmbvZng0ixKvdUOi7/CENP+1ZSMLgoJMiqXT3gkTkVU2b3PNhaIqAAivg9ihTWYEQDofuBCgs+n06XVzHAoGAcJKdJR2PPMIkfS7zHec02pZGLiC1mvxQx4rjKKT+OvIyD98KipWCDXieYKseqN2V6EjZE/Nhekpi2Bybhrm8iSQoiJilwaQ33DoBYCnW/pjfwxVLM7ch3fQGsOxJMFLcEC8KLu2k/nZkTGCrfJzmcB9ODA2pfaVXfTA57KIPxuk="; + String appId = "2021002156615717"; + AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", appId, privateKey, "json", "GBK", alipayPublicKey, "RSA2"); + AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); + request.setGrantType("authorization_code"); + request.setCode("4b203fe6c11548bcabd8da5bb087a83b"); + AlipaySystemOauthTokenResponse response = alipayClient.execute(request); + if (response.isSuccess()) { + System.out.println("调用成功"); + } else { + System.out.println("调用失败"); + } + return AjaxResult.success(response); + } + } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInternetUserController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInternetUserController.java index bcfe707b..324e10ab 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInternetUserController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcInternetUserController.java @@ -1,6 +1,7 @@ package com.xhpc.user.controller; import com.ruoyi.common.core.utils.SecurityUtils; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; @@ -13,6 +14,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -38,7 +40,7 @@ public class XhpcInternetUserController extends BaseController { @ApiOperation("新增流量用户") @PreAuthorize(hasPermi = "user:internet:add") @PostMapping("/add") - public AjaxResult add(@RequestBody XhpcInternetUser xhpcInternetUser) { + public AjaxResult add(@Valid @RequestBody XhpcInternetUser xhpcInternetUser) { SysUser sysUser = new SysUser(); sysUser.setUserName(xhpcInternetUser.getPhone()); sysUser.setNickName(xhpcInternetUser.getName()); @@ -50,7 +52,7 @@ public class XhpcInternetUserController extends BaseController { sysUser.setCreateBy(SecurityUtils.getUsername()); sysUser.setPassword(SecurityUtils.encryptPassword(xhpcInternetUser.getPhone())); AjaxResult ajaxResult = remoteSystemService.addUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } return toAjax(iXhpcInternetUserService.insert(xhpcInternetUser)); @@ -62,7 +64,7 @@ public class XhpcInternetUserController extends BaseController { @ApiOperation("修改流量用户") @PreAuthorize(hasPermi = "user:internet:edit") @PostMapping("/edit") - public AjaxResult edit(@RequestBody XhpcInternetUser xhpcInternetUser) { + public AjaxResult edit(@Valid @RequestBody XhpcInternetUser xhpcInternetUser) { if (null == xhpcInternetUser.getInternetUserId()) { return AjaxResult.error("用户id不能为空"); } @@ -77,7 +79,7 @@ public class XhpcInternetUserController extends BaseController { sysUser.setCreateBy(SecurityUtils.getUsername()); sysUser.setPassword(SecurityUtils.encryptPassword(xhpcInternetUser.getPhone())); AjaxResult ajaxResult = remoteSystemService.editUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } return toAjax(iXhpcInternetUserService.update(xhpcInternetUser)); @@ -89,7 +91,7 @@ public class XhpcInternetUserController extends BaseController { @ApiOperation("删除流量用户") @PreAuthorize(hasPermi = "user:internet:remove") @PostMapping("/remove") - public AjaxResult remove(@RequestBody Long[] ids) { + public AjaxResult remove(@RequestParam Long[] ids) { iXhpcInternetUserService.deleteByIds(ids); return AjaxResult.success(); } @@ -100,7 +102,7 @@ public class XhpcInternetUserController extends BaseController { @ApiOperation("流量用户详情") @PreAuthorize(hasPermi = "user:internet:info") @GetMapping("/info") - public AjaxResult info(@RequestBody Long internetUserId) { + public AjaxResult info(@RequestParam Long internetUserId) { return AjaxResult.success(iXhpcInternetUserService.info(internetUserId)); } @@ -121,7 +123,7 @@ public class XhpcInternetUserController extends BaseController { @ApiOperation("禁用/启用流量用户") @PreAuthorize(hasPermi = "user:internet:status") @PostMapping("/status") - public AjaxResult status(@RequestBody Long internetUserId) { + public AjaxResult status(@RequestParam Long internetUserId) { iXhpcInternetUserService.status(internetUserId); return AjaxResult.success(); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorController.java index 519dcf55..178d9f18 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorController.java @@ -2,6 +2,7 @@ package com.xhpc.user.controller; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.utils.SecurityUtils; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; @@ -14,6 +15,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -36,9 +38,9 @@ public class XhpcOperatorController extends BaseController { * 新增运营商 */ @ApiOperation("新增运营商") - @PreAuthorize(hasPermi = "user:operator:add") + //@PreAuthorize(hasPermi = "user:operator:add") @PostMapping("/add") - public AjaxResult add(@RequestBody XhpcOperator xhpcOperator) { + public AjaxResult add(@Valid @RequestBody XhpcOperator xhpcOperator) { SysUser sysUser = new SysUser(); sysUser.setUserName(xhpcOperator.getPhone()); sysUser.setNickName(xhpcOperator.getName()); @@ -50,8 +52,11 @@ public class XhpcOperatorController extends BaseController { sysUser.setDataPowerType(1); sysUser.setCreateBy(SecurityUtils.getUsername()); sysUser.setPassword(SecurityUtils.encryptPassword(xhpcOperator.getPhone())); + Long[] roleIds = new Long[1]; + roleIds[0] = 3l; + sysUser.setRoleIds(roleIds); AjaxResult ajaxResult = remoteSystemService.addUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } if (UserConstants.NOT_UNIQUE.equals(iXhpcOperatorService.checkAccountUnique(xhpcOperator))) { @@ -66,7 +71,7 @@ public class XhpcOperatorController extends BaseController { @ApiOperation("修改运营商") @PreAuthorize(hasPermi = "user:operator:edit") @PostMapping("/edit") - public AjaxResult edit(@RequestBody XhpcOperator xhpcOperator) { + public AjaxResult edit(@Valid @RequestBody XhpcOperator xhpcOperator) { if (null == xhpcOperator.getOperatorId()) { return AjaxResult.error("运营商id不能为空"); } @@ -82,7 +87,7 @@ public class XhpcOperatorController extends BaseController { sysUser.setCreateBy(SecurityUtils.getUsername()); sysUser.setPassword(SecurityUtils.encryptPassword(xhpcOperator.getPhone())); AjaxResult ajaxResult = remoteSystemService.editUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } if (UserConstants.NOT_UNIQUE.equals(iXhpcOperatorService.checkAccountUnique(xhpcOperator))) { @@ -95,9 +100,9 @@ public class XhpcOperatorController extends BaseController { * 删除运营商 */ @ApiOperation("删除运营商") - @PreAuthorize(hasPermi = "user:operator:remove") + //@PreAuthorize(hasPermi = "user:operator:remove") @PostMapping("/remove") - public AjaxResult remove(@RequestBody Long[] ids) { + public AjaxResult remove(@PathVariable Long[] ids) { iXhpcOperatorService.deleteByIds(ids); return AjaxResult.success(); } @@ -106,16 +111,16 @@ public class XhpcOperatorController extends BaseController { * 运营商详情 */ @ApiOperation("运营商详情") - @PreAuthorize(hasPermi = "user:operator:info") + //@PreAuthorize(hasPermi = "user:operator:info") @GetMapping("/info") - public AjaxResult info(@RequestBody Long operatorId) { + public AjaxResult info(@RequestParam Long operatorId) { return AjaxResult.success(iXhpcOperatorService.info(operatorId)); } /** * 获取运营商分页列表 */ - @PreAuthorize(hasPermi = "system:operator:page") + //@PreAuthorize(hasPermi = "system:operator:page") @GetMapping("/page") public TableDataInfo page(String name, String contactName, String contactPhone) { startPage(); @@ -127,9 +132,9 @@ public class XhpcOperatorController extends BaseController { * 禁用/启用运营商 */ @ApiOperation("禁用/启用运营商") - @PreAuthorize(hasPermi = "user:operator:status") + //@PreAuthorize(hasPermi = "user:operator:status") @PostMapping("/status") - public AjaxResult status(@RequestBody Long operatorId) { + public AjaxResult status(@RequestParam Long operatorId) { iXhpcOperatorService.status(operatorId); return AjaxResult.success(); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorInternetBlacklistController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorInternetBlacklistController.java index 841a1852..c75d0442 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorInternetBlacklistController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcOperatorInternetBlacklistController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -31,7 +32,7 @@ public class XhpcOperatorInternetBlacklistController extends BaseController { @ApiOperation("新增流量用户") @PreAuthorize(hasPermi = "operator:internet:add") @PostMapping("/add") - public AjaxResult add(@RequestBody List list) { + public AjaxResult add(@Valid @RequestBody List list) { if (null != list && list.size() > 0) { Long operatorId = list.get(0).getOperatorId(); xhpcOperatorInternetBlacklistService.deleteByIds(operatorId); diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcStationInternetBlacklistController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcStationInternetBlacklistController.java index e38917d3..9c373003 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcStationInternetBlacklistController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcStationInternetBlacklistController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -31,7 +32,7 @@ public class XhpcStationInternetBlacklistController extends BaseController { @ApiOperation("新增电站流量方黑名单") @PreAuthorize(hasPermi = "station:internet:add") @PostMapping("/add") - public AjaxResult add(@RequestBody List list) { + public AjaxResult add(@Valid @RequestBody List list) { if (null != list && list.size() > 0) { Long internetUserId = list.get(0).getInternetUserId(); iXhpcStationInternetBlacklistService.deleteByIds(internetUserId); diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java index 0dd2f60f..626a1684 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcUserController.java @@ -1,12 +1,14 @@ package com.xhpc.user.controller; import com.ruoyi.common.core.utils.SecurityUtils; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.security.annotation.PreAuthorize; import com.ruoyi.system.api.domain.SysUser; import com.xhpc.user.openfeign.RemoteSystemService; +import com.xhpc.user.service.IXhpcOperatorService; import com.xhpc.user.service.IXhpcUserService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -30,12 +32,15 @@ public class XhpcUserController extends BaseController { @Autowired private RemoteSystemService remoteSystemService; + @Autowired + private IXhpcOperatorService iXhpcOperatorService; + /** * 获取平台用户分页列表 */ - @PreAuthorize(hasPermi = "user:pc:page") + //@PreAuthorize(hasPermi = "user:pc:page") @GetMapping("/pc/page") - public TableDataInfo pcpage(String userName, String nickName) { + public TableDataInfo pcPage(String userName, String nickName) { startPage(); List> list = iXhpcUserService.selectPcUserList(userName, nickName); return getDataTable(list); @@ -54,7 +59,7 @@ public class XhpcUserController extends BaseController { sysUser.setUserType("00"); sysUser.setCreateBy(SecurityUtils.getUsername()); AjaxResult ajaxResult = remoteSystemService.addUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } return AjaxResult.success(); @@ -71,7 +76,7 @@ public class XhpcUserController extends BaseController { return AjaxResult.error("用户id不能为空"); } AjaxResult ajaxResult = remoteSystemService.editUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } return AjaxResult.success(); @@ -81,7 +86,7 @@ public class XhpcUserController extends BaseController { * 平台用户详情 */ @ApiOperation("平台用户详情") - @PreAuthorize(hasPermi = "user:pc:info") + //@PreAuthorize(hasPermi = "user:pc:info") @GetMapping("/pc/info") public AjaxResult pcInfo(@RequestBody Long userId) { return AjaxResult.success(iXhpcUserService.pcInfo(userId)); @@ -91,7 +96,8 @@ public class XhpcUserController extends BaseController { /** * 获取运营上用户分页列表 */ - @PreAuthorize(hasPermi = "user:operator:page") + @ApiOperation("获取运营上用户分页列表") + //@PreAuthorize(hasPermi = "user:operator:page") @GetMapping("/operator/page") public TableDataInfo operatorPage(String userName, String nickName, Long operatorId) { startPage(); @@ -107,7 +113,7 @@ public class XhpcUserController extends BaseController { @PostMapping("/operator/add") public AjaxResult operatorAdd(@RequestBody SysUser sysUser) { if (null == sysUser.getOperatorId()) { - return AjaxResult.error("所属运营上不能为空"); + return AjaxResult.error("所属运营商不能为空"); } sysUser.setPhonenumber(sysUser.getUserName()); sysUser.setDeptId(103l); @@ -115,7 +121,7 @@ public class XhpcUserController extends BaseController { sysUser.setUserType("03"); sysUser.setCreateBy(SecurityUtils.getUsername()); AjaxResult ajaxResult = remoteSystemService.addUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } return AjaxResult.success(); @@ -135,7 +141,7 @@ public class XhpcUserController extends BaseController { return AjaxResult.error("所属运营上不能为空"); } AjaxResult ajaxResult = remoteSystemService.editUser(sysUser); - if (null != ajaxResult && !"200".equals(ajaxResult.get("code"))) { + if (null != ajaxResult && !"200".equals(StringUtils.valueOf(ajaxResult.get("code")))) { return ajaxResult; } return AjaxResult.success(); @@ -145,9 +151,9 @@ public class XhpcUserController extends BaseController { * 运营商用户详情 */ @ApiOperation("运营商用户详情") - @PreAuthorize(hasPermi = "user:operator:info") + //@PreAuthorize(hasPermi = "user:operator:info") @GetMapping("/operator/info") - public AjaxResult operatorInfo(@RequestBody Long userId) { + public AjaxResult operatorInfo(@RequestParam Long userId) { return AjaxResult.success(iXhpcUserService.operatorInfo(userId)); } @@ -155,12 +161,21 @@ public class XhpcUserController extends BaseController { * 禁用/启用平台和运营商子账号 */ @ApiOperation("禁用/启用平台和运营商子账号") - @PreAuthorize(hasPermi = "user:pc:status") + //@PreAuthorize(hasPermi = "user:pc:status") @PostMapping("/status") - public AjaxResult status(@RequestBody Long userId) { + public AjaxResult status(@RequestParam Long userId) { iXhpcUserService.status(userId); return AjaxResult.success(); } - + /** + * 禁用/启用平台和运营商子账号 + */ + @ApiOperation("禁用/启用平台和运营商子账号") + //@PreAuthorize(hasPermi = "user:pc:status") + @PostMapping("/remove") + public AjaxResult remove(@RequestParam Long userId) { + iXhpcOperatorService.removeUser(userId); + return AjaxResult.success(); + } } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcAppUser.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcAppUser.java index b9206c33..4e19c715 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcAppUser.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcAppUser.java @@ -2,6 +2,8 @@ package com.xhpc.user.domain; import com.ruoyi.common.core.web.domain.BaseEntity; +import java.math.BigDecimal; + /** * C端用户 xhpc_app_user @@ -31,6 +33,16 @@ public class XhpcAppUser extends BaseEntity { */ private String alipayOpenId; + /** + * 微信是否登录(0未登录 1已登录) + */ + private Integer weixinLogin; + + /** + * 支付宝是否登录(0未登录 1已登录) + */ + private Integer alipayLogin; + /** * 头像地址 */ @@ -39,7 +51,7 @@ public class XhpcAppUser extends BaseEntity { /** * 余额 */ - private Double balance; + private BigDecimal balance; /** * 密码(加密) @@ -88,6 +100,22 @@ public class XhpcAppUser extends BaseEntity { this.alipayOpenId = alipayOpenId; } + public Integer getWeixinLogin() { + return weixinLogin; + } + + public void setWeixinLogin(Integer weixinLogin) { + this.weixinLogin = weixinLogin; + } + + public Integer getAlipayLogin() { + return alipayLogin; + } + + public void setAlipayLogin(Integer alipayLogin) { + this.alipayLogin = alipayLogin; + } + public String getAvatar() { return avatar; } @@ -96,11 +124,11 @@ public class XhpcAppUser extends BaseEntity { this.avatar = avatar; } - public Double getBalance() { + public BigDecimal getBalance() { return balance; } - public void setBalance(Double balance) { + public void setBalance(BigDecimal balance) { this.balance = balance; } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcInternetUser.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcInternetUser.java index 57d7ccc7..8ecba55e 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcInternetUser.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcInternetUser.java @@ -3,6 +3,7 @@ package com.xhpc.user.domain; import com.ruoyi.common.core.web.domain.BaseEntity; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.util.Date; @@ -16,7 +17,7 @@ public class XhpcInternetUser extends BaseEntity { /** * 用户id */ - @NotBlank(message = "用户id不能为空") + @NotNull(message = "用户id不能为空") private Long internetUserId; /** @@ -52,31 +53,30 @@ public class XhpcInternetUser extends BaseEntity { /** * 卡号 */ - @NotBlank(message = "卡号不能为空") + @NotNull(message = "卡号不能为空") private Integer cardNumber; /** * 合作开始时间 */ - @NotBlank(message = "合作开始时间不能为空") + @NotNull(message = "合作开始时间不能为空") private Date cooperationStartTime; /** * 合作结束时间 */ - @NotBlank(message = "合作结束时间不能为空") + @NotNull(message = "合作结束时间不能为空") private Date cooperationEndTime; /** * 余额 */ - @NotBlank(message = "余额不能为空") private Double money; /** * 地址code */ - @NotBlank(message = "地址不能为空") + @NotNull(message = "地址不能为空") private Integer areaCode; /** @@ -94,13 +94,13 @@ public class XhpcInternetUser extends BaseEntity { /** * 提成类型(0总金额提成 1服务费提成) */ - @NotBlank(message = "提成类型不能为空") + @NotNull(message = "提成类型不能为空") private Integer commissionType; /** * 提成率 */ - @NotBlank(message = "提成率不能为空") + @NotNull(message = "提成率不能为空") private Double commissionRate; /** diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperator.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperator.java index c6769a17..e7f3219e 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperator.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperator.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.web.domain.BaseEntity; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; /** * 运营商表 xhpc_operator @@ -47,7 +48,7 @@ public class XhpcOperator extends BaseEntity { /** * 运营商属性 */ - @NotBlank(message = "运营商属性不能为空") + @NotNull(message = "运营商属性不能为空") private Integer attribute; /** @@ -65,7 +66,7 @@ public class XhpcOperator extends BaseEntity { /** * 经度 */ - @NotBlank(message = "经度不能为空") + @NotNull(message = "经度不能为空") private String longitude; /** @@ -83,19 +84,19 @@ public class XhpcOperator extends BaseEntity { /** * 提成类型(0总金额提成 1服务费提成) */ - @NotBlank(message = "提成类型不能为空") + @NotNull(message = "提成类型不能为空") private Integer commissionType; /** * 平台提成 */ - @NotBlank(message = "平台提成不能为空") + @NotNull(message = "平台提成不能为空") private Double platformCommissionRate; /** * 运维提成 */ - @NotBlank(message = "运维提成不能为空") + @NotNull(message = "运维提成不能为空") private Double maintenanceCommissionRate; /** @@ -107,7 +108,7 @@ public class XhpcOperator extends BaseEntity { /** * 提现时间(tn) */ - @NotBlank(message = "提现时间不能为空") + @NotNull(message = "提现时间不能为空") private Integer withdrawalTime; /** diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperatorInternetBlacklist.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperatorInternetBlacklist.java index 13f49591..2a8f34a6 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperatorInternetBlacklist.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcOperatorInternetBlacklist.java @@ -1,6 +1,6 @@ package com.xhpc.user.domain; -import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -15,13 +15,13 @@ public class XhpcOperatorInternetBlacklist implements Serializable { /** * 运营商id */ - @NotBlank(message = "运营商id不能为空") + @NotNull(message = "运营商id不能为空") private Long operatorId; /** * 流量用户id */ - @NotBlank(message = "流量用户id不能为空") + @NotNull(message = "流量用户id不能为空") private Long internetUserId; diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcStationInternetBlacklist.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcStationInternetBlacklist.java index 69a03f98..4027210c 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcStationInternetBlacklist.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcStationInternetBlacklist.java @@ -1,6 +1,6 @@ package com.xhpc.user.domain; -import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; /** @@ -15,13 +15,13 @@ public class XhpcStationInternetBlacklist implements Serializable { /** * 流量用户id */ - @NotBlank(message = "流量用户id不能为空") + @NotNull(message = "流量用户id不能为空") private Long internetUserId; /** * 电站id */ - @NotBlank(message = "电站id不能为空") + @NotNull(message = "电站id不能为空") private Long chargingStationId; diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java index b43240bf..7926a410 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java @@ -13,6 +13,14 @@ import java.util.Map; */ public interface XhpcAppUserMapper { + /** + * 新增 C端用户信息 + * + * @param xhpcAppUser C端用户信息 + * @return 结果 + */ + public int insert(XhpcAppUser xhpcAppUser); + /** * 修改C端用户信息 * @@ -38,4 +46,19 @@ public interface XhpcAppUserMapper { */ public List> selectAppUserList(@Param("phone") String phone); + /** + * 手机号查询C端用户信息 + * + * @param phone 手机号 + * @return 结果 + */ + public XhpcAppUser getAppUserByPhone(@Param("phone") String phone); + + /** + * openid查询C端用户信息 + * + * @param openid + * @return 结果 + */ + public XhpcAppUser getAppUserByOpenid(@Param("openid") String openid); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/openfeign/RemoteSystemService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/openfeign/RemoteSystemService.java index ad1d6169..dfeb2628 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/openfeign/RemoteSystemService.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/openfeign/RemoteSystemService.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.system.api.domain.SysUser; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -21,8 +22,8 @@ public interface RemoteSystemService { * @param sysUser 用户信息 * @return 结果 */ - @PostMapping(value = "/user/add") - public AjaxResult addUser(@RequestBody SysUser sysUser); + @PostMapping(value = "/user") + public AjaxResult addUser(@Validated @RequestBody SysUser sysUser); /** * 新增用户 @@ -30,7 +31,7 @@ public interface RemoteSystemService { * @param sysUser 用户信息 * @return 结果 */ - @PutMapping(value = "/user/edit") - public AjaxResult editUser(@RequestBody SysUser sysUser); + @PutMapping(value = "/user") + public AjaxResult editUser(@Validated @RequestBody SysUser sysUser); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java index 27388e59..8b800970 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java @@ -1,7 +1,9 @@ package com.xhpc.user.service; +import com.ruoyi.common.core.domain.R; import com.xhpc.user.domain.XhpcAppUser; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -44,4 +46,38 @@ public interface IXhpcAppUserUserService { * @return 结果 */ public void status(Long appUserId); + + /** + * C端用户注册 + * + * @param map C端用户 phone 手机号 code 验证码 type 登录方式1微信2小程序 + * @return 结果 + */ + public R register(Map map); + + /** + * C端用户登录 + * + * @param map C端用户 phone 手机号 code 验证码 type 登录方式1微信2小程序 + * @return 结果 + */ + public R login(Map map); + + /** + * 小程序用户退出 + * + * @param request + * @param type 退出方式1微信2小程序 + * @return + */ + public R loginOut(HttpServletRequest request, String type); + + /** + * C端用户自动登录 + * + * @param map + * @return + */ + public R voluntaryLogin(Map map); + } \ No newline at end of file diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java index d05592bd..3b670821 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java @@ -1,12 +1,23 @@ package com.xhpc.user.service.impl; +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.enums.UserStatus; +import com.ruoyi.common.core.exception.BaseException; +import com.ruoyi.common.core.exception.CaptchaException; +import com.ruoyi.common.core.utils.SecurityUtils; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.redis.service.RedisService; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.api.model.LoginUser; import com.xhpc.user.domain.XhpcAppUser; import com.xhpc.user.mapper.XhpcAppUserMapper; import com.xhpc.user.service.IXhpcAppUserUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -21,6 +32,11 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { @Autowired private XhpcAppUserMapper xhpcAppUserMapper; + @Autowired + private RedisService redisService; + + @Autowired + private TokenService tokenService; /** * 更新C端用户 @@ -70,4 +86,161 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { xhpcAppUser.setStatus("0".equals(status) ? 1 : 0); update(xhpcAppUser); } + + /** + * C端用户注册 + * + * @param map C端用户 phone 手机号 code 验证码 type 登录方式1微信2小程序 + * @return 结果 + */ + @Override + public R register(Map map) { + String code = StringUtils.valueOf(map.get("code")); + String phone = StringUtils.valueOf(map.get("phone")); + String type = StringUtils.valueOf(map.get("type")); + String openid = StringUtils.valueOf(map.get("openid")); + if (StringUtils.isEmpty(openid)) { + throw new CaptchaException("openid不能为空"); + } + + if (StringUtils.isEmpty(code)) { + throw new CaptchaException("验证码不能为空"); + } + + /*String verifyKey = Constants.CAPTCHA_CODE_KEY + phone; + String captcha = redisService.getCacheObject(verifyKey); + redisService.deleteObject(verifyKey); + + if (!code.equalsIgnoreCase(captcha)) + { + throw new CaptchaException("验证码错误"); + }*/ + XhpcAppUser info = xhpcAppUserMapper.getAppUserByPhone(phone); + if (StringUtils.isNotNull(info)) { + throw new CaptchaException("账号已存在"); + } + XhpcAppUser xhpcAppUser = new XhpcAppUser(); + xhpcAppUser.setPhone(phone); + String password = phone.substring(phone.length() - 6); + xhpcAppUser.setPassword(SecurityUtils.encryptPassword(password)); + xhpcAppUserMapper.insert(xhpcAppUser); + return appLogin(phone, type, openid); + } + + /** + * C端用户登录 + * + * @param map C端用户 phone 手机号 code 验证码 type 登录方式1微信2小程序 + * @return 结果 + */ + @Override + public R login(Map map) { + String code = StringUtils.valueOf(map.get("code")); + String phone = StringUtils.valueOf(map.get("phone")); + String type = StringUtils.valueOf(map.get("type")); + if (StringUtils.isEmpty(code)) { + throw new CaptchaException("验证码不能为空"); + } + String openid = StringUtils.valueOf(map.get("openid")); + if (StringUtils.isEmpty(openid)) { + throw new CaptchaException("openid不能为空"); + } + /*String verifyKey = Constants.CAPTCHA_CODE_KEY + phone; + String captcha = redisService.getCacheObject(verifyKey); + redisService.deleteObject(verifyKey); + + if (!code.equalsIgnoreCase(captcha)) + { + throw new CaptchaException("验证码错误"); + }*/ + + return appLogin(phone, type, openid); + } + + /** + * 登录 + */ + public R appLogin(String username, String type, String openid) { + // 用户名或密码为空 错误 + if (StringUtils.isAnyBlank(username)) { + throw new BaseException("用户必须填写"); + } + // 用户名不在指定范围内 错误 + if (username.length() < UserConstants.USERNAME_MIN_LENGTH + || username.length() > UserConstants.USERNAME_MAX_LENGTH) { + throw new BaseException("用户名不在指定范围"); + } + // 查询用户信息 + XhpcAppUser user = xhpcAppUserMapper.getAppUserByPhone(username); + if (StringUtils.isNull(user)) { + throw new BaseException("登录用户:" + username + " 不存在"); + } + LoginUser userInfo = new LoginUser(); + SysUser sysUser = new SysUser(); + sysUser.setUserName(user.getPhone()); + sysUser.setUserId(user.getAppUserId()); + userInfo.setSysUser(sysUser); + if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { + throw new BaseException("对不起,您的账号:" + username + " 已被删除"); + } + if (UserStatus.DISABLE.getCode().equals(user.getStatus())) { + throw new BaseException("对不起,您的账号:" + username + " 已停用"); + } + if ("1".equals(type)) { + if (StringUtils.isNull(user.getWeixinOpenId())) { + user.setWeixinOpenId(openid); + } + user.setWeixinLogin(1); + } else { + if (StringUtils.isNull(user.getAlipayOpenId())) { + user.setAlipayOpenId(openid); + } + user.setAlipayLogin(1); + } + xhpcAppUserMapper.update(user); + // 获取登录token + return R.ok(tokenService.createToken(userInfo)); + } + + /** + * 小程序用户退出 + * + * @param request + * @return 结果 + */ + @Override + public R loginOut(HttpServletRequest request, String type) { + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) { + String username = loginUser.getUsername(); + // 删除用户缓存记录 + tokenService.delLoginUser(loginUser.getToken()); + XhpcAppUser user = xhpcAppUserMapper.getAppUserByPhone(username); + if (StringUtils.isNull(user)) { + if ("1".equals(type)) { + user.setWeixinLogin(0); + } else { + user.setAlipayLogin(0); + } + xhpcAppUserMapper.update(user); + } + } + return R.ok(); + } + + /** + * C端用户自动登录 + * + * @param map type 登录方式1微信2小程序 openid 微信或支付宝openid + * @return + */ + public R voluntaryLogin(Map map) { + String type = StringUtils.valueOf(map.get("type")); + String openid = StringUtils.valueOf(map.get("openid")); + XhpcAppUser user = xhpcAppUserMapper.getAppUserByOpenid(openid); + if (StringUtils.isNull(user)) { + throw new BaseException("用户不存在"); + } + return appLogin(user.getPhone(), type, openid); + } } \ No newline at end of file diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java index 37db2636..bf0c33af 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcUserServiceImpl.java @@ -66,7 +66,7 @@ public class XhpcUserServiceImpl implements IXhpcUserService { public List> selectOperatorUserList(String userName, String nickName, Long operatorId) { Long userId = SecurityUtils.getUserId(); SysUser sysUser = xhpcUserMapper.selectUserByUserId(userId); - if ("00".equals(sysUser.getDataPowerType())) { + if ("00".equals(sysUser.getUserType())) { return xhpcUserMapper.selectOperatorUserList(userName, nickName, operatorId, null); } else { return xhpcUserMapper.selectOperatorUserList(userName, nickName, operatorId, sysUser.getUserName()); diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml index 659d1f10..e6960e5e 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml @@ -9,6 +9,8 @@ + + @@ -21,12 +23,118 @@ + + INSERT INTO xhpc_app_user + + + app_user_id, + + + phone, + + + weixin_open_id, + + + alipay_open_id, + + + weixin_login, + + + alipay_login, + + + avatar, + + + balance, + + + password, + + + status, + + + del_flag, + + + create_by, + + + create_time, + + + update_by, + + + update_time, + + + remark + + + + + #{appUserId}, + + + #{phone}, + + + #{weixinOpenId}, + + + #{alipayOpenId}, + + + #{weixinLogin}, + + + #{alipayLogin}, + + + #{avatar}, + + + #{balance}, + + + #{password}, + + + #{status}, + + + #{delFlag}, + + + #{createBy}, + + + #{createTime}, + + + #{updateBy}, + + + #{updateTime}, + + + #{remark} + + + + UPDATE xhpc_app_user phone = #{phone}, weixin_open_id = #{weixinOpenId}, alipay_open_id = #{alipayOpenId}, + weixin_login = #{weixinLogin}, + alipay_login = #{alipayLogin}, avatar = #{avatar}, balance = #{balance}, password = #{password}, @@ -43,11 +151,12 @@ @@ -64,5 +173,15 @@ ORDER BY create_time DESC + + \ No newline at end of file diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcOperatorMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcOperatorMapper.xml index c14fca92..e4c7d547 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcOperatorMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcOperatorMapper.xml @@ -43,7 +43,8 @@ - insert into xhpc_operator( + insert into xhpc_operator + operator_id, @@ -116,8 +117,10 @@ remark - )values( - + + + + #{operatorId}, @@ -189,7 +192,7 @@ #{remark} - ) + @@ -242,7 +245,7 @@ + select su.user_id userId,su.user_name userName, - su.nick_name nickName, su.email, - su.create_by createBy ,su.create_time createTime, + su.nick_name nickName, su.email,su.sex, + su.create_by createBy ,su.create_time createTime,xo.operator_id operatorId, xo.`name` operatorName,su.`status` , CASE WHEN su.`status` = 0 THEN '正常' else '禁用' end statusName, sdd.dict_label sexName