forked from rongchao/epmet-cloud-rizhao
				
			
				 27 changed files with 570 additions and 58 deletions
			
			
		| @ -0,0 +1,79 @@ | |||
| package com.epmet.controller; | |||
| 
 | |||
| import com.dingtalk.api.DefaultDingTalkClient; | |||
| import com.dingtalk.api.DingTalkClient; | |||
| import com.dingtalk.api.request.OapiGettokenRequest; | |||
| import com.dingtalk.api.request.OapiSnsGetuserinfoBycodeRequest; | |||
| import com.dingtalk.api.request.OapiUserGetbyunionidRequest; | |||
| import com.dingtalk.api.request.OapiV2UserGetRequest; | |||
| import com.dingtalk.api.response.OapiGettokenResponse; | |||
| import com.dingtalk.api.response.OapiSnsGetuserinfoBycodeResponse; | |||
| import com.dingtalk.api.response.OapiUserGetbyunionidResponse; | |||
| import com.dingtalk.api.response.OapiV2UserGetResponse; | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.taobao.api.ApiException; | |||
| import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.RequestMethod; | |||
| import org.springframework.web.bind.annotation.RequestParam; | |||
| import org.springframework.web.bind.annotation.RestController; | |||
| 
 | |||
| /** | |||
|  * 免登第三方网站 | |||
|  * | |||
|  * @author openapi@dingtalk | |||
|  */ | |||
| @RestController("dingtalk") | |||
| public class DingdingLoginController { | |||
| 
 | |||
|     /** | |||
|      * 获取授权用户的个人信息 openapi@dingtalk | |||
|      * | |||
|      * @return | |||
|      * @throws Exception ServiceResult<Map<String,Object>> 2020-11-4 | |||
|      */ | |||
|     @RequestMapping(value = "/auth", method = RequestMethod.GET) | |||
|     public Result<String> getDdScan(@RequestParam("code") String code) throws Exception { | |||
|         // 获取access_token,注意正式代码要有异常流处理
 | |||
|         String access_token = this.getToken(); | |||
| 
 | |||
|         // 通过临时授权码获取授权用户的个人信息
 | |||
|         DefaultDingTalkClient client2 = new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/getuserinfo_bycode"); | |||
|         OapiSnsGetuserinfoBycodeRequest reqBycodeRequest = new OapiSnsGetuserinfoBycodeRequest(); | |||
| 
 | |||
|         reqBycodeRequest.setTmpAuthCode(code); | |||
|         OapiSnsGetuserinfoBycodeResponse bycodeResponse = client2.execute(reqBycodeRequest, "yourAppId", "yourAppSecret"); | |||
| 
 | |||
|         // 根据unionid获取userid
 | |||
|         String unionid = bycodeResponse.getUserInfo().getUnionid(); | |||
|         DingTalkClient clientDingTalkClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/getbyunionid"); | |||
|         OapiUserGetbyunionidRequest reqGetbyunionidRequest = new OapiUserGetbyunionidRequest(); | |||
|         reqGetbyunionidRequest.setUnionid(unionid); | |||
|         OapiUserGetbyunionidResponse oapiUserGetbyunionidResponse = clientDingTalkClient.execute(reqGetbyunionidRequest, access_token); | |||
| 
 | |||
|         // 根据userId获取用户信息
 | |||
|         String userid = oapiUserGetbyunionidResponse.getResult().getUserid(); | |||
|         DingTalkClient clientDingTalkClient2 = new DefaultDingTalkClient( | |||
|                 "https://oapi.dingtalk.com/topapi/v2/user/get"); | |||
|         OapiV2UserGetRequest reqGetRequest = new OapiV2UserGetRequest(); | |||
|         reqGetRequest.setUserid(userid); | |||
|         //reqGetRequest.setLang("zh_CN");
 | |||
|         OapiV2UserGetResponse rspGetResponse = clientDingTalkClient2.execute(reqGetRequest, access_token); | |||
|         System.out.println(rspGetResponse.getBody()); | |||
|         return new Result<String>().ok(rspGetResponse.getBody()); | |||
|     } | |||
|     private String getToken() throws RuntimeException { | |||
|         try { | |||
|             DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken"); | |||
|             OapiGettokenRequest request = new OapiGettokenRequest(); | |||
| 
 | |||
|             request.setAppkey("dingiopfbtn8mktfoaf0"); | |||
|             request.setAppsecret("RcmHIoP5KFLZSM5wzpYhvCKMMKEzLoWPtqu3OqOEBD6myg4IT8oVw4AwvRkKYKJz"); | |||
|             request.setHttpMethod("GET"); | |||
|             OapiGettokenResponse response = client.execute(request); | |||
|             return response.getAccessToken(); | |||
|         } catch (ApiException e) { | |||
|             throw new RuntimeException(); | |||
|         } | |||
| 
 | |||
|     } | |||
| } | |||
| @ -0,0 +1,71 @@ | |||
| package com.epmet.controller; | |||
| 
 | |||
