diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java new file mode 100644 index 0000000..c209049 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java @@ -0,0 +1,106 @@ +package com.flossom.system.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import com.flossom.common.core.utils.poi.ExcelUtil; +import com.flossom.common.core.web.controller.BaseController; +import com.flossom.common.core.web.domain.AjaxResult; +import com.flossom.common.core.web.page.TableDataInfo; +import com.flossom.common.log.annotation.Log; +import com.flossom.common.log.enums.BusinessType; +import com.flossom.common.security.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.flossom.system.domain.WxUserMember; +import com.flossom.system.service.IWxUserMemberService; + +/** + * 用户Controller + * + * @author flossom + * @date 2023-12-08 + */ +@RestController +@RequestMapping("/member") +public class WxUserMemberController extends BaseController +{ + @Autowired + private IWxUserMemberService wxUserMemberService; + + /** + * 查询用户列表 + */ + @RequiresPermissions("system:member:list") + @GetMapping("/list") + public TableDataInfo list(WxUserMember wxUserMember) + { + startPage(); + List list = wxUserMemberService.selectWxUserMemberList(wxUserMember); + return getDataTable(list); + } + + /** + * 导出用户列表 + */ + @RequiresPermissions("system:member:export") + @Log(title = "用户", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WxUserMember wxUserMember) + { + List list = wxUserMemberService.selectWxUserMemberList(wxUserMember); + ExcelUtil util = new ExcelUtil(WxUserMember.class); + util.exportExcel(response, list, "用户数据"); + } + + /** + * 获取用户详细信息 + */ + @RequiresPermissions("system:member:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(wxUserMemberService.selectWxUserMemberById(id)); + } + + /** + * 新增用户 + */ + @RequiresPermissions("system:member:add") + @Log(title = "用户", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WxUserMember wxUserMember) + { + return toAjax(wxUserMemberService.insertWxUserMember(wxUserMember)); + } + + /** + * 修改用户 + */ + @RequiresPermissions("system:member:edit") + @Log(title = "用户", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WxUserMember wxUserMember) + { + return toAjax(wxUserMemberService.updateWxUserMember(wxUserMember)); + } + + /** + * 删除用户 + */ + @RequiresPermissions("system:member:remove") + @Log(title = "用户", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(wxUserMemberService.deleteWxUserMemberByIds(ids)); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/domain/WxUserMember.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/domain/WxUserMember.java new file mode 100644 index 0000000..bb25848 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/domain/WxUserMember.java @@ -0,0 +1,383 @@ +package com.flossom.system.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 用户对象 wx_user_member + * + * @author flossom + * @date 2023-12-08 + */ +public class WxUserMember extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 昵称 */ + @Excel(name = "昵称") + private String nickname; + + /** 头像 */ + @Excel(name = "头像") + private String headimg; + + /** 姓名 */ + @Excel(name = "姓名") + private String username; + + /** 积分 */ + @Excel(name = "积分") + private BigDecimal credit; + + /** openid */ + @Excel(name = "openid") + private String openid; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String unionid; + + /** 用户类型:1游客 2会员 */ + @Excel(name = "用户类型:1游客 2会员") + private Integer userType; + + /** 会员等级:0 不是会员,1以上为会员 */ + @Excel(name = "会员等级:0 不是会员,1以上为会员") + private Integer level; + + /** 手机 */ + @Excel(name = "手机") + private String mobile; + + /** 密码 */ + @Excel(name = "密码") + private String password; + + /** 个人二维码 */ + @Excel(name = "个人二维码") + private String userQr; + + /** 省 */ + @Excel(name = "省") + private String province; + + /** 市 */ + @Excel(name = "市") + private String city; + + /** 区 */ + @Excel(name = "区") + private String area; + + /** 生日 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private Date birthday; + + /** 1可以2不可以 */ + @Excel(name = "1可以2不可以") + private Integer clock; + + /** 1可以2不可以 */ + @Excel(name = "1可以2不可以") + private Integer activity; + + /** 微信号 */ + @Excel(name = "微信号") + private String wechat; + + /** 应该是邀请码来的 */ + @Excel(name = "应该是邀请码来的") + private String code; + + /** 1 未对接到中控 2已经对接 3对接失败 */ + @Excel(name = "1 未对接到中控 2已经对接 3对接失败") + private Integer isAbutment; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private BigDecimal collagenDay; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private BigDecimal collagenMount; + + /** 登陆时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "登陆时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date loginTime; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private Integer status; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setNickname(String nickname) + { + this.nickname = nickname; + } + + public String getNickname() + { + return nickname; + } + public void setHeadimg(String headimg) + { + this.headimg = headimg; + } + + public String getHeadimg() + { + return headimg; + } + public void setUsername(String username) + { + this.username = username; + } + + public String getUsername() + { + return username; + } + public void setCredit(BigDecimal credit) + { + this.credit = credit; + } + + public BigDecimal getCredit() + { + return credit; + } + public void setOpenid(String openid) + { + this.openid = openid; + } + + public String getOpenid() + { + return openid; + } + public void setUnionid(String unionid) + { + this.unionid = unionid; + } + + public String getUnionid() + { + return unionid; + } + public void setUserType(Integer userType) + { + this.userType = userType; + } + + public Integer getUserType() + { + return userType; + } + public void setLevel(Integer level) + { + this.level = level; + } + + public Integer getLevel() + { + return level; + } + public void setMobile(String mobile) + { + this.mobile = mobile; + } + + public String getMobile() + { + return mobile; + } + public void setPassword(String password) + { + this.password = password; + } + + public String getPassword() + { + return password; + } + public void setUserQr(String userQr) + { + this.userQr = userQr; + } + + public String getUserQr() + { + return userQr; + } + public void setProvince(String province) + { + this.province = province; + } + + public String getProvince() + { + return province; + } + public void setCity(String city) + { + this.city = city; + } + + public String getCity() + { + return city; + } + public void setArea(String area) + { + this.area = area; + } + + public String getArea() + { + return area; + } + public void setBirthday(Date birthday) + { + this.birthday = birthday; + } + + public Date getBirthday() + { + return birthday; + } + public void setClock(Integer clock) + { + this.clock = clock; + } + + public Integer getClock() + { + return clock; + } + public void setActivity(Integer activity) + { + this.activity = activity; + } + + public Integer getActivity() + { + return activity; + } + public void setWechat(String wechat) + { + this.wechat = wechat; + } + + public String getWechat() + { + return wechat; + } + public void setCode(String code) + { + this.code = code; + } + + public String getCode() + { + return code; + } + public void setIsAbutment(Integer isAbutment) + { + this.isAbutment = isAbutment; + } + + public Integer getIsAbutment() + { + return isAbutment; + } + public void setCollagenDay(BigDecimal collagenDay) + { + this.collagenDay = collagenDay; + } + + public BigDecimal getCollagenDay() + { + return collagenDay; + } + public void setCollagenMount(BigDecimal collagenMount) + { + this.collagenMount = collagenMount; + } + + public BigDecimal getCollagenMount() + { + return collagenMount; + } + public void setLoginTime(Date loginTime) + { + this.loginTime = loginTime; + } + + public Date getLoginTime() + { + return loginTime; + } + public void setStatus(Integer status) + { + this.status = status; + } + + public Integer getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("nickname", getNickname()) + .append("headimg", getHeadimg()) + .append("username", getUsername()) + .append("credit", getCredit()) + .append("openid", getOpenid()) + .append("unionid", getUnionid()) + .append("userType", getUserType()) + .append("level", getLevel()) + .append("mobile", getMobile()) + .append("password", getPassword()) + .append("userQr", getUserQr()) + .append("province", getProvince()) + .append("city", getCity()) + .append("area", getArea()) + .append("birthday", getBirthday()) + .append("clock", getClock()) + .append("activity", getActivity()) + .append("wechat", getWechat()) + .append("code", getCode()) + .append("isAbutment", getIsAbutment()) + .append("collagenDay", getCollagenDay()) + .append("collagenMount", getCollagenMount()) + .append("loginTime", getLoginTime()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/mapper/WxUserMemberMapper.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/mapper/WxUserMemberMapper.java new file mode 100644 index 0000000..88ec3fa --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/mapper/WxUserMemberMapper.java @@ -0,0 +1,61 @@ +package com.flossom.system.mapper; + +import java.util.List; +import com.flossom.system.domain.WxUserMember; + +/** + * 用户Mapper接口 + * + * @author flossom + * @date 2023-12-08 + */ +public interface WxUserMemberMapper +{ + /** + * 查询用户 + * + * @param id 用户主键 + * @return 用户 + */ + public WxUserMember selectWxUserMemberById(Long id); + + /** + * 查询用户列表 + * + * @param wxUserMember 用户 + * @return 用户集合 + */ + public List selectWxUserMemberList(WxUserMember wxUserMember); + + /** + * 新增用户 + * + * @param wxUserMember 用户 + * @return 结果 + */ + public int insertWxUserMember(WxUserMember wxUserMember); + + /** + * 修改用户 + * + * @param wxUserMember 用户 + * @return 结果 + */ + public int updateWxUserMember(WxUserMember wxUserMember); + + /** + * 删除用户 + * + * @param id 用户主键 + * @return 结果 + */ + public int deleteWxUserMemberById(Long id); + + /** + * 批量删除用户 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWxUserMemberByIds(Long[] ids); +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java new file mode 100644 index 0000000..fbd1098 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java @@ -0,0 +1,61 @@ +package com.flossom.system.service; + +import java.util.List; +import com.flossom.system.domain.WxUserMember; + +/** + * 用户Service接口 + * + * @author flossom + * @date 2023-12-08 + */ +public interface IWxUserMemberService +{ + /** + * 查询用户 + * + * @param id 用户主键 + * @return 用户 + */ + public WxUserMember selectWxUserMemberById(Long id); + + /** + * 查询用户列表 + * + * @param wxUserMember 用户 + * @return 用户集合 + */ + public List selectWxUserMemberList(WxUserMember wxUserMember); + + /** + * 新增用户 + * + * @param wxUserMember 用户 + * @return 结果 + */ + public int insertWxUserMember(WxUserMember wxUserMember); + + /** + * 修改用户 + * + * @param wxUserMember 用户 + * @return 结果 + */ + public int updateWxUserMember(WxUserMember wxUserMember); + + /** + * 批量删除用户 + * + * @param ids 需要删除的用户主键集合 + * @return 结果 + */ + public int deleteWxUserMemberByIds(Long[] ids); + + /** + * 删除用户信息 + * + * @param id 用户主键 + * @return 结果 + */ + public int deleteWxUserMemberById(Long id); +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysFiringInfoServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysFiringInfoServiceImpl.java index ee2b3d9..3a51b32 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysFiringInfoServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysFiringInfoServiceImpl.java @@ -3,6 +3,8 @@ package com.flossom.system.service.impl; import java.util.List; import com.flossom.common.core.utils.DateUtils; +import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.flossom.system.mapper.SysFiringInfoMapper; @@ -55,6 +57,7 @@ public class SysFiringInfoServiceImpl implements ISysFiringInfoService public int insertSysFiringInfo(SysFiringInfo sysFiringInfo) { sysFiringInfo.setCreateTime(DateUtils.getNowDate()); + sysFiringInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername()); return sysFiringInfoMapper.insertSysFiringInfo(sysFiringInfo); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java new file mode 100644 index 0000000..47e1bbf --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java @@ -0,0 +1,97 @@ +package com.flossom.system.service.impl; + +import java.util.List; + +import com.flossom.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.flossom.system.mapper.WxUserMemberMapper; +import com.flossom.system.domain.WxUserMember; +import com.flossom.system.service.IWxUserMemberService; + +/** + * 用户Service业务层处理 + * + * @author flossom + * @date 2023-12-08 + */ +@Service +public class WxUserMemberServiceImpl implements IWxUserMemberService +{ + @Autowired + private WxUserMemberMapper wxUserMemberMapper; + + /** + * 查询用户 + * + * @param id 用户主键 + * @return 用户 + */ + @Override + public WxUserMember selectWxUserMemberById(Long id) + { + return wxUserMemberMapper.selectWxUserMemberById(id); + } + + /** + * 查询用户列表 + * + * @param wxUserMember 用户 + * @return 用户 + */ + @Override + public List selectWxUserMemberList(WxUserMember wxUserMember) + { + return wxUserMemberMapper.selectWxUserMemberList(wxUserMember); + } + + /** + * 新增用户 + * + * @param wxUserMember 用户 + * @return 结果 + */ + @Override + public int insertWxUserMember(WxUserMember wxUserMember) + { + wxUserMember.setCreateTime(DateUtils.getNowDate()); + return wxUserMemberMapper.insertWxUserMember(wxUserMember); + } + + /** + * 修改用户 + * + * @param wxUserMember 用户 + * @return 结果 + */ + @Override + public int updateWxUserMember(WxUserMember wxUserMember) + { + wxUserMember.setUpdateTime(DateUtils.getNowDate()); + return wxUserMemberMapper.updateWxUserMember(wxUserMember); + } + + /** + * 批量删除用户 + * + * @param ids 需要删除的用户主键 + * @return 结果 + */ + @Override + public int deleteWxUserMemberByIds(Long[] ids) + { + return wxUserMemberMapper.deleteWxUserMemberByIds(ids); + } + + /** + * 删除用户信息 + * + * @param id 用户主键 + * @return 结果 + */ + @Override + public int deleteWxUserMemberById(Long id) + { + return wxUserMemberMapper.deleteWxUserMemberById(id); + } +} diff --git a/flossom-modules/flossom-system/src/main/resources/mapper/system/WxUserMemberMapper.xml b/flossom-modules/flossom-system/src/main/resources/mapper/system/WxUserMemberMapper.xml new file mode 100644 index 0000000..48be98b --- /dev/null +++ b/flossom-modules/flossom-system/src/main/resources/mapper/system/WxUserMemberMapper.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, nickname, headimg, username, credit, openid, unionid, user_type, level, mobile, password, user_qr, province, city, area, birthday, clock, activity, wechat, code, is_abutment, collagen_day, collagen_mount, login_time, status, create_by, create_time, update_by, update_time, remark from wx_user_member + + + + + + + + insert into wx_user_member + + nickname, + headimg, + username, + credit, + openid, + unionid, + user_type, + level, + mobile, + password, + user_qr, + province, + city, + area, + birthday, + clock, + activity, + wechat, + code, + is_abutment, + collagen_day, + collagen_mount, + login_time, + status, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{nickname}, + #{headimg}, + #{username}, + #{credit}, + #{openid}, + #{unionid}, + #{userType}, + #{level}, + #{mobile}, + #{password}, + #{userQr}, + #{province}, + #{city}, + #{area}, + #{birthday}, + #{clock}, + #{activity}, + #{wechat}, + #{code}, + #{isAbutment}, + #{collagenDay}, + #{collagenMount}, + #{loginTime}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update wx_user_member + + nickname = #{nickname}, + headimg = #{headimg}, + username = #{username}, + credit = #{credit}, + openid = #{openid}, + unionid = #{unionid}, + user_type = #{userType}, + level = #{level}, + mobile = #{mobile}, + password = #{password}, + user_qr = #{userQr}, + province = #{province}, + city = #{city}, + area = #{area}, + birthday = #{birthday}, + clock = #{clock}, + activity = #{activity}, + wechat = #{wechat}, + code = #{code}, + is_abutment = #{isAbutment}, + collagen_day = #{collagenDay}, + collagen_mount = #{collagenMount}, + login_time = #{loginTime}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from wx_user_member where id = #{id} + + + + delete from wx_user_member where id in + + #{id} + + + \ No newline at end of file diff --git a/flossom-ui/src/api/system/member.js b/flossom-ui/src/api/system/member.js new file mode 100644 index 0000000..da16d5a --- /dev/null +++ b/flossom-ui/src/api/system/member.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询用户列表 +export function listMember(query) { + return request({ + url: '/system/member/list', + method: 'get', + params: query + }) +} + +// 查询用户详细 +export function getMember(id) { + return request({ + url: '/system/member/' + id, + method: 'get' + }) +} + +// 新增用户 +export function addMember(data) { + return request({ + url: '/system/member', + method: 'post', + data: data + }) +} + +// 修改用户 +export function updateMember(data) { + return request({ + url: '/system/member', + method: 'put', + data: data + }) +} + +// 删除用户 +export function delMember(id) { + return request({ + url: '/system/member/' + id, + method: 'delete' + }) +} diff --git a/flossom-ui/src/views/system/member/index.vue b/flossom-ui/src/views/system/member/index.vue new file mode 100644 index 0000000..ce8db44 --- /dev/null +++ b/flossom-ui/src/views/system/member/index.vue @@ -0,0 +1,572 @@ + + +