| @@ -0,0 +1,127 @@ | |||
| package com.iformall.controller.basic; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.annotation.SystemControllerLog; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.WxCustomizeModule; | |||
| import com.iformall.enums.EnumThemeType; | |||
| import com.iformall.service.WxCustomizeModuleService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.List; | |||
| @RestController | |||
| @Api(description = "CustomizeModule相关接口") | |||
| @RequestMapping("wxCustomizeModule") | |||
| public class WxCustomizeModuleController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| WxCustomizeModuleService wxCustomizeModuleService; | |||
| @ApiOperation("查询CustomizeModule列表") | |||
| @GetMapping(value = "/list") | |||
| @SystemControllerLog(description = "查询CustomizeModule列表") | |||
| public ResultData getList(@ModelAttribute WxCustomizeModule wxCustomizeModule, Integer pageNum, Integer pageSize) { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::getList"); | |||
| try { | |||
| if(wxCustomizeModule == null){ | |||
| wxCustomizeModule = new WxCustomizeModule(); | |||
| } | |||
| wxCustomizeModule.updateTenantInfo(ifParentUpdateAloneTenantInfo()); | |||
| if(wxCustomizeModule.getThemeType() == null){ | |||
| wxCustomizeModule.setThemeType(EnumThemeType.C.getCode()); | |||
| } | |||
| PageInfo<WxCustomizeModule> page = wxCustomizeModuleService.listAsPage(wxCustomizeModule, pageNum, pageSize); | |||
| return new ResultData(page); | |||
| }catch (Exception e){ | |||
| logger.error(e.getMessage(),e); | |||
| return new ResultData(ErrorCode.SYS_SERVER_ERROR); | |||
| } | |||
| } | |||
| @ApiOperation("恢复主题默认") | |||
| @PostMapping("/updateDefault") | |||
| @ApiImplicitParam(name = "themeId", value = "themeId", dataType = "Long", paramType = "query", required = true) | |||
| @SystemControllerLog(description = "恢复主题默认") | |||
| public ResultData updateDefault(@RequestBody WxCustomizeModule wxCustomizeModule) { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::updateDefault"); | |||
| if(wxCustomizeModule == null){ | |||
| wxCustomizeModule = new WxCustomizeModule(); | |||
| } | |||
| wxCustomizeModule.updateTenantInfo(ifParentUpdateAloneTenantInfo()); | |||
| if(wxCustomizeModule.getThemeType() == null){ | |||
| wxCustomizeModule.setThemeType(EnumThemeType.C.getCode()); | |||
| } | |||
| return wxCustomizeModuleService.updateDefault(wxCustomizeModule); | |||
| } | |||
| @ApiOperation("根据id删除接口") | |||
| @GetMapping("/del") | |||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | |||
| @SystemControllerLog(description = "-删除") | |||
| public ResultData delete(Long id) { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::delete"); | |||
| if(id == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| WxCustomizeModule wxCustomizeModule = new WxCustomizeModule(); | |||
| wxCustomizeModule.updateTenantInfo(ifParentUpdateAloneTenantInfo()); | |||
| wxCustomizeModule.setId(id); | |||
| wxCustomizeModuleService.updateDel(wxCustomizeModule); | |||
| return new ResultData(Result.SUCCESS, "删除成功", null); | |||
| } | |||
| @GetMapping("/isNew") | |||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | |||
| @SystemControllerLog(description = "-置顶") | |||
| public ResultData isNew(Long id) { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::delete"); | |||
| if(id == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| WxCustomizeModule wxCustomizeModule = new WxCustomizeModule(); | |||
| wxCustomizeModule.updateTenantInfo(ifParentUpdateAloneTenantInfo()); | |||
| wxCustomizeModule.setId(id); | |||
| wxCustomizeModuleService.saveOrUpdate(wxCustomizeModule); | |||
| return new ResultData(Result.SUCCESS, "置顶成功", null); | |||
| } | |||
| @PostMapping("add") | |||
| @SystemControllerLog(description = "-添加") | |||
| public ResultData add(@RequestBody WxCustomizeModule wxCustomizeModule) { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::add"); | |||
| if(wxCustomizeModule == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| wxCustomizeModule.updateTenantInfo(ifParentUpdateAloneTenantInfo()); | |||
| if(wxCustomizeModule.getThemeType() == null){ | |||
| wxCustomizeModule.setThemeType(EnumThemeType.C.getCode()); | |||
| } | |||
| wxCustomizeModuleService.saveOrUpdate(wxCustomizeModule); | |||
| return new ResultData(); | |||
| } | |||
| @PostMapping("update") | |||
| @SystemControllerLog(description = "更新") | |||
| public ResultData update(@RequestBody WxCustomizeModule wxCustomizeModule) { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::update"); | |||
| if(wxCustomizeModule == null){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| wxCustomizeModule.updateTenantInfo(ifParentUpdateAloneTenantInfo()); | |||
| wxCustomizeModuleService.saveOrUpdate(wxCustomizeModule); | |||
| return new ResultData(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,50 @@ | |||
| package com.iformall.controller; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.WxCustomizeModule; | |||
| import com.iformall.enums.EnumThemeType; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import com.iformall.service.WxCustomizeModuleService; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiOperation; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import java.util.List; | |||
| @RestController | |||
| @Api(description = "CustomizeModule相关接口") | |||
| @RequestMapping("/api/wxCustomizeModule") | |||
| public class WxCustomizeModuleController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| WxCustomizeModuleService wxCustomizeModuleService; | |||
| @ApiOperation("查询CustomizeModule列表") | |||
| @GetMapping(value = "/list") | |||
| public ResultData getList() { | |||
| logger.debug("[" + getIpAddr() + "] WxCustomizeModuleController::getList"); | |||
| try { | |||
| WxCustomizeModule wxCustomizeModule = new WxCustomizeModule(); | |||
| wxCustomizeModule.updateTenantInfo(getTenantInfo()); | |||
| if(wxCustomizeModule.getThemeType() == null){ | |||
| wxCustomizeModule.setThemeType(EnumThemeType.C.getCode()); | |||
| } | |||
| wxCustomizeModule.setIsUsing(EnumYesOrNo.YES.getCode()); | |||
| List<WxCustomizeModule> list = wxCustomizeModuleService.findList(wxCustomizeModule); | |||
| if(list == null || list.size() < 4 || list.size() > 8){ | |||
| list = wxCustomizeModuleService.findDefault(wxCustomizeModule); | |||
| } | |||
| return new ResultData(list); | |||
| }catch (Exception e){ | |||
| logger.error(e.getMessage(),e); | |||
| return new ResultData(ErrorCode.SYS_SERVER_ERROR); | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,45 @@ | |||
| package com.iformall.domain.po; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| import lombok.Data; | |||
| import lombok.EqualsAndHashCode; | |||
| import java.util.Date; | |||
| @TableName(value = "wx_customize_module") | |||
| @Data | |||
| @EqualsAndHashCode(callSuper = true) | |||
| public class WxCustomizeModule extends TenantEntity { | |||
| protected Long id; | |||
| @io.swagger.annotations.ApiModelProperty(value="主题",name="themeId") | |||
| private Long themeId; | |||
| @io.swagger.annotations.ApiModelProperty(value="名称",name="name") | |||
| private String name; | |||
| @io.swagger.annotations.ApiModelProperty(value="说明",name="remarks") | |||
| private String remarks; | |||
| @io.swagger.annotations.ApiModelProperty(value="EnumThemeType",name="themeType") | |||
| private Integer themeType; | |||
| @io.swagger.annotations.ApiModelProperty(value="icon",name="icon") | |||
| private String icon; | |||
| @io.swagger.annotations.ApiModelProperty(value="style",name="style") | |||
| private String style; | |||
| @io.swagger.annotations.ApiModelProperty(value="链接类型",name="linkType") | |||
| private Integer linkType; | |||
| @io.swagger.annotations.ApiModelProperty(value="链接地址",name="linkUrl") | |||
| private String linkUrl; | |||
| @io.swagger.annotations.ApiModelProperty(value="链接外部小程序ID",name="outLinkAppid") | |||
| private String outLinkAppid; | |||
| @io.swagger.annotations.ApiModelProperty(value="排序",name="sort") | |||
| private Integer sort; | |||
| @io.swagger.annotations.ApiModelProperty(value="是否使用",name="isUsing") | |||
| private Integer isUsing; | |||
| @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | |||
| private Date createDate; | |||
| @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||
| private Date updateDate; | |||
| } | |||
| @@ -0,0 +1,22 @@ | |||
| package com.iformall.mapper; | |||
| import com.iformall.common.CommonMapper; | |||
| import com.iformall.domain.po.WxCustomizeModule; | |||
| import java.util.List; | |||
| /** | |||
| * @author | |||
| */ | |||
| public interface WxCustomizeModuleMapper extends CommonMapper<WxCustomizeModule, Long> { | |||
| List<WxCustomizeModule> findList(WxCustomizeModule record); | |||
| /** | |||
| * 伪删除 | |||
| * @param record | |||
| */ | |||
| int updateDel(WxCustomizeModule record); | |||
| int updateDelByTenantId(WxCustomizeModule record); | |||
| } | |||
| @@ -0,0 +1,29 @@ | |||
| package com.iformall.service; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.*; | |||
| import java.util.List; | |||
| public interface WxCustomizeModuleService { | |||
| List<WxCustomizeModule> findList(WxCustomizeModule record); | |||
| PageInfo<WxCustomizeModule> listAsPage(WxCustomizeModule record, Integer pageIndex, Integer pageSize); | |||
| WxCustomizeModule getById(WxCustomizeModule record); | |||
| int saveOrUpdate(WxCustomizeModule record); | |||
| /** | |||
| * 伪删除 | |||
| * @param record | |||
| */ | |||
| int updateDel(WxCustomizeModule record); | |||
| List<WxCustomizeModule> findDefault(WxCustomizeModule record); | |||
| ResultData updateDefault(WxCustomizeModule record); | |||
| } | |||
| @@ -0,0 +1,112 @@ | |||
| package com.iformall.service.impl; | |||
| import com.github.pagehelper.PageHelper; | |||
| import com.github.pagehelper.PageInfo; | |||
| import com.iformall.common.IdWorker; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.enums.EnumYesOrNo; | |||
| import com.iformall.mapper.WxCustomizeModuleMapper; | |||
| import com.iformall.service.WxCustomizeModuleService; | |||
| import com.iformall.service.WxMiniappThemeService; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import org.springframework.transaction.annotation.Propagation; | |||
| import org.springframework.transaction.annotation.Transactional; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| @Service | |||
| public class WxCustomizeModuleServiceImpl implements WxCustomizeModuleService { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| WxCustomizeModuleMapper wxCustomizeModuleMapper; | |||
| @Autowired | |||
| WxMiniappThemeService wxMiniappThemeService; | |||
| @Override | |||
| public List<WxCustomizeModule> findList(WxCustomizeModule record) { | |||
| return wxCustomizeModuleMapper.findList(record); | |||
| } | |||
| @Override | |||
| public PageInfo<WxCustomizeModule> listAsPage(WxCustomizeModule record, Integer pageIndex, Integer pageSize) { | |||
| return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCustomizeModuleMapper.findList(record)); | |||
| } | |||
| @Override | |||
| public WxCustomizeModule getById(WxCustomizeModule record) { | |||
| WxCustomizeModule wxCustomizeModule = wxCustomizeModuleMapper.selectById(record.getId()); | |||
| return wxCustomizeModule; | |||
| } | |||
| @Override | |||
| public int updateDel(WxCustomizeModule record) { | |||
| return wxCustomizeModuleMapper.updateDel(record); | |||
| } | |||
| @Override | |||
| public List<WxCustomizeModule> findDefault(WxCustomizeModule record) { | |||
| //获取主题 | |||
| WxThemeMall wxThemeMall = new WxThemeMall(); | |||
| wxThemeMall.setTenantId(record.getTenantId()); | |||
| wxThemeMall.setThemeType(record.getThemeType()); | |||
| WxThemeMall themeMall = wxMiniappThemeService.findThemeMall(wxThemeMall); | |||
| Long themeId = 0l; | |||
| if(themeMall != null){ | |||
| themeId = themeMall.getThemeId(); | |||
| }else{ | |||
| WxMiniappTheme wxMiniappTheme = new WxMiniappTheme(); | |||
| wxMiniappTheme.setTenantId(record.getTenantId()); | |||
| wxMiniappTheme.setType(record.getThemeType()); | |||
| PageInfo<WxMiniappTheme> page = wxMiniappThemeService.listAsPage(wxMiniappTheme, 1, 1); | |||
| themeId = page.getList().get(0).getId(); | |||
| } | |||
| //获取默认 | |||
| WxCustomizeModule modelQ = new WxCustomizeModule(); | |||
| modelQ.setTenantId("0"); | |||
| modelQ.setThemeId(themeId); | |||
| modelQ.setThemeType(record.getThemeType()); | |||
| modelQ.setIsUsing(EnumYesOrNo.YES.getCode()); | |||
| return wxCustomizeModuleMapper.findList(modelQ); | |||
| } | |||
| @Override | |||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | |||
| public ResultData updateDefault(WxCustomizeModule record) { | |||
| List<WxCustomizeModule> aDefault = this.findDefault(record); | |||
| //删除旧数据 | |||
| wxCustomizeModuleMapper.updateDelByTenantId(record); | |||
| //创建新数据 | |||
| for (WxCustomizeModule module:aDefault) { | |||
| module.setId(null); | |||
| module.updateTenantInfo(record); | |||
| module.setThemeId(null); | |||
| this.saveOrUpdate(module); | |||
| } | |||
| return new ResultData(); | |||
| } | |||
| @Override | |||
| public int saveOrUpdate(WxCustomizeModule record) { | |||
| final IdWorker idWorker = IdWorker.get(); | |||
| Date curr = new Date(); | |||
| if (record.getId() == null) { | |||
| record.setId(idWorker.nextId()); | |||
| record.setCreateDate(curr); | |||
| record.setUpdateDate(curr); | |||
| return wxCustomizeModuleMapper.insert(record); | |||
| } else { | |||
| record.setUpdateDate(curr); | |||
| return wxCustomizeModuleMapper.updateById(record); | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,71 @@ | |||
| <?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.iformall.mapper.WxCustomizeModuleMapper"> | |||
| <resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCustomizeModule"> | |||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId" /> | |||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/> | |||
| <result column="theme_id" jdbcType="VARCHAR" property="themeId" /> | |||
| <result column="name" jdbcType="VARCHAR" property="name" /> | |||
| <result column="remarks" jdbcType="VARCHAR" property="remarks" /> | |||
| <result column="theme_type" jdbcType="INTEGER" property="themeType"/> | |||
| <result column="icon" jdbcType="VARCHAR" property="icon" /> | |||
| <result column="style" jdbcType="VARCHAR" property="style" /> | |||
| <result column="link_type" jdbcType="INTEGER" property="linkType"/> | |||
| <result column="link_url" jdbcType="VARCHAR" property="linkUrl" /> | |||
| <result column="out_link_appid" jdbcType="VARCHAR" property="outLinkAppid" /> | |||
| <result column="sort" jdbcType="INTEGER" property="sort"/> | |||
| <result column="is_using" jdbcType="INTEGER" property="isUsing"/> | |||
| <result column="create_date" property="createDate" /> | |||
| <result column="update_date" property="updateDate" /> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| `id`,`tenant_id`,`parent_tenant_id`,`theme_id`,`name`,`remarks`,`theme_type`,`icon`,`style`,`link_type`,`link_url`,`out_link_appid`, | |||
| `sort`,`is_using`, | |||
| `create_date`,`update_date` | |||
| </sql> | |||
| <sql id="dynamicWhereConditions"> | |||
| where del_status = 0 | |||
| <if test=" null != id "> and `id` = #{id} </if> | |||
| <if test=" null != tenantId and '' != tenantId"> | |||
| and `tenant_id` = #{tenantId} | |||
| </if> | |||
| <if test=" null != parentTenantId and '' != parentTenantId"> | |||
| and `parent_tenant_id` = #{parentTenantId} | |||
| </if> | |||
| <if test=" null != themeId"> | |||
| and `theme_id` = #{themeId} | |||
| </if> | |||
| <if test=" null != name and '' != name "> and `name` like concat('%', #{name},'%') </if> | |||
| <if test=" null != themeType"> | |||
| and `theme_type` = #{themeType} | |||
| </if> | |||
| <if test=" null != linkType"> | |||
| and `link_type` = #{linkType} | |||
| </if> | |||
| <if test=" null != isUsing"> | |||
| and `is_using` = #{isUsing} | |||
| </if> | |||
| order by `is_using` desc, `sort` asc, `update_date` desc | |||
| </sql> | |||
| <select id="findList" parameterType="com.iformall.domain.po.WxCustomizeModule" resultMap="BaseResultMap"> | |||
| select | |||
| <include refid="allColumns"/> | |||
| from wx_customize_module | |||
| <include refid="dynamicWhereConditions"/> | |||
| </select> | |||
| <update id="updateDel" parameterType="com.iformall.domain.po.WxCustomizeModule"> | |||
| update wx_customize_module set `del_status` = 1, update_date = now() where id = #{id}; | |||
| </update> | |||
| <update id="updateDelByTenantId" parameterType="com.iformall.domain.po.WxCustomizeModule"> | |||
| update wx_customize_module set `del_status` = 1, update_date = now() where tenant_id = #{tenantId}; | |||
| </update> | |||
| </mapper> | |||