后台页面完善一大堆功能

This commit is contained in:
kuang.yife 2024-05-05 21:30:35 +08:00
parent 29015cdc16
commit 03065cfc7c
36 changed files with 1732 additions and 57 deletions

View File

@ -29,6 +29,8 @@ public class PlayletCustomerServiceAppController {
@PostMapping("/getCustomerList") @PostMapping("/getCustomerList")
@ApiOperation(value = "查询客服列表") @ApiOperation(value = "查询客服列表")
public Result<List<PlayletCustomerService>> getCustomerList(@RequestBody PlayletCustomerService customerService) { public Result<List<PlayletCustomerService>> getCustomerList(@RequestBody PlayletCustomerService customerService) {
// 只查询启用的
customerService.setStatus("01");
return Result.success(playletCustomerServiceAppService.getCustomerList(customerService)); return Result.success(playletCustomerServiceAppService.getCustomerList(customerService));
} }

View File

@ -1,6 +1,9 @@
package com.playlet.web.controller.system; package com.playlet.web.controller.system;
import java.util.List; import java.util.List;
import com.playlet.common.core.domain.Result;
import com.playlet.common.core.domain.entity.SysUser;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -34,6 +37,14 @@ public class PlayletCustomerServiceController extends BaseController
@Autowired @Autowired
private IPlayletCustomerServiceService playletCustomerServiceService; private IPlayletCustomerServiceService playletCustomerServiceService;
@PostMapping("/changeStatus")
@ResponseBody
public AjaxResult changeStatus(PlayletCustomerService playletCustomerService)
{
playletCustomerServiceService.updateById(playletCustomerService);
return AjaxResult.success();
}
@RequiresPermissions("playlet:service:view") @RequiresPermissions("playlet:service:view")
@GetMapping() @GetMapping()
public String service() public String service()

View File

@ -86,8 +86,10 @@ public class PlayletItemController extends BaseController {
* 新增短剧基础 * 新增短剧基础
*/ */
@GetMapping("/add") @GetMapping("/add")
public String add() public String add(ModelMap modelMap)
{ {
List<PlayletItemType> itemTypes = playletItemTypeService.selectPlayletItemTypeList(new PlayletItemType());
modelMap.put("itemTypes", itemTypes);
return prefix + "/add"; return prefix + "/add";
} }
@ -111,7 +113,9 @@ public class PlayletItemController extends BaseController {
public String edit(@PathVariable("id") Long id, ModelMap mmap) public String edit(@PathVariable("id") Long id, ModelMap mmap)
{ {
PlayletItem playletItem = playletItemService.selectPlayletItemById(id); PlayletItem playletItem = playletItemService.selectPlayletItemById(id);
List<PlayletItemType> itemTypes = playletItemTypeService.selectPlayletItemTypeList(new PlayletItemType());
mmap.put("playletItem", playletItem); mmap.put("playletItem", playletItem);
mmap.put("itemTypes", itemTypes);
return prefix + "/edit"; return prefix + "/edit";
} }

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.playlet.common.core.domain.Result; import com.playlet.common.core.domain.Result;
import com.playlet.system.pojo.vo.RevenueRecordStatisticsVO; import com.playlet.system.pojo.vo.RevenueRecordStatisticsVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -26,6 +27,7 @@ import com.playlet.common.core.page.TableDataInfo;
* @Version: v1.0 * @Version: v1.0
* @Description: 短剧任务收益Controller * @Description: 短剧任务收益Controller
*/ */
@Api(tags = "外部系统推送收益返回平台")
@Controller @Controller
@RequestMapping("/system/record") @RequestMapping("/system/record")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
@ -81,6 +83,7 @@ public class PlayletRevenueRecordController extends BaseController {
@Log(title = "短剧任务收益", businessType = BusinessType.INSERT) @Log(title = "短剧任务收益", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
@ApiOperation(value = "第三方推送收益返回平台入参")
public AjaxResult addSave(PlayletRevenueRecord playletRevenueRecord) { public AjaxResult addSave(PlayletRevenueRecord playletRevenueRecord) {
return toAjax(playletRevenueRecordService.insertPlayletRevenueRecord(playletRevenueRecord)); return toAjax(playletRevenueRecordService.insertPlayletRevenueRecord(playletRevenueRecord));
} }

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.playlet.common.core.domain.Result; import com.playlet.common.core.domain.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -27,14 +28,15 @@ import com.playlet.common.core.page.TableDataInfo;
* @Description: 任务Controller * @Description: 任务Controller
*/ */
@Controller @Controller
@RequestMapping("/system/task") @RequestMapping("/system/playlet/task")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Api(tags = "外部系统*任务接口")
public class PlayletTaskController extends BaseController { public class PlayletTaskController extends BaseController {
private String prefix = "system/task"; private String prefix = "system/playlet/task";
private final IPlayletTaskService playletTaskService; private final IPlayletTaskService playletTaskService;
@RequiresPermissions("system:task:view") @RequiresPermissions("playlet:task:view")
@GetMapping() @GetMapping()
public String task() { public String task() {
return prefix + "/task"; return prefix + "/task";
@ -43,7 +45,7 @@ public class PlayletTaskController extends BaseController {
/** /**
* 查询任务列表 * 查询任务列表
*/ */
@RequiresPermissions("system:task:list") @RequiresPermissions("playlet:task:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @ResponseBody
public TableDataInfo list(PlayletTask playletTask) { public TableDataInfo list(PlayletTask playletTask) {
@ -55,7 +57,7 @@ public class PlayletTaskController extends BaseController {
/** /**
* 导出任务列表 * 导出任务列表
*/ */
@RequiresPermissions("system:task:export") @RequiresPermissions("playlet:task:export")
@Log(title = "任务", businessType = BusinessType.EXPORT) @Log(title = "任务", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
@ -76,7 +78,7 @@ public class PlayletTaskController extends BaseController {
/** /**
* 新增保存任务 * 新增保存任务
*/ */
@RequiresPermissions("system:task:add") @RequiresPermissions("playlet:task:add")
@Log(title = "任务", businessType = BusinessType.INSERT) @Log(title = "任务", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
@ -84,10 +86,18 @@ public class PlayletTaskController extends BaseController {
return toAjax(playletTaskService.insertPlayletTask(playletTask)); return toAjax(playletTaskService.insertPlayletTask(playletTask));
} }
@PostMapping("/batchAdd")
@ResponseBody
@ApiOperation("外部系统批量创建任务")
public AjaxResult batchAdd(@RequestBody List<PlayletTask> playletTasks) {
playletTaskService.saveBatch(playletTasks);
return AjaxResult.success();
}
/** /**
* 修改任务 * 修改任务
*/ */
@RequiresPermissions("system:task:edit") @RequiresPermissions("playlet:task:edit")
@GetMapping("/edit/{id}") @GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap) { public String edit(@PathVariable("id") Long id, ModelMap mmap) {
PlayletTask playletTask = playletTaskService.selectPlayletTaskById(id); PlayletTask playletTask = playletTaskService.selectPlayletTaskById(id);
@ -98,7 +108,7 @@ public class PlayletTaskController extends BaseController {
/** /**
* 修改保存任务 * 修改保存任务
*/ */
@RequiresPermissions("system:task:edit") @RequiresPermissions("playlet:task:edit")
@Log(title = "任务", businessType = BusinessType.UPDATE) @Log(title = "任务", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
@ -106,14 +116,28 @@ public class PlayletTaskController extends BaseController {
return toAjax(playletTaskService.updatePlayletTask(playletTask)); return toAjax(playletTaskService.updatePlayletTask(playletTask));
} }
@PostMapping("/editTask")
@ResponseBody
@ApiOperation("外部系统更新任务状态")
public AjaxResult editTask(@RequestBody PlayletTask playletTask) {
return toAjax(playletTaskService.updatePlayletTask(playletTask));
}
/** /**
* 删除任务 * 删除任务
*/ */
@RequiresPermissions("system:task:remove") @RequiresPermissions("playlet:task:remove")
@Log(title = "任务", businessType = BusinessType.DELETE) @Log(title = "任务", businessType = BusinessType.DELETE)
@PostMapping("/remove") @PostMapping("/remove")
@ResponseBody @ResponseBody
public AjaxResult remove(String ids) { public AjaxResult remove(String ids) {
return toAjax(playletTaskService.deletePlayletTaskByIds(ids)); return toAjax(playletTaskService.deletePlayletTaskByIds(ids));
} }
@PostMapping("/removeTask")
@ResponseBody
@ApiOperation("外部系统删除任务")
public AjaxResult removeTask(@RequestParam(value = "ids") String ids) {
return toAjax(playletTaskService.deletePlayletTaskByIds(ids));
}
} }

View File

@ -29,23 +29,23 @@ import com.playlet.common.core.page.TableDataInfo;
* @Description: 短剧用户提现账户Controller * @Description: 短剧用户提现账户Controller
*/ */
@Controller @Controller
@RequestMapping("/system/account") @RequestMapping("/system/playlet/userAccount")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class PlayletUserAccountController extends BaseController { public class PlayletUserAccountController extends BaseController {
private String prefix = "system/account"; private String prefix = "system/playlet/userAccount";
private final IPlayletUserAccountService playletUserAccountService; private final IPlayletUserAccountService playletUserAccountService;
@RequiresPermissions("system:account:view") @RequiresPermissions("playlet:userAccount:view")
@GetMapping() @GetMapping()
public String account() { public String account() {
return prefix + "/account"; return prefix + "/userAccount";
} }
/** /**
* 查询短剧用户提现账户列表 * 查询短剧用户提现账户列表
*/ */
@RequiresPermissions("system:account:list") @RequiresPermissions("playlet:userAccount:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @ResponseBody
public TableDataInfo list(PlayletUserAccount playletUserAccount) { public TableDataInfo list(PlayletUserAccount playletUserAccount) {
@ -57,7 +57,7 @@ public class PlayletUserAccountController extends BaseController {
/** /**
* 导出短剧用户提现账户列表 * 导出短剧用户提现账户列表
*/ */
@RequiresPermissions("system:account:export") @RequiresPermissions("playlet:userAccount:export")
@Log(title = "短剧用户提现账户", businessType = BusinessType.EXPORT) @Log(title = "短剧用户提现账户", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
@ -78,7 +78,7 @@ public class PlayletUserAccountController extends BaseController {
/** /**
* 新增保存短剧用户提现账户 * 新增保存短剧用户提现账户
*/ */
@RequiresPermissions("system:account:add") @RequiresPermissions("playlet:userAccount:add")
@Log(title = "短剧用户提现账户", businessType = BusinessType.INSERT) @Log(title = "短剧用户提现账户", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
@ -89,7 +89,7 @@ public class PlayletUserAccountController extends BaseController {
/** /**
* 修改短剧用户提现账户 * 修改短剧用户提现账户
*/ */
@RequiresPermissions("system:account:edit") @RequiresPermissions("playlet:userAccount:edit")
@GetMapping("/edit/{id}") @GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap) { public String edit(@PathVariable("id") Long id, ModelMap mmap) {
PlayletUserAccount playletUserAccount = playletUserAccountService.selectPlayletUserAccountById(id); PlayletUserAccount playletUserAccount = playletUserAccountService.selectPlayletUserAccountById(id);
@ -100,7 +100,7 @@ public class PlayletUserAccountController extends BaseController {
/** /**
* 修改保存短剧用户提现账户 * 修改保存短剧用户提现账户
*/ */
@RequiresPermissions("system:account:edit") @RequiresPermissions("playlet:userAccount:edit")
@Log(title = "短剧用户提现账户", businessType = BusinessType.UPDATE) @Log(title = "短剧用户提现账户", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
@ -111,7 +111,7 @@ public class PlayletUserAccountController extends BaseController {
/** /**
* 删除短剧用户提现账户 * 删除短剧用户提现账户
*/ */
@RequiresPermissions("system:account:remove") @RequiresPermissions("playlet:userAccount:remove")
@Log(title = "短剧用户提现账户", businessType = BusinessType.DELETE) @Log(title = "短剧用户提现账户", businessType = BusinessType.DELETE)
@PostMapping("/remove") @PostMapping("/remove")
@ResponseBody @ResponseBody

View File

@ -124,4 +124,11 @@ public class PlayletUserController extends BaseController
{ {
return toAjax(playletUserService.deletePlayletUserByIds(ids)); return toAjax(playletUserService.deletePlayletUserByIds(ids));
} }
@GetMapping("/placeUser/{code}")
public String vipConfig(@PathVariable("code") String code, ModelMap mmap)
{
mmap.put("parentId", code);
return "system/playlet/user/placeUser";
}
} }

View File

@ -2,6 +2,8 @@ package com.playlet.web.controller.system;
import java.util.List; import java.util.List;
import com.playlet.system.domain.PlayletUser;
import com.playlet.system.service.IPlayletUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -27,14 +29,17 @@ import com.playlet.common.core.page.TableDataInfo;
* @Description: 用户开票信息Controller * @Description: 用户开票信息Controller
*/ */
@Controller @Controller
@RequestMapping("/system/invoice") @RequestMapping("/system/playlet/invoice")
public class PlayletUserInvoiceController extends BaseController { public class PlayletUserInvoiceController extends BaseController {
private String prefix = "system/invoice"; private String prefix = "system/playlet/invoice";
@Autowired @Autowired
private IPlayletUserInvoiceService playletUserInvoiceService; private IPlayletUserInvoiceService playletUserInvoiceService;
@RequiresPermissions("system:invoice:view") @Autowired
private IPlayletUserService playletUserService;
@RequiresPermissions("playlet:invoice:view")
@GetMapping() @GetMapping()
public String invoice() { public String invoice() {
return prefix + "/invoice"; return prefix + "/invoice";
@ -43,19 +48,25 @@ public class PlayletUserInvoiceController extends BaseController {
/** /**
* 查询用户开票信息列表 * 查询用户开票信息列表
*/ */
@RequiresPermissions("system:invoice:list") @RequiresPermissions("playlet:invoice:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @ResponseBody
public TableDataInfo list(PlayletUserInvoice playletUserInvoice) { public TableDataInfo list(PlayletUserInvoice playletUserInvoice) {
startPage(); startPage();
List<PlayletUserInvoice> list = playletUserInvoiceService.selectPlayletUserInvoiceList(playletUserInvoice); List<PlayletUserInvoice> list = playletUserInvoiceService.selectPlayletUserInvoiceList(playletUserInvoice);
list.forEach(model->{
PlayletUser user = playletUserService.getById(model.getUserId());
if(user != null){
model.setUserName(user.getNickName());
}
});
return getDataTable(list); return getDataTable(list);
} }
/** /**
* 导出用户开票信息列表 * 导出用户开票信息列表
*/ */
@RequiresPermissions("system:invoice:export") @RequiresPermissions("playlet:invoice:export")
@Log(title = "用户开票信息", businessType = BusinessType.EXPORT) @Log(title = "用户开票信息", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
@ -76,7 +87,7 @@ public class PlayletUserInvoiceController extends BaseController {
/** /**
* 新增保存用户开票信息 * 新增保存用户开票信息
*/ */
@RequiresPermissions("system:invoice:add") @RequiresPermissions("playlet:invoice:add")
@Log(title = "用户开票信息", businessType = BusinessType.INSERT) @Log(title = "用户开票信息", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
@ -87,7 +98,7 @@ public class PlayletUserInvoiceController extends BaseController {
/** /**
* 修改用户开票信息 * 修改用户开票信息
*/ */
@RequiresPermissions("system:invoice:edit") @RequiresPermissions("playlet:invoice:edit")
@GetMapping("/edit/{id}") @GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap) { public String edit(@PathVariable("id") Long id, ModelMap mmap) {
PlayletUserInvoice playletUserInvoice = playletUserInvoiceService.selectPlayletUserInvoiceById(id); PlayletUserInvoice playletUserInvoice = playletUserInvoiceService.selectPlayletUserInvoiceById(id);
@ -98,7 +109,7 @@ public class PlayletUserInvoiceController extends BaseController {
/** /**
* 修改保存用户开票信息 * 修改保存用户开票信息
*/ */
@RequiresPermissions("system:invoice:edit") @RequiresPermissions("playlet:invoice:edit")
@Log(title = "用户开票信息", businessType = BusinessType.UPDATE) @Log(title = "用户开票信息", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
@ -109,7 +120,7 @@ public class PlayletUserInvoiceController extends BaseController {
/** /**
* 删除用户开票信息 * 删除用户开票信息
*/ */
@RequiresPermissions("system:invoice:remove") @RequiresPermissions("playlet:invoice:remove")
@Log(title = "用户开票信息", businessType = BusinessType.DELETE) @Log(title = "用户开票信息", businessType = BusinessType.DELETE)
@PostMapping("/remove") @PostMapping("/remove")
@ResponseBody @ResponseBody

View File

@ -0,0 +1,145 @@
package com.playlet.web.controller.system;
import java.util.List;
import com.playlet.system.domain.PlayletUser;
import com.playlet.system.service.IPlayletUserService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.playlet.common.annotation.Log;
import com.playlet.common.enums.BusinessType;
import com.playlet.system.domain.PlayletUserLogin;
import com.playlet.system.service.IPlayletUserLoginService;
import com.playlet.common.core.controller.BaseController;
import com.playlet.common.core.domain.AjaxResult;
import com.playlet.common.utils.poi.ExcelUtil;
import com.playlet.common.core.page.TableDataInfo;
/**
* 用户登录记录Controller
*
* @author ruoyi
* @date 2024-05-05
*/
@Controller
@RequestMapping("/system/playlet/login")
public class PlayletUserLoginController extends BaseController
{
private String prefix = "system/playlet/login";
@Autowired
private IPlayletUserLoginService playletUserLoginService;
@Autowired
private IPlayletUserService playletUserService;
@RequiresPermissions("playlet:login:view")
@GetMapping()
public String login()
{
return prefix + "/login";
}
/**
* 查询用户登录记录列表
*/
@RequiresPermissions("playlet:login:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(PlayletUserLogin playletUserLogin)
{
startPage();
List<PlayletUserLogin> list = playletUserLoginService.selectPlayletUserLoginList(playletUserLogin);
list.forEach(model->{
PlayletUser user = playletUserService.getById(model.getUserId());
if(user != null){
model.setUserName(user.getNickName());
}
});
return getDataTable(list);
}
/**
* 导出用户登录记录列表
*/
@RequiresPermissions("playlet:login:export")
@Log(title = "用户登录记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(PlayletUserLogin playletUserLogin)
{
List<PlayletUserLogin> list = playletUserLoginService.selectPlayletUserLoginList(playletUserLogin);
list.forEach(model->{
PlayletUser user = playletUserService.getById(model.getUserId());
if(user != null){
model.setUserName(user.getNickName());
}
});
ExcelUtil<PlayletUserLogin> util = new ExcelUtil<PlayletUserLogin>(PlayletUserLogin.class);
return util.exportExcel(list, "用户登录记录数据");
}
/**
* 新增用户登录记录
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
* 新增保存用户登录记录
*/
@RequiresPermissions("playlet:login:add")
@Log(title = "用户登录记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(PlayletUserLogin playletUserLogin)
{
return toAjax(playletUserLoginService.insertPlayletUserLogin(playletUserLogin));
}
/**
* 修改用户登录记录
*/
@RequiresPermissions("playlet:login:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
PlayletUserLogin playletUserLogin = playletUserLoginService.selectPlayletUserLoginById(id);
mmap.put("playletUserLogin", playletUserLogin);
return prefix + "/edit";
}
/**
* 修改保存用户登录记录
*/
@RequiresPermissions("playlet:login:edit")
@Log(title = "用户登录记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(PlayletUserLogin playletUserLogin)
{
return toAjax(playletUserLoginService.updatePlayletUserLogin(playletUserLogin));
}
/**
* 删除用户登录记录
*/
@RequiresPermissions("playlet:login:remove")
@Log(title = "用户登录记录", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(playletUserLoginService.deletePlayletUserLoginByIds(ids));
}
}

View File

@ -3,7 +3,9 @@ package com.playlet.web.controller.system;
import java.util.List; import java.util.List;
import com.playlet.common.core.domain.Result; import com.playlet.common.core.domain.Result;
import com.playlet.system.domain.PlayletUser;
import com.playlet.system.domain.PlayletUserWithdrawalPassword; import com.playlet.system.domain.PlayletUserWithdrawalPassword;
import com.playlet.system.service.IPlayletUserService;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
@ -27,14 +29,16 @@ import com.playlet.common.core.page.TableDataInfo;
* @Description: 用户交易记录Controller * @Description: 用户交易记录Controller
*/ */
@Controller @Controller
@RequestMapping("/system/userWithdrawRecord") @RequestMapping("/system/playlet/record")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class PlayletUserWithdrawDepositRecordController extends BaseController { public class PlayletUserWithdrawDepositRecordController extends BaseController {
private String prefix = "system/record"; private String prefix = "system/playlet/record";
private final IPlayletUserWithdrawDepositRecordService playletUserWithdrawDepositRecordService; private final IPlayletUserWithdrawDepositRecordService playletUserWithdrawDepositRecordService;
@RequiresPermissions("system:record:view") private final IPlayletUserService playletUserService;
@RequiresPermissions("playlet:record:view")
@GetMapping() @GetMapping()
public String record() { public String record() {
return prefix + "/record"; return prefix + "/record";
@ -43,19 +47,25 @@ public class PlayletUserWithdrawDepositRecordController extends BaseController {
/** /**
* 查询用户交易记录列表 * 查询用户交易记录列表
*/ */
@RequiresPermissions("system:record:list") @RequiresPermissions("playlet:record:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @ResponseBody
public TableDataInfo list(PlayletUserWithdrawDepositRecord playletUserWithdrawDepositRecord) { public TableDataInfo list(PlayletUserWithdrawDepositRecord playletUserWithdrawDepositRecord) {
startPage(); startPage();
List<PlayletUserWithdrawDepositRecord> list = playletUserWithdrawDepositRecordService.selectPlayletUserWithdrawDepositRecordList(playletUserWithdrawDepositRecord); List<PlayletUserWithdrawDepositRecord> list = playletUserWithdrawDepositRecordService.selectPlayletUserWithdrawDepositRecordList(playletUserWithdrawDepositRecord);
list.forEach(model->{
PlayletUser user = playletUserService.getById(model.getUserId());
if(user != null){
model.setUserName(user.getNickName());
}
});
return getDataTable(list); return getDataTable(list);
} }
/** /**
* 导出用户交易记录列表 * 导出用户交易记录列表
*/ */
@RequiresPermissions("system:record:export") @RequiresPermissions("playlet:record:export")
@Log(title = "用户交易记录", businessType = BusinessType.EXPORT) @Log(title = "用户交易记录", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
@ -76,7 +86,7 @@ public class PlayletUserWithdrawDepositRecordController extends BaseController {
/** /**
* 新增保存用户交易记录 * 新增保存用户交易记录
*/ */
@RequiresPermissions("system:record:add") @RequiresPermissions("playlet:record:add")
@Log(title = "用户交易记录", businessType = BusinessType.INSERT) @Log(title = "用户交易记录", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
@ -87,7 +97,7 @@ public class PlayletUserWithdrawDepositRecordController extends BaseController {
/** /**
* 修改用户交易记录 * 修改用户交易记录
*/ */
@RequiresPermissions("system:record:edit") @RequiresPermissions("playlet:record:edit")
@GetMapping("/edit/{id}") @GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap) { public String edit(@PathVariable("id") Long id, ModelMap mmap) {
PlayletUserWithdrawDepositRecord playletUserWithdrawDepositRecord = playletUserWithdrawDepositRecordService.selectPlayletUserWithdrawDepositRecordById(id); PlayletUserWithdrawDepositRecord playletUserWithdrawDepositRecord = playletUserWithdrawDepositRecordService.selectPlayletUserWithdrawDepositRecordById(id);
@ -98,7 +108,7 @@ public class PlayletUserWithdrawDepositRecordController extends BaseController {
/** /**
* 修改保存用户交易记录 * 修改保存用户交易记录
*/ */
@RequiresPermissions("system:record:edit") @RequiresPermissions("playlet:record:edit")
@Log(title = "用户交易记录", businessType = BusinessType.UPDATE) @Log(title = "用户交易记录", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
@ -109,7 +119,7 @@ public class PlayletUserWithdrawDepositRecordController extends BaseController {
/** /**
* 删除用户交易记录 * 删除用户交易记录
*/ */
@RequiresPermissions("system:record:remove") @RequiresPermissions("playlet:record:remove")
@Log(title = "用户交易记录", businessType = BusinessType.DELETE) @Log(title = "用户交易记录", businessType = BusinessType.DELETE)
@PostMapping("/remove") @PostMapping("/remove")
@ResponseBody @ResponseBody

View File

@ -48,4 +48,6 @@ public interface PlayletUserAppService {
PlayletUser addPlayletUser(PlayletUser playletUser) throws Exception; PlayletUser addPlayletUser(PlayletUser playletUser) throws Exception;
void addLoginRecord(Long userId);
} }

View File

@ -1,11 +1,15 @@
package com.playlet.web.service.app.impl; package com.playlet.web.service.app.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.playlet.common.constant.PlayletConstants; import com.playlet.common.constant.PlayletConstants;
import com.playlet.common.constant.RedisConstants; import com.playlet.common.constant.RedisConstants;
import com.playlet.system.domain.PlayletUser; import com.playlet.system.domain.PlayletUser;
import com.playlet.system.domain.PlayletUserLogin;
import com.playlet.system.service.IPlayletUserLoginService;
import com.playlet.system.service.IPlayletUserService; import com.playlet.system.service.IPlayletUserService;
import com.playlet.web.req.PlayUserReq; import com.playlet.web.req.PlayUserReq;
import com.playlet.web.service.app.PlayletUserAppService; import com.playlet.web.service.app.PlayletUserAppService;
@ -16,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -28,6 +33,8 @@ public class PlayletUserAppServiceImpl implements PlayletUserAppService {
private final StringRedisTemplate stringRedisTemplate; private final StringRedisTemplate stringRedisTemplate;
private final IPlayletUserLoginService iPlayletUserLoginService;
@Override @Override
public PlayletUser addPlayletUser(PlayletUser playletUser) throws Exception{ public PlayletUser addPlayletUser(PlayletUser playletUser) throws Exception{
@ -66,7 +73,11 @@ public class PlayletUserAppServiceImpl implements PlayletUserAppService {
@Override @Override
public PlayletUser onlyLoginByOpenid(String openid) { public PlayletUser onlyLoginByOpenid(String openid) {
return iPlayletUserService.lambdaQuery().eq(PlayletUser::getOpenId, openid).one(); PlayletUser user = iPlayletUserService.lambdaQuery().eq(PlayletUser::getOpenId, openid).one();
if(user != null){
this.addLoginRecord(user.getId());
}
return user;
} }
@Override @Override
@ -78,8 +89,10 @@ public class PlayletUserAppServiceImpl implements PlayletUserAppService {
if(!alreadyCode.equals(playUserReq.getCode())){ if(!alreadyCode.equals(playUserReq.getCode())){
throw new Exception("短信验证码错误!"); throw new Exception("短信验证码错误!");
} }
return iPlayletUserService.lambdaQuery() PlayletUser user = iPlayletUserService.lambdaQuery()
.eq(PlayletUser::getPhone, playUserReq.getPhone()).one(); .eq(PlayletUser::getPhone, playUserReq.getPhone()).one();
this.addLoginRecord(user.getId());
return user;
} }
@Override @Override
@ -90,6 +103,7 @@ public class PlayletUserAppServiceImpl implements PlayletUserAppService {
if(playletUser == null){ if(playletUser == null){
throw new Exception("账号或密码错误!"); throw new Exception("账号或密码错误!");
}else { }else {
this.addLoginRecord(playletUser.getId());
return playletUser; return playletUser;
} }
} }
@ -125,4 +139,23 @@ public class PlayletUserAppServiceImpl implements PlayletUserAppService {
List<PlayletUser> list = iPlayletUserService.selectPlayletUserList(playletUser); List<PlayletUser> list = iPlayletUserService.selectPlayletUserList(playletUser);
return PageInfo.of(list); return PageInfo.of(list);
} }
@Override
public void addLoginRecord(Long userId) {
String nowDate = DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN);
Date begin = DateUtil.parse(nowDate+" 00:00:00", DatePattern.NORM_DATETIME_PATTERN);
Date end = DateUtil.parse(nowDate+" 23:59:59", DatePattern.NORM_DATETIME_PATTERN);
long count = iPlayletUserLoginService.lambdaQuery()
.eq(PlayletUserLogin::getUserId, userId)
.between(PlayletUserLogin::getLoginTime, begin, end)
.count();
if(count == 0){
PlayletUserLogin login = new PlayletUserLogin();
login.setUserId(userId);
login.setLoginTime(new Date());
login.setCreateTime(new Date());
login.setCreateBy("system");
iPlayletUserLoginService.save(login);
}
}
} }

View File

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改用户开票信息')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-invoice-edit" th:object="${playletUserInvoice}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="remark" th:field="*{remark}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="companyName" th:field="*{companyName}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">企业纳税识别号:</label>
<div class="col-sm-8">
<input name="taxpayerNumber" th:field="*{taxpayerNumber}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">企业电话:</label>
<div class="col-sm-8">
<input name="companyPhone" th:field="*{companyPhone}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">企业地址:</label>
<div class="col-sm-8">
<input name="companySite" th:field="*{companySite}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">企业开户行帐号:</label>
<div class="col-sm-8">
<input name="bankAccountNumber" th:field="*{bankAccountNumber}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">企业开户行名称:</label>
<div class="col-sm-8">
<input name="bankAccountName" th:field="*{bankAccountName}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">用户id</label>
<div class="col-sm-8">
<input name="userId" th:field="*{userId}" class="form-control" type="text" required>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "system/playlet/invoice";
$("#form-invoice-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-invoice-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,139 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('用户开票信息列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>开票公司名称:</label>
<input type="text" name="companyName"/>
</li>
<li>
<label>企业纳税识别号:</label>
<input type="text" name="taxpayerNumber"/>
</li>
<li>
<label>企业电话:</label>
<input type="text" name="companyPhone"/>
</li>
<li>
<label>企业地址:</label>
<input type="text" name="companySite"/>
</li>
<li>
<label>企业开户行帐号:</label>
<input type="text" name="bankAccountNumber"/>
</li>
<li>
<label>企业开户行名称:</label>
<input type="text" name="bankAccountName"/>
</li>
<li>
<label>用户id</label>
<input type="text" name="userId"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:invoice:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:invoice:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:invoice:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('system:invoice:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:invoice:remove')}]];
var prefix = ctx + "system/playlet/invoice";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "用户开票信息",
columns: [{
checkbox: true
},
{
field: 'id',
title: '开票信息主键id',
visible: false
},
{
field: 'remark',
title: '备注'
},
{
field: 'companyName',
title: '开票公司名称'
},
{
field: 'taxpayerNumber',
title: '企业纳税识别号'
},
{
field: 'companyPhone',
title: '企业电话'
},
{
field: 'companySite',
title: '企业地址'
},
{
field: 'bankAccountNumber',
title: '企业开户行帐号'
},
{
field: 'bankAccountName',
title: '企业开户行名称'
},
{
field: 'userId',
title: '用户id'
},
{
field: 'userName',
title: '用户昵称'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -21,6 +21,14 @@
</select> </select>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">剧场:</label>
<div class="col-sm-8">
<select id="itemType" name="itemType" class="form-control control-label" required>
<option th:each="itemType:${itemTypes}" th:value="${itemType.id}" th:text="${itemType.name}"></option>
</select>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">视频是否完结:</label> <label class="col-sm-3 control-label is-required">视频是否完结:</label>
<div class="col-sm-8"> <div class="col-sm-8">

View File

@ -20,6 +20,14 @@
<input name="videoName" th:field="*{videoName}" class="form-control" type="text" required> <input name="videoName" th:field="*{videoName}" class="form-control" type="text" required>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">剧场:</label>
<div class="col-sm-8">
<select id="itemType" name="itemType" class="form-control control-label" required>
<option th:each="itemType:${itemTypes}" th:value="${itemType.id}" th:text="${itemType.name}" th:field="*{itemType}"></option>
</select>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">来源类型:</label> <label class="col-sm-3 control-label">来源类型:</label>
<div class="col-sm-8"> <div class="col-sm-8">

View File

@ -0,0 +1,94 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('用户登录记录列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>用户id</label>
<input type="text" name="userId"/>
</li>
<li>
<label>登录时间:</label>
<input type="text" class="time-input" placeholder="请选择登录时间" name="loginTime"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:login:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:login:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var removeFlag = [[${@permission.hasPermi('playlet:login:remove')}]];
var prefix = ctx + "/system/playlet/login";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "用户登录记录",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'userId',
title: '用户id'
},
{
field: 'userName',
title: '用户昵称'
},
{
field: 'loginTime',
title: '登录时间'
},
{
field: 'remark',
title: '备注'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -0,0 +1,127 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('用户交易记录列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>用户id</label>
<input type="text" name="userId"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:record:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:record:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('system:record:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:record:remove')}]];
var prefix = ctx + "system/playlet/record";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "用户交易记录",
columns: [{
checkbox: true
},
{
field: 'id',
title: '用户提现记录表主键id',
visible: false
},
{
field: 'userId',
title: '用户id'
},
{
field: 'userName',
title: '用户昵称'
},
{
field: 'withdrawOrder',
title: '提现订单号'
},
{
field: 'accountingTime',
title: '到账时间'
},
{
field: 'withdrawBankId',
title: '用户提现卡号'
},
{
field: 'withdrawBank',
title: '提现银行'
},
{
field: 'withdrawOpeningBank',
title: '提现银行开户行地址'
},
{
field: 'status',
title: '提现状态 1 申请提现 2 审批通过 3 交易完成 4 审批不通过'
},
{
field: 'withdrawApplyTime',
title: '申请提现时间'
},
{
field: 'withdrawApplyTotal',
title: '提现申请总金额,单位分'
},
{
field: 'withdrawRealityTotal',
title: '实际提现金额,单位分'
},
{
field: 'withdrawCharge',
title: '提现手续费,单位分'
},
{
field: 'remark',
title: '备注'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -74,7 +74,11 @@
}, },
{ {
field: 'status', field: 'status',
title: '启用状态' title: '启用状态',
align: 'center',
formatter: function (value, row, index) {
return statusTools(row);
}
}, },
{ {
field: 'createBy', field: 'createBy',
@ -109,6 +113,30 @@
}; };
$.table.init(options); $.table.init(options);
}); });
/* 用户状态显示 */
function statusTools(row) {
if (row.status === '02') {
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.id + '\')"></i> ';
} else {
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.id + '\')"></i> ';
}
}
/* 用户管理-停用 */
function disable(userId) {
$.modal.confirm("确认要停用客服吗?", function() {
$.operate.post(prefix + "/changeStatus", { "id": userId, "status": '02' });
})
}
/* 用户管理启用 */
function enable(userId) {
$.modal.confirm("确认要启用客服吗?", function() {
$.operate.post(prefix + "/changeStatus", { "id": userId, "status": '01' });
})
}
</script> </script>
</body> </body>
</html> </html>

View File

@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增任务')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-task-add">
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务id 保留字段:</label>
<div class="col-sm-8">
<input name="taskId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务名称:</label>
<div class="col-sm-8">
<input name="name" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务开始时间:</label>
<div class="col-sm-8">
<input id="startTime" name="startTime" class="form-control time-input" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务结束时间:</label>
<div class="col-sm-8">
<input id="endTime" name="endTime" class="form-control time-input" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务规则:</label>
<div class="col-sm-8">
<textarea name="rule" class="form-control" required></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务投稿开始时间:</label>
<div class="col-sm-8">
<input id="contributeStartTime" name="contributeStartTime" class="form-control time-input" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务投稿结束时间:</label>
<div class="col-sm-8">
<input id="contributeEndTime" name="contributeEndTime" class="form-control time-input" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务要求:</label>
<div class="col-sm-8">
<textarea name="askFor" class="form-control" required></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务总奖金,单位分 保留:</label>
<div class="col-sm-8">
<input name="totalBonus" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务奖励描述:</label>
<div class="col-sm-8">
<textarea name="awardDescribe" class="form-control" required></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务状态 0 未开始 1 已开始 2 已结束 3 已失效 4 已完成:</label>
<div class="col-sm-8">
<input name="state" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="remark" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "system/playlet/task"
$("#form-task-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-task-add').serialize());
}
}
laydate.render({
elem: '#startTime',
type: 'datetime',
trigger: 'click'
});
</script>
</body>
</html>

View File

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改任务')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-task-edit" th:object="${playletTask}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务id 保留字段:</label>
<div class="col-sm-8">
<input name="taskId" th:field="*{taskId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务名称:</label>
<div class="col-sm-8">
<input name="name" th:field="*{name}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务开始时间:</label>
<div class="col-sm-8">
<input name="startTime" th:field="*{startTime}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务结束时间:</label>
<div class="col-sm-8">
<input name="endTime" th:field="*{endTime}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务规则:</label>
<div class="col-sm-8">
<textarea name="rule" class="form-control" required>[[*{rule}]]</textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务投稿开始时间:</label>
<div class="col-sm-8">
<input name="contributeStartTime" th:field="*{contributeStartTime}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务投稿结束时间:</label>
<div class="col-sm-8">
<input name="contributeEndTime" th:field="*{contributeEndTime}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务要求:</label>
<div class="col-sm-8">
<textarea name="askFor" class="form-control" required>[[*{askFor}]]</textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务总奖金,单位分 保留:</label>
<div class="col-sm-8">
<input name="totalBonus" th:field="*{totalBonus}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务奖励描述:</label>
<div class="col-sm-8">
<textarea name="awardDescribe" class="form-control" required>[[*{awardDescribe}]]</textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">任务状态 0 未开始 1 已开始 2 已结束 3 已失效 4 已完成:</label>
<div class="col-sm-8">
<input name="state" th:field="*{state}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="remark" th:field="*{remark}" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "system/playlet/task";
$("#form-task-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-task-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,134 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('任务列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>任务名称:</label>
<input type="text" name="name"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:task:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:task:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:task:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:task:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('system:task:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:task:remove')}]];
var prefix = ctx + "system/playlet/task";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "任务",
columns: [{
checkbox: true
},
{
field: 'id',
title: '任务主键id',
visible: false
},
{
field: 'taskId',
title: '任务id'
},
{
field: 'name',
title: '任务名称'
},
{
field: 'startTime',
title: '任务开始时间'
},
{
field: 'endTime',
title: '任务结束时间'
},
{
field: 'platformType',
title: '任务短剧平台'
},
{
field: 'rule',
title: '任务规则'
},
{
field: 'contributeStartTime',
title: '任务投稿开始时间'
},
{
field: 'contributeEndTime',
title: '任务投稿结束时间'
},
{
field: 'askFor',
title: '任务要求'
},
{
field: 'totalBonus',
title: '任务总奖金,单位分 保留'
},
{
field: 'awardDescribe',
title: '任务奖励描述'
},
{
field: 'state',
title: '任务状态 0 未开始 1 已开始 2 已结束 3 已失效 4 已完成'
},
{
field: 'remark',
title: '备注'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -0,0 +1,96 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('邀请列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<input type="text" hidden name="parentId" th:value="${parentId}"/>
</li>
<!-- <li>-->
<!-- <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>-->
<!-- <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>-->
<!-- </li>-->
</ul>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: select2-js" />
<th:block th:include="include :: jquery-cxselect-js" />
<th:block th:include="include :: bootstrap-table-editable-js" />
<script th:inline="javascript">
var prefix = ctx + "system/playlet/user";
var statusDict = [[${@dict.getType('playlet_status')}]];
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "邀请列表",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键',
visible: false
},
{
field: 'code',
title: '编码'
},
{
field: 'phone',
title: '手机号'
},
{
field: 'nickName',
title: '昵称'
},
{
field: 'password',
title: '密码'
},
{
field: 'icon',
title: '头像'
},
{
field: 'agencyId',
title: '代理人'
},
{
field: 'parentId',
title: '父级代理'
},
{
field: 'status',
title: '短剧状态',
align: 'center',
formatter: function(value, row, index) {
return $.table.selectDictLabel(statusDict, value);
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -18,6 +18,12 @@
<label>昵称:</label> <label>昵称:</label>
<input type="text" name="nickName"/> <input type="text" name="nickName"/>
</li> </li>
<li class="select-time">
<label>创建时间: </label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
</li>
<li> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
@ -130,6 +136,7 @@
align: 'center', align: 'center',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="placeUser(\'' + row.code + '\')"><i class="fa fa-edit"></i>邀请列表</a> ');
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> '); actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>'); actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join(''); return actions.join('');
@ -138,6 +145,12 @@
}; };
$.table.init(options); $.table.init(options);
}); });
function placeUser(code) {
var url = prefix + "/placeUser/" + code;
$.modal.open("邀请列表", url);
}
</script> </script>
</body> </body>
</html> </html>

View File

@ -0,0 +1,140 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('短剧用户提现账户列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>用户id</label>
<input type="text" name="userId"/>
</li>
<li>
<label>用户真实姓名:</label>
<input type="text" name="realName"/>
</li>
<li>
<label>支付宝账号:</label>
<input type="text" name="zfbAccount"/>
</li>
<li>
<label>银行卡收款户名:</label>
<input type="text" name="bankCardAccountName"/>
</li>
<li>
<label>银行卡支行所在地区:</label>
<input type="text" name="bankCardArea"/>
</li>
<li>
<label>银行卡支行名称:</label>
<input type="text" name="bankCardSubBranchName"/>
</li>
<li>
<label>银行卡卡号:</label>
<input type="text" name="bankCardNumber"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:account:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:account:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('system:account:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:account:remove')}]];
var bankDict = [[${@dict.getType('playlet_user_bank')}]];
var prefix = ctx + "system/playlet/userAccount";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "短剧用户提现账户",
columns: [{
checkbox: true
},
{
field: 'id',
title: '${comment}',
visible: false
},
{
field: 'userId',
title: '用户id'
},
{
field: 'realName',
title: '用户真实姓名'
},
{
field: 'zfbAccount',
title: '支付宝账号'
},
{
field: 'bankCardType',
title: '银行卡名称',
align: 'center',
formatter: function(value, row, index) {
return $.table.selectDictLabel(bankDict, value);
}
},
{
field: 'bankCardAccountName',
title: '银行卡收款户名'
},
{
field: 'bankCardArea',
title: '银行卡支行所在地区'
},
{
field: 'bankCardSubBranchName',
title: '银行卡支行名称'
},
{
field: 'bankCardNumber',
title: '银行卡卡号'
},
{
field: 'remark',
title: '备注'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.playlet.common.annotation.Excel;
import lombok.Data; import lombok.Data;
/** /**
@ -32,6 +33,7 @@ public class BaseEntity implements Serializable
/** 创建时间 */ /** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date createTime; private Date createTime;
/** 更新者 */ /** 更新者 */

View File

@ -45,11 +45,11 @@ public class PlayletRevenueRecord extends BaseEntity {
* 剧场id * 剧场id
*/ */
@Excel(name = "短剧id") @Excel(name = "短剧id")
@ApiModelProperty(value = "短剧id") @ApiModelProperty(value = "短剧id", required = true)
private Long playletItemId; private Long playletItemId;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "短剧名称") @ApiModelProperty(value = "短剧名称", required = true)
private String playletItemName; private String playletItemName;
@TableField(exist = false) @TableField(exist = false)
@ -57,49 +57,49 @@ public class PlayletRevenueRecord extends BaseEntity {
private String playletItemImgUrl; private String playletItemImgUrl;
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "短场名称") @ApiModelProperty(value = "短场名称", required = true)
private String playletItemTypeName; private String playletItemTypeName;
/** /**
* 任务Id * 任务Id
*/ */
@Excel(name = "任务id") @Excel(name = "任务id")
@ApiModelProperty(value = "任务id") @ApiModelProperty(value = "任务id", required = true)
private Long taskId; private Long taskId;
/** /**
* 用户id * 用户id
*/ */
@Excel(name = "用户id") @Excel(name = "用户id")
@ApiModelProperty(value = "用户id") @ApiModelProperty(value = "用户id", required = true)
private Long userId; private Long userId;
/** /**
* 来源平台 1 抖音 2 快手 3 视频号 * 来源平台 1 抖音 2 快手 3 视频号
*/ */
@Excel(name = "来源平台 1 抖音 2 快手 3 视频号") @Excel(name = "来源平台 1 抖音 2 快手 3 视频号")
@ApiModelProperty(value = "来源平台 1 抖音 2 快手 3 视频号") @ApiModelProperty(value = "来源平台 1 抖音 2 快手 3 视频号", required = true)
private Long sourcePlatform; private Long sourcePlatform;
/** /**
* 收益类型 1 充值收益 2 广告收益 * 收益类型 1 充值收益 2 广告收益
*/ */
@Excel(name = "收益类型 1 充值收益 2 广告收益") @Excel(name = "收益类型 1 充值收益 2 广告收益")
@ApiModelProperty(value = "收益类型 1 充值收益 2 广告收益") @ApiModelProperty(value = "收益类型 1 充值收益 2 广告收益", required = true)
private Long earningsType; private Long earningsType;
/** /**
* 点击次数 * 点击次数
*/ */
@Excel(name = "点击次数") @Excel(name = "点击次数")
@ApiModelProperty(value = "点击次数") @ApiModelProperty(value = "点击次数", required = true)
private Long clicksNumber; private Long clicksNumber;
/** /**
* 点击人数 * 点击人数
*/ */
@Excel(name = "点击人数") @Excel(name = "点击人数")
@ApiModelProperty(value = "点击人数") @ApiModelProperty(value = "点击人数", required = true)
private Long clicksNumberPeople; private Long clicksNumberPeople;
/** /**
@ -113,29 +113,29 @@ public class PlayletRevenueRecord extends BaseEntity {
* 预估收益(后台转换保留分 直接*100 例如1块钱 在这里应表示100) * 预估收益(后台转换保留分 直接*100 例如1块钱 在这里应表示100)
*/ */
@Excel(name = "预估收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)") @Excel(name = "预估收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)")
@ApiModelProperty(value = "预估收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)") @ApiModelProperty(value = "预估收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)", required = true)
private Long estimateEarnings; private Long estimateEarnings;
/** /**
* 实际收益(后台转换保留分 直接*100 例如1块钱 在这里应表示100) * 实际收益(后台转换保留分 直接*100 例如1块钱 在这里应表示100)
*/ */
@Excel(name = "实际收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)") @Excel(name = "实际收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)")
@ApiModelProperty(value = "实际收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)") @ApiModelProperty(value = "实际收益(后台转换,保留分 直接*100 例如1块钱 在这里应表示100)", required = true)
private Long practicalEarnings; private Long practicalEarnings;
/** /**
* 推送收益时间(此处为外部平台推入 建议使用时间戳后续数据转换) * 推送收益时间(此处为外部平台推入 建议使用时间戳后续数据转换)
*/ */
@Excel(name = "推送收益时间(此处为外部平台推入 建议使用时间戳后续数据转换。)") @Excel(name = "推送收益时间(此处为外部平台推入 建议使用时间戳后续数据转换。)")
@ApiModelProperty(value = "推送收益时间(此处为外部平台推入 建议使用时间戳后续数据转换。) 时间戳") @ApiModelProperty(value = "推送收益时间(此处为外部平台推入 建议使用时间戳后续数据转换。) 时间戳", required = true)
private Date pushTime; private Date pushTime;
@ApiModelProperty(value = "到账状态, 01.待到账, 02.已到账") @ApiModelProperty(value = "到账状态, 01.待到账, 02.已到账", required = true)
private String drawStatus; private String drawStatus;
/** 剧场类型 */ /** 剧场类型 */
@Excel(name = "剧场类型") @Excel(name = "剧场类型")
@ApiModelProperty(value = "剧场类型") @ApiModelProperty(value = "剧场类型", required = true)
private Integer itemType; private Integer itemType;
@TableField(exist = false) @TableField(exist = false)

View File

@ -65,6 +65,7 @@ public class PlayletUser extends BaseEntity
private String parentId; private String parentId;
@ApiModelProperty(value = "用户状态 01.待审核, 02.审核通过 03.审核拒绝") @ApiModelProperty(value = "用户状态 01.待审核, 02.审核通过 03.审核拒绝")
@Excel(name = "用户状态 01.未加入, 02.加入")
private String status; private String status;
} }

View File

@ -1,6 +1,7 @@
package com.playlet.system.domain; package com.playlet.system.domain;
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.playlet.common.core.domain.BaseEntity; import com.playlet.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -61,4 +62,7 @@ public class PlayletUserInvoice extends BaseEntity
@Excel(name = "用户id") @Excel(name = "用户id")
private String userId; private String userId;
@TableField(exist = false)
private String userName;
} }

View File

@ -0,0 +1,42 @@
package com.playlet.system.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.playlet.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.playlet.common.annotation.Excel;
/**
* 用户登录记录对象 playlet_user_login
*
* @author ruoyi
* @date 2024-05-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "playlet_user_login")
public class PlayletUserLogin extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键id */
private Long id;
/** 用户id */
@Excel(name = "用户id")
private Long userId;
@TableField(exist = false)
@Excel(name = "用户昵称")
private String userName;
/** 登录时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "登录时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date loginTime;
}

View File

@ -1,6 +1,7 @@
package com.playlet.system.domain; package com.playlet.system.domain;
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.playlet.common.core.domain.BaseEntity; import com.playlet.common.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -36,6 +37,9 @@ public class PlayletUserWithdrawDepositRecord extends BaseEntity {
@Excel(name = "用户id") @Excel(name = "用户id")
private String userId; private String userId;
@TableField(exist = false)
private String userName;
/** /**
* 提现订单号系统自动生成uuid * 提现订单号系统自动生成uuid
*/ */

View File

@ -0,0 +1,62 @@
package com.playlet.system.mapper;
import java.util.List;
import com.playlet.system.domain.PlayletUserLogin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 用户登录记录Mapper接口
*
* @author ruoyi
* @date 2024-05-05
*/
public interface PlayletUserLoginMapper extends BaseMapper<PlayletUserLogin>
{
/**
* 查询用户登录记录
*
* @param id 用户登录记录主键
* @return 用户登录记录
*/
public PlayletUserLogin selectPlayletUserLoginById(Long id);
/**
* 查询用户登录记录列表
*
* @param playletUserLogin 用户登录记录
* @return 用户登录记录集合
*/
public List<PlayletUserLogin> selectPlayletUserLoginList(PlayletUserLogin playletUserLogin);
/**
* 新增用户登录记录
*
* @param playletUserLogin 用户登录记录
* @return 结果
*/
public int insertPlayletUserLogin(PlayletUserLogin playletUserLogin);
/**
* 修改用户登录记录
*
* @param playletUserLogin 用户登录记录
* @return 结果
*/
public int updatePlayletUserLogin(PlayletUserLogin playletUserLogin);
/**
* 删除用户登录记录
*
* @param id 用户登录记录主键
* @return 结果
*/
public int deletePlayletUserLoginById(Long id);
/**
* 批量删除用户登录记录
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deletePlayletUserLoginByIds(String[] ids);
}

View File

@ -0,0 +1,62 @@
package com.playlet.system.service;
import java.util.List;
import com.playlet.system.domain.PlayletUserLogin;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 用户登录记录Service接口
*
* @author ruoyi
* @date 2024-05-05
*/
public interface IPlayletUserLoginService extends IService<PlayletUserLogin>
{
/**
* 查询用户登录记录
*
* @param id 用户登录记录主键
* @return 用户登录记录
*/
public PlayletUserLogin selectPlayletUserLoginById(Long id);
/**
* 查询用户登录记录列表
*
* @param playletUserLogin 用户登录记录
* @return 用户登录记录集合
*/
public List<PlayletUserLogin> selectPlayletUserLoginList(PlayletUserLogin playletUserLogin);
/**
* 新增用户登录记录
*
* @param playletUserLogin 用户登录记录
* @return 结果
*/
public int insertPlayletUserLogin(PlayletUserLogin playletUserLogin);
/**
* 修改用户登录记录
*
* @param playletUserLogin 用户登录记录
* @return 结果
*/
public int updatePlayletUserLogin(PlayletUserLogin playletUserLogin);
/**
* 批量删除用户登录记录
*
* @param ids 需要删除的用户登录记录主键集合
* @return 结果
*/
public int deletePlayletUserLoginByIds(String ids);
/**
* 删除用户登录记录信息
*
* @param id 用户登录记录主键
* @return 结果
*/
public int deletePlayletUserLoginById(Long id);
}

View File

@ -0,0 +1,98 @@
package com.playlet.system.service.impl;
import java.util.List;
import com.playlet.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.playlet.system.mapper.PlayletUserLoginMapper;
import com.playlet.system.domain.PlayletUserLogin;
import com.playlet.system.service.IPlayletUserLoginService;
import com.playlet.common.core.text.Convert;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* 用户登录记录Service业务层处理
*
* @author ruoyi
* @date 2024-05-05
*/
@Service
public class PlayletUserLoginServiceImpl extends ServiceImpl<PlayletUserLoginMapper, PlayletUserLogin> implements IPlayletUserLoginService
{
@Autowired
private PlayletUserLoginMapper playletUserLoginMapper;
/**
* 查询用户登录记录
*
* @param id 用户登录记录主键
* @return 用户登录记录
*/
@Override
public PlayletUserLogin selectPlayletUserLoginById(Long id)
{
return playletUserLoginMapper.selectPlayletUserLoginById(id);
}
/**
* 查询用户登录记录列表
*
* @param playletUserLogin 用户登录记录
* @return 用户登录记录
*/
@Override
public List<PlayletUserLogin> selectPlayletUserLoginList(PlayletUserLogin playletUserLogin)
{
return playletUserLoginMapper.selectPlayletUserLoginList(playletUserLogin);
}
/**
* 新增用户登录记录
*
* @param playletUserLogin 用户登录记录
* @return 结果
*/
@Override
public int insertPlayletUserLogin(PlayletUserLogin playletUserLogin)
{
playletUserLogin.setCreateTime(DateUtils.getNowDate());
return playletUserLoginMapper.insertPlayletUserLogin(playletUserLogin);
}
/**
* 修改用户登录记录
*
* @param playletUserLogin 用户登录记录
* @return 结果
*/
@Override
public int updatePlayletUserLogin(PlayletUserLogin playletUserLogin)
{
playletUserLogin.setUpdateTime(DateUtils.getNowDate());
return playletUserLoginMapper.updatePlayletUserLogin(playletUserLogin);
}
/**
* 批量删除用户登录记录
*
* @param ids 需要删除的用户登录记录主键
* @return 结果
*/
@Override
public int deletePlayletUserLoginByIds(String ids)
{
return playletUserLoginMapper.deletePlayletUserLoginByIds(Convert.toStrArray(ids));
}
/**
* 删除用户登录记录信息
*
* @param id 用户登录记录主键
* @return 结果
*/
@Override
public int deletePlayletUserLoginById(Long id)
{
return playletUserLoginMapper.deletePlayletUserLoginById(id);
}
}

View File

@ -0,0 +1,82 @@
<?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.playlet.system.mapper.PlayletUserLoginMapper">
<resultMap type="PlayletUserLogin" id="PlayletUserLoginResult">
<result property="id" column="id" />
<result property="userId" column="user_id" />
<result property="loginTime" column="login_time" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectPlayletUserLoginVo">
select id, user_id, login_time, create_by, create_time, update_by, update_time, remark from playlet_user_login
</sql>
<select id="selectPlayletUserLoginList" parameterType="PlayletUserLogin" resultMap="PlayletUserLoginResult">
<include refid="selectPlayletUserLoginVo"/>
<where>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="loginTime != null "> and date_format(login_time,'%Y-%m-%d') = date_format(#{loginTime},'%Y-%m-%d')</if>
</where>
</select>
<select id="selectPlayletUserLoginById" parameterType="Long" resultMap="PlayletUserLoginResult">
<include refid="selectPlayletUserLoginVo"/>
where id = #{id}
</select>
<insert id="insertPlayletUserLogin" parameterType="PlayletUserLogin" useGeneratedKeys="true" keyProperty="id">
insert into playlet_user_login
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="loginTime != null">login_time,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
<if test="loginTime != null">#{loginTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updatePlayletUserLogin" parameterType="PlayletUserLogin">
update playlet_user_login
<trim prefix="SET" suffixOverrides=",">
<if test="userId != null">user_id = #{userId},</if>
<if test="loginTime != null">login_time = #{loginTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deletePlayletUserLoginById" parameterType="Long">
delete from playlet_user_login where id = #{id}
</delete>
<delete id="deletePlayletUserLoginByIds" parameterType="String">
delete from playlet_user_login where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -35,9 +35,13 @@
<if test="agencyId != null and agencyId != ''"> and agency_id = #{agencyId}</if> <if test="agencyId != null and agencyId != ''"> and agency_id = #{agencyId}</if>
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if> <if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if>
<if test="createBy != null and createBy != ''"> and create_by = #{createBy}</if> <if test="createBy != null and createBy != ''"> and create_by = #{createBy}</if>
<if test="createTime != null "> and create_time = #{createTime}</if> <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
<if test="updateBy != null and updateBy != ''"> and update_by = #{updateBy}</if> <if test="updateBy != null and updateBy != ''"> and update_by = #{updateBy}</if>
<if test="updateTime != null "> and update_time = #{updateTime}</if>
<if test="remark != null and remark != ''"> and remark = #{remark}</if> <if test="remark != null and remark != ''"> and remark = #{remark}</if>
</where> </where>
</select> </select>