| import com.epmet.commons.tools.aop.NoRepeatSubmit; | |||
| import com.epmet.commons.tools.page.PageData; | |||
| import com.epmet.commons.tools.utils.Result; | |||
| import com.epmet.commons.tools.validator.AssertUtils; | |||
| import com.epmet.commons.tools.validator.ValidatorUtils; | |||
| import com.epmet.commons.tools.validator.group.AddGroup; | |||
| import com.epmet.commons.tools.validator.group.DefaultGroup; | |||
| import com.epmet.commons.tools.validator.group.UpdateGroup; | |||
| import com.epmet.dto.DingMiniInfoDTO; | |||
| import com.epmet.service.DingMiniInfoService; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| 
 | |||
| import java.util.Map; | |||
| 
 | |||
| 
 | |||
| /** | |||
|  * 钉钉小程序信息 | |||
|  * | |||
|  * @author generator generator@elink-cn.com | |||
|  * @since v1.0.0 2022-09-14 | |||
|  */ | |||
| @RestController | |||
| @RequestMapping("dingMiniInfo") | |||
| public class DingMiniInfoController { | |||
| 
 | |||
|     @Autowired | |||
|     private DingMiniInfoService dingMiniInfoService; | |||
| 
 | |||
|     @RequestMapping("page") | |||
|     public Result<PageData<DingMiniInfoDTO>> page(@RequestParam Map<String, Object> params){ | |||
|         PageData<DingMiniInfoDTO> page = dingMiniInfoService.page(params); | |||
|         return new Result<PageData<DingMiniInfoDTO>>().ok(page); | |||
|     } | |||
| 
 | |||
|     @RequestMapping(value = "{id}",method = {RequestMethod.POST,RequestMethod.GET}) | |||
|     public Result<DingMiniInfoDTO> get(@PathVariable("id") String id){ | |||
|         DingMiniInfoDTO data = dingMiniInfoService.get(id); | |||
|         return new Result<DingMiniInfoDTO>().ok(data); | |||
|     } | |||
| 
 | |||
|     @NoRepeatSubmit | |||
|     @PostMapping("save") | |||
|     public Result save(@RequestBody DingMiniInfoDTO dto){ | |||
|         //效验数据
 | |||
|         ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); | |||
|         dingMiniInfoService.save(dto); | |||
|         return new Result(); | |||
|     } | |||
| 
 | |||
|     @NoRepeatSubmit | |||
|     @PostMapping("update") | |||
|     public Result update(@RequestBody DingMiniInfoDTO dto){ | |||
|         //效验数据
 | |||
|         ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); | |||
|         dingMiniInfoService.update(dto); | |||
|         return new Result(); | |||
|     } | |||
| 
 | |||
|     @PostMapping("delete") | |||
|     public Result delete(@RequestBody String[] ids){ | |||
|         //效验数据
 | |||
|         AssertUtils.isArrayEmpty(ids, "id"); | |||
|         dingMiniInfoService.delete(ids); | |||
|         return new Result(); | |||
|     } | |||
| 
 | |||
| 
 | |||
| } | |||
| @ -0,0 +1,16 @@ | |||
| package com.epmet.dao; | |||
| 
 | |||
| import com.epmet.commons.mybatis.dao.BaseDao; | |||
| import com.epmet.entity.DingMiniInfoEntity; | |||
| import org.apache.ibatis.annotations.Mapper; | |||
| 
 | |||
| /** | |||
|  * 钉钉小程序信息 | |||
|  * | |||
|  * @author generator generator@elink-cn.com | |||
|  * @since v1.0.0 2022-09-14 | |||
|  */ | |||
| @Mapper | |||
| public interface DingMiniInfoDao extends BaseDao<DingMiniInfoEntity> { | |||
| 	 | |||
| } | |||
| @ -0,0 +1,55 @@ | |||
| package com.epmet.entity; | |||
| 
 | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.epmet.commons.mybatis.entity.BaseEpmetEntity; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| 
 | |||
