Browse Source

1、合伙人模块

2、勋章模块
master
Aug 1 month ago
parent
commit
af14611de8
40 changed files with 337 additions and 103 deletions
  1. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/controller/HanHaiMemberController.java
  2. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java
  3. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/mapper/HanHaiMemberMapper.java
  4. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/service/IHanHaiMemberService.java
  5. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/service/impl/HanHaiMemberServiceImpl.java
  6. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/controller/StudytourImageController.java
  7. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/entity/StudytourImage.java
  8. +15
    -4
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/entity/StudytourImageContent.java
  9. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/mapper/StudytourImageContentMapper.java
  10. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/mapper/StudytourImageMapper.java
  11. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/IStudytourImageContentService.java
  12. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/IStudytourImageService.java
  13. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/impl/StudytourImageContentServiceImpl.java
  14. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/impl/StudytourImageServiceImpl.java
  15. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/vo/StudytourImagePage.java
  16. +4
    -4
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/vue/StudytourImageList.vue
  17. +35
    -32
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/vue/modules/StudytourImageForm.vue
  18. +5
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourMedalUser/entity/StudytourMedalUser.java
  19. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/controller/StudytourPartnerController.java
  20. +5
    -6
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/entity/StudytourPartner.java
  21. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/mapper/StudytourPartnerMapper.java
  22. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/service/IStudytourPartnerService.java
  23. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/service/impl/StudytourPartnerServiceImpl.java
  24. +3
    -3
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/vue/StudytourPartnerList.vue
  25. +2
    -2
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/vue/modules/StudytourPartnerForm.vue
  26. +5
    -5
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/vue3/StudytourPartner.data.ts
  27. +5
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourRecord/entity/StudytourRecord.java
  28. +3
    -0
      jeecg-boot-module-system/jeecg-boot-module-system.iml
  29. +7
    -0
      jeecg-boot-module-system/pom.xml
  30. +1
    -1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ImageService.java
  31. +1
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ActivityServiceImpl.java
  32. +7
    -2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ExperienceServiceImpl.java
  33. +102
    -8
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ImageServiceImpl.java
  34. +6
    -2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/MedalServiceImpl.java
  35. +79
    -4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/PartnerServiceImpl.java
  36. +5
    -4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/UserInfoServiceImpl.java
  37. +7
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/PartnerService.java
  38. +2
    -2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ImageController.java
  39. +12
    -5
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/PartnerController.java
  40. +8
    -1
      jeecg-boot-module-system/src/main/resources/application-dev.yml

