diff --git a/src/app/admin/config-manage/integral-rebate/integral-rebate.component.html b/src/app/admin/config-manage/integral-rebate/integral-rebate.component.html index 2da2de2..b35ff48 100644 --- a/src/app/admin/config-manage/integral-rebate/integral-rebate.component.html +++ b/src/app/admin/config-manage/integral-rebate/integral-rebate.component.html @@ -24,8 +24,7 @@ 产品 - - + @@ -148,8 +147,7 @@ 卡券产品 - - + diff --git a/src/app/admin/merchant-store/store-edit/store-edit.component.html b/src/app/admin/merchant-store/store-edit/store-edit.component.html index a12b00e..ca9b096 100644 --- a/src/app/admin/merchant-store/store-edit/store-edit.component.html +++ b/src/app/admin/merchant-store/store-edit/store-edit.component.html @@ -52,6 +52,7 @@ + diff --git a/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.html b/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.html new file mode 100644 index 0000000..3a85af9 --- /dev/null +++ b/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.html @@ -0,0 +1,124 @@ + + + + + +
+
+
+ +
+ + 代理商 + + + + + + +
+
+ + 一级分销 + + + + + + +
+
+ + 二级分销 + + + + + + +
+
+ + 订单号 + + + + +
+
+ + 标题 + + + + +
+
+ + 用户名称 + + + + +
+ +
+ +
+
+ + +
+
+
+
+ + +
+ 共计 {{total}} 条数据 + + + + + 编号 + 标题 + 商品logo + 分销类型 + 订单号 + 用户名称 + 积分数量 + 创建时间 + + + + + {{i+1}} + {{data.title}} + + + + {{data.type == 1 ? '二级分销' : '一级分销'}} + {{data.orderNo}} + {{data.userName}} + {{data.integralNum}} + {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} + + +
+ + + diff --git a/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.scss b/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.scss new file mode 100644 index 0000000..8bee3fb --- /dev/null +++ b/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.scss @@ -0,0 +1,4 @@ +.head_img { + height: 60px; + width: 60px; +} diff --git a/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.ts b/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.ts new file mode 100644 index 0000000..9c691ad --- /dev/null +++ b/src/app/admin/promotion/distribution-integral-list/distribution-integral-list.component.ts @@ -0,0 +1,115 @@ +import { Component, OnInit } from '@angular/core'; +import {environment} from '../../../../environments/environment'; +import {FormBuilder, FormGroup} from '_@angular_forms@9.0.7@@angular/forms'; +import {IconService} from '../../../services/icon.service'; +import {NzMessageService} from '_ng-zorro-antd@9.3.0@ng-zorro-antd'; +import {Router} from '_@angular_router@9.0.7@@angular/router'; +import {CommonsService} from '../../../services/commons.service'; +import {DistributionService} from '../../../services/distribution.service'; + +@Component({ + selector: 'app-distribution-integral-list', + templateUrl: './distribution-integral-list.component.html', + styleUrls: ['./distribution-integral-list.component.scss'] +}) +export class DistributionIntegralListComponent implements OnInit { + + WEB_SERVE_URL = environment.imageUrl; + searchForm: FormGroup; // 搜索框 + requestData = []; // 列表数据 + agentData = []; // 代理商列表 + distributionFirst = []; // 一级分销 + distributionSecond = []; // 二级分销人员 + + total: number; // 页码 + pageNum = 1; // 页码 + pageSize = 10; // 条码 + loading = true; + // 代理商id + agentId: number; + popularizeUserId: number; + + + constructor( + private form: FormBuilder, + private distribution: DistributionService, + private iconService: IconService, + private message: NzMessageService, + ) { + } + + ngOnInit(): void { + this.init(); + this.getInitData(); + this.getDistributionFirst(); + this.getDistributionSecond(); + } + + // 获取初始化数据 + private getInitData(): void { + // 获取价格数据 + this.distribution.getDistributionAgent( data => { + this.agentData = data['return_data']; + }); + + } + + public init(): void { + this.searchForm = this.form.group({ + agentId : [null], + popularizeUserId: [null], + orderNo: [null], + title: [null], + userName: [null], + }); + + this.getRequest(true, this.searchForm.value); + } + + // 查询列表 + public getRequest(reset: boolean = false, whereObject: object) { + + this.loading = false; + if (reset) { + this.pageNum = 1; + } + whereObject['pageNum'] = this.pageNum; + whereObject['pageSize'] = this.pageSize; + this.distribution.getDistributionIntegralList(whereObject, data => { + if (data['return_code'] === '000000') { + this.requestData = data['return_data'].list; + this.total = data['return_data'].total; + } else { + this.message.error(data['return_msg']); + } + }); + } + + // 重置 + public resetForm(): void { + this.searchForm.reset(); + } + + // 查询一级分销 + public getDistributionFirst(agentId?: number) { + this.agentId = agentId; + const param = { + agentId : this.agentId + }; + this.distribution.getDistributionFirst(param , data => { + this.distributionFirst = data['return_data']; + }); + } + + // 查询二级分销 + public getDistributionSecond(popularizeUserId?: number) { + this.popularizeUserId = popularizeUserId; + const param = { + agentId : this.agentId, + popularizeUserId : this.popularizeUserId, + }; + this.distribution.getDistributionSecond(param , data => { + this.distributionSecond = data['return_data']; + }); + } +} diff --git a/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.html b/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.html new file mode 100644 index 0000000..da79e46 --- /dev/null +++ b/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.html @@ -0,0 +1,86 @@ + + + + + +
+
+
+ +
+ + 推广人 + + + + + + +
+
+ + 推广码 + + + + +
+ +
+ +
+
+ + +
+
+
+
+ + +
+ 共计 {{total}} 条数据 + + + + + 编号 + 标题 + 推广人 + 订单金额 + 订单号 + 用户名称 + 用户电话 + 创建时间 + + + + + {{i+1}} + {{data.goodsTypeName}} + {{data.agentName}} + {{'¥' + data.totalPrice}} + {{data.orderNo}} + {{data.memName}} + {{data.memPhone}} + {{data.createTime | date: 'yyyy-MM-dd HH:mm'}} + + +
+ + + diff --git a/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.scss b/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.ts b/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.ts new file mode 100644 index 0000000..ed85794 --- /dev/null +++ b/src/app/admin/promotion/promotion-order-list/promotion-order-list.component.ts @@ -0,0 +1,92 @@ +import { Component, OnInit } from '@angular/core'; +import {environment} from '../../../../environments/environment'; +import {FormBuilder, FormGroup} from '_@angular_forms@9.0.7@@angular/forms'; +import {DistributionService} from '../../../services/distribution.service'; +import {IconService} from '../../../services/icon.service'; +import {NzMessageService} from '_ng-zorro-antd@9.3.0@ng-zorro-antd'; +import {Router} from '_@angular_router@9.0.7@@angular/router'; +import {CommonsService} from '../../../services/commons.service'; + +@Component({ + selector: 'app-promotion-order-list', + templateUrl: './promotion-order-list.component.html', + styleUrls: ['./promotion-order-list.component.scss'] +}) +export class PromotionOrderListComponent implements OnInit { + + WEB_SERVE_URL = environment.imageUrl; + searchForm: FormGroup; // 搜索框 + requestData = []; // 列表数据 + agentData = []; // 代理商列表 + + + total: number; // 页码 + pageNum = 1; // 页码 + pageSize = 10; // 条码 + loading = true; + + + + constructor( + private form: FormBuilder, + private distribution: DistributionService, + private iconService: IconService, + private message: NzMessageService, + private router: Router, + private common: CommonsService + ) { + } + + ngOnInit(): void { + this.init(); + this.getInitData(); + } + + // 获取初始化数据 + private getInitData(): void { + // 获取价格数据 + this.distribution.agentUserList( data => { + this.agentData = data['return_data']; + }); + + } + + public init(): void { + this.searchForm = this.form.group({ + agentId : [null], + popularizeUserId: [null], + orderNo: [null], + title: [null], + userName: [null], + code: [null], + }); + + this.getRequest(true, this.searchForm.value); + } + + // 查询列表 + public getRequest(reset: boolean = false, whereObject: object) { + + this.loading = false; + if (reset) { + this.pageNum = 1; + } + whereObject['pageNum'] = this.pageNum; + whereObject['pageSize'] = this.pageSize; + this.distribution.orderListByAgentId(whereObject, data => { + if (data['return_code'] === '000000') { + this.requestData = data['return_data'].list; + this.total = data['return_data'].total; + } else { + this.message.error(data['return_msg']); + } + }); + } + + // 重置 + public resetForm(): void { + this.searchForm.reset(); + } + + +} diff --git a/src/app/admin/promotion/promotion-routing.module.ts b/src/app/admin/promotion/promotion-routing.module.ts new file mode 100644 index 0000000..151efc9 --- /dev/null +++ b/src/app/admin/promotion/promotion-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import {DistributionIntegralListComponent} from './distribution-integral-list/distribution-integral-list.component'; +import {PromotionOrderListComponent} from './promotion-order-list/promotion-order-list.component'; + + + +const routes: Routes = [ + { path: 'distribution-integral-list', component: DistributionIntegralListComponent }, + { path: 'promotion-order-list', component: PromotionOrderListComponent }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class PromotionRoutingModule { } diff --git a/src/app/admin/promotion/promotion.module.ts b/src/app/admin/promotion/promotion.module.ts new file mode 100644 index 0000000..a4e6705 --- /dev/null +++ b/src/app/admin/promotion/promotion.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { PromotionRoutingModule } from './promotion-routing.module'; +import { DistributionIntegralListComponent } from './distribution-integral-list/distribution-integral-list.component'; +import { PromotionOrderListComponent } from './promotion-order-list/promotion-order-list.component'; +import {NgZorroAntdModule} from '_ng-zorro-antd@9.3.0@ng-zorro-antd'; +import {SeparateModule} from '../../common/separate/separate.module'; +import {FormsModule, ReactiveFormsModule} from '_@angular_forms@9.0.7@@angular/forms'; +import {BreadcrumbModule} from '../../common/breadcrumb/breadcrumb.module'; + + +@NgModule({ + declarations: [DistributionIntegralListComponent, PromotionOrderListComponent], + imports: [ + CommonModule, + NgZorroAntdModule, + SeparateModule, + ReactiveFormsModule, + FormsModule, + BreadcrumbModule, + PromotionRoutingModule + ] +}) +export class PromotionModule { } diff --git a/src/app/admin/user/user-list/user-list.component.html b/src/app/admin/user/user-list/user-list.component.html index 36d2359..5a1fb5b 100644 --- a/src/app/admin/user/user-list/user-list.component.html +++ b/src/app/admin/user/user-list/user-list.component.html @@ -92,11 +92,9 @@ {{data.regTime | date: 'yyyy-MM-dd HH:mm'}} {{data.status ===1 ? '正常' : '禁用'}} - - - - - + {{data.status === 1 ? '禁用': '启用'}} + + {{data.isAgent === true ? '禁用推广员': '启用推广员'}} diff --git a/src/app/admin/user/user-list/user-list.component.ts b/src/app/admin/user/user-list/user-list.component.ts index 9cd45f1..455c689 100644 --- a/src/app/admin/user/user-list/user-list.component.ts +++ b/src/app/admin/user/user-list/user-list.component.ts @@ -85,4 +85,23 @@ export class UserListComponent implements OnInit { }); } + // 是否设置成代理商 + setUpAgent(id , isAgent: boolean) { + const message = (isAgent === true ? '当前用户禁用推广员' : '启用推广员'); + + this.common.showConfirm(message, data => { + if (data) { + this.user.setUpAgent(id, dataUser => { + if (dataUser['return_code'] === '000000') { + this.message.success('操作成功'); + this.getRequest(false , this.searchForm.value); + } else { + this.message.error(dataUser['return_msg']); + } + + }); + } + }); + } + } diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 977f099..3877c1f 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -152,6 +152,11 @@ const routes: Routes = [ loadChildren: () => import('./admin/api-merchants/api-merchants.module').then(m => m.ApiMerchantsModule), canActivate: [InitGuardService] }, + { + path: 'promotion', + loadChildren: () => import('./admin/promotion/promotion.module').then(m => m.PromotionModule), + canActivate: [InitGuardService] + }, ], }, ]; diff --git a/src/app/pipes/integral/integral-product.pipe.ts b/src/app/pipes/integral/integral-product.pipe.ts index 91a68fb..545f47e 100644 --- a/src/app/pipes/integral/integral-product.pipe.ts +++ b/src/app/pipes/integral/integral-product.pipe.ts @@ -6,7 +6,7 @@ import { Pipe, PipeTransform } from '@angular/core'; export class IntegralProductPipe implements PipeTransform { array = { - 1: ['重庆中石化' , '', '', '贵州中石化'], + 1: ['卡券产品'], 2: ['在线加油' ], 3: ['电信' , '移动' , '联通'], 4: ['星巴克' , '肯德基' , '会员充值'] diff --git a/src/app/sercices/integr-rebate.service.spec.ts b/src/app/sercices/integr-rebate.service.spec.ts deleted file mode 100644 index c3b9129..0000000 --- a/src/app/sercices/integr-rebate.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { IntegrRebateService } from './integr-rebate.service'; - -describe('IntegrRebateService', () => { - let service: IntegrRebateService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(IntegrRebateService); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/src/app/sercices/integr-rebate.service.ts b/src/app/sercices/integr-rebate.service.ts deleted file mode 100644 index 3972d33..0000000 --- a/src/app/sercices/integr-rebate.service.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable({ - providedIn: 'root' -}) -export class IntegrRebateService { - - constructor() { } -} diff --git a/src/app/services/distribution.service.ts b/src/app/services/distribution.service.ts new file mode 100644 index 0000000..159feab --- /dev/null +++ b/src/app/services/distribution.service.ts @@ -0,0 +1,94 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from '_@angular_common@9.0.7@@angular/common/http'; +import {CommonsService} from './commons.service'; +import {environment} from '../../environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class DistributionService { + + constructor( + private http: HttpClient, + private common: CommonsService + ) { } + + /** + * @Author Sum1Dream + * @methodName getDistributionAgent + * @Description // 查询分销代理商 + * @Date 11:06 2022/8/19 + * @Param callBack + */ + public getDistributionAgent(callBack) { + this.http.get(environment.baseUrl + 'bsDistributionUserRel/getDistributionAgent').subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @methodName getDistributionFirst + * @Description // 查询一级分销 + * @Date 11:07 2022/8/19 + * @Param param: object , callBack + */ + public getDistributionFirst(param: object , callBack) { + this.http.get(environment.baseUrl + 'bsDistributionUserRel/getDistributionFirst?' + this.common.getWhereCondition(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @methodName getDistributionSecond + * @Description // 查询二级分销 + * @Date 11:08 2022/8/19 + * @Param param: object , callBack + */ + public getDistributionSecond(param: object , callBack) { + this.http.get(environment.baseUrl + 'bsDistributionUserRel/getDistributionSecond?' + this.common.getWhereCondition(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @methodName getDistributionIntegralList + * @Description // 查询分销积分列表 + * @Date 11:09 2022/8/19 + * @Param param: object , callBack + */ + public getDistributionIntegralList(param: object , callBack) { + this.http.get(environment.baseUrl + 'bsDistributionUserRel/getDistributionIntegralList?' + this.common.getWhereCondition(param)).subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @methodName getDistributionAgent + * @Description // 查询推广代理商 + * @Date 11:06 2022/8/19 + * @Param callBack + */ + public agentUserList(callBack) { + this.http.get(environment.baseUrl + 'bsDistributionUserRel/agentUserList').subscribe(data => { + callBack(data); + }); + } + + /** + * @Author Sum1Dream + * @methodName getDistributionIntegralList + * @Description // 查询推广订单列表 + * @Date 11:09 2022/8/19 + * @Param param: object , callBack + */ + public orderListByAgentId(param: object , callBack) { + this.http.get(environment.baseUrl + 'bsDistributionUserRel/orderListByAgentId?' + this.common.getWhereCondition(param)).subscribe(data => { + callBack(data); + }); + } + +} diff --git a/src/app/services/user.service.ts b/src/app/services/user.service.ts index c470a16..0edd05a 100644 --- a/src/app/services/user.service.ts +++ b/src/app/services/user.service.ts @@ -85,4 +85,18 @@ export class UserService { }); } + + /** + * @Author Sum1Dream + * @methodName setAgent + * @Description // 设置代理商 + * @Date 15:41 2022/8/19 + * @Param userId: number, callBack + */ + public setUpAgent(userId: number, callBack) { + this.http.get(environment.baseUrl + 'highUser/setUpAgent?userId=' + userId).subscribe(data => { + callBack(data); + }); + } + } diff --git a/src/environments/environment.ts b/src/environments/environment.ts index ca22a39..a2d6d6f 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -4,10 +4,10 @@ export const environment = { production: false, -/* baseUrl: 'http://localhost:9302/brest/', // 测试环境服务器地址(请求数据地址) - imageUrl: 'http://localhost:9302/filesystem/',*/ - baseUrl: 'https://hsgcs.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址) - imageUrl: 'https://hsgcs.dctpay.com/filesystem/', + baseUrl: 'http://localhost:9302/brest/', // 测试环境服务器地址(请求数据地址) + imageUrl: 'http://localhost:9302/filesystem/', + // baseUrl: 'https://hsgcs.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址) + // imageUrl: 'https://hsgcs.dctpay.com/filesystem/', key: 'https://hsgcs.dctpay.com/phone-recharge-H5/index.html?codeValue=', inviteUrl: 'https://hsgcs.dctpay.com/wx/?action=ic&id=', };