| /** | |||
|  * 钉钉小程序信息 | |||
|  * | |||
|  * @author generator generator@elink-cn.com | |||
|  * @since v1.0.0 2022-09-14 | |||
|  */ | |||
| @Data | |||
| @EqualsAndHashCode(callSuper=false) | |||
| @TableName("ding_mini_info") | |||
| public class DingMiniInfoEntity extends BaseEpmetEntity { | |||
| 
 | |||
| 	private static final long serialVersionUID = 1L; | |||
| 
 | |||
|     /** | |||
|      * | |||
|      */ | |||
| 	private String suiteId; | |||
| 
 | |||
|     /** | |||
|      * | |||
|      */ | |||
| 	private String appId; | |||
| 
 | |||
|     /** | |||
|      * | |||
|      */ | |||
| 	private String miniAppId; | |||
| 
 | |||
|     /** | |||
|      * | |||
|      */ | |||
| 	private String suiteName; | |||
| 
 | |||
|     /** | |||
|      * | |||
|      */ | |||
| 	private String suiteKey; | |||
| 
 | |||
|     /** | |||
|      * | |||
|      */ | |||
| 	private String suiteSecret; | |||
| 
 | |||
| 	private String token; | |||
| 
 | |||
| 	private String aesKey; | |||
| 
 | |||
| } | |||
| @ -0,0 +1,78 @@ | |||
| package com.epmet.service; | |||
| 
 | |||
| import com.epmet.commons.mybatis.service.BaseService; | |||
| import com.epmet.commons.tools.page.PageData; | |||
| import com.epmet.dto.DingMiniInfoDTO; | |||
| import com.epmet.entity.DingMiniInfoEntity; | |||
| 
 | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| 
 | |||
| /** | |||
|  * 钉钉小程序信息 | |||
|  * | |||
|  * @author generator generator@elink-cn.com | |||
|  * @since v1.0.0 2022-09-14 | |||
|  */ | |||
| public interface DingMiniInfoService extends BaseService<DingMiniInfoEntity> { | |||
| 
 | |||
|     /** | |||
|      * 默认分页 | |||
|      * | |||
|      * @param params | |||
|      * @return PageData<DingMiniInfoDTO> | |||
|      * @author generator | |||
|      * @date 2022-09-14 | |||
|      */ | |||
|     PageData<DingMiniInfoDTO> page(Map<String, Object> params); | |||
| 
 | |||
|     /** | |||
|      * 默认查询 | |||
|      * | |||
|      * @param params | |||
|      * @return java.util.List<DingMiniInfoDTO> | |||
|      * @author generator | |||
|      * @date 2022-09-14 | |||
|      */ | |||
|     List<DingMiniInfoDTO> list(Map<String, Object> params); | |||
| 
 | |||
|     /** | |||
|      * 单条查询 | |||
|      * | |||
|      * @param id | |||
|      * @return DingMiniInfoDTO | |||
|      * @author generator | |||
|      * @date 2022-09-14 | |||
|      */ | |||
|     DingMiniInfoDTO get(String id); | |||
| 
 | |||
|     /** | |||
|      * 默认保存 | |||
|      * | |||
|      * @param dto | |||
|      * @return void | |||
|      * @author generator | |||
|      * @date 2022-09-14 | |||
|      */ | |||
|     void save(DingMiniInfoDTO dto); | |||
| 
 | |||
|     /** | |||
|      * 默认更新 | |||
|      * | |||
|      * @param dto | |||
|      * @return void | |||
|      * @author generator | |||
|      * @date 2022-09-14 | |||
|      */ | |||
|     void update(DingMiniInfoDTO dto); | |||
| 
 | |||
|     /** | |||
|      * 批量删除 | |||
|      * | |||
|      * @param ids | |||
|      * @return void | |||
|      * @author generator | |||
|      * @date 2022-09-14 | |||
|      */ | |||
|     void delete(String[] ids); | |||
| } | |||
| @ -0,0 +1,82 @@ | |||
| package com.epmet.service.impl; | |||
| 
 | |||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
| import com.baomidou.mybatisplus.core.metadata.IPage; | |||
| import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; | |||
| import com.epmet.commons.tools.constant.FieldConstant; | |||
| import com.epmet.commons.tools.page.PageData; | |||
| import com.epmet.commons.tools.utils.ConvertUtils; | |||
| import com.epmet.dao.DingMiniInfoDao; | |||
| import com.epmet.dto.DingMiniInfoDTO; | |||
| import com.epmet.entity.DingMiniInfoEntity; | |||
| import com.epmet.service.DingMiniInfoService; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.springframework.stereotype.Service; | |||
| import org.springframework.transaction.annotation.Transactional; | |||
| 
 | |||