+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/controller/HanHaiMemberController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/** /**
* @Description: han_hai_member * @Description: han_hai_member
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-21
* @Date: 2025-09-26
* @Version: V1.0 * @Version: V1.0
*/ */
@Api(tags="han_hai_member") @Api(tags="han_hai_member")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/** /**
* @Description: han_hai_member * @Description: han_hai_member
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-21
* @Date: 2025-09-26
* @Version: V1.0 * @Version: V1.0
*/ */
@Data @Data


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/mapper/HanHaiMemberMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* @Description: han_hai_member * @Description: han_hai_member
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-21
* @Date: 2025-09-26
* @Version: V1.0 * @Version: V1.0
*/ */
public interface HanHaiMemberMapper extends BaseMapper<HanHaiMember> { public interface HanHaiMemberMapper extends BaseMapper<HanHaiMember> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/service/IHanHaiMemberService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* @Description: han_hai_member * @Description: han_hai_member
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-21
* @Date: 2025-09-26
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IHanHaiMemberService extends IService<HanHaiMember> { public interface IHanHaiMemberService extends IService<HanHaiMember> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/service/impl/HanHaiMemberServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/** /**
* @Description: han_hai_member * @Description: han_hai_member
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-21
* @Date: 2025-09-26
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/controller/StudytourImageController.java View File

@ -45,7 +45,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/** /**
* @Description: 图片直播表 * @Description: 图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Api(tags="图片直播表") @Api(tags="图片直播表")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/entity/StudytourImage.java View File

@ -17,7 +17,7 @@ import io.swagger.annotations.ApiModelProperty;
/** /**
* @Description: 图片直播表 * @Description: 图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@ApiModel(value="studytour_image对象", description="图片直播表") @ApiModel(value="studytour_image对象", description="图片直播表")


+ 15
- 4
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/entity/StudytourImageContent.java View File

@ -2,10 +2,12 @@ package org.jeecg.modules.studytourImage.entity;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import java.util.Date; import java.util.Date;
@ -16,7 +18,7 @@ import java.io.UnsupportedEncodingException;
/** /**
* @Description: 用户图片直播表 * @Description: 用户图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@ApiModel(value="studytour_image_content对象", description="用户图片直播表") @ApiModel(value="studytour_image_content对象", description="用户图片直播表")
@ -49,15 +51,24 @@ public class StudytourImageContent implements Serializable {
@Excel(name = "地址", width = 15) @Excel(name = "地址", width = 15)
@ApiModelProperty(value = "地址") @ApiModelProperty(value = "地址")
private java.lang.String address; private java.lang.String address;
/**关联图片直播*/
@ApiModelProperty(value = "关联图片直播")
private java.lang.String imageId;
/**审核状态*/
@Excel(name = "审核状态", width = 15)
@ApiModelProperty(value = "审核状态")
private java.lang.String status;
/**关联活动*/ /**关联活动*/
@Excel(name = "关联活动", width = 15, dictTable = "studytour_activity", dicText = "title", dicCode = "id") @Excel(name = "关联活动", width = 15, dictTable = "studytour_activity", dicText = "title", dicCode = "id")
@ApiModelProperty(value = "关联活动") @ApiModelProperty(value = "关联活动")
private java.lang.String activityId; private java.lang.String activityId;
/**关联图片直播*/
@ApiModelProperty(value = "关联图片直播")
private java.lang.String imageId;
/**关联用户*/ /**关联用户*/
@Excel(name = "关联用户", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") @Excel(name = "关联用户", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@ApiModelProperty(value = "关联用户") @ApiModelProperty(value = "关联用户")
private java.lang.String userId; private java.lang.String userId;
//用户信息
@TableField(exist = false)
@ApiModelProperty(value = "用户信息")
HanHaiMember user;
} }

+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/mapper/StudytourImageContentMapper.java View File

@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param;
/** /**
* @Description: 用户图片直播表 * @Description: 用户图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
public interface StudytourImageContentMapper extends BaseMapper<StudytourImageContent> { public interface StudytourImageContentMapper extends BaseMapper<StudytourImageContent> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/mapper/StudytourImageMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* @Description: 图片直播表 * @Description: 图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
public interface StudytourImageMapper extends BaseMapper<StudytourImage> { public interface StudytourImageMapper extends BaseMapper<StudytourImage> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/IStudytourImageContentService.java View File

@ -7,7 +7,7 @@ import java.util.List;
/** /**
* @Description: 用户图片直播表 * @Description: 用户图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IStudytourImageContentService extends IService<StudytourImageContent> { public interface IStudytourImageContentService extends IService<StudytourImageContent> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/IStudytourImageService.java View File

@ -10,7 +10,7 @@ import java.util.List;
/** /**
* @Description: 图片直播表 * @Description: 图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IStudytourImageService extends IService<StudytourImage> { public interface IStudytourImageService extends IService<StudytourImage> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/impl/StudytourImageContentServiceImpl.java View File

@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
/** /**
* @Description: 用户图片直播表 * @Description: 用户图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/service/impl/StudytourImageServiceImpl.java View File

@ -16,7 +16,7 @@ import java.util.Collection;
/** /**
* @Description: 图片直播表 * @Description: 图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/vo/StudytourImagePage.java View File

@ -17,7 +17,7 @@ import io.swagger.annotations.ApiModelProperty;
/** /**
* @Description: 图片直播表 * @Description: 图片直播表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-16
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Data @Data


+ 4
- 4
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/vue/StudytourImageList.vue View File

@ -176,10 +176,10 @@
}, },
getSuperFieldList(){ getSuperFieldList(){
let fieldList=[]; let fieldList=[];
fieldList.push({type:'Text',value:'image',text:'图片',dictCode:''})
fieldList.push({type:'Text',value:'address',text:'地址',dictCode:''})
fieldList.push({type:'sel_search',value:'activityId',text:'关联活动',dictTable:"studytour_activity", dictText:'title', dictCode:'id'})
fieldList.push({type:'sel_search',value:'userId',text:'关联用户',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'})
fieldList.push({type:'Text',value:'image',text:'图片',dictCode:''})
fieldList.push({type:'Text',value:'address',text:'地址',dictCode:''})
fieldList.push({type:'sel_search',value:'activityId',text:'关联活动',dictTable:"studytour_activity", dictText:'title', dictCode:'id'})
fieldList.push({type:'sel_search',value:'userId',text:'关联用户',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'})
this.superFieldList = fieldList this.superFieldList = fieldList
} }
} }


+ 35
- 32
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourImage/vue/modules/StudytourImageForm.vue View File

@ -16,12 +16,12 @@
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="关联活动" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="activityId"> <a-form-model-item label="关联活动" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="activityId">
<j-search-select-tag v-model="model.activityId" dict="studytour_activity,title,id" />
<j-search-select-tag v-model="model.activityId" dict="studytour_activity,title,id" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="关联用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> <a-form-model-item label="关联用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
@ -30,8 +30,7 @@
<!-- 子表单区域 --> <!-- 子表单区域 -->
<a-tabs v-model="activeKey" @change="handleChangeTabs"> <a-tabs v-model="activeKey" @change="handleChangeTabs">
<a-tab-pane tab="用户图片直播表" :key="refKeys[0]" :forceRender="true"> <a-tab-pane tab="用户图片直播表" :key="refKeys[0]" :forceRender="true">
<j-vxe-table
keep-source
<j-editable-table
:ref="refKeys[0]" :ref="refKeys[0]"
:loading="studytourImageContentTable.loading" :loading="studytourImageContentTable.loading"
:columns="studytourImageContentTable.columns" :columns="studytourImageContentTable.columns"
@ -40,8 +39,7 @@
:disabled="formDisabled" :disabled="formDisabled"
:rowNumber="true" :rowNumber="true"
:rowSelection="true" :rowSelection="true"
:toolbar="true"
/>
:actionButton="true"/>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-spin> </a-spin>
@ -50,17 +48,14 @@
<script> <script>
import { getAction } from '@/api/manage' import { getAction } from '@/api/manage'
import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
import { JVXETypes } from '@/components/jeecg/JVxeTable'
import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
import { FormTypes,getRefPromise,VALIDATE_NO_PASSED } from '@/utils/JEditableTableUtil'
import { JEditableTableModelMixin } from '@/mixins/JEditableTableModelMixin'
import { validateDuplicateValue } from '@/utils/util' import { validateDuplicateValue } from '@/utils/util'
import JFormContainer from '@/components/jeecg/JFormContainer'
export default { export default {
name: 'StudytourImageForm', name: 'StudytourImageForm',
mixins: [JVxeTableModelMixin],
mixins: [JEditableTableModelMixin],
components: { components: {
JFormContainer,
}, },
data() { data() {
return { return {
@ -73,7 +68,7 @@
sm: { span: 16 }, sm: { span: 16 },
}, },
model:{ model:{
},
},
// //
addDefaultRowNum: 1, addDefaultRowNum: 1,
validatorRules: { validatorRules: {
@ -93,7 +88,7 @@
{ {
title: '图片', title: '图片',
key: 'image', key: 'image',
type: JVXETypes.image,
type: FormTypes.image,
token:true, token:true,
responseName:"message", responseName:"message",
width:"200px", width:"200px",
@ -103,7 +98,15 @@
{ {
title: '地址', title: '地址',
key: 'address', key: 'address',
type: JVXETypes.input,
type: FormTypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '审核状态',
key: 'status',
type: FormTypes.input,
width:"200px", width:"200px",
placeholder: '请输入${title}', placeholder: '请输入${title}',
defaultValue:'', defaultValue:'',
@ -111,7 +114,7 @@
{ {
title: '关联活动', title: '关联活动',
key: 'activityId', key: 'activityId',
type: JVXETypes.selectSearch,
type: FormTypes.sel_search,
dictCode:"studytour_activity,title,id", dictCode:"studytour_activity,title,id",
width:"200px", width:"200px",
placeholder: '请输入${title}', placeholder: '请输入${title}',
@ -120,7 +123,7 @@
{ {
title: '关联用户', title: '关联用户',
key: 'userId', key: 'userId',
type: JVXETypes.selectSearch,
type: FormTypes.sel_search,
dictCode:"han_hai_member,nick_name,id", dictCode:"han_hai_member,nick_name,id",
width:"200px", width:"200px",
placeholder: '请输入${title}', placeholder: '请输入${title}',
@ -172,27 +175,27 @@
} }
}, },
// //
validateSubForm(allValues){
return new Promise((resolve,reject)=>{
Promise.all([
]).then(() => {
resolve(allValues)
}).catch(e => {
if (e.error === VALIDATE_FAILED) {
// tab
this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
} else {
console.error(e)
}
})
validateSubForm(allValues){
return new Promise((resolve,reject)=>{
Promise.all([
]).then(() => {
resolve(allValues)
}).catch(e => {
if (e.error === VALIDATE_NO_PASSED) {
// tab
this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
} else {
console.error(e)
}
}) })
},
})
},
/** 整理成formData */ /** 整理成formData */
classifyIntoFormData(allValues) { classifyIntoFormData(allValues) {
let main = Object.assign(this.model, allValues.formValue) let main = Object.assign(this.model, allValues.formValue)
return { return {
...main, // ...main, //
studytourImageContentList: allValues.tablesValue[0].tableData,
studytourImageContentList: allValues.tablesValue[0].values,
} }
}, },
validateError(msg){ validateError(msg){


+ 5
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourMedalUser/entity/StudytourMedalUser.java View File

@ -80,4 +80,9 @@ public class StudytourMedalUser implements Serializable {
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "勋章信息") @ApiModelProperty(value = "勋章信息")
StudytourMedal medal; StudytourMedal medal;
//切换用户id
@TableField(exist = false)
@ApiModelProperty(value = "切换用户id")
String bindUserId;
} }

+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/controller/StudytourPartnerController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/** /**
* @Description: 合伙人申请表 * @Description: 合伙人申请表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-08-25
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Api(tags="合伙人申请表") @Api(tags="合伙人申请表")


+ 5
- 6
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/entity/StudytourPartner.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/** /**
* @Description: 合伙人申请表 * @Description: 合伙人申请表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-08-25
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Data @Data
@ -55,11 +55,10 @@ public class StudytourPartner implements Serializable {
@Excel(name = "电话", width = 15) @Excel(name = "电话", width = 15)
@ApiModelProperty(value = "电话") @ApiModelProperty(value = "电话")
private java.lang.String phone; private java.lang.String phone;
/**推荐人id*/
@Excel(name = "推荐人id", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@ApiModelProperty(value = "推荐人id")
private java.lang.String inviteId;
/**推荐人*/
@Excel(name = "推荐人", width = 15)
@ApiModelProperty(value = "推荐人")
private java.lang.String inviteUser;
/**关联用户id*/ /**关联用户id*/
@Excel(name = "关联用户id", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") @Excel(name = "关联用户id", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")
@Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") @Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/mapper/StudytourPartnerMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* @Description: 合伙人申请表 * @Description: 合伙人申请表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-08-25
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
public interface StudytourPartnerMapper extends BaseMapper<StudytourPartner> { public interface StudytourPartnerMapper extends BaseMapper<StudytourPartner> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/service/IStudytourPartnerService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* @Description: 合伙人申请表 * @Description: 合伙人申请表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-08-25
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IStudytourPartnerService extends IService<StudytourPartner> { public interface IStudytourPartnerService extends IService<StudytourPartner> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/service/impl/StudytourPartnerServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/** /**
* @Description: 合伙人申请表 * @Description: 合伙人申请表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-08-25
* @Date: 2025-09-24
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service


+ 3
- 3
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/vue/StudytourPartnerList.vue View File

@ -133,9 +133,9 @@
dataIndex: 'phone' dataIndex: 'phone'
}, },
{ {
title:'推荐人id',
title:'推荐人',
align:"center", align:"center",
dataIndex: 'inviteId_dictText'
dataIndex: 'inviteUser_dictText'
}, },
{ {
title:'关联用户id', title:'关联用户id',
@ -183,7 +183,7 @@
let fieldList=[]; let fieldList=[];
fieldList.push({type:'string',value:'name',text:'姓名',dictCode:''}) fieldList.push({type:'string',value:'name',text:'姓名',dictCode:''})
fieldList.push({type:'string',value:'phone',text:'电话',dictCode:''}) fieldList.push({type:'string',value:'phone',text:'电话',dictCode:''})
fieldList.push({type:'string',value:'inviteId',text:'推荐人id',dictCode:"han_hai_member,nick_name,id"})
fieldList.push({type:'string',value:'inviteUser',text:'推荐人',dictCode:''})
fieldList.push({type:'string',value:'userId',text:'关联用户id',dictCode:"han_hai_member,nick_name,id"}) fieldList.push({type:'string',value:'userId',text:'关联用户id',dictCode:"han_hai_member,nick_name,id"})
fieldList.push({type:'string',value:'status',text:'审核状态',dictCode:'partner_status'}) fieldList.push({type:'string',value:'status',text:'审核状态',dictCode:'partner_status'})
this.superFieldList = fieldList this.superFieldList = fieldList


+ 2
- 2
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/vue/modules/StudytourPartnerForm.vue View File

@ -14,8 +14,8 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="推荐人id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inviteId">
<j-dict-select-tag type="list" v-model="model.inviteId" dictCode="han_hai_member,nick_name,id" placeholder="请选择推荐人id" />
<a-form-model-item label="推荐人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inviteUser">
<j-dict-select-tag type="list" v-model="model.inviteUser" dictCode="" placeholder="请选择推荐人" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">


+ 5
- 5
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourPartner/vue3/StudytourPartner.data.ts View File

@ -15,9 +15,9 @@ export const columns: BasicColumn[] = [
dataIndex: 'phone' dataIndex: 'phone'
}, },
{ {
title: '推荐人id',
title: '推荐人',
align:"center", align:"center",
dataIndex: 'inviteId_dictText'
dataIndex: 'inviteUser_dictText'
}, },
{ {
title: '关联用户id', title: '关联用户id',
@ -46,11 +46,11 @@ export const formSchema: FormSchema[] = [
component: 'Input', component: 'Input',
}, },
{ {
label: '推荐人id',
field: 'inviteId',
label: '推荐人',
field: 'inviteUser',
component: 'JDictSelectTag', component: 'JDictSelectTag',
componentProps:{ componentProps:{
dictCode:"han_hai_member,nick_name,id"
dictCode:""
}, },
}, },
{ {


+ 5
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/studytourRecord/entity/StudytourRecord.java View File

@ -106,4 +106,9 @@ public class StudytourRecord implements Serializable {
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "时间排序:0-从高到低 1-从低到高") @ApiModelProperty(value = "时间排序:0-从高到低 1-从低到高")
String dateOrder; String dateOrder;
//切换用户id
@TableField(exist = false)
@ApiModelProperty(value = "切换用户id")
String bindUserId;
} }

+ 3
- 0
jeecg-boot-module-system/jeecg-boot-module-system.iml View File

@ -291,6 +291,9 @@
<orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-mp:3.5.0" level="project" /> <orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-mp:3.5.0" level="project" />
<orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java:0.2.15" level="project" /> <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java:0.2.15" level="project" />
<orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java-core:0.2.15" level="project" /> <orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-java-core:0.2.15" level="project" />
<orderEntry type="library" name="Maven: com.tencentcloudapi:tencentcloud-sdk-java-iai:3.1.1343" level="project" />
<orderEntry type="library" name="Maven: com.tencentcloudapi:tencentcloud-sdk-java-common:3.1.1343" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okhttp3:logging-interceptor:3.14.9" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.6.6" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.6.6" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.6.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.6.6" level="project" />


+ 7
- 0
jeecg-boot-module-system/pom.xml View File

@ -81,6 +81,13 @@
<version>0.2.15</version> <version>0.2.15</version>
</dependency> </dependency>
<!--图片比对-->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-iai</artifactId>
<version>3.1.1343</version>
</dependency>
</dependencies> </dependencies>
<build> <build>


+ 1
- 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ImageService.java View File

@ -22,6 +22,6 @@ public interface ImageService {
public Result<?> addImageContent(String token, StudytourImageContent studytourImageContent); public Result<?> addImageContent(String token, StudytourImageContent studytourImageContent);
//图片直播-标记有我 //图片直播-标记有我
public Result<?> queryMarkmeList(String token, String imageId, String imagePath);
public Result<?> queryMarkmeList(String token, String activityId, String imagePath);
} }

+ 1
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ActivityServiceImpl.java View File

@ -344,6 +344,7 @@ public class ActivityServiceImpl implements ActivityService {
.lambdaQuery() .lambdaQuery()
.eq(StudytourActivity::getId, record.getActivityId()) .eq(StudytourActivity::getId, record.getActivityId())
.one(); .one();
one.setIsCollection("1");//设置为已被收藏
record.setActivity(one); record.setActivity(one);
} }


+ 7
- 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ExperienceServiceImpl.java View File

@ -55,8 +55,13 @@ public class ExperienceServiceImpl implements ExperienceService {
public Result<?> queryExperienceList(String token, StudytourRecord studytourRecord, PageBean pageBean) { public Result<?> queryExperienceList(String token, StudytourRecord studytourRecord, PageBean pageBean) {
log.info("开始查询成长档案信息列表"); log.info("开始查询成长档案信息列表");
//权限验证 //权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
HanHaiMember hanHaiMember = null;
if(StringUtils.isNotEmpty(studytourRecord.getBindUserId())){
hanHaiMember = hanHaiMemberService.getById(studytourRecord.getBindUserId());
}else {
hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
}
//返回信息 //返回信息
String massege = ""; String massege = "";
//分页信息 //分页信息


+ 102
- 8
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/ImageServiceImpl.java View File

@ -2,6 +2,16 @@ package org.jeecg.modules.api.service.Impl;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tencentcloudapi.common.AbstractModel;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.iai.v20180301.IaiClient;
import com.tencentcloudapi.iai.v20180301.models.CompareFaceRequest;
import com.tencentcloudapi.iai.v20180301.models.CompareFaceResponse;
import com.tencentcloudapi.iai.v20180301.models.DetectFaceRequest;
import com.tencentcloudapi.iai.v20180301.models.DetectFaceResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
@ -9,10 +19,12 @@ import org.jeecg.config.shiro.ShiroRealm;
import org.jeecg.modules.api.bean.PageBean; import org.jeecg.modules.api.bean.PageBean;
import org.jeecg.modules.api.service.ImageService; import org.jeecg.modules.api.service.ImageService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.studytourImage.entity.StudytourImage; import org.jeecg.modules.studytourImage.entity.StudytourImage;
import org.jeecg.modules.studytourImage.entity.StudytourImageContent; import org.jeecg.modules.studytourImage.entity.StudytourImageContent;
import org.jeecg.modules.studytourImage.service.IStudytourImageContentService; import org.jeecg.modules.studytourImage.service.IStudytourImageContentService;
import org.jeecg.modules.studytourImage.service.IStudytourImageService; import org.jeecg.modules.studytourImage.service.IStudytourImageService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -24,9 +36,19 @@ import java.util.List;
public class ImageServiceImpl implements ImageService { public class ImageServiceImpl implements ImageService {
/******************************************************************************************************************/ /******************************************************************************************************************/
//腾讯云API密钥id
@Value("${tencent.miniapp.secretId}")
private String secretId;
//腾讯云API密钥key
@Value("${tencent.miniapp.secretKey}")
private String secretKey;
//权限验证 //权限验证
@Resource @Resource
private ShiroRealm shiroRealm; private ShiroRealm shiroRealm;
//图片直播内容信息
@Resource
private IHanHaiMemberService hanHaiMemberService;
//图片直播信息 //图片直播信息
@Resource @Resource
private IStudytourImageService studytourImageService; private IStudytourImageService studytourImageService;
@ -127,9 +149,8 @@ public class ImageServiceImpl implements ImageService {
query.eq(StudytourImageContent::getImageId, content.getImageId()); query.eq(StudytourImageContent::getImageId, content.getImageId());
} }
if(StringUtils.isNotEmpty(content.getActivityId())){
query.eq(StudytourImageContent::getActivityId, content.getActivityId());
}
//审核状态为已通过
query.eq(StudytourImageContent::getStatus, "1");
//按照创建时间降序排列 //按照创建时间降序排列
query.orderByDesc(StudytourImageContent::getCreateTime); query.orderByDesc(StudytourImageContent::getCreateTime);
@ -137,6 +158,11 @@ public class ImageServiceImpl implements ImageService {
//获取图片直播信息列表 //获取图片直播信息列表
pageList = query.page(page); pageList = query.page(page);
for (StudytourImageContent record : pageList.getRecords()) {
HanHaiMember member = hanHaiMemberService.getById(record.getUserId());
record.setUser(member);
}
log.info("图片直播内容信息列表查询结束"); log.info("图片直播内容信息列表查询结束");
return Result.OK("图片直播内容信息列表", pageList); return Result.OK("图片直播内容信息列表", pageList);
}catch (Exception e){ }catch (Exception e){
@ -179,29 +205,97 @@ public class ImageServiceImpl implements ImageService {
//图片直播-标记有我 //图片直播-标记有我
@Override @Override
public Result<?> queryMarkmeList(String token, String imageId, String imagePath) {
public Result<?> queryMarkmeList(String token, String activityId, String imagePath) {
//返回信息 //返回信息
List<String> imageList = new ArrayList<>();
List<String> images = new ArrayList<>();
try{ try{
//图片直播所有图片
List<StudytourImageContent> contentList = studytourImageContentService List<StudytourImageContent> contentList = studytourImageContentService
.lambdaQuery() .lambdaQuery()
.eq(StudytourImageContent::getImageId, imageId)
.eq(StudytourImageContent::getActivityId, activityId)
.list(); .list();
//对比图片相似度 //对比图片相似度
for (StudytourImageContent studytourImageContent : contentList) { for (StudytourImageContent studytourImageContent : contentList) {
String[] split = studytourImageContent.getImage().split(","); String[] split = studytourImageContent.getImage().split(",");
for (String s : split) {
imageList.add(s);
for (String image : split) {
boolean flag = checkFace(image);//判断图片是否包含人脸
if(flag){
images.add(image);
}
} }
}
//标记后的图片
List<String> imageList = new ArrayList<>();
for (String image : images) {
// 密钥信息从环境变量读取需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID TENCENTCLOUD_SECRET_KEY
// 使用环境变量方式可以避免密钥硬编码在代码中提高安全性
// 生产环境建议使用更安全的密钥管理方案如密钥管理系统(KMS)容器密钥注入等
// 请参见https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
Credential cred = new Credential(secretId, secretKey);
// 使用临时密钥示例
// Credential cred = new Credential("SecretId", "SecretKey", "Token");
// 实例化一个http选项可选的没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("iai.tencentcloudapi.com");
// 实例化一个client选项可选的没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
IaiClient client = new IaiClient(cred, "ap-beijing", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
CompareFaceRequest req = new CompareFaceRequest();
req.setUrlA(imagePath);
req.setUrlB(image);
// 返回的resp是一个CompareFaceResponse的实例与请求对象对应
CompareFaceResponse resp = client.CompareFace(req);
// 输出json格式的字符串回包
if(resp.getScore() > 50){
imageList.add(image);
}
} }
return Result.OK("标记有我图片信息", imageList); return Result.OK("标记有我图片信息", imageList);
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
return Result.error("标记有我图片信息获取失败"); return Result.error("标记有我图片信息获取失败");
} }
} }
//判断图片是否存在人脸
public boolean checkFace(String image){
try{
// 密钥信息从环境变量读取需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID TENCENTCLOUD_SECRET_KEY
// 使用环境变量方式可以避免密钥硬编码在代码中提高安全性
// 生产环境建议使用更安全的密钥管理方案如密钥管理系统(KMS)容器密钥注入等
// 请参见https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
Credential cred = new Credential(secretId, secretKey);
// 使用临时密钥示例
// Credential cred = new Credential("SecretId", "SecretKey", "Token");
// 实例化一个http选项可选的没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("iai.tencentcloudapi.com");
// 实例化一个client选项可选的没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
IaiClient client = new IaiClient(cred, "ap-beijing", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
DetectFaceRequest req = new DetectFaceRequest();
req.setUrl(image);
// 返回的resp是一个DetectFaceResponse的实例与请求对象对应
DetectFaceResponse resp = client.DetectFace(req);
// 输出json格式的字符串回包
return true;
//System.out.println(AbstractModel.toJsonString(resp));
} catch (TencentCloudSDKException e) {
return false;
//System.out.println(e.toString());
}
}
} }

+ 6
- 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/MedalServiceImpl.java View File

@ -43,8 +43,12 @@ public class MedalServiceImpl implements MedalService {
public Result<?> queryMedalList(String token, StudytourMedalUser studytourMedalUser, PageBean pageBean) { public Result<?> queryMedalList(String token, StudytourMedalUser studytourMedalUser, PageBean pageBean) {
log.info("开始查询勋章列表"); log.info("开始查询勋章列表");
//权限验证 //权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
HanHaiMember hanHaiMember = null;
if(StringUtils.isNotEmpty(studytourMedalUser.getBindUserId())){
hanHaiMember = hanHaiMemberService.getById(studytourMedalUser.getBindUserId());
}else {
hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
}
//返回信息 //返回信息
String massege = ""; String massege = "";
//分页信息 //分页信息


+ 79
- 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/PartnerServiceImpl.java View File

@ -28,6 +28,9 @@ import org.jeecg.modules.studytourCommissionLog.entity.StudytourCommissionLog;
import org.jeecg.modules.studytourCommissionLog.service.IStudytourCommissionLogService; import org.jeecg.modules.studytourCommissionLog.service.IStudytourCommissionLogService;
import org.jeecg.modules.studytourConfig.entity.StudytourConfig; import org.jeecg.modules.studytourConfig.entity.StudytourConfig;
import org.jeecg.modules.studytourConfig.service.IStudytourConfigService; import org.jeecg.modules.studytourConfig.service.IStudytourConfigService;
import org.jeecg.modules.studytourOrder.entity.StudytourOrder;
import org.jeecg.modules.studytourPartner.entity.StudytourPartner;
import org.jeecg.modules.studytourPartner.service.IStudytourPartnerService;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
@ -104,8 +107,80 @@ public class PartnerServiceImpl implements PartnerService {
//配置信息 //配置信息
@Resource @Resource
private IStudytourConfigService studytourConfigService; private IStudytourConfigService studytourConfigService;
//配置信息
@Resource
private IStudytourPartnerService studytourPartnerService;
/******************************************************************************************************************/ /******************************************************************************************************************/
//合伙人-申请成为合伙人
@Override
public Result<?> applyPartner(String token, StudytourPartner studytourPartner) {
log.info("开始新增合伙人信息");
//权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
//返回信息
String massege = "";
try{
//1查询合伙人信息是否存在
StudytourPartner partner = studytourPartnerService.lambdaQuery().eq(StudytourPartner::getUserId, hanHaiMember.getId()).one();
if(null == partner){
//2新增合伙人信息
studytourPartner.setUserId(hanHaiMember.getId());
boolean result = studytourPartnerService.save(studytourPartner);
if(result){
log.info("合伙人信息新增成功");
return Result.OK("合伙人信息新增成功");
}else {
log.info("合伙人信息新增失败");
return Result.error("合伙人信息新增失败");
}
}else {
//2修改合伙人信息
studytourPartner.setId(partner.getId());
boolean result = studytourPartnerService.updateById(studytourPartner);
if(result){
log.info("合伙人信息修改成功");
return Result.OK("合伙人信息修改成功");
}else {
log.info("合伙人信息修改失败");
return Result.error("合伙人信息修改失败");
}
}
}catch (Exception e){
log.info("合伙人信息新增失败");
e.printStackTrace();
return Result.error("合伙人信息新增失败");
}
}
//合伙人-申请成为合伙人
@Override
public Result<?> queryPartner(String token) {
log.info("开始新增合伙人信息");
//权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
//返回信息
String massege = "";
try{
//1查询合伙人信息
StudytourPartner studytourPartner = studytourPartnerService.lambdaQuery().eq(StudytourPartner::getUserId, hanHaiMember.getId()).one();
return Result.OK("合伙人信息", studytourPartner);
}catch (Exception e){
log.info("合伙人信息查询失败");
e.printStackTrace();
return Result.error("合伙人信息查询失败");
}
}
@Override @Override
public Result<?> queryDirectList(String token, PageBean pageBean) { public Result<?> queryDirectList(String token, PageBean pageBean) {
log.info("开始查询直推用户列表"); log.info("开始查询直推用户列表");
@ -152,8 +227,8 @@ public class PartnerServiceImpl implements PartnerService {
public Result<?> queryIndirectList(String token, PageBean pageBean) { public Result<?> queryIndirectList(String token, PageBean pageBean) {
log.info("开始查询间推用户列表"); log.info("开始查询间推用户列表");
//权限验证 //权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
//HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);
HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
//返回信息 //返回信息
String massege = ""; String massege = "";
//分页信息 //分页信息
@ -170,7 +245,7 @@ public class PartnerServiceImpl implements PartnerService {
.lambdaQuery() .lambdaQuery()
.eq(HanHaiMember::getVid, hanHaiMember.getId()) .eq(HanHaiMember::getVid, hanHaiMember.getId())
.list(); .list();
if(null != directList){
if(directList.size() < 1){
log.info("没有间推用户"); log.info("没有间推用户");
return Result.error("没有间推用户"); return Result.error("没有间推用户");
} }


+ 5
- 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/Impl/UserInfoServiceImpl.java View File

@ -85,10 +85,8 @@ public class UserInfoServiceImpl implements UserInfoService {
} }
} }
hanHaiMember.setNickName(member.getNickName());
hanHaiMember.setPhone(member.getPhone());
hanHaiMember.setHeadImage(member.getHeadImage());
boolean result = hanHaiMemberService.updateById(hanHaiMember);
member.setId(hanHaiMember.getId());
boolean result = hanHaiMemberService.updateById(member);
if(result){ if(result){
log.info("个人信息修改成功"); log.info("个人信息修改成功");
@ -140,6 +138,9 @@ public class UserInfoServiceImpl implements UserInfoService {
//5总佣金 //5总佣金
map.put("commission", hanHaiMember.getCommission()); map.put("commission", hanHaiMember.getCommission());
//6余额
map.put("balance", hanHaiMember.getPrice());
return Result.OK("个人基础数据信息",map); return Result.OK("个人基础数据信息",map);
}catch (Exception e){ }catch (Exception e){


+ 7
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/PartnerService.java View File

@ -3,6 +3,7 @@ package org.jeecg.modules.api.service;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.api.bean.PageBean; import org.jeecg.modules.api.bean.PageBean;
import org.jeecg.modules.studytourPartner.entity.StudytourPartner;
import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
@ -11,6 +12,12 @@ import java.math.BigDecimal;
public interface PartnerService { public interface PartnerService {
//合伙人-申请成为合伙人
public Result<?> applyPartner(String token, StudytourPartner studytourPartner);
//合伙人-查询合伙人信息
public Result<?> queryPartner(String token);
//我的团队-获取直推用户列表 //我的团队-获取直推用户列表
public Result<?> queryDirectList(String token, PageBean pageBean); public Result<?> queryDirectList(String token, PageBean pageBean);


+ 2
- 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/ImageController.java View File

@ -55,8 +55,8 @@ public class ImageController {
@ApiOperation(value="图片直播-标记有我", notes="图片直播-标记有我") @ApiOperation(value="图片直播-标记有我", notes="图片直播-标记有我")
@RequestMapping(value = "/queryMarkmeList", method = {RequestMethod.GET}) @RequestMapping(value = "/queryMarkmeList", method = {RequestMethod.GET})
public Result<?> queryMarkmeList(@RequestHeader("X-Access-Token") String token, String imageId, String imagePath){
return imageService.queryMarkmeList(token, imageId, imagePath);
public Result<?> queryMarkmeList(@RequestHeader("X-Access-Token") String token, String activityId, String imagePath){
return imageService.queryMarkmeList(token, activityId, imagePath);
} }
} }

+ 12
- 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/studytourController/PartnerController.java View File

@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.api.bean.PageBean; import org.jeecg.modules.api.bean.PageBean;
import org.jeecg.modules.api.service.PartnerService; import org.jeecg.modules.api.service.PartnerService;
import org.jeecg.modules.studytourPartner.entity.StudytourPartner;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -23,11 +24,17 @@ public class PartnerController {
private PartnerService partnerService; private PartnerService partnerService;
/******************************************************************************************************************/ /******************************************************************************************************************/
// @ApiOperation(value="合伙人-申请成为合伙人", notes="合伙人-申请成为合伙人")
// @RequestMapping(value = "/applyPartner", method = {RequestMethod.POST})
// public Result<?> applyPartner(@RequestHeader("X-Access-Token") String token, StudytourPartner studytourPartner){
// return Result.OK("接口暂未处理");
// }
@ApiOperation(value="合伙人-申请成为合伙人", notes="合伙人-申请成为合伙人")
@RequestMapping(value = "/applyPartner", method = {RequestMethod.POST})
public Result<?> applyPartner(@RequestHeader("X-Access-Token") String token, StudytourPartner studytourPartner){
return partnerService.applyPartner(token, studytourPartner);
}
@ApiOperation(value="合伙人-查询合伙人信息", notes="合伙人-查询合伙人信息")
@RequestMapping(value = "/queryPartner", method = {RequestMethod.GET})
public Result<?> queryPartner(@RequestHeader("X-Access-Token") String token){
return partnerService.queryPartner(token);
}
@ApiOperation(value="我的团队-查询直推用户列表", notes="我的团队-查询直推用户列表") @ApiOperation(value="我的团队-查询直推用户列表", notes="我的团队-查询直推用户列表")
@RequestMapping(value = "/queryDirectList", method = {RequestMethod.GET}) @RequestMapping(value = "/queryDirectList", method = {RequestMethod.GET})


+ 8
- 1
jeecg-boot-module-system/src/main/resources/application-dev.yml View File

@ -341,4 +341,11 @@ wx:
publicKeyPath: /root/studytour/cerFile/pub_key.pem #线上公钥路径 publicKeyPath: /root/studytour/cerFile/pub_key.pem #线上公钥路径
publicKeyId: PUB_KEY_ID_0117221765652025082500192305002202 #公钥 publicKeyId: PUB_KEY_ID_0117221765652025082500192305002202 #公钥
merchantSerialNumber: 79312C3428D20B6CE4B071EECC7B7E64E04D11AC # 商户API证书序列号 merchantSerialNumber: 79312C3428D20B6CE4B071EECC7B7E64E04D11AC # 商户API证书序列号
apiV3Key: 0fdb77429ffdf206c151af76a663041c # 商户APIV3密钥
apiV3Key: 0fdb77429ffdf206c151af76a663041c # 商户APIV3密钥
## 腾讯云
tencent:
miniapp:
#API密钥管理
secretId: AKIDIFcsy2we9QdlxylGj1531rVwCLVjkaLL #腾讯云API密钥id
secretKey: ymOmyxtmV3QddS5WkljmjotrePDsMiuy #腾讯云API密钥key

Loading…
Cancel
Save