| import java.util.Arrays; | |||
| import java.util.List; | |||
| import java.util.Map; | |||
| 
 | |||
| /** | |||
|  * 钉钉小程序信息 | |||
|  * | |||
|  * @author generator generator@elink-cn.com | |||
|  * @since v1.0.0 2022-09-14 | |||
|  */ | |||
| @Service | |||
| public class DingMiniInfoServiceImpl extends BaseServiceImpl<DingMiniInfoDao, DingMiniInfoEntity> implements DingMiniInfoService { | |||
| 
 | |||
|     @Override | |||
|     public PageData<DingMiniInfoDTO> page(Map<String, Object> params) { | |||
|         IPage<DingMiniInfoEntity> page = baseDao.selectPage( | |||
|                 getPage(params, FieldConstant.CREATED_TIME, false), | |||
|                 getWrapper(params) | |||
|         ); | |||
|         return getPageData(page, DingMiniInfoDTO.class); | |||
|     } | |||
| 
 | |||
|     @Override | |||
|     public List<DingMiniInfoDTO> list(Map<String, Object> params) { | |||
|         List<DingMiniInfoEntity> entityList = baseDao.selectList(getWrapper(params)); | |||
| 
 | |||
|         return ConvertUtils.sourceToTarget(entityList, DingMiniInfoDTO.class); | |||
|     } | |||
| 
 | |||
|     private QueryWrapper<DingMiniInfoEntity> getWrapper(Map<String, Object> params){ | |||
|         String id = (String)params.get(FieldConstant.ID_HUMP); | |||
| 
 | |||
|         QueryWrapper<DingMiniInfoEntity> wrapper = new QueryWrapper<>(); | |||
|         wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); | |||
| 
 | |||
|         return wrapper; | |||
|     } | |||
| 
 | |||
|     @Override | |||
|     public DingMiniInfoDTO get(String id) { | |||
|         DingMiniInfoEntity entity = baseDao.selectById(id); | |||
|         return ConvertUtils.sourceToTarget(entity, DingMiniInfoDTO.class); | |||
|     } | |||
| 
 | |||
|     @Override | |||
|     @Transactional(rollbackFor = Exception.class) | |||
|     public void save(DingMiniInfoDTO dto) { | |||
|         DingMiniInfoEntity entity = ConvertUtils.sourceToTarget(dto, DingMiniInfoEntity.class); | |||
|         insert(entity); | |||
|     } | |||
| 
 | |||
|     @Override | |||
|     @Transactional(rollbackFor = Exception.class) | |||
|     public void update(DingMiniInfoDTO dto) { | |||
|         DingMiniInfoEntity entity = ConvertUtils.sourceToTarget(dto, DingMiniInfoEntity.class); | |||
|         updateById(entity); | |||
|     } | |||
| 
 | |||
|     @Override | |||
|     @Transactional(rollbackFor = Exception.class) | |||
|     public void delete(String[] ids) { | |||
|         // 逻辑删除(@TableLogic 注解)
 | |||
|         baseDao.deleteBatchIds(Arrays.asList(ids)); | |||
|     } | |||
| 
 | |||
| } | |||
| @ -0,0 +1,23 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||
| 
 | |||
| <mapper namespace="com.epmet.dao.DingMiniInfoDao"> | |||
| 
 | |||
|     <resultMap type="com.epmet.entity.DingMiniInfoEntity" id="dingMiniInfoMap"> | |||
|         <result property="id" column="ID"/> | |||
|         <result property="suiteId" column="SUITE_ID"/> | |||
|         <result property="appId" column="APP_ID"/> | |||
|         <result property="miniAppId" column="MINI_APP_ID"/> | |||
|         <result property="suiteName" column="SUITE_NAME"/> | |||
|         <result property="suiteKey" column="SUITE_KEY"/> | |||
|         <result property="suiteSecret" column="SUITE_SECRET"/> | |||
|         <result property="delFlag" column="DEL_FLAG"/> | |||
|         <result property="revision" column="REVISION"/> | |||
|         <result property="createdBy" column="CREATED_BY"/> | |||
|         <result property="createdTime" column="CREATED_TIME"/> | |||
|         <result property="updatedBy" column="UPDATED_BY"/> | |||
|         <result property="updatedTime" column="UPDATED_TIME"/> | |||
|     </resultMap> | |||
| 
 | |||
| 
 | |||
| </mapper> | |||
								
									Binary file not shown.
								
							
						
					
					Loading…
					
					
				
		Reference in